')
5222 FORMAT(' | ')
5223 FORMAT(' | ')
5227 FORMAT(' | ')
WRITE(ICOUT,5107)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5215)
5215 FORMAT(' Table 1: Summary Statistics By Lab')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5222)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5231)
5231 FORMAT(' Lab ID')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5222)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5232)
5232 FORMAT(' n(i)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5223)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5233)
5233 FORMAT(' Mean')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5223)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5234)
5234 FORMAT(' Variance')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5223)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5235)
5235 FORMAT(' Standard
Deviation')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5223)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5236)
5236 FORMAT(' Standard Deviation
of the Mean')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
5326 FORMAT(' ')
5327 FORMAT(' | ')
IFORMT='(9X,F15.7)'
IF(NUMDIG.GE.1 .AND. NUMDIG.LE.9)THEN
WRITE(IFORMT(9:9),'(I1)')NUMDIG
ELSEIF(NUMDIG.GE.10)THEN
IFORMT='(9X,E15.7)'
ENDIF
C
DO5240I=1,NLAB
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5326)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)INT(Y3(I))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5326)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)N(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)X(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)ASD(I)**2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)ASD(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SQRT(T(I))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
5240 CONTINUE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
CALL DPCONA(92,IBASLC)
C
8001 FORMAT(A1,'end{verbatim}')
8002 FORMAT(A1,'begin{table}')
8003 FORMAT('{',A1,'bf Consensus Mean Analysis}')
8004 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8005 FORMAT(A1,'begin{center}')
8006 FORMAT(5X,A1,'begin{tabular} {lr}')
8007 FORMAT('{',A1,'bf (Full Sample Case)}')
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8002)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8006)IBASLC
CALL DPWRST('XXX','WRIT')
C
8011 FORMAT(5X,'{',A1,'bf Data Summary:} & ',2X,A1,A1)
8012 FORMAT(5X,'Response Variable: & ',A4,A4,2X,A1,A1)
8013 FORMAT(5X,'Lab-ID Variable: & ',A4,A4,2X,A1,A1)
8014 FORMAT(5X,'Total Number of Observations: & ',I8,2X,A1,A1)
8015 FORMAT(5X,'Grand Mean: & ',F15.7,2X,A1,A1)
8016 FORMAT(5X,'Grand Standard Deviation: & ',F15.7,2X,A1,A1)
8017 FORMAT(5X,'Total Number of Labs: & ',I8,2X,A1,A1)
8018 FORMAT(5X,'Minimum Lab Mean: & ',F15.7,2X,A1,A1)
8019 FORMAT(5X,'Maximum Lab Mean: & ',F15.7,2X,A1,A1)
8020 FORMAT(5X,'Minimum Lab SD: & ',F15.7,2X,A1,A1)
8021 FORMAT(5X,'Maximum Lab SD: & ',F15.7,2X,A1,A1)
8022 FORMAT(5X,'Within Lab (Pooled) SD: & ',F15.7,2X,A1,A1)
8023 FORMAT(5X,'Within Lab (Pooled) Variance: & ',
1 F15.7,2X,A1,A1)
WRITE(ICOUT,8011)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8012)IHLEFT,IHLEF2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IHRIGH,IHRIG2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8014)NPTS,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8015)XGRAND,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8016)SDGRAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8017)NLAB,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8018)AMNX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8019)AMXX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)AMNSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)AMXSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)SQRT(S2WPOO),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)S2WPOO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8030 FORMAT(A1,'end{tabular}')
8031 FORMAT(A1,'end{center}')
8032 FORMAT(A1,'end{table}')
WRITE(ICOUT,8030)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8040 FORMAT(5X,'{',A1,'bf Table 1: Summary Statistics by Lab}')
8041 FORMAT(5X,A1,'begin{tabular} {|c|c|c|c|c|c|}')
WRITE(ICOUT,8002)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8040)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8041)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8043 FORMAT(5X,A1,'hline')
8044 FORMAT(5X,' & & & & Standard & Standard Deviation ',A1,A1)
8045 FORMAT(5X,'Lab ID & N(I) & Mean & Variance & ',
1 'Deviation & of the Mean ',A1,A1)
WRITE(ICOUT,8043)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8044)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8045)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8043)IBASLC
CALL DPWRST('XXX','WRIT')
C
DO8050I=1,NLAB
C
IF(NUMDIG.EQ.1)THEN
WRITE(ICOUT,8051)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8051 FORMAT(5X,I5,' & ',I8,' & ',F15.1,' & ',F15.1,' & ',
1 F15.1,' & ',F15.1,2X,A1,A1)
ELSEIF(NUMDIG.EQ.2)THEN
WRITE(ICOUT,8052)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8052 FORMAT(5X,I5,' & ',I8,' & ',F15.2,' & ',F15.2,' & ',
1 F15.2,' & ',F15.2,2X,A1,A1)
ELSEIF(NUMDIG.EQ.3)THEN
WRITE(ICOUT,8053)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8053 FORMAT(5X,I5,' & ',I8,' & ',F15.3,' & ',F15.3,' & ',
1 F15.3,' & ',F15.3,2X,A1,A1)
ELSEIF(NUMDIG.EQ.4)THEN
WRITE(ICOUT,8054)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8054 FORMAT(5X,I5,' & ',I8,' & ',F15.4,' & ',F15.4,' & ',
1 F15.4,' & ',F15.4,2X,A1,A1)
ELSEIF(NUMDIG.EQ.5)THEN
WRITE(ICOUT,8055)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8055 FORMAT(5X,I5,' & ',I8,' & ',F15.5,' & ',F15.5,' & ',
1 F15.5,' & ',F15.5,2X,A1,A1)
ELSEIF(NUMDIG.EQ.6)THEN
WRITE(ICOUT,8056)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8056 FORMAT(5X,I5,' & ',I8,' & ',F15.6,' & ',F15.6,' & ',
1 F15.6,' & ',F15.6,2X,A1,A1)
ELSEIF(NUMDIG.EQ.7)THEN
WRITE(ICOUT,8057)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8057 FORMAT(5X,I5,' & ',I8,' & ',F15.7,' & ',F15.7,' & ',
1 F15.7,' & ',F15.7,2X,A1,A1)
ELSEIF(NUMDIG.EQ.8)THEN
WRITE(ICOUT,8058)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8058 FORMAT(5X,I5,' & ',I8,' & ',F15.8,' & ',F15.8,' & ',
1 F15.8,' & ',F15.8,2X,A1,A1)
ELSEIF(NUMDIG.EQ.9)THEN
WRITE(ICOUT,8059)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8059 FORMAT(5X,I5,' & ',I8,' & ',F15.9,' & ',F15.9,' & ',
1 F15.9,' & ',F15.9,2X,A1,A1)
ELSEIF(NUMDIG.GE.10)THEN
WRITE(ICOUT,8060)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8060 FORMAT(5X,I5,' & ',I8,' & ',E15.7,' & ',E15.7,' & ',
1 E15.7,' & ',E15.7,2X,A1,A1)
ELSE
WRITE(ICOUT,8061)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8061 FORMAT(5X,I5,' & ',I8,' & ',F15.7,' & ',F15.7,' & ',
1 F15.7,' & ',F15.7,2X,A1,A1)
ENDIF
CALL DPWRST('XXX','WRIT')
8050 CONTINUE
WRITE(ICOUT,8043)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8030)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
C
CALL DPCONA(92,IBASLC)
C
IF(IRTFFP.EQ.'Times New Roman')THEN
ITEMP=0
ELSEIF(IRTFFP.EQ.'Lucida Sans')THEN
ITEMP=6
ELSEIF(IRTFFP.EQ.'Arial')THEN
ITEMP=2
ELSEIF(IRTFFP.EQ.'Bookman')THEN
ITEMP=3
ELSEIF(IRTFFP.EQ.'Georgia')THEN
ITEMP=4
ELSEIF(IRTFFP.EQ.'Tahoma')THEN
ITEMP=5
ELSEIF(IRTFFP.EQ.'Verdana')THEN
ITEMP=7
ELSE
ITEMP=0
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
C WRITE HEADER LINE
C
6193 FORMAT(A1,'fs',I1)
6195 FORMAT(A1,'fs',I2)
ITEMP2=INT(REAL(IRTFPS)*1.5)
IF(ITEMP2.LE.9)THEN
WRITE(ICOUT,6193)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ELSEIF(ITEMP2.LE.99)THEN
WRITE(ICOUT,6195)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ELSE
ITEMP2=99
WRITE(ICOUT,6195)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ENDIF
C
IRTFMD='OFF'
IFLAG1=.TRUE.
IHEAD(1:37)=' b Consensus Means Analysis'
IHEAD(38:75)=' line (Full Sample Case)'
IHEAD(1:1)=IBASLC
IHEAD(38:38)=IBASLC
NHEAD=75
CALL DPRTF8(IHEAD,NHEAD,ITEMP,IFLAG1)
NHEAD=0
C
ITEMP2=IRTFPS
IF(ITEMP2.LE.9)THEN
WRITE(ICOUT,6193)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ELSEIF(ITEMP2.LE.99)THEN
WRITE(ICOUT,6195)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ELSE
ITEMP2=99
WRITE(ICOUT,6195)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ENDIF
C
IF(IRTFFF.EQ.'Courier New')THEN
ITEMP=1
ELSEIF(IRTFFF.EQ.'Lucida Console')THEN
ITEMP=8
ELSE
ITEMP=1
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
C SUMMARY INFORMATION
C
NCOL=4
IDEFPS=20
IFRST=IRTFPS*3500/IDEFPS
IINC1=IRTFPS*1540/IDEFPS
C
DO6105ISET1=1,NCOL
VALIGN(ISET1)='b'
ALIGN(ISET1)='r'
IF(NUMDI2(ISET1).LT.0.OR.NUMDI2(ISET1).GT.9)NUMDI2(ISET1)=7
6105 CONTINUE
ALIGN(1)='l'
NUMDI2(1)=0
NUMDI2(2)=7
C
IWIDTH(1)=IFRST
IWIDTH(2)=IWIDTH(1) + IINC1
C
ITTEMP=' '
NCTEMP=0
NHEAD=0
C
CALL DPRTF1(ITTEMP,NCTEMP,IHEAD,NHEAD)
C
NHEAD=2
IFLAG1=.FALSE.
IFLAG2=.FALSE.
C
IVALUE(1)=' b Data Summary:'
IVALUE(1)(1:1)=IBASLC
NCHAR(1)=16
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IVALUE(1)='Response Variable:'
NCHAR(1)=18
IVALUE(2)(1:4)=IHLEFT(1:4)
IVALUE(2)(5:8)=IHLEF2(1:4)
NCHAR(2)=8
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IVALUE(1)='Lab-ID Variable:'
NCHAR(1)=16
IVALUE(2)(1:4)=IHRIGH(1:4)
IVALUE(2)(5:8)=IHRIG2(1:4)
NCHAR(2)=8
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IFLAG1=.FALSE.
NHEAD=1
C
NCHAR(1)=29
IVALUE(1)='Total Number of Observations:'
AVALUE(2)=REAL(NPTS)
NJUNK=NUMDI2(2)
NUMDI2(2)=0
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
NUMDI2(2)=NJUNK
C
NCHAR(1)=11
IVALUE(1)='Grand Mean:'
AVALUE(2)=XGRAND
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=25
IVALUE(1)='Grand Standard Deviation:'
AVALUE(2)=SDGRAN
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=21
IVALUE(1)='Total Number of Labs:'
AVALUE(2)=REAL(NLAB)
NJUNK=NUMDI2(2)
NUMDI2(2)=0
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
NUMDI2(2)=NJUNK
C
NCHAR(1)=17
IVALUE(1)='Minimum Lab Mean:'
AVALUE(2)=AMNX
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=17
IVALUE(1)='Maximum Lab Mean:'
AVALUE(2)=AMXX
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=15
IVALUE(1)='Minimum Lab SD:'
AVALUE(2)=AMNSD
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=15
IVALUE(1)='Maximum Lab SD:'
AVALUE(2)=AMXSD
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=23
IVALUE(1)='Within Lab (pooled) SD:'
AVALUE(2)=SQRT(S2WPOO)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=29
IVALUE(1)='Within Lab (pooled) Variance:'
AVALUE(2)=S2WPOO
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
CALL DPRTF6(NHEAD)
IFLAG1=.TRUE.
IFLAG2=.FALSE.
C
C TABLE 1
C
ITTEMP=' '
NCTEMP=0
NHEAD=34
IHEAD(1:NHEAD)='Table 1: Summary Statistics by Lab'
CCCCC IFRMT5=' '
CCCCC IFRMT5(1:34)='(I8,2X,I8,4(F15.7,2X))'
CCCCC WRITE(IFRMT5(20:20),'(I1)')NUMDIG
C
CALL DPRTF1(ITTEMP,NCTEMP,IHEAD,NHEAD)
C
NCOL=6
IDEFPS=20
IFRST=IRTFPS*1400/IDEFPS
IINC1=IRTFPS*1440/IDEFPS
IINC2=IRTFPS*800/IDEFPS
C
DO6005ISET1=1,NCOL
VALIGN(ISET1)='b'
ALIGN(ISET1)='r'
NUMDI2(ISET1)=NUMDIG
IF(NUMDI2(ISET1).LT.0.OR.NUMDI2(ISET1).GT.9)NUMDI2(ISET1)=7
6005 CONTINUE
C
IWIDTH(1)=IFRST
IWIDTH(2)=IWIDTH(1) + IINC2
DO6008I=3,NCOL
IWIDTH(I)=IWIDTH(I-1) + IINC1
6008 CONTINUE
NUMDI2(1)=0
NUMDI2(2)=0
C
IVALUE(1)=' b Lab ID'
IVALUE(1)(1:1)=IBASLC
NCHAR(1)=9
C
IVALUE(2)=' b n(i)'
IVALUE(2)(1:1)=IBASLC
NCHAR(2)=7
C
IVALUE(3)=' b Mean'
IVALUE(3)(1:1)=IBASLC
NCHAR(3)=7
C
IVALUE(4)=' b Variance'
IVALUE(4)(1:1)=IBASLC
NCHAR(4)=11
C
IVALUE(5)=' b Standard line Deviation'
IVALUE(5)(1:1)=IBASLC
IVALUE(5)(12:12)=IBASLC
NCHAR(5)=26
C
IVALUE(6)=' b Standard Deviation line of the Mean'
IVALUE(6)(1:1)=IBASLC
IVALUE(6)(22:22)=IBASLC
NCHAR(6)=38
C
NHEAD=NCOL
IFLAG1=.TRUE.
IFLAG2=.TRUE.
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
NCHAR(1)=0
IVALUE(1)=' '
IFLAG1=.FALSE.
ICNT=0
DO6110ISET1=1,NLAB
ICNT=ICNT+1
AVALUE(1)=Y3(ISET1)
AVALUE(2)=REAL(N(ISET1))
AVALUE(3)=X(ISET1)
AVALUE(4)=ASD(ISET1)**2
AVALUE(5)=ASD(ISET1)
AVALUE(6)=SQRT(T(ISET1))
IF(ISET1.EQ.NLAB)IFLAG1=.TRUE.
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
6110 CONTINUE
C
CALL DPRTF6(NHEAD)
IFLAG1=.TRUE.
IFLAG2=.FALSE.
C
6191 FORMAT(A1,'f',I1)
IF(IRTFFP.EQ.'Times New Roman')THEN
ITEMP=0
ELSEIF(IRTFFP.EQ.'Lucida Sans')THEN
ITEMP=6
ELSEIF(IRTFFP.EQ.'Arial')THEN
ITEMP=2
ELSEIF(IRTFFP.EQ.'Bookman')THEN
ITEMP=3
ELSEIF(IRTFFP.EQ.'Georgia')THEN
ITEMP=4
ELSEIF(IRTFFP.EQ.'Tahoma')THEN
ITEMP=5
ELSEIF(IRTFFP.EQ.'Verdana')THEN
ITEMP=7
ELSE
ITEMP=0
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'WOML')THEN
ELSE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4001)
4001 FORMAT(' Consensus Means Analysis')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4002)
4002 FORMAT(' (Full Sample Case)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4003)
4003 FORMAT('Data Summary:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4011)IHLEFT,IHLEF2
4011 FORMAT('Response Variable: ',7X,A4,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4012)IHRIGH,IHRIG2
4012 FORMAT('Lab-ID Variable: ',7X,A4,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4013)NPTS
4013 FORMAT('Total Number of Observations: ',7X,I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4016)XGRAND
4016 FORMAT('Grand Mean: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4017)SDGRAN
4017 FORMAT('Grand Standard Deviation: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4018)NLAB
4018 FORMAT('Total Number of Labs: ',7X,I8)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4021)AMNX
4021 FORMAT('Minimum Lab Mean: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4022)AMXX
4022 FORMAT('Maximum Lab Mean: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4023)AMNSD
4023 FORMAT('Minimum Lab SD: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4024)AMXSD
4024 FORMAT('Maximum Lab SD: ',F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4031)SQRT(S2WPOO)
4031 FORMAT('Within Lab (pooled) SD: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4032)S2WPOO
4032 FORMAT('Within Lab (pooled) Variance: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4100)
4100 FORMAT('Table 1: Summary Statistics by Lab')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4101)
4101 FORMAT(
1' ',
1' Standard')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4103)
4103 FORMAT(
1' Lab Standard',
1' Deviation')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4104)
4104 FORMAT(
1' ID n(i) Mean Variance Deviation',
1' of Mean')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4106)
4106 FORMAT(
1'------------------------------------------------------',
1'----------------------')
CALL DPWRST('XXX','WRIT')
C
IFORMT=' '
IFORMT='(I8,I8,4(F15.7))'
IF(NUMDIG.GE.1 .AND. NUMDIG.LE.9)THEN
WRITE(IFORMT(14:14),'(I1)')NUMDIG
ELSEIF(NUMDIG.GE.10)THEN
IFORMT='(I8,I8,4(E15.7))'
ENDIF
C
DO4150I=1,NLAB
WRITE(ICOUT,IFORMT)INT(Y3(I)),N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I))
C4156 FORMAT(I8,I8,4F15.7)
CALL DPWRST('XXX','WRIT')
4150 CONTINUE
C
WRITE(ICOUT,4106)
CALL DPWRST('XXX','WRIT')
ENDIF
ENDIF
C
DO4190I=1,NLAB
WRITE(IOUNI1,4196)REAL(I),REAL(N(I)),X(I),ASD(I)**2,
1 ASD(I),SQRT(T(I))
4196 FORMAT(F6.0,2X,F6.0,2X,4E15.7)
4190 CONTINUE
C
C *************************************
C ** STEP 80-- **
C ** REMOVE ANY LABS WITH LESS THAN **
C ** TWO OBSERVATIONS **
C *************************************
C
ICNT=0
DO9100I=1,NLAB
IF(ASD(I).GT.0.0)THEN
ICNT=ICNT+1
AMEAN(ICNT)=AMEAN(I)
ASD(ICNT)=ASD(I)
N(ICNT)=N(I)
ELSE
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
WRITE(ICOUT,9201)
9201 FORMAT('')
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
WRITE(ICOUT,9301)IBASLC
9301 FORMAT(A1,'begin{verbatim}')
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
IRTFMD='VERB'
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,9103)I
9103 FORMAT('LAB ',I8,' HAS A NON-POSITIVE STANDARD DEVIATION.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9105)
9105 FORMAT('THIS LAB WILL BE OMITTED FROM THE ANALYSIS.')
CALL DPWRST('XXX','WRIT')
C
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
WRITE(ICOUT,9211)
9211 FORMAT('')
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
WRITE(ICOUT,9311)IBASLC
9311 FORMAT(A1,'end{verbatim}')
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
IRTFMD='OFF'
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
9100 CONTINUE
NLAB=ICNT
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MAN3')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMAN3--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IERROR
9012 FORMAT('IERROR = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)NPTS,NUMVAR
9013 FORMAT('NPTS,NUMVAR = ',2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)IBUGA3
9014 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','BUG ')
9025 CONTINUE
ENDIF
C
RETURN
END
SUBROUTINE DPMAN4(Y1,Y2,Y3,NLAB,NTOT,
1DAT,X,T,AMEAN,ASD,N,
1IHLEFT,IHLEF2,IHRIGH,IHRIG2,IHRI21,IHRI22,
1ASM,ASD2,SDGRAN,
1XGRAND,S2WPOO,SW,
1AMNX,AMXX,
1IWRITE,IOUNI1,
1ICAPSW,ICAPTY,NUMDIG,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--GENERATE INITIAL SUMMARY TABLES FOR CONSENSUS MEANS
C COMMAND (SUMMARY DATA CASE).
C PRINTING--YES
C SUBROUTINES NEEDED--NONE
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2899
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/3
C ORIGINAL VERSION--MARCH 2006. EXTRACTED FROM DPMAN2.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES--------------
C
IMPLICIT DOUBLE PRECISION (A-H, O-Z)
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 ISUBN0
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*4 IHLEFT
CHARACTER*4 IHLEF2
CHARACTER*4 IHRIGH
CHARACTER*4 IHRIG2
CHARACTER*4 IHRI21
CHARACTER*4 IHRI22
C
CHARACTER*1 IBASLC
CHARACTER*40 IFORMT
C
REAL ATEMP
REAL RIGHT
REAL XGRAND
REAL SW
REAL S2WPOO
REAL SDGRAN
REAL AMNX
REAL AMXX
REAL ASM
REAL ASD2
C
C----------------------------------------------------------------
C
REAL Y1(*)
REAL Y2(*)
REAL Y3(*)
REAL AMEAN(*)
REAL ASD(*)
C
INTEGER N(*)
C
REAL DAT(*)
DOUBLE PRECISION X(*)
DOUBLE PRECISION T(*)
C
COMMON /MPCOM/ T0, T1
C
PARAMETER (MAXHED=50)
INTEGER IWIDTH(MAXHED)
INTEGER NUMDI2(MAXHED)
CHARACTER*8 ALIGN(MAXHED)
CHARACTER*8 VALIGN(MAXHED)
COMMON/HTML4/IWIDTH,NUMDI2,ALIGN,VALIGN
CHARACTER*45 IVALUE(MAXHED)
INTEGER NCHAR(MAXHED)
REAL AVALUE(MAXHED)
C
LOGICAL IFLAG1
LOGICAL IFLAG2
LOGICAL IFLAG3
C
CHARACTER*132 ITTEMP
CHARACTER*132 IHEAD
C
CHARACTER*4 IRTFMD
COMMON/COMRTF/IRTFMD
C
INCLUDE 'DPCOST.INC'
C
REAL CPUMIN
REAL CPUMAX
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT------------------------------------------------
C
IERROR='NO'
C
ISUBN1='DPMA'
ISUBN2='N3 '
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MAN4')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMAN4--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)NPTS,NUMVAR,IOUNI1
52 FORMAT('NPTS,NUMVAR,IOUNI1 = ',3I8)
CALL DPWRST('XXX','BUG ')
DO55I=1,NPTS
WRITE(ICOUT,56)I,Y1(I),Y2(I),Y3(I)
56 FORMAT('I,Y1(I),Y2(I),Y3(I) = ',I8,3G15.7)
CALL DPWRST('XXX','BUG ')
55 CONTINUE
ENDIF
C
C ***********************************************
C ** STEP 2.2-- **
C ** COMPUTE THE SUMMARY STATISTICS BY LAB **
C ** 1) DETERMINE NUMER OF POINTS IN EACH LAB **
C ** 2) MEAN FOR EACH LAB **
C ** 3) SD FOR EACH LAB **
C ***********************************************
C
T0=10000000.D0
T1=-T0
C
AMNX=CPUMAX
AMXX=CPUMIN
AMNSD=CPUMAX
AMXSD=CPUMIN
C
DO250I=1,NLAB
C
X(I)=DBLE(Y1(I))
IF(X(I).LT.T0) T0=X(I)
IF(X(I).GT.T1) T1=X(I)
AMEAN(I)=Y1(I)
ASD(I)=Y2(I)
N(I)=INT(Y3(I)+0.5)
C
IF(N(I).EQ.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,211)
211 FORMAT('***** ERROR IN CONSENSUS MEANS ANALYSIS--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,254)I
254 FORMAT(' LAB ',I8,' HAS NO DATA')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
T(I)=DBLE(ASD(I))**2/DBLE(N(I))
IF(AMEAN(I).LT.AMNX)AMNX=AMEAN(I)
IF(AMEAN(I).GT.AMXX)AMXX=AMEAN(I)
C
IF(ASD(I).LE.0.0)THEN
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,211)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,264)I
CC264 FORMAT(' LAB ',I8,' HAS A NON-POSITIVE ',
CCCCC1 'STANDARD DEVIATION.')
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,266)
CC266 FORMAT(' THIS HAPPENS IF THE LAB HAS A SINGLE ',
CCCCC1 'DATA POINT')
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,267)
CC267 FORMAT(' OR IF ALL THE DATA POINTS HAVE THE SAME ',
CCCCC1 'VALUE.')
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,269)
CC269 FORMAT(' RE-RUN THE CONSENSUS MEANS ANALYSIS WITH ',
CCCCC1 'THIS LAB OMITTED.')
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC IERROR='YES'
CCCCC GOTO9000
CCCCC ENDIF
C
ELSE
IF(ASD(I).LT.AMNSD)AMNSD=ASD(I)
IF(ASD(I).GT.AMXSD)AMXSD=ASD(I)
ENDIF
C
250 CONTINUE
C
DSUM1=0.0D0
DO310I=1,NLAB
DSUM1=DSUM1 + (DBLE(N(I))/DBLE(NTOT))*DBLE(AMEAN(I))
310 CONTINUE
XGRAND=DSUM1
C
DSUM1=0.0D0
DO315I=1,NLAB
DSUM1=DSUM1 + DBLE(N(I))*DBLE(ASD(I))
315 CONTINUE
SDGRAN=REAL(DSUM1/DBLE(NTOT-NLAB))
C
CALL MEAN(AMEAN,NLAB,IWRITE,ASM,IBUGA3,IERROR)
CALL SD(AMEAN,NLAB,IWRITE,ASD2,IBUGA3,IERROR)
C
DSUM1=0.0D0
DSUM2=0.0D0
DSUM3=0.0D0
DO320J=1,NLAB
DTERM1=DBLE(N(J)-1.0D0)
DSUM2=DSUM2 + DTERM1*(DBLE(ASD(J))**2)
DSUM3=DSUM3 + DTERM1
DSUM1=DSUM1 + DBLE(ASD(J))**2/DBLE(N(J))
320 CONTINUE
XJUNK=XGRAND
DTEMP=DSQRT(DSUM1)/DBLE(NLAB)
S2WPOO=DSUM2/DSUM3
SW=REAL(DTEMP)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
WRITE(ICOUT,5101)
5101 FORMAT('')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5102)
C5102 FORMAT('Consensus Mean Analysis ')
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5103)
C5103 FORMAT('(Summary Statistics Case)')
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5107)
5107 FORMAT('')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5111)
5111 FORMAT('')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
5113 FORMAT(' ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5114)
5114 FORMAT(' Consensus Mean Analysis ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
5115 FORMAT(' (Summary Statistics Case)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
5119 FORMAT(' ')
CALL DPWRST('XXX','WRIT')
C
5121 FORMAT(' ')
5123 FORMAT(' | ')
5127 FORMAT(' | ')
5126 FORMAT(' ')
5128 FORMAT(' | ')
5151 FORMAT(' ',I8)
5152 FORMAT(' ',F15.7)
5155 FORMAT(' ')
5191 FORMAT(' ')
5193 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5135)
5135 FORMAT(' Summary Statistics:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
5136 FORMAT(' Mean Variable:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)IHLEFT,IHLEF2
5137 FORMAT(' ',A4,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5140)
5140 FORMAT(' SD Variable:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)IHRIGH,IHRIG2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55140)
55140 FORMAT(' Sample Size Variable:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)IHRI21,IHRI22
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5141)
5141 FORMAT(' Total Number of Observations:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)NTOT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5142)
5142 FORMAT(' Grand Mean:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)XGRAND
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
5143 FORMAT(' Pooled Standard Deviation:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SDGRAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5144)
5144 FORMAT(' Total Number of Labs:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)NLAB
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5164)
5164 FORMAT(' Minimum Lab Mean:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)AMNX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5165)
5165 FORMAT(' Maximum Lab Mean:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)AMXX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5166)
5166 FORMAT(' Minimum Lab SD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)AMNSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5167)
5167 FORMAT(' Maximum Lab SD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)AMXSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5171)
5171 FORMAT(' Within Lab (pooled) SD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SQRT(S2WPOO)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5172)
5172 FORMAT(' Within Lab (pooled) Variance:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)S2WPOO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5107)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5215)
5215 FORMAT(' Table 1: Summary Statistics By Lab')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
5222 FORMAT(' | ')
5223 FORMAT(' | ')
5227 FORMAT(' | ')
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5223)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5231)
5231 FORMAT(' Lab ID')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5222)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5232)
5232 FORMAT(' n(I)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5222)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5233)
5233 FORMAT(' Mean')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5223)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5234)
5234 FORMAT(' Variance')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5223)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5235)
5235 FORMAT(' Standard
Deviation')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5223)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5236)
5236 FORMAT(' Standard Deviation
of the Mean')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
5225 FORMAT(' ')
5226 FORMAT(' | ')
IFORMT='(9X,F15.7)'
IF(NUMDIG.GE.1 .AND. NUMDIG.LE.9)THEN
WRITE(IFORMT(9:9),'(I1)')NUMDIG
ELSEIF(NUMDIG.GE.10)THEN
IFORMT='(9X,E15.7)'
ENDIF
DO5240I=1,NLAB
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5225)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)I
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5225)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)N(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5226)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)X(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5226)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)ASD(I)**2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5226)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)ASD(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5226)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SQRT(T(I))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
5240 CONTINUE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
CALL DPCONA(92,IBASLC)
C
8001 FORMAT(A1,'end{verbatim}')
8002 FORMAT(A1,'begin{table}')
8003 FORMAT('{',A1,'bf Consensus Mean Analysis}')
8004 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8005 FORMAT(A1,'begin{center}')
8006 FORMAT(5X,A1,'begin{tabular} {lr}')
8007 FORMAT('{',A1,'bf (Summary Statistic Case)}')
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8002)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8006)IBASLC
CALL DPWRST('XXX','WRIT')
C
8011 FORMAT(5X,'{',A1,'bf Data Summary:} & ',2X,A1,A1)
8012 FORMAT(5X,'Mean Variable: & ',A4,A4,2X,A1,A1)
8013 FORMAT(5X,'SD Variable: & ',A4,A4,2X,A1,A1)
8113 FORMAT(5X,'Sample Size Variable: & ',A4,A4,2X,A1,A1)
8014 FORMAT(5X,'Total Number of Observations: & ',I8,2X,A1,A1)
8015 FORMAT(5X,'Grand Mean: & ',F15.7,2X,A1,A1)
8016 FORMAT(5X,'Pooled Standard Deviation: & ',F15.7,2X,A1,A1)
8017 FORMAT(5X,'Total Number of Labs: & ',I8,2X,A1,A1)
8018 FORMAT(5X,'Minimum Lab Mean: & ',F15.7,2X,A1,A1)
8019 FORMAT(5X,'Maximum Lab Mean: & ',F15.7,2X,A1,A1)
8020 FORMAT(5X,'Minimum Lab SD: & ',F15.7,2X,A1,A1)
8021 FORMAT(5X,'Maximum Lab SD: & ',F15.7,2X,A1,A1)
8022 FORMAT(5X,'Within Lab (Pooled) SD: & ',F15.7,2X,A1,A1)
8023 FORMAT(5X,'Within Lab (Pooled) Variance: & ',
1 F15.7,2X,A1,A1)
WRITE(ICOUT,8011)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8012)IHLEFT,IHLEF2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IHRIGH,IHRIG2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IHRI21,IHRI22,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8014)NTOT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8015)XGRAND,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8016)SDGRAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8017)NLAB,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8018)AMNX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8019)AMXX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)AMNSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)AMXSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)SQRT(S2WPOO),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)S2WPOO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8030 FORMAT(A1,'end{tabular}')
8031 FORMAT(A1,'end{center}')
8032 FORMAT(A1,'end{table}')
WRITE(ICOUT,8030)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8040 FORMAT(5X,'{',A1,'bf Table 1: Summary Statistics by Lab}')
8041 FORMAT(5X,A1,'begin{tabular} {|c|c|c|c|c|c|}')
WRITE(ICOUT,8002)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8040)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8041)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8043 FORMAT(5X,A1,'hline')
8044 FORMAT(5X,' & & & & Standard & Standard Deviation ',A1,A1)
8045 FORMAT(5X,'Lab ID & N(I) & Mean & Variance & ',
1 'Deviation & of the Mean ',A1,A1)
WRITE(ICOUT,8043)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8044)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8045)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8043)IBASLC
CALL DPWRST('XXX','WRIT')
C
DO8050I=1,NLAB
C
IF(NUMDIG.EQ.1)THEN
WRITE(ICOUT,8051)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8051 FORMAT(5X,I5,' & ',I8,' & ',F15.1,' & ',F15.1,' & ',
1 F15.1,' & ',F15.1,2X,A1,A1)
ELSEIF(NUMDIG.EQ.2)THEN
WRITE(ICOUT,8052)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8052 FORMAT(5X,I5,' & ',I8,' & ',F15.2,' & ',F15.2,' & ',
1 F15.2,' & ',F15.2,2X,A1,A1)
ELSEIF(NUMDIG.EQ.3)THEN
WRITE(ICOUT,8053)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8053 FORMAT(5X,I5,' & ',I8,' & ',F15.3,' & ',F15.3,' & ',
1 F15.3,' & ',F15.3,2X,A1,A1)
ELSEIF(NUMDIG.EQ.4)THEN
WRITE(ICOUT,8054)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8054 FORMAT(5X,I5,' & ',I8,' & ',F15.4,' & ',F15.4,' & ',
1 F15.4,' & ',F15.4,2X,A1,A1)
ELSEIF(NUMDIG.EQ.5)THEN
WRITE(ICOUT,8055)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8055 FORMAT(5X,I5,' & ',I8,' & ',F15.5,' & ',F15.5,' & ',
1 F15.5,' & ',F15.5,2X,A1,A1)
ELSEIF(NUMDIG.EQ.6)THEN
WRITE(ICOUT,8056)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8056 FORMAT(5X,I5,' & ',I8,' & ',F15.6,' & ',F15.6,' & ',
1 F15.6,' & ',F15.6,2X,A1,A1)
ELSEIF(NUMDIG.EQ.7)THEN
WRITE(ICOUT,8057)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8057 FORMAT(5X,I5,' & ',I8,' & ',F15.7,' & ',F15.7,' & ',
1 F15.7,' & ',F15.7,2X,A1,A1)
ELSEIF(NUMDIG.EQ.8)THEN
WRITE(ICOUT,8058)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8058 FORMAT(5X,I5,' & ',I8,' & ',F15.8,' & ',F15.8,' & ',
1 F15.8,' & ',F15.8,2X,A1,A1)
ELSEIF(NUMDIG.EQ.9)THEN
WRITE(ICOUT,8059)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8059 FORMAT(5X,I5,' & ',I8,' & ',F15.9,' & ',F15.9,' & ',
1 F15.9,' & ',F15.9,2X,A1,A1)
ELSEIF(NUMDIG.GE.10)THEN
WRITE(ICOUT,8060)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8060 FORMAT(5X,I5,' & ',I8,' & ',E15.7,' & ',E15.7,' & ',
1 E15.7,' & ',E15.7,2X,A1,A1)
ELSE
WRITE(ICOUT,8061)I,N(I),X(I),ASD(I)**2,ASD(I),
1 SQRT(T(I)),
1 IBASLC,IBASLC,IBASLC
8061 FORMAT(5X,I5,' & ',I8,' & ',F15.7,' & ',F15.7,' & ',
1 F15.7,' & ',F15.7,2X,A1,A1)
ENDIF
CALL DPWRST('XXX','WRIT')
8050 CONTINUE
WRITE(ICOUT,8043)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8030)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
C
CALL DPCONA(92,IBASLC)
C
IF(IRTFFP.EQ.'Times New Roman')THEN
ITEMP=0
ELSEIF(IRTFFP.EQ.'Lucida Sans')THEN
ITEMP=6
ELSEIF(IRTFFP.EQ.'Arial')THEN
ITEMP=2
ELSEIF(IRTFFP.EQ.'Bookman')THEN
ITEMP=3
ELSEIF(IRTFFP.EQ.'Georgia')THEN
ITEMP=4
ELSEIF(IRTFFP.EQ.'Tahoma')THEN
ITEMP=5
ELSEIF(IRTFFP.EQ.'Verdana')THEN
ITEMP=7
ELSE
ITEMP=0
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
C WRITE HEADER LINE
C
6193 FORMAT(A1,'fs',I1)
6195 FORMAT(A1,'fs',I2)
ITEMP2=INT(REAL(IRTFPS)*1.5)
IF(ITEMP2.LE.9)THEN
WRITE(ICOUT,6193)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ELSEIF(ITEMP2.LE.99)THEN
WRITE(ICOUT,6195)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ELSE
ITEMP2=99
WRITE(ICOUT,6195)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ENDIF
C
IRTFMD='OFF'
IFLAG1=.TRUE.
IHEAD(1:37)=' b Consensus Means Analysis'
IHEAD(38:74)=' line (Summary Statistic Case)'
IHEAD(1:1)=IBASLC
IHEAD(38:38)=IBASLC
NHEAD=74
CALL DPRTF8(IHEAD,NHEAD,ITEMP,IFLAG1)
NHEAD=0
C
ITEMP2=IRTFPS
IF(ITEMP2.LE.9)THEN
WRITE(ICOUT,6193)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ELSEIF(ITEMP2.LE.99)THEN
WRITE(ICOUT,6195)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ELSE
ITEMP2=99
WRITE(ICOUT,6195)IBASLC,ITEMP2
CALL DPWRST(ICOUT,'WRIT')
ENDIF
C
IF(IRTFFF.EQ.'Courier New')THEN
ITEMP=1
ELSEIF(IRTFFF.EQ.'Lucida Console')THEN
ITEMP=8
ELSE
ITEMP=1
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
C SUMMARY INFORMATION
C
NCOL=4
IDEFPS=20
IFRST=IRTFPS*3500/IDEFPS
IINC1=IRTFPS*1540/IDEFPS
C
DO6105ISET1=1,NCOL
VALIGN(ISET1)='b'
ALIGN(ISET1)='r'
IF(NUMDI2(ISET1).LT.0.OR.NUMDI2(ISET1).GT.9)NUMDI2(ISET1)=7
6105 CONTINUE
ALIGN(1)='l'
NUMDI2(1)=0
NUMDI2(2)=7
C
IWIDTH(1)=IFRST
IWIDTH(2)=IWIDTH(1) + IINC1
C
ITTEMP=' '
NCTEMP=0
NHEAD=0
C
CALL DPRTF1(ITTEMP,NCTEMP,IHEAD,NHEAD)
C
NHEAD=2
IFLAG1=.FALSE.
IFLAG2=.FALSE.
C
IVALUE(1)=' b Data Summary:'
IVALUE(1)(1:1)=IBASLC
NCHAR(1)=16
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IVALUE(1)='Response Variable:'
NCHAR(1)=18
IVALUE(2)(1:4)=IHLEFT(1:4)
IVALUE(2)(5:8)=IHLEF2(1:4)
NCHAR(2)=8
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IVALUE(1)='Lab-ID Variable:'
NCHAR(1)=16
IVALUE(2)(1:4)=IHRIGH(1:4)
IVALUE(2)(5:8)=IHRIG2(1:4)
NCHAR(2)=8
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IFLAG1=.FALSE.
NHEAD=1
C
NCHAR(1)=29
IVALUE(1)='Total Number of Observations:'
AVALUE(2)=REAL(NTOT)
NJUNK=NUMDI2(2)
NUMDI2(2)=0
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
NUMDI2(2)=NJUNK
C
NCHAR(1)=11
IVALUE(1)='Grand Mean:'
AVALUE(2)=XGRAND
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=25
IVALUE(1)='Pooled Standard Deviation:'
AVALUE(2)=SDGRAN
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=21
IVALUE(1)='Total Number of Labs:'
AVALUE(2)=REAL(NLAB)
NJUNK=NUMDI2(2)
NUMDI2(2)=0
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
NUMDI2(2)=NJUNK
C
NCHAR(1)=17
IVALUE(1)='Minimum Lab Mean:'
AVALUE(2)=AMNX
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=17
IVALUE(1)='Maximum Lab Mean:'
AVALUE(2)=AMXX
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=15
IVALUE(1)='Minimum Lab SD:'
AVALUE(2)=AMNSD
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=15
IVALUE(1)='Maximum Lab SD:'
AVALUE(2)=AMXSD
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=23
IVALUE(1)='Within Lab (pooled) SD:'
AVALUE(2)=SQRT(S2WPOO)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=29
IVALUE(1)='Within Lab (pooled) Variance:'
AVALUE(2)=S2WPOO
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
CALL DPRTF6(NHEAD)
IFLAG1=.TRUE.
IFLAG2=.FALSE.
C
C TABLE 1
C
ITTEMP=' '
NCTEMP=0
NHEAD=34
IHEAD(1:NHEAD)='Table 1: Summary Statistics by Lab'
CCCCC IFRMT5=' '
CCCCC IFRMT5(1:34)='(I8,2X,I8,4(F15.7,2X))'
CCCCC WRITE(IFRMT5(20:20),'(I1)')NUMDIG
C
CALL DPRTF1(ITTEMP,NCTEMP,IHEAD,NHEAD)
C
NCOL=6
IDEFPS=20
IFRST=IRTFPS*1400/IDEFPS
IINC1=IRTFPS*1440/IDEFPS
IINC2=IRTFPS*800/IDEFPS
C
DO6005ISET1=1,NCOL
VALIGN(ISET1)='b'
ALIGN(ISET1)='r'
NUMDI2(ISET1)=NUMDIG
IF(NUMDI2(ISET1).LT.0.OR.NUMDI2(ISET1).GT.9)NUMDI2(ISET1)=7
6005 CONTINUE
C
IWIDTH(1)=IFRST
IWIDTH(2)=IWIDTH(1) + IINC2
DO6008I=3,NCOL
IWIDTH(I)=IWIDTH(I-1) + IINC1
6008 CONTINUE
NUMDI2(1)=0
NUMDI2(2)=0
C
IVALUE(1)=' b Lab ID'
IVALUE(1)(1:1)=IBASLC
NCHAR(1)=9
C
IVALUE(2)=' b n(i)'
IVALUE(2)(1:1)=IBASLC
NCHAR(2)=7
C
IVALUE(3)=' b Mean'
IVALUE(3)(1:1)=IBASLC
NCHAR(3)=7
C
IVALUE(4)=' b Variance'
IVALUE(4)(1:1)=IBASLC
NCHAR(4)=11
C
IVALUE(5)=' b Standard line Deviation'
IVALUE(5)(1:1)=IBASLC
IVALUE(5)(12:12)=IBASLC
NCHAR(5)=26
C
IVALUE(6)=' b Standard Deviation line of the Mean'
IVALUE(6)(1:1)=IBASLC
IVALUE(6)(22:22)=IBASLC
NCHAR(6)=38
C
NHEAD=NCOL
IFLAG1=.TRUE.
IFLAG2=.TRUE.
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
NCHAR(1)=0
IVALUE(1)=' '
IFLAG1=.FALSE.
ICNT=0
DO6110ISET1=1,NLAB
ICNT=ICNT+1
AVALUE(1)=Y3(ISET1)
AVALUE(2)=REAL(N(ISET1))
AVALUE(3)=X(ISET1)
AVALUE(4)=ASD(ISET1)**2
AVALUE(5)=ASD(ISET1)
AVALUE(6)=SQRT(T(ISET1))
IF(ISET1.EQ.NLAB)IFLAG1=.TRUE.
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
6110 CONTINUE
C
CALL DPRTF6(NHEAD)
IFLAG1=.TRUE.
IFLAG2=.FALSE.
C
6191 FORMAT(A1,'f',I1)
IF(IRTFFP.EQ.'Times New Roman')THEN
ITEMP=0
ELSEIF(IRTFFP.EQ.'Lucida Sans')THEN
ITEMP=6
ELSEIF(IRTFFP.EQ.'Arial')THEN
ITEMP=2
ELSEIF(IRTFFP.EQ.'Bookman')THEN
ITEMP=3
ELSEIF(IRTFFP.EQ.'Georgia')THEN
ITEMP=4
ELSEIF(IRTFFP.EQ.'Tahoma')THEN
ITEMP=5
ELSEIF(IRTFFP.EQ.'Verdana')THEN
ITEMP=7
ELSE
ITEMP=0
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'WOML')THEN
ELSE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4001)
4001 FORMAT(' Consensus Means Analysis')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4002)
4002 FORMAT(' (Summary Statistics Case)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4003)
4003 FORMAT('Data Summary:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4011)IHLEFT,IHLEF2
4011 FORMAT('Mean Variable: ',7X,A4,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4012)IHRIGH,IHRIG2
4012 FORMAT('SD Variable: ',7X,A4,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4019)IHRI21,IHRI22
4019 FORMAT('Sample Size Variable: ',7X,A4,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4013)NTOT
4013 FORMAT('Total Number of Observations: ',7X,I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4016)XGRAND
4016 FORMAT('Grand Mean: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4017)SDGRAN
4017 FORMAT('Pooled Standard Deviation: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4018)NLAB
4018 FORMAT('Total Number of Labs: ',7X,I8)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4021)AMNX
4021 FORMAT('Minimum Lab Mean: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4022)AMXX
4022 FORMAT('Maximum Lab Mean: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4023)AMNSD
4023 FORMAT('Minimum Lab SD: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4024)AMXSD
4024 FORMAT('Maximum Lab SD: ',F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4031)SQRT(S2WPOO)
4031 FORMAT('Within Lab (pooled) SD: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4032)S2WPOO
4032 FORMAT('Within Lab (pooled) Variance: ',F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4100)
4100 FORMAT('Table 1: Summary Statistics by Lab')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4101)
4101 FORMAT(
1' ',
1' Standard')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4103)
4103 FORMAT(
1' Lab Standard',
1' Deviation')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4104)
4104 FORMAT(
1' ID n(I) Mean Variance Deviation',
1' of Mean')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4106)
4106 FORMAT(
1'------------------------------------------------------',
1'---------------------')
CALL DPWRST('XXX','WRIT')
C
IFORMT=' '
IFORMT='(I8,I8,4(F15.7))'
IF(NUMDIG.GE.1 .AND. NUMDIG.LE.9)THEN
WRITE(IFORMT(14:14),'(I1)')NUMDIG
ELSEIF(NUMDIG.GE.10)THEN
IFORMT='(I8,I8,4(E15.7))'
ENDIF
C
DO4150I=1,NLAB
WRITE(ICOUT,IFORMT)I,N(I),X(I),ASD(I)**2,ASD(I),SQRT(T(I))
C4156 FORMAT(I8,I8,4F15.7)
CALL DPWRST('XXX','WRIT')
4150 CONTINUE
C
WRITE(ICOUT,4106)
CALL DPWRST('XXX','WRIT')
ENDIF
ENDIF
C
DO4190I=1,NLAB
WRITE(IOUNI1,4196)REAL(I),REAL(N(I)),X(I),ASD(I)**2,
1 ASD(I),SQRT(T(I))
4196 FORMAT(F6.0,2X,F6.0,2X,4E15.7)
4190 CONTINUE
C
C *************************************
C ** STEP 80-- **
C ** REMOVE ANY LABS WITH LESS THAN **
C ** TWO OBSERVATIONS **
C *************************************
C
ICNT=0
DO9100I=1,NLAB
IF(ASD(I).GT.0.0)THEN
ICNT=ICNT+1
AMEAN(ICNT)=AMEAN(I)
ASD(ICNT)=ASD(I)
N(ICNT)=N(I)
ELSE
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
WRITE(ICOUT,9201)
9201 FORMAT('')
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
WRITE(ICOUT,9301)IBASLC
9301 FORMAT(A1,'begin{verbatim}')
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
IRTFMD='VERB'
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,9103)I
9103 FORMAT('LAB ',I8,' HAS A NON-POSITIVE STANDARD DEVIATION.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9105)
9105 FORMAT('THIS LAB WILL BE OMITTED FROM THE ANALYSIS.')
CALL DPWRST('XXX','WRIT')
C
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
WRITE(ICOUT,9211)
9211 FORMAT('')
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
WRITE(ICOUT,9311)IBASLC
9311 FORMAT(A1,'end{verbatim}')
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
IRTFMD='OFF'
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
9100 CONTINUE
NLAB=ICNT
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MAN4')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMAN4--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IERROR
9012 FORMAT('IERROR = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)NTOT
9013 FORMAT('NTOT = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)IBUGA3
9014 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','BUG ')
9025 CONTINUE
ENDIF
C
RETURN
END
SUBROUTINE DPMAN5(NPTS,NLAB,
1XGRAND,XMPS,XMMPS,XMLS,XSE,
1ASM,XGD,XGCI,XDL,XFAIR,XBCP,
1DLOWMP,DHIGMP,DLOWMM,DHIGMM,DLOWML,DHIGML,
1DLOWBO,DHIGBO,DLOWSE,DHIGSE,DLOWT1,DHIGT1,
1DLOWT2,DHIGT2,DLOWGD,DHIGGD,DLOWGC,DHIGGC,
1DLOWDL,DHIGDL,DLOWD2,DHIGD2,
1DLOWFW,DHIGFW,DLOWF2,DHIGF2,DLOWF3,DHIGF3,
1DLOWBC,DHIGBC,
1IWRITE,IOUNI2,
1ICAPSW,ICAPTY,NUMDIG,IFLAG9,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--GENERATE THE CONFIDENCE INTERVAL TABLE FOR THE
C CONSENSUS MEANS COMMAND
C PRINTING--YES
C SUBROUTINES NEEDED--NONE
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2899
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/3
C ORIGINAL VERSION--MARCH 2006. EXTRACTED FROM DPMAN2
C ROUTINE
C UPDATED VERSION--JUNE 2006. ADD FAIRWEATHER, BCP
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES--------------
C
IMPLICIT DOUBLE PRECISION (A-H, O-Z)
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 ISUBN0
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
CHARACTER*1 IQUOTE
CHARACTER*40 IFORMT
C
CHARACTER*25 IMETH
C
REAL XMP
REAL XMPS
REAL XMMPS
REAL XML
REAL XMLS
REAL ASM
REAL XGRAND
REAL XGD
REAL XSE
REAL XGCI
REAL XDL
REAL XFAIR
REAL XBCP
C
C----------------------------------------------------------------
C
INCLUDE 'DPCOST.INC'
C
PARAMETER (MAXHED=50)
INTEGER IWIDTH(MAXHED)
INTEGER NUMDI2(MAXHED)
CHARACTER*8 ALIGN(MAXHED)
CHARACTER*8 VALIGN(MAXHED)
COMMON/HTML4/IWIDTH,NUMDI2,ALIGN,VALIGN
CHARACTER*45 IVALUE(MAXHED)
INTEGER NCHAR(MAXHED)
REAL AVALUE(MAXHED)
C
LOGICAL IFLAG1
LOGICAL IFLAG2
LOGICAL IFLAG3
LOGICAL IFLAG9
C
CHARACTER*132 ITTEMP
CHARACTER*132 IHEAD
C
CHARACTER*4 IRTFMD
COMMON/COMRTF/IRTFMD
C
REAL CPUMIN
REAL CPUMAX
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT------------------------------------------------
C
IERROR='NO'
C
ISUBN1='DPMA'
ISUBN2='N2 '
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MAN5')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMAN5--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)NPTS,NLAB
52 FORMAT('NPTS,NLAB = ',2I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
5107 FORMAT('')
C5195 FORMAT('')
5223 FORMAT(' | ')
5226 FORMAT(' | ')
5227 FORMAT(' | ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5223)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
5131 FORMAT(' Method')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5226)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5132)
5132 FORMAT(' Consensus Mean')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5226)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
5133 FORMAT(' Lower Limit')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5226)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
5134 FORMAT(' Upper Limit')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
IFORMT='(9X,F15.7)'
IF(NUMDIG.GE.1 .AND. NUMDIG.LE.9)THEN
WRITE(IFORMT(9:9),'(I1)')NUMDIG
ELSEIF(NUMDIG.GE.10)THEN
IFORMT='(9X,E15.7)'
ENDIF
C
IF(IMPACM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='1. Mandel-Paule'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XMPS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IMMPCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='2. Modified Mandel-Paule'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XMMPS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWMM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGMM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IVRUCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='3. Vangel-Rukhin ML'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XMLS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IBOBCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='4. BOB'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)ASM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWBO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGBO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(ISCECM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='5. Schiller-Eberhardt'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IMOMCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='6. Mean of Means'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)ASM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWT1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGT1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGRDCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='7. Graybill-Deal'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XGD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWGD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGGD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGMECM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='8. Grand Mean'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XGRAND
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWT2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGT2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGCICM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='9. Generalized CI'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XGCI
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWGC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGGC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IDSLCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='10. DerSimonian-Laird (t)'
WRITE(ICOUT,5143)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XDL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWDL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGDL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
5144 FORMAT(' ',
1 'DerSimonian-Laird (Ruhkin)')
IF(IDSLCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5144)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XDL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWD2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGD2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFAICM.EQ.'ON' .AND. IFLAG9)THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='11. Fairweather'
WRITE(ICOUT,5143)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XFAIR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWF2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGF2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
5146 FORMAT(' ',
1 'Fairweather (Cox)')
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5146)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XFAIR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWF3
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGF3
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
5147 FORMAT(' ',
1 'Fairweather (Ruhkin)')
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XFAIR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWFW
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGFW
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
5149 FORMAT('12. BCP')
IF(IBCPCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='12. BCP'
WRITE(ICOUT,5143)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XBCP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DLOWBC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)DHIGBC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5195)
CCCCC CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
CALL DPCONA(92,IBASLC)
CALL DPCONA(39,IQUOTE)
C
C8001 FORMAT(A1,'end{verbatim}')
8002 FORMAT(A1,'begin{table}')
8003 FORMAT('{',A1,'bf Table 2: 95',A1,'% Confidence Limits}')
8004 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8005 FORMAT(A1,'begin{center}')
CCCCC WRITE(ICOUT,8001)IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8002)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
C
8142 FORMAT(5X,A1,'begin{tabular} {|l|c|c|c|}')
8143 FORMAT(5X,A1,'hline')
8144 FORMAT(5X,' & Consensus & Lower & ', 'Upper ',A1,A1)
8145 FORMAT(5X,'Method & Mean & Limit & ','Limit ',A1,A1)
WRITE(ICOUT,8142)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8143)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8144)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8145)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8143)IBASLC
CALL DPWRST('XXX','WRIT')
C
C8151 FORMAT(5X,'1. Mandel-Paule ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8152 FORMAT(5X,'2. Modified Mandel-Paule ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8153 FORMAT(5X,'3. Vangel-Rukhin ML ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8154 FORMAT(5X,'4. BOB ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8155 FORMAT(5X,'5. Schiller-Eberhardt ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8156 FORMAT(5X,'6. Mean of Means ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8157 FORMAT(5X,'7. Graybill-Deal ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8158 FORMAT(5X,'8. Grand Mean (T) ',3(' & ',F15.7),
C 1 2X,A1,A1)
C
IFORMT='(5X,A25,3( & ,F15.7),2X,A1,A1)'
IFORMT(11:11)=IQUOTE
IFORMT(14:14)=IQUOTE
IF(NUMDIG.GE.1 .AND. NUMDIG.LE.9)THEN
WRITE(IFORMT(20:20),'(I1)')NUMDIG
ELSEIF(NUMDIG.GE.10)THEN
IFORMT='(5X,A25,3( & ,E15.7),2X,A1,A1)'
IFORMT(11:11)=IQUOTE
IFORMT(14:14)=IQUOTE
ENDIF
C
IF(IMPACM.EQ.'ON')THEN
IMETH='1. Mandel-Paule'
WRITE(ICOUT,IFORMT)IMETH,XMPS,DLOWMP,DHIGMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IMMPCM.EQ.'ON')THEN
IMETH='2. Modified Mandel-Paule'
WRITE(ICOUT,IFORMT)IMETH,XMMPS,DLOWMM,DHIGMM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IVRUCM.EQ.'ON')THEN
IMETH='3. Vangel-Rukhin ML'
WRITE(ICOUT,IFORMT)IMETH,XMLS,DLOWML,DHIGML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IBOBCM.EQ.'ON')THEN
IMETH='4. BOB'
WRITE(ICOUT,IFORMT)IMETH,ASM,DLOWBO,DHIGBO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(ISCECM.EQ.'ON')THEN
IMETH='5. Schiller-Eberhardt'
WRITE(ICOUT,IFORMT)IMETH,XSE,DLOWSE,DHIGSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IMOMCM.EQ.'ON')THEN
IMETH='6. Mean of Means'
WRITE(ICOUT,IFORMT)IMETH,ASM,DLOWT1,DHIGT1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGRDCM.EQ.'ON')THEN
IMETH='7. Graybill Deal'
WRITE(ICOUT,IFORMT)IMETH,XGD,DLOWGD,DHIGGD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGMECM.EQ.'ON')THEN
IMETH='8. Grand Mean'
WRITE(ICOUT,IFORMT)IMETH,XGRAND,DLOWT2,DHIGT2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGCICM.EQ.'ON')THEN
IMETH='9. Generalized CI'
WRITE(ICOUT,IFORMT)IMETH,XGCI,DLOWGC,DHIGGC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IDSLCM.EQ.'ON')THEN
IMETH='10. DerSimonian-Laird (t)'
WRITE(ICOUT,IFORMT)IMETH,XDL,DLOWDL,DHIGDL,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
IMETH=' (Rukhin)'
WRITE(ICOUT,IFORMT)IMETH,XDL,DLOWD2,DHIGD2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFAICM.EQ.'ON' .AND. IFLAG9)THEN
IMETH='11. Fairweather (Fairweather)'
WRITE(ICOUT,IFORMT)IMETH,XFAIR,DLOWF2,DHIGF2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
IMETH=' (Cox)'
WRITE(ICOUT,IFORMT)IMETH,XFAIR,DLOWF3,DHIGF3,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
IMETH=' (Rukhin)'
WRITE(ICOUT,IFORMT)IMETH,XFAIR,DLOWFW,DHIGFW,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IBCPCM.EQ.'ON')THEN
IMETH='12. BCP'
WRITE(ICOUT,IFORMT)IMETH,XBCP,DLOWBC,DHIGBC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,8143)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8043)IBASLC
CALL DPWRST('XXX','WRIT')
C
8030 FORMAT(A1,'end{tabular}')
8031 FORMAT(A1,'end{center}')
8032 FORMAT(A1,'end{table}')
8043 FORMAT(5X,A1,'hline')
C8190 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8030)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,8190)IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
C
CALL DPCONA(92,IBASLC)
C
IF(IRTFFP.EQ.'Times New Roman')THEN
ITEMP=0
ELSEIF(IRTFFP.EQ.'Lucida Sans')THEN
ITEMP=6
ELSEIF(IRTFFP.EQ.'Arial')THEN
ITEMP=2
ELSEIF(IRTFFP.EQ.'Bookman')THEN
ITEMP=3
ELSEIF(IRTFFP.EQ.'Georgia')THEN
ITEMP=4
ELSEIF(IRTFFP.EQ.'Tahoma')THEN
ITEMP=5
ELSEIF(IRTFFP.EQ.'Verdana')THEN
ITEMP=7
ELSE
ITEMP=0
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
C TABLE 2
C
ITTEMP=' '
NCTEMP=0
NHEAD=30
IHEAD(1:NHEAD)='Table 2: 95% Confidence Limits'
C
CALL DPRTF1(ITTEMP,NCTEMP,IHEAD,NHEAD)
C
IF(IRTFFF.EQ.'Courier New')THEN
ITEMP=1
ELSEIF(IRTFFF.EQ.'Lucida Console')THEN
ITEMP=8
ELSE
ITEMP=1
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
NCOL=4
IDEFPS=20
IFRST=IRTFPS*3800/IDEFPS
IINC1=IRTFPS*1700/IDEFPS
CCCCC IINC2=IRTFPS*2000/IDEFPS
C
DO6005ISET1=1,NCOL
VALIGN(ISET1)='b'
ALIGN(ISET1)='r'
NUMDI2(ISET1)=NUMDIG
IF(NUMDI2(ISET1).LT.0.OR.NUMDI2(ISET1).GT.9)NUMDI2(ISET1)=7
6005 CONTINUE
ALIGN(1)='l'
C
IWIDTH(1)=IFRST
DO6008I=2,NCOL
IWIDTH(I)=IWIDTH(I-1) + IINC1
6008 CONTINUE
C
IVALUE(1)=' b Method'
IVALUE(1)(1:1)=IBASLC
NCHAR(1)=9
C
IVALUE(2)=' b Consensus line Mean'
IVALUE(2)(1:1)=IBASLC
IVALUE(2)(13:13)=IBASLC
NCHAR(2)=22
C
IVALUE(3)=' b Lower line Limit'
IVALUE(3)(1:1)=IBASLC
IVALUE(3)(9:9)=IBASLC
NCHAR(3)=19
C
IVALUE(4)=' b Upper line Limit'
IVALUE(4)(1:1)=IBASLC
IVALUE(4)(9:9)=IBASLC
NCHAR(4)=19
C
NHEAD=NCOL
IFLAG1=.TRUE.
IFLAG2=.TRUE.
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IFLAG1=.FALSE.
NHEAD=3
C
IF(IMPACM.EQ.'ON')THEN
NCHAR(1)=16
IVALUE(1)=' 1. Mandel-Paule'
AVALUE(2)=XMPS
AVALUE(3)=REAL(DLOWMP)
AVALUE(4)=REAL(DHIGMP)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IMMPCM.EQ.'ON')THEN
NCHAR(1)=25
IVALUE(1)=' 2. Modified Mandel-Paule'
AVALUE(2)=XMMPS
AVALUE(3)=REAL(DLOWMM)
AVALUE(4)=REAL(DHIGMM)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IVRUCM.EQ.'ON')THEN
NCHAR(1)=20
IVALUE(1)=' 3. Vangel-Rukhin ML'
AVALUE(2)=XMLS
AVALUE(3)=REAL(DLOWML)
AVALUE(4)=REAL(DHIGML)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IBOBCM.EQ.'ON')THEN
NCHAR(1)=7
IVALUE(1)=' 4. BOB'
AVALUE(2)=ASM
AVALUE(3)=REAL(DLOWBO)
AVALUE(4)=REAL(DHIGBO)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(ISCECM.EQ.'ON')THEN
NCHAR(1)=22
IVALUE(1)=' 5. Schiller-Eberhardt'
AVALUE(2)=XSE
AVALUE(3)=REAL(DLOWSE)
AVALUE(4)=REAL(DHIGSE)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IMOMCM.EQ.'ON')THEN
NCHAR(1)=17
IVALUE(1)=' 6. Mean of Means'
AVALUE(2)=ASM
AVALUE(3)=REAL(DLOWT1)
AVALUE(4)=REAL(DHIGT1)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IGRDCM.EQ.'ON')THEN
NCHAR(1)=17
IVALUE(1)=' 7. Graybill-Deal'
AVALUE(2)=XGD
AVALUE(3)=REAL(DLOWGD)
AVALUE(4)=REAL(DHIGGD)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IGMECM.EQ.'ON')THEN
NCHAR(1)=14
IVALUE(1)=' 8. Grand Mean'
AVALUE(2)=XGRAND
AVALUE(3)=REAL(DLOWT2)
AVALUE(4)=REAL(DHIGT2)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IGCICM.EQ.'ON')THEN
NCHAR(1)=18
IVALUE(1)=' 9. Generalized CI'
AVALUE(2)=XGCI
AVALUE(3)=REAL(DLOWGC)
AVALUE(4)=REAL(DHIGGC)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IDSLCM.EQ.'ON')THEN
NCHAR(1)=25
IVALUE(1)='10. DerSimonian-Laird (t)'
AVALUE(2)=XDL
AVALUE(3)=REAL(DLOWDL)
AVALUE(4)=REAL(DHIGDL)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=30
IVALUE(1)=' DerSimonian-Laird (Rukhin)'
AVALUE(2)=XDL
AVALUE(3)=REAL(DLOWD2)
AVALUE(4)=REAL(DHIGD2)
IFLAG1=.TRUE.
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IFAICM.EQ.'ON' .AND. IFLAG9)THEN
NCHAR(1)=29
IVALUE(1)='11. Fairweather (Fairweather)'
AVALUE(2)=XFAIR
AVALUE(3)=REAL(DLOWF2)
AVALUE(4)=REAL(DHIGF2)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=22
IVALUE(1)=' Fairweather (Cox)'
AVALUE(2)=XDL
AVALUE(3)=REAL(DLOWD3)
AVALUE(4)=REAL(DHIGD3)
IFLAG1=.TRUE.
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=25
IVALUE(1)=' Fairweather (Ruhkin)'
AVALUE(2)=XDL
AVALUE(3)=REAL(DLOWFW)
AVALUE(4)=REAL(DHIGFW)
IFLAG1=.TRUE.
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IBCPCM.EQ.'ON')THEN
NCHAR(1)=7
IVALUE(1)='12. BCP'
AVALUE(2)=XBCP
AVALUE(3)=REAL(DLOWBC)
AVALUE(4)=REAL(DHIGBC)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
CALL DPRTF6(NHEAD)
IFLAG1=.TRUE.
IFLAG2=.FALSE.
C
6191 FORMAT(A1,'f',I1)
IF(IRTFFP.EQ.'Times New Roman')THEN
ITEMP=0
ELSEIF(IRTFFP.EQ.'Lucida Sans')THEN
ITEMP=6
ELSEIF(IRTFFP.EQ.'Arial')THEN
ITEMP=2
ELSEIF(IRTFFP.EQ.'Bookman')THEN
ITEMP=3
ELSEIF(IRTFFP.EQ.'Georgia')THEN
ITEMP=4
ELSEIF(IRTFFP.EQ.'Tahoma')THEN
ITEMP=5
ELSEIF(IRTFFP.EQ.'Verdana')THEN
ITEMP=7
ELSE
ITEMP=0
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'WOML')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4001)
4001 FORMAT('Table 2: 95% Confidence Limits')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4011)
4011 FORMAT(
1' Consensus Lower',
1' Upper')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4012)
4012 FORMAT(
1'Method Mean Limit',
1' Limit')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4015)
4015 FORMAT(
1'------------------------------------------------------',
1'--------------------')
CALL DPWRST('XXX','WRIT')
C
C4065 FORMAT(A25,F15.7,2X,F15.7,2X,F15.7)
4095 FORMAT(3(E15.7,2X),A25)
C
IFORMT=' '
IFORMT='(A25,F15.7,2X,F15.7,2X,F15.7)'
IF(NUMDIG.GE.1 .AND. NUMDIG.LE.9)THEN
WRITE(IFORMT(10:10),'(I1)')NUMDIG
WRITE(IFORMT(19:19),'(I1)')NUMDIG
WRITE(IFORMT(28:28),'(I1)')NUMDIG
ELSEIF(NUMDIG.GE.10)THEN
IFORMT='(A25,E15.7,2X,E15.7,2X,E15.7)'
ENDIF
C
IF(IMPACM.EQ.'ON')THEN
IMETH=' 1. Mandel-Paule'
WRITE(ICOUT,IFORMT)IMETH,XMPS,DLOWMP,DHIGMP
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IMMPCM.EQ.'ON')THEN
IMETH=' 2. Modified Mandel-Paule'
WRITE(ICOUT,IFORMT)IMETH,XMMPS,DLOWMM,DHIGMM
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IVRUCM.EQ.'ON')THEN
IMETH=' 3. Vangel-Rukhin ML'
WRITE(ICOUT,IFORMT)IMETH,XMLS,DLOWML,DHIGML
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IBOBCM.EQ.'ON')THEN
IMETH=' 4. BOB'
WRITE(ICOUT,IFORMT)IMETH,ASM,DLOWBO,DHIGBO
CALL DPWRST('XXX','WRIT')
ENDIF
IF(ISCECM.EQ.'ON')THEN
IMETH=' 5. Schiller-Eberhardt'
WRITE(ICOUT,IFORMT)IMETH,XSE,DLOWSE,DHIGSE
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IMOMCM.EQ.'ON')THEN
IMETH=' 6. Mean of Means'
WRITE(ICOUT,IFORMT)IMETH,ASM,DLOWT1,DHIGT1
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IGRDCM.EQ.'ON')THEN
IMETH=' 7. Graybill-Deal'
WRITE(ICOUT,IFORMT)IMETH,XGD,DLOWGD,DHIGGD
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IGMECM.EQ.'ON')THEN
IMETH=' 8. Grand Mean'
WRITE(ICOUT,IFORMT)IMETH,XGRAND,DLOWT2,DHIGT2
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IGCICM.EQ.'ON')THEN
IMETH=' 9. Generalized CI'
WRITE(ICOUT,IFORMT)IMETH,XGCI,DLOWGC,DHIGGC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IDSLCM.EQ.'ON')THEN
IMETH='10. DerSimonian-Laird (t)'
WRITE(ICOUT,IFORMT)IMETH,XDL,DLOWDL,DHIGDL
CALL DPWRST('XXX','WRIT')
IMETH=' (Rukhin)'
WRITE(ICOUT,IFORMT)IMETH,XDL,DLOWD2,DHIGD2
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IFAICM.EQ.'ON' .AND. IFLAG9)THEN
IMETH='11. Fairweather (Fairweather)'
WRITE(ICOUT,IFORMT)IMETH,XFAIR,DLOWF2,DHIGF2
CALL DPWRST('XXX','WRIT')
IMETH=' (Cox)'
WRITE(ICOUT,IFORMT)IMETH,XFAIR,DLOWF3,DHIGF3
CALL DPWRST('XXX','WRIT')
IMETH=' (Rukhin)'
WRITE(ICOUT,IFORMT)IMETH,XFAIR,DLOWFW,DHIGFW
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IBCPCM.EQ.'ON')THEN
IMETH='12. BCP'
WRITE(ICOUT,IFORMT)IMETH,XBCP,DLOWBC,DHIGBC
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,4015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
IF(IMPACM.EQ.'ON')THEN
IMETH='1. Mandel-Paule'
WRITE(IOUNI2,4095)XMPS,DLOWMP,DHIGMP,IMETH
ENDIF
IF(IMMPCM.EQ.'ON')THEN
IMETH='2. Modified Mandel-Paule'
WRITE(IOUNI2,4095)XMMPS,DLOWMM,DHIGMM,IMETH
ENDIF
IF(IVRUCM.EQ.'ON')THEN
IMETH='3. Vangel-Rukhin ML'
WRITE(IOUNI2,4095)XMLS,DLOWML,DHIGML,IMETH
ENDIF
IF(IBOBCM.EQ.'ON')THEN
IMETH='4. BOB'
WRITE(IOUNI2,4095)ASM,DLOWBO,DHIGBO,IMETH
ENDIF
IF(ISCECM.EQ.'ON')THEN
IMETH='5. Schiller-Eberhardt'
WRITE(IOUNI2,4095)XSE,DLOWSE,DHIGSE,IMETH
ENDIF
IF(IMOMCM.EQ.'ON')THEN
IMETH='6. Mean of Means'
WRITE(IOUNI2,4095)ASM,DLOWT1,DHIGT1,IMETH
ENDIF
IF(IGRDCM.EQ.'ON')THEN
IMETH='7. Graybill-Deal'
WRITE(IOUNI2,4095)XGD,DLOWGD,DHIGGD,IMETH
ENDIF
IF(IGMECM.EQ.'ON')THEN
IMETH='8. Grand Mean'
WRITE(IOUNI2,4095)XGRAND,DLOWT2,DHIGT2,IMETH
ENDIF
IF(IGCICM.EQ.'ON')THEN
IMETH='9. Generalized GCI'
WRITE(IOUNI2,4095)XGCI,DLOWGC,DHIGGC,IMETH
ENDIF
IF(IDSLCM.EQ.'ON')THEN
IMETH='10. DerSimonian-Laird (t)'
WRITE(IOUNI2,4095)XDL,DLOWDL,DHIGDL,IMETH
IMETH=' (Rukhin)'
WRITE(IOUNI2,4095)XDL,DLOWD2,DHIGD2,IMETH
ENDIF
IF(IFAICM.EQ.'ON')THEN
IMETH='11. Fairweather (Fairweather)'
WRITE(IOUNI2,4095)XFAIR,DLOWF2,DHIGF2,IMETH
IMETH=' (Cox)'
WRITE(IOUNI2,4095)XFAIR,DLOWF3,DHIGF3,IMETH
IMETH=' (Rukhin)'
WRITE(IOUNI2,4095)XFAIR,DLOWFW,DHIGFW,IMETH
ENDIF
IF(IBCPCM.EQ.'ON')THEN
IMETH='12. BCP'
WRITE(IOUNI2,4095)XBCP,DLOWBC,DHIGBC,IMETH
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MAN5')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMAN5--')
CALL DPWRST('XXX','BUG ')
ENDIF
C
RETURN
END
SUBROUTINE DPMAN6(NPTS,NLAB,
1XGRAND,XMPS,XMMPS,XMLS,XSE,
1ASM,XGD,XDL,XGCI,XFAIR,XBCP,
1SEMPK1,SEMMP1,SEMLK1,AKUK1,SESUK1,SET2K1,
1SET1K1,SEGDK1,SEDLK1,SEGCI,SEFWK1,XBCPK1,
1IWRITE,
1ICAPSW,ICAPTY,IK,IOUNIT,NUMDIG,IFLAG9,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--GENERATE THE STANDARD AND EXPANDED UNCERTAINTY
C TABLE FOR THE CONSENSUS MEANS COMMAND
C (CALLED TWICE: ONCE FOR K = 1 AND ONCE FOR K = 2)
C PRINTING--YES
C SUBROUTINES NEEDED--NONE
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2899
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/3
C ORIGINAL VERSION--MARCH 2006. EXTRACTED FROM DPMAN2
C ROUTINE
C UPDATED --JUNE 2006. USER CAN SELECT WHICH
C METHODS ARE APPLIED
C UPDATED --JUNE 2006. ADD FAIRWEATHER AND BCP
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES--------------
C
IMPLICIT DOUBLE PRECISION (A-H, O-Z)
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 ISUBN0
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
CHARACTER*1 IQUOTE
C
CHARACTER*8 IUNCT
CHARACTER*25 IMETH
CHARACTER*40 IFORMT
C
LOGICAL IFLAG9
C
REAL XMP
REAL XMPS
REAL XMMPS
REAL XML
REAL XMLS
REAL ASM
REAL XGRAND
REAL XGD
REAL XDL
REAL XGCI
REAL XSE
REAL SEMPK1
REAL SEMMP1
REAL SEMLK1
REAL SEGCI
REAL AKUK1
REAL SESUK1
REAL SET2K1
REAL SET1K1
REAL SEGDK1
REAL SEDLK1
REAL XFAIR
REAL SEFWK1
REAL XBCP
REAL XBCPK1
C
C----------------------------------------------------------------
C
INCLUDE 'DPCOST.INC'
C
PARAMETER (MAXHED=50)
INTEGER IWIDTH(MAXHED)
INTEGER NUMDI2(MAXHED)
CHARACTER*8 ALIGN(MAXHED)
CHARACTER*8 VALIGN(MAXHED)
COMMON/HTML4/IWIDTH,NUMDI2,ALIGN,VALIGN
CHARACTER*50 IVALUE(MAXHED)
INTEGER NCHAR(MAXHED)
REAL AVALUE(MAXHED)
C
LOGICAL IFLAG1
LOGICAL IFLAG2
LOGICAL IFLAG3
C
CHARACTER*132 ITTEMP
CHARACTER*132 IHEAD
C
CHARACTER*4 IRTFMD
COMMON/COMRTF/IRTFMD
C
REAL CPUMIN
REAL CPUMAX
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT------------------------------------------------
C
IERROR='NO'
C
ISUBN1='DPMA'
ISUBN2='N2 '
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MAN6')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMAN6--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)NPTS,NLAB
52 FORMAT('NPTS,NLAB = ',2I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(IK.EQ.1)THEN
IUNCT='Standard'
ELSE
IUNCT='Expanded'
ENDIF
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
5107 FORMAT('')
C5195 FORMAT('')
5323 FORMAT(' | ')
5326 FORMAT(' | ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5323)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
5131 FORMAT(' Method')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5326)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5132)
5132 FORMAT(' Consensus Mean')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5326)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)IUNCT,IK
5133 FORMAT(' ',A8,' Uncertainty ',
1 '(k = ',I1,')')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5326)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
5134 FORMAT(' Relative Standard Uncertainty',
1 ' (%)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
IFORMT='(9X,F15.7)'
IF(NUMDIG.GE.1 .AND. NUMDIG.LE.9)THEN
WRITE(IFORMT(9:9),'(I1)')NUMDIG
ELSEIF(NUMDIG.GE.10)THEN
IFORMT='(9X,E15.7)'
ENDIF
C
IF(IMPACM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='1. Mandel-Paule'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XMPS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SEMPK1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*SEMPK1/XMPS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IMMPCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='2. Modified Mandel-Paule'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XMMPS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SEMMP1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*SEMMP1/XMMPS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IVRUCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='3. Vangel-Rukhin ML'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XMLS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SEMLK1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*SEMLK1/XMLS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IBOBCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='4. BOB'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)ASM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)AKUK1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*AKUK1/ASM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(ISCECM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='5. Schiller-Eberhardt'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SESUK1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*SESUK1/XSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IMOMCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='6. Mean of Means'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)ASM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SET1K1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*SET1K1/ASM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGRDCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='7. Graybill-Deal'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XGD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SEGDK1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*SEGDK1/XGD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGMECM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='8. Grand Mean'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XGRAND
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SET2K1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*SET2K1/XGRAND
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGCICM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='9. Generalized CI'
WRITE(ICOUT,5141)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XGCI
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SEGCI
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*SEGCI/XGCI
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IDSLCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='10. DerSimonian-Laird'
WRITE(ICOUT,5142)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XDL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)SEDLK1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*SEDLK1/XDL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
CCCCC IF(IFAICM.EQ.'ON' .AND. IFLAG9)THEN
CCCCC WRITE(ICOUT,5121)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5148)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC IMETH='11. Fairweather'
CCCCC WRITE(ICOUT,5142)IMETH
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5127)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5158)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,IFORMT)XFAIR
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5127)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5158)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,IFORMT)SEFWK1
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5127)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5158)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5153)100.0*SEDFW1/XFAIR
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5127)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5128)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC ENDIF
C
IF(IBCPCM.EQ.'ON')THEN
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5148)
CALL DPWRST('XXX','WRIT')
IMETH='12. BCP'
WRITE(ICOUT,5142)IMETH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XBCP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,IFORMT)XBCPK1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5158)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)100.0*XBCPK1/XBCP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5195)
CCCCC CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
CALL DPCONA(92,IBASLC)
CALL DPCONA(39,IQUOTE)
C
C8001 FORMAT(A1,'end{verbatim}')
8002 FORMAT(A1,'begin{table}')
8003 FORMAT('{',A1,'bf Table ',I1,': ',A8,
1 ' Uncertainties ',
1 '(k = ',I1,')}')
8004 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8005 FORMAT(A1,'begin{center}')
CCCCC WRITE(ICOUT,8001)IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8002)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC,IK+2,IUNCT,IK
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
C
8142 FORMAT(5X,A1,'begin{tabular} {|l|c|c|c|}')
8143 FORMAT(5X,A1,'hline')
8144 FORMAT(5X,' & Consensus & ',A8,' & ',
1 'Relative ',A8,A1,A1)
8145 FORMAT(5X,'Method & Mean & Uncertainty & Uncertainty (',
1 A1,'%)',A1,A1)
WRITE(ICOUT,8142)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8143)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8144)IUNCT,IUNCT,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8145)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8143)IBASLC
CALL DPWRST('XXX','WRIT')
C
C8151 FORMAT(5X,'1. Mandel-Paule ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8152 FORMAT(5X,'2. Modified Mandel-Paule ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8153 FORMAT(5X,'3. Vangel-Rukhin ML ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8154 FORMAT(5X,'4. BOB ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8155 FORMAT(5X,'5. Schiller-Eberhardt ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8156 FORMAT(5X,'6. Mean of Means ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8157 FORMAT(5X,'7. Graybill-Deal ',3(' & ',F15.7),
C 1 2X,A1,A1)
C8158 FORMAT(5X,'8. Grand Mean ',3(' & ',F15.7),
C 1 2X,A1,A1)
C
IFORMT='(5X,A25,3( & ,F15.7),2X,A1,A1)'
IFORMT(11:11)=IQUOTE
IFORMT(15:15)=IQUOTE
IF(NUMDIG.GE.1 .AND. NUMDIG.LE.9)THEN
WRITE(IFORMT(21:21),'(I1)')NUMDIG
ELSEIF(NUMDIG.GE.10)THEN
IFORMT='(5X,A25,3( & ,E15.7),2X,A1,A1)'
IFORMT(11:11)=IQUOTE
IFORMT(15:15)=IQUOTE
ENDIF
C
IF(IMPACM.EQ.'ON')THEN
IMETH='1. Mandel-Paule'
WRITE(ICOUT,IFORMT)IMETH,XMPS,SEMPK1,100.0*SEMPK1/XMPS,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IMMPCM.EQ.'ON')THEN
IMETH='2. Modified Mandel-Paule'
WRITE(ICOUT,IFORMT)IMETH,XMMPS,SEMMP1,100.0*SEMMP1/XMMPS,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IVRUCM.EQ.'ON')THEN
IMETH='3. Vangel-Rukhin ML'
WRITE(ICOUT,IFORMT)IMETH,XMLS,SEMLK1,100.0*SEMLK1/XMLS,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IBOBCM.EQ.'ON')THEN
IMETH='4. BOB'
WRITE(ICOUT,IFORMT)IMETH,ASM,AKUK1,100.0*AKUK1/ASM,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(ISCECM.EQ.'ON')THEN
IMETH='5. Schiller-Eberhardt'
WRITE(ICOUT,IFORMT)IMETH,XSE,SESUK1,100.0*SESUK1/XSE,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IMOMCM.EQ.'ON')THEN
IMETH='6. Mean of Means'
WRITE(ICOUT,IFORMT)IMETH,ASM,SET1K1,100.0*SET1K1/ASM,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IGRDCM.EQ.'ON')THEN
IMETH='7. Graybill Deal'
WRITE(ICOUT,IFORMT)IMETH,XGD,SEGDK1,100.0*SEGDK1/XGD,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IGMECM.EQ.'ON')THEN
IMETH='8. Grand Mean'
WRITE(ICOUT,IFORMT)IMETH,XGRAND,SET2K1,100.0*SET2K1/XGRAND,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IGCICM.EQ.'ON')THEN
IMETH='9. Generalized CI'
WRITE(ICOUT,IFORMT)IMETH,XGCI,SEGCI,100.0*SEGCI/XGCI,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(IDSLCM.EQ.'ON')THEN
IMETH='10. DerSimonian-Laird'
WRITE(ICOUT,IFORMT)IMETH,XDL,SEDLK1,100.0*SEDLK1/XDL,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
CCCCC IF(IFAICM.EQ.'ON' .AND. IFLAG9)THEN
CCCCC IMETH='11. Fairweather'
CCCCC WRITE(ICOUT,IFORMT)IMETH,XFAIR,SEFWK1,100.0*SEFWK1/XFAIR,
CCCCC1 IBASLC,IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC ENDIF
IF(IBCPCM.EQ.'ON')THEN
IMETH='12. BCP'
WRITE(ICOUT,IFORMT)IMETH,XBCP,XBCPK1,100.0*XBCPK1/XBCP,
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,8143)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8043)IBASLC
CALL DPWRST('XXX','WRIT')
C
8030 FORMAT(A1,'end{tabular}')
8031 FORMAT(A1,'end{center}')
8032 FORMAT(A1,'end{table}')
8043 FORMAT(5X,A1,'hline')
C8190 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8030)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,8190)IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
C
CALL DPCONA(92,IBASLC)
C
IF(IRTFFP.EQ.'Times New Roman')THEN
ITEMP=0
ELSEIF(IRTFFP.EQ.'Lucida Sans')THEN
ITEMP=6
ELSEIF(IRTFFP.EQ.'Arial')THEN
ITEMP=2
ELSEIF(IRTFFP.EQ.'Bookman')THEN
ITEMP=3
ELSEIF(IRTFFP.EQ.'Georgia')THEN
ITEMP=4
ELSEIF(IRTFFP.EQ.'Tahoma')THEN
ITEMP=5
ELSEIF(IRTFFP.EQ.'Verdana')THEN
ITEMP=7
ELSE
ITEMP=0
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
C TABLE 3/4
C
ITTEMP=' '
NCTEMP=0
NHEAD=39
IHEAD(1:NHEAD)='Table 3: Standard Uncertainties (k = 1)'
IF(IK.EQ.2)THEN
IHEAD(1:NHEAD)='Table 4: Expanded Uncertainties (k = 2)'
ENDIF
C
CALL DPRTF1(ITTEMP,NCTEMP,IHEAD,NHEAD)
C
IF(IRTFFF.EQ.'Courier New')THEN
ITEMP=1
ELSEIF(IRTFFF.EQ.'Lucida Console')THEN
ITEMP=8
ELSE
ITEMP=1
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
NCOL=4
IDEFPS=20
IFRST=IRTFPS*3800/IDEFPS
IINC1=IRTFPS*1700/IDEFPS
CCCCC IINC2=IRTFPS*2000/IDEFPS
C
DO6005ISET1=1,NCOL
VALIGN(ISET1)='b'
ALIGN(ISET1)='r'
NUMDI2(ISET1)=NUMDIG
IF(NUMDI2(ISET1).LT.0.OR.NUMDI2(ISET1).GT.9)NUMDI2(ISET1)=7
6005 CONTINUE
ALIGN(1)='l'
C
IWIDTH(1)=IFRST
DO6008I=2,NCOL
IWIDTH(I)=IWIDTH(I-1) + IINC1
6008 CONTINUE
C
IVALUE(1)=' b Method'
IVALUE(1)(1:1)=IBASLC
NCHAR(1)=9
C
IVALUE(2)=' b Consensus line Mean'
IVALUE(2)(1:1)=IBASLC
IVALUE(2)(13:13)=IBASLC
NCHAR(2)=22
C
IVALUE(3)=' b Standard line Uncertainty line (k=1)'
IVALUE(3)(1:1)=IBASLC
IVALUE(3)(12:12)=IBASLC
IVALUE(3)(29:29)=IBASLC
NCHAR(3)=39
IF(IK.EQ.2)THEN
IVALUE(3)(4:11)='Expanded'
IVALUE(3)(38:38)='2'
ENDIF
C
IVALUE(4)=' b Relative line Standard line Uncertainty (%)'
IVALUE(4)(1:1)=IBASLC
IVALUE(4)(12:12)=IBASLC
IVALUE(4)(26:26)=IBASLC
NCHAR(4)=46
IF(IK.EQ.2)THEN
IVALUE(3)(18:25)='Expanded'
ENDIF
C
NHEAD=NCOL
IFLAG1=.TRUE.
IFLAG2=.TRUE.
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IFLAG1=.FALSE.
NHEAD=3
C
IF(IMPACM.EQ.'ON')THEN
NCHAR(1)=16
IVALUE(1)=' 1. Mandel-Paule'
AVALUE(2)=XMPS
AVALUE(3)=SEMPK1
AVALUE(4)=100.0*SEMPK1/XMPS
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IMMPCM.EQ.'ON')THEN
NCHAR(1)=25
IVALUE(1)=' 2. Modified Mandel-Paule'
AVALUE(2)=XMMPS
AVALUE(3)=SEMMP1
AVALUE(4)=100.0*SEMMP1/XMMPS
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IVRUCM.EQ.'ON')THEN
NCHAR(1)=20
IVALUE(1)=' 3. Vangel-Rukhin ML'
AVALUE(2)=XMLS
AVALUE(3)=SEMLK1
AVALUE(4)=100.0*SEMLK1/XMLS
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IBOBCM.EQ.'ON')THEN
NCHAR(1)=7
IVALUE(1)=' 4. BOB'
AVALUE(2)=ASM
AVALUE(3)=AKUK1
AVALUE(4)=100.0*AKUK1/ASM
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(ISCECM.EQ.'ON')THEN
NCHAR(1)=22
IVALUE(1)=' 5. Schiller-Eberhardt'
AVALUE(2)=XSE
AVALUE(3)=SESUK1
AVALUE(4)=100.0*SESUK1/XSE
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IMOMCM.EQ.'ON')THEN
NCHAR(1)=17
IVALUE(1)=' 6. Mean of Means'
AVALUE(2)=ASM
AVALUE(3)=SET1K1
AVALUE(4)=100.0*SET1K1/ASM
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IGRDCM.EQ.'ON')THEN
NCHAR(1)=17
IVALUE(1)=' 7. Graybill-Deal'
AVALUE(2)=XGD
AVALUE(3)=SEGDK1
AVALUE(4)=100.0*SEGDK1/XGD
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IGMECM.EQ.'ON')THEN
NCHAR(1)=14
IVALUE(1)=' 8. Grand Mean'
AVALUE(2)=XGRAND
AVALUE(3)=SET2K1
AVALUE(4)=100.0*SET2K1/XGRAND
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IGCICM.EQ.'ON')THEN
NCHAR(1)=18
IVALUE(1)=' 9. Generalized CI'
AVALUE(2)=XGCI
AVALUE(3)=SEGCI
AVALUE(4)=100.0*SEGCI/XGCI
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
IF(IDSLCM.EQ.'ON')THEN
NCHAR(1)=21
IVALUE(1)='10. DerSimonian-Laird'
AVALUE(2)=XDL
AVALUE(3)=SEDLK1
AVALUE(4)=100.0*SEDLK1/XDL
IFLAG1=.TRUE.
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
CCCCC IF(IFAICM.EQ.'ON' .AND. IFLAG9)THEN
CCCCC NCHAR(1)=15
CCCCC IVALUE(1)='11. Fairweather'
CCCCC AVALUE(2)=XFAIR
CCCCC AVALUE(3)=SEFWK1
CCCCC AVALUE(4)=100.0*SEFWK1/XFAIR
CCCCC IFLAG1=.TRUE.
CCCCC CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
CCCCC ENDIF
C
IF(IBCPCM.EQ.'ON')THEN
NCHAR(1)=7
IVALUE(1)='12. BCP'
AVALUE(2)=XBCP
AVALUE(3)=XBCPK1
AVALUE(4)=100.0*XBCPK1/XBCP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
ENDIF
C
CALL DPRTF6(NHEAD)
IFLAG1=.TRUE.
IFLAG2=.FALSE.
C
6191 FORMAT(A1,'f',I1)
IF(IRTFFP.EQ.'Times New Roman')THEN
ITEMP=0
ELSEIF(IRTFFP.EQ.'Lucida Sans')THEN
ITEMP=6
ELSEIF(IRTFFP.EQ.'Arial')THEN
ITEMP=2
ELSEIF(IRTFFP.EQ.'Bookman')THEN
ITEMP=3
ELSEIF(IRTFFP.EQ.'Georgia')THEN
ITEMP=4
ELSEIF(IRTFFP.EQ.'Tahoma')THEN
ITEMP=5
ELSEIF(IRTFFP.EQ.'Verdana')THEN
ITEMP=7
ELSE
ITEMP=0
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'WOML')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4001)IK+2,IUNCT,IK
4001 FORMAT('Table ',I1,': ',A8,' Uncertainties (k = ',I1,')')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4010)IUNCT
4010 FORMAT(
1' ',A8,
1' Relative ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4011)IUNCT
4011 FORMAT(
1' Consensus Uncertainty',
1' ',A8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4012)IK
4012 FORMAT(
1'Method Mean (k = ',I1,')',
1' Uncertainty (%)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4015)
4015 FORMAT(
1'------------------------------------------------------',
1'--------------------')
CALL DPWRST('XXX','WRIT')
C
C4065 FORMAT(A25,F15.7,2X,F15.7,2X,F15.5)
4097 FORMAT(3(E15.7,2X),A25)
C
IFORMT=' '
IFORMT='(I8,I8,4(F15.7))'
IFORMT='(A25,F15.7,2X,F15.7,2X,F15.7)'
IF(NUMDIG.GE.1 .AND. NUMDIG.LE.9)THEN
WRITE(IFORMT(10:10),'(I1)')NUMDIG
WRITE(IFORMT(19:19),'(I1)')NUMDIG
WRITE(IFORMT(28:28),'(I1)')NUMDIG
ELSEIF(NUMDIG.GE.10)THEN
IFORMT='(A25,E15.7,2X,E15.7,2X,E15.7)'
ENDIF
C
IF(IMPACM.EQ.'ON')THEN
IMETH=' 1. Mandel-Paule'
WRITE(ICOUT,IFORMT)IMETH,XMPS,SEMPK1,100.0*SEMPK1/XMPS
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IMMPCM.EQ.'ON')THEN
IMETH=' 2. Modified Mandel-Paule'
WRITE(ICOUT,IFORMT)IMETH,XMMPS,SEMMP1,100.0*SEMMP1/XMMPS
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IVRUCM.EQ.'ON')THEN
IMETH=' 3. Vangel-Rukhin ML'
WRITE(ICOUT,IFORMT)IMETH,XMLS,SEMLK1,100.0*SEMLK1/XMLS
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IBOBCM.EQ.'ON')THEN
IMETH=' 4. BOB'
WRITE(ICOUT,IFORMT)IMETH,ASM,AKUK1,100.0*AKUK1/ASM
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(ISCECM.EQ.'ON')THEN
IMETH=' 5. Schiller-Eberhardt'
WRITE(ICOUT,IFORMT)IMETH,XSE,SESUK1,100.0*SESUK1/XSE
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IMOMCM.EQ.'ON')THEN
IMETH=' 6. Mean of Means'
WRITE(ICOUT,IFORMT)IMETH,ASM,SET1K1,100.0*SET1K1/ASM
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGRDCM.EQ.'ON')THEN
IMETH=' 7. Graybill-Deal'
WRITE(ICOUT,IFORMT)IMETH,XGD,SEGDK1,100.0*SEGDK1/XGD
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGMECM.EQ.'ON')THEN
IMETH=' 8. Grand Mean'
WRITE(ICOUT,IFORMT)IMETH,XGRAND,SET2K1,100.0*SET2K1/XGRAND
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IGCICM.EQ.'ON')THEN
IMETH=' 9. Generalized CI'
WRITE(ICOUT,IFORMT)IMETH,XGCI,SEGCI,100.0*SEGCI/XGCI
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IDSLCM.EQ.'ON')THEN
IMETH='10. DerSimonian-Laird'
WRITE(ICOUT,IFORMT)IMETH,XDL,SEDLK1,100.0*SEDLK1/XDL
CALL DPWRST('XXX','WRIT')
ENDIF
C
CCCCC IF(IFAICM.EQ.'ON' .AND. IFLAG9)THEN
CCCCC IMETH='11. Fairweather'
CCCCC WRITE(ICOUT,IFORMT)IMETH,XFAIR,SEFWK1,100.0*SEFWK1/XFAIR
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC ENDIF
IF(IBCPCM.EQ.'ON')THEN
IMETH='12. BCP'
WRITE(ICOUT,IFORMT)IMETH,XBCP,XBCPK1,100.0*XBCPK1/XBCP
CALL DPWRST('XXX','WRIT')
ENDIF
C
C
WRITE(ICOUT,4015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
ENDIF
C
IF(IMPACM.EQ.'ON')THEN
IMETH='1. Mandel-Paule'
WRITE(IOUNIT,4097)XMPS,SEMPK1,100.0*SEMPK1/XMPS,IMETH
ENDIF
IF(IMMPCM.EQ.'ON')THEN
IMETH='2. Modified Mandel-Paule'
WRITE(IOUNIT,4097)XMMPS,SEMMP1,100.0*SEMMP1/XMMPS,IMETH
ENDIF
IF(IVRUCM.EQ.'ON')THEN
IMETH='3. Vangel-Rukhin ML'
WRITE(IOUNIT,4097)XMLS,SEMLK1,100.0*SEMLK1/XMLS,IMETH
ENDIF
IF(IBOBCM.EQ.'ON')THEN
IMETH='4. BOB'
WRITE(IOUNIT,4097)ASM,AKUK1,100.0*AKUK1/ASM,IMETH
ENDIF
IF(ISCECM.EQ.'ON')THEN
IMETH='5. Schiller-Eberhardt'
WRITE(IOUNIT,4097)XSE,SESUK1,100.0*SESUK1/XSE,IMETH
ENDIF
IF(IMOMCM.EQ.'ON')THEN
IMETH='6. Mean of Means'
WRITE(IOUNIT,4097)ASM,SET1K1,100.0*SET1K1/ASM,IMETH
ENDIF
IF(IGRDCM.EQ.'ON')THEN
IMETH='7. Graybill-Deal'
WRITE(IOUNIT,4097)XGD,SEGDK1,100.0*SEGDK1/XGD,IMETH
ENDIF
IF(IGMECM.EQ.'ON')THEN
IMETH='8. Grand Mean'
WRITE(IOUNIT,4097)XGRAND,SET2K1,100.0*SET2K1/XGRAND,IMETH
ENDIF
IF(IGCICM.EQ.'ON')THEN
IMETH='9. Generalized CI'
WRITE(IOUNIT,4097)XGCI,SEGCI,100.0*SEGCI/XGCI,IMETH
ENDIF
IF(IDSLCM.EQ.'ON')THEN
IMETH='10. DerSimonian-Laird'
WRITE(IOUNIT,4097)XDL,SEDLK1,100.0*SEDLK1/XDL,IMETH
ENDIF
CCCCC IF(IFAICM.EQ.'ON' .AND. IFLAG9)THEN
CCCCC IMETH='11. Fairweather'
CCCCC WRITE(IOUNIT,4097)XFAIR,SEFWK1,100.0*SEFWK1/XFAIR,IMETH
CCCCC ENDIF
IF(IBCPCM.EQ.'ON')THEN
IMETH='12. BCP'
WRITE(IOUNIT,4097)XBCP,XBCPK1,100.0*XBCPK1/XBCP,IMETH
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MAN6')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMAN6--')
CALL DPWRST('XXX','BUG ')
ENDIF
C
RETURN
END
SUBROUTINE DPMANN(XTEMP1,XTEMP2,MAXNXT,
1IBUGA2,IBUGA3,IBUGQ,ISUBRO,IFOUND,IERROR)
C
C PURPOSE--CARRY OUT A 2-SAMPLE MANN-WHITNEY RANK SUM TEST
C EXAMPLE--RANK SUM TEST Y1 Y2
C RANK SUM TEST Y1 Y2 D0
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--99/7
C ORIGINAL VERSION--JULY 1999.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IBUGA2
CHARACTER*4 IBUGA3
CHARACTER*4 IBUGQ
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHWUSE
CHARACTER*4 MESSAG
CHARACTER*4 ICASEQ
C
CHARACTER*4 IH11
CHARACTER*4 IH12
CHARACTER*4 IH21
CHARACTER*4 IH22
CHARACTER*4 IH31
CHARACTER*4 IH32
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*4 IUSE1
CHARACTER*4 IUSE2
CHARACTER*4 IUSE3
C
CHARACTER*4 IH
CHARACTER*4 IH2
CHARACTER*4 ISUBN0
C
C---------------------------------------------------------------------
C
DIMENSION XTEMP1(*)
DIMENSION XTEMP2(*)
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOPA.INC'
INCLUDE 'DPCOZZ.INC'
INCLUDE 'DPCOHK.INC'
INCLUDE 'DPCOSU.INC'
INCLUDE 'DPCODA.INC'
INCLUDE 'DPCOHO.INC'
C
DIMENSION YRANK(2*MAXOBV)
DIMENSION YTEMP(2*MAXOBV)
EQUIVALENCE(GARBAG(IGARB1),YRANK(1))
EQUIVALENCE(GARBAG(IGARB3),YTEMP(1))
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPMA'
ISUBN2='NN '
C
MAXCP1=MAXCOL+1
MAXCP2=MAXCOL+2
MAXCP3=MAXCOL+3
MAXCP4=MAXCOL+4
MAXCP5=MAXCOL+5
MAXCP6=MAXCOL+6
C
IFOUND='NO'
IERROR='NO'
C
N1=(-999)
N2=(-999)
C
NS1=(-999)
NS2=(-999)
C
IUSE1='-999'
IUSE2='-999'
IUSE3='-999'
C
NUMVAR=(-999)
ILOCV=(-999)
C
VALUE1=(-999.0)
VALUE2=(-999.0)
C
ICOL1=(-999)
ICOL2=(-999)
C
MINN2=2
C
IFOUND='YES'
C
NLEFT=0
C
ICASEQ='UNKN'
C
C ***************************************
C ** TREAT THE RANK SUM TEST CASE **
C ***************************************
C
IF(IBUGA2.EQ.'OFF'.AND.ISUBRO.NE.'MANN')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMANN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGA2,IBUGA3
52 FORMAT('IBUGA2,IBUGA3 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)IBUGQ
53 FORMAT('IBUGQ = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)MAXNXT
55 FORMAT('MAXNXT = ',I8)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C *******************************************************
C ** STEP 2-- **
C ** CHECK FOR THE PROPER NUMBER OF INPUT ARGUMENTS. **
C *******************************************************
C
ISTEPN='2'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MANN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
MINNA=2
MAXNA=100
CALL CHECKA(NUMARG,MINNA,MAXNA,IANS,IWIDTH,ISUBN1,ISUBN2,
1IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ****************************************
C ** STEP 11-- **
C ** CHECK THE VALIDITY OF ARGUMENT 1 **
C ****************************************
C
ISTEPN='11'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IH11=IHARG(1)
IH12=IHARG2(1)
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IH11,IH12,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
IUSE1=IUSE(ILOCV)
ICOL1=IVALUE(ILOCV)
N1=IN(ILOCV)
1190 CONTINUE
C
C *******************************************************
C ** STEP 12-- **
C ** IF ARGUMENT 1 IS A VARIABLE, **
C ** CHECK THAT THE INPUT NUMBER OF OBSERVATIONS (N1) **
C ** FOR ARGUMENT 1 IS 2 OR MORE. **
C *******************************************************
C
ISTEPN='12'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N1.GE.MINN2)GOTO1290
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1211)
1211 FORMAT('***** ERROR IN DPMANN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1212)
1212 FORMAT(' THE INPUT NUMBER OF OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1213)
1213 FORMAT(' (FOR WHICH A RANK SUM TEST ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1214)
1214 FORMAT(' WAS TO HAVE BEEN CARRIED OUT)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1215)MINN2
1215 FORMAT(' MUST BE ',I8,' OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1216)
1216 FORMAT(' SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1217)IH11,IH12
1217 FORMAT(' FOR VARIABLE ',A4,A4,' WHICH HAD')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1218)N1
1218 FORMAT(' NUMBER OF OBSERVATIONS = ',I8,';')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1219)
1219 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,1220)(IANS(I),I=1,IWIDTH)
1220 FORMAT(80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
1290 CONTINUE
C
C ****************************************
C ** STEP 21-- **
C ** CHECK THE VALIDITY OF ARGUMENT 2 **
C ** (THIS COULD BE A VARIABLE, **
C ** A PARAMETER, OR A NUMBER). **
C ****************************************
C
ISTEPN='21'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IH21=IHARG(2)
IH22=IHARG2(2)
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IH21,IH22,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
IUSE2=IUSE(ILOCV)
ICOL2=IVALUE(ILOCV)
N2=IN(ILOCV)
2190 CONTINUE
C
C ****************************************
C ** STEP 23-- **
C ** CHECK THE VALIDITY OF ARGUMENT 3 **
C ** THIS IS AN OPTIONAL ARGUMENT, BUT **
C ** IF PRESENT MUST BE A NUMBER OR A **
C ** PARAMETER **
C ****************************************
C
ISTEPN='31'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MANN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
D0=0.0
IF(NUMARG.LT.3)GOTO2390
IH31=IHARG(3)
IH32=IHARG2(3)
IF(IH31.EQ.'SUBS'.AND.IH32.EQ.'ET ')GOTO2390
IF(IH31.EQ.'FOR '.AND.IH32.EQ.' ')GOTO2390
IF(IH31.EQ.'EXCE'.AND.IH32.EQ.'PT ')GOTO2390
IF(IARGT(3).EQ.'NUMB')GOTO2310
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IH31,IH32,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
D0=VALUE(ILOCV)
GOTO2390
2310 CONTINUE
D0=ARG(3)
GOTO2390
2390 CONTINUE
C
C
C *****************************************
C ** STEP 40-- **
C ** CHECK TO SEE THE TYPE CASE-- **
C ** 1) UNQUALIFIED (THAT IS, FULL); **
C ** 2) SUBSET/EXCEPT; OR **
C ** 3) FOR. **
C *****************************************
C
ISTEPN='40'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='FULL'
ILOCQ=NUMARG+1
IF(NUMARG.LT.1)GOTO4090
DO4000J=1,NUMARG
J1=J
IF(IHARG(J).EQ.'SUBS'.AND.IHARG2(J).EQ.'ET ') GOTO4010
IF(IHARG(J).EQ.'EXCE'.AND.IHARG2(J).EQ.'PT ') GOTO4010
IF(IHARG(J).EQ.'FOR '.AND.IHARG2(J).EQ.' ') GOTO4020
4000 CONTINUE
GOTO4090
4010 CONTINUE
ICASEQ='SUBS'
ILOCQ=J1
GOTO4090
4020 CONTINUE
ICASEQ='FOR'
ILOCQ=J1
GOTO4090
4090 CONTINUE
IF(IBUGA2.EQ.'OFF'.AND.ISUBRO.NE.'MANN')GOTO4095
WRITE(ICOUT,4091)NUMARG,ILOCQ
4091 FORMAT('NUMARG,ILOCQ = ',2I8)
CALL DPWRST('XXX','BUG ')
4095 CONTINUE
C
C ***********************************************
C ** STEP 41-- **
C ** TEMPORARILY FORM THE VARIABLE Y(.) **
C ** WHICH WILL HOLD THE DATA FROM SAMPLE 1. **
C ** FORM THIS VARIABLE BY **
C ** BRANCHING TO THE APPROPRIATE SUBCASE **
C ** (FULL, SUBSET, OR FOR). **
C ***********************************************
C
ISTEPN='41'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MANN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASEQ.EQ.'FULL')GOTO4110
IF(ICASEQ.EQ.'SUBS')GOTO4120
IF(ICASEQ.EQ.'FOR')GOTO4130
C
4110 CONTINUE
DO4115I=1,N1
ISUB(I)=1
4115 CONTINUE
NQ=N1
GOTO4150
C
4120 CONTINUE
NIOLD=N1
CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR)
NQ=NIOLD
GOTO4150
C
4130 CONTINUE
NIOLD=N1
CALL DPFOR(NIOLD,NFOR,IROW1,IROWN,
1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
NQ=NFOR
GOTO4150
C
4150 CONTINUE
IF(NQ.GE.MINN2)GOTO4160
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4151)
4151 FORMAT('***** ERROR IN DPMANN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4152)
4152 FORMAT(' AFTER THE APPROPRIATE SUBSET HAS BEEN ',
1'EXTRACTED,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4153)IH11,IH12
4153 FORMAT(' THE NUMBER OF OBSERVATIONS REMAINING',
1'FROM VARIABLE ',A4,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4154)
4154 FORMAT(' (FOR WHICH A RANK SUM TEST ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4155)
4155 FORMAT(' IS TO BE CARRIED OUT)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4156)MINN2
4156 FORMAT(' MUST BE ',I8,' OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4157)NQ
4157 FORMAT(' SUCH WAS NOT THE CASE HERE. (N = ',I8,')')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4158)
4158 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,4159)(IANS(I),I=1,IWIDTH)
4159 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
4160 CONTINUE
J=0
IMAX=N1
IF(NQ.LT.N1)IMAX=NQ
DO4170I=1,IMAX
IF(ISUB(I).EQ.0)GOTO4170
J=J+1
C
IJ=MAXN*(ICOL1-1)+I
IF(ICOL1.LE.MAXCOL)Y(J)=V(IJ)
IF(ICOL1.EQ.MAXCP1)Y(J)=PRED(I)
IF(ICOL1.EQ.MAXCP2)Y(J)=RES(I)
IF(ICOL1.EQ.MAXCP3)Y(J)=YPLOT(I)
IF(ICOL1.EQ.MAXCP4)Y(J)=XPLOT(I)
IF(ICOL1.EQ.MAXCP5)Y(J)=X2PLOT(I)
IF(ICOL1.EQ.MAXCP6)Y(J)=TAGPLO(I)
C
4170 CONTINUE
NS1=J
C
4190 CONTINUE
C
C ***********************************************
C ** STEP 42-- **
C ** TEMPORARILY FORM THE VARIABLE X(.) **
C ** WHICH WILL HOLD THE DATA FROM SAMPLE 2. **
C ** FORM THIS VARIABLE BY **
C ** BRANCHING TO THE APPROPRIATE SUBCASE **
C ** (FULL, SUBSET, OR FOR). **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MANN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASEQ.EQ.'FULL')GOTO4210
IF(ICASEQ.EQ.'SUBS')GOTO4220
IF(ICASEQ.EQ.'FOR')GOTO4230
C
4210 CONTINUE
DO4215I=1,N2
ISUB(I)=1
4215 CONTINUE
NQ=N2
GOTO4250
C
4220 CONTINUE
NIOLD=N1
CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR)
NQ=NIOLD
GOTO4250
C
4230 CONTINUE
NIOLD=N2
CALL DPFOR(NIOLD,NFOR,IROW1,IROWN,
1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
NQ=NFOR
GOTO4250
C
4250 CONTINUE
IF(NQ.GE.MINN2)GOTO4260
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4251)
4251 FORMAT('***** ERROR IN DPMANN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4252)
4252 FORMAT(' AFTER THE APPROPRIATE SUBSET HAS BEEN ',
1'EXTRACTED,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4253)IH21,IH22
4253 FORMAT(' THE NUMBER OF OBSERVATIONS REMAINING',
1'FROM VARIABLE ',A4,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4254)
4254 FORMAT(' (FOR WHICH A RANK SUM TEST ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4255)
4255 FORMAT(' IS TO BE CARRIED OUT)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4256)MINN2
4256 FORMAT(' MUST BE ',I8,' OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4257)NQ
4257 FORMAT(' SUCH WAS NOT THE CASE HERE. (N = ',I8,')')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4258)
4258 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,4259)(IANS(I),I=1,IWIDTH)
4259 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
4260 CONTINUE
J=0
IMAX=N2
IF(NQ.LT.N2)IMAX=NQ
DO4270I=1,IMAX
IF(ISUB(I).EQ.0)GOTO4270
J=J+1
C
IJ=MAXN*(ICOL2-1)+I
IF(ICOL2.LE.MAXCOL)X(J)=V(IJ)
IF(ICOL2.EQ.MAXCP1)X(J)=PRED(I)
IF(ICOL2.EQ.MAXCP2)X(J)=RES(I)
IF(ICOL2.EQ.MAXCP3)X(J)=YPLOT(I)
IF(ICOL2.EQ.MAXCP4)X(J)=XPLOT(I)
IF(ICOL2.EQ.MAXCP5)X(J)=X2PLOT(I)
IF(ICOL2.EQ.MAXCP6)X(J)=TAGPLO(I)
C
4270 CONTINUE
NS2=J
C
4290 CONTINUE
C
C ****************************************
C ** STEP 52-- **
C ** CARRY OUT THE RANK SUM TEST **
C ****************************************
C
ISTEPN='52'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MANN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IBUGA2.EQ.'OFF'.AND.ISUBRO.NE.'MANN')GOTO5290
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5211)
5211 FORMAT('***** FROM DPMANN, AS WE ARE ABOUT TO CALL DPMNN2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5212)N1,N2,NS1,NS2,MAXN
5212 FORMAT('N1,N2,NS1,NS2,MAXN = ',5I8)
CALL DPWRST('XXX','BUG ')
DO5215I=1,NS1
WRITE(ICOUT,5216)I,Y(I)
5216 FORMAT('I,Y(I) = ',I8,2E15.7)
CALL DPWRST('XXX','BUG ')
5215 CONTINUE
DO5217I=1,NS1
WRITE(ICOUT,5218)I,Y(I)
5218 FORMAT('I,Y(I) = ',I8,2E15.7)
CALL DPWRST('XXX','BUG ')
5217 CONTINUE
WRITE(ICOUT,5231)IBUGA3
5231 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','BUG ')
5290 CONTINUE
C
CALL DPMNN2(Y,NS1,X,NS2,YRANK,AMU0,D0,NUMVAR,ILOCV,
1XTEMP1,YTEMP,MAXNXT,
1STATVA,STTCD2,
1CUTL90,CUTU90,CUTL95,CUTU95,CUTL99,CUTU99,
1IBUGA3,ISUBRO,IERROR)
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MANN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPMA'
C
IH='STAT'
IH2='VAL '
VALUE0=STATVA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1IANS,IWIDTH,IBUGA3,IERROR)
C
IH='STAT'
IH2='CDF '
VALUE0=STTCD2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1IANS,IWIDTH,IBUGA3,IERROR)
C
IH='CUTL'
IH2='OW90'
VALUE0=CUTL90
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1IANS,IWIDTH,IBUGA3,IERROR)
C
IH='CUTU'
IH2='PP90'
VALUE0=CUTU90
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1IANS,IWIDTH,IBUGA3,IERROR)
C
IH='CUTL'
IH2='OW95'
VALUE0=CUTL95
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1IANS,IWIDTH,IBUGA3,IERROR)
C
IH='CUTU'
IH2='PP95'
VALUE0=CUTU95
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1IANS,IWIDTH,IBUGA3,IERROR)
C
IH='CUTL'
IH2='OW99'
VALUE0=CUTL99
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1IANS,IWIDTH,IBUGA3,IERROR)
C
IH='CUTU'
IH2='PP99'
VALUE0=CUTU99
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1IANS,IWIDTH,IBUGA3,IERROR)
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMANN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGA2,IBUGA3
9012 FORMAT('IBUGA2,IBUGA3 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)IBUGQ
9013 FORMAT('IBUGQ = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)NLEFT,NS
9014 FORMAT('NLEFT,NS = ',2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)ICASEQ
9015 FORMAT('ICASEQ = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9016)IFOUND,IERROR
9016 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMNN2(Y1,N1,Y2,N2,YRANK,AMU0,D0,NUMVAR,ILOCV,
1XTEMP,YTEMP,MAXNXT,
1STATVA,STTCD2,
1CUTL90,CUTU90,CUTL95,CUTU95,CUTL99,CUTU99,
1IBUGA3,ISUBRO,IERROR)
C
C PURPOSE--THIS ROUTINE CARRIES OUT A 2-SAMPLE RANK SUM TEST
C EXAMPLE--RANK SUM TEST Y1 Y2
C SAMPLE 1 IS IN INPUT VECTOR Y1
C (WITH N1 OBSERVATIONS).
C SAMPLE 2 IS IN INPUT VECTOR Y2
C (WITH N2 OBSERVATIONS).
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--99/6
C ORIGINAL VERSION--JUNE 1999.
C UPDATED --AUGUST 2002. MODIFIED OUTPUT FOR BETTER
C CLARITY
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IBUGA3
CHARACTER*4 ISUBRO
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*6 ICONC1
CHARACTER*6 ICONC2
CHARACTER*6 ICONC3
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
DIMENSION Y1(*)
DIMENSION Y2(*)
DIMENSION YRANK(*)
DIMENSION XTEMP(*)
DIMENSION YTEMP(*)
C
DIMENSION C2VL01(25,14)
DIMENSION C2VL05(25,14)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ((C2VL05(I,J),J=1,14),I=1,25) /
1 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 0, 6, 11, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 0, 7, 12, 18, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 0, 7, 13, 20, 27, 36, 0, 0, 0, 0, 0, 0, 0, 0,
1 3, 8, 14, 21, 29, 38, 39, 0, 0, 0, 0, 0, 0, 0,
1 3, 8, 15, 22, 31, 40, 51, 63, 0, 0, 0, 0, 0, 0,
1 3, 9, 15, 23, 32, 42, 53, 65, 78, 0, 0, 0, 0, 0,
1 4, 9, 16, 24, 34, 44, 55, 68, 81, 96, 0, 0, 0, 0,
1 4, 10, 17, 26, 35, 46, 58, 71, 85, 99,115, 0, 0, 0,
1 4, 10, 18, 27, 37, 48, 60, 73, 88,103,119,137, 0, 0,
1 4, 11, 19, 28, 38, 50, 63, 76, 91,106,123,141,160, 0,
1 4, 11, 20, 29, 40, 52, 65, 79, 94,110,127,145,164,185,
1 4, 12, 21, 31, 42, 54, 67, 82, 97,114,131,150,169, 0,
1 5, 12, 21, 32, 43, 56, 70, 84,100,117,135,154, 0, 0,
1 5, 13, 22, 33, 45, 58, 72, 87,103,121,139, 0, 0, 0,
1 5, 13, 23, 34, 46, 60, 74, 90,107,124, 0, 0, 0, 0,
1 5, 14, 24, 35, 48, 62, 77, 93,110, 0, 0, 0, 0, 0,
1 6, 14, 25, 37, 50, 64, 79, 95, 0, 0, 0, 0, 0, 0,
1 6, 15, 26, 38, 51, 66, 82, 0, 0, 0, 0, 0, 0, 0,
1 6, 15, 27, 39, 53, 68, 0, 0, 0, 0, 0, 0, 0, 0,
1 6, 16, 28, 40, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 6, 16, 28, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 7, 17, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 7, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/
C
DATA ((C2VL01(I,J),J=1,14),I=1,25) /
1 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 0, 0, 10, 16, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 0, 0, 10, 17, 24, 32, 0, 0, 0, 0, 0, 0, 0, 0,
1 0, 0, 11, 17, 25, 34, 43, 0, 0, 0, 0, 0, 0, 0,
1 0, 6, 11, 18, 26, 35, 45, 56, 0, 0, 0, 0, 0, 0,
1 0, 6, 12, 19, 27, 37, 47, 58, 71, 0, 0, 0, 0, 0,
1 0, 6, 12, 20, 28, 38, 49, 61, 74, 87, 0, 0, 0, 0,
1 0, 7, 13, 21, 30, 40, 51, 63, 76, 90,106, 0, 0, 0,
1 0, 7, 14, 22, 31, 41, 53, 65, 79, 93,109,125,147, 0,
1 0, 7, 14, 22, 32, 43, 54, 67, 81, 96,112,129,147, 0,
1 0, 8, 15, 23, 33, 44, 56, 70, 84, 99,115,133,151,171,
1 0, 8, 15, 24, 34, 46, 58, 72, 86,102,119,137,155, 0,
1 0, 8, 16, 25, 36, 47, 60, 74, 89,105,122,140, 0, 0,
1 0, 8, 16, 26, 37, 49, 62, 76, 92,108,125, 0, 0, 0,
1 3, 9, 17, 27, 38, 50, 64, 78, 94,111, 0, 0, 0, 0,
1 3, 9, 18, 28, 39, 52, 66, 81, 97, 0, 0, 0, 0, 0,
1 3, 9, 18, 29, 40, 53, 68, 83, 0, 0, 0, 0, 0, 0,
1 3, 10, 19, 29, 42, 55, 70, 0, 0, 0, 0, 0, 0, 0,
1 3, 10, 19, 30, 43, 57, 0, 0, 0, 0, 0, 0, 0, 0,
1 3, 10, 20, 31, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 3, 11, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 3, 11, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 4, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPMN'
ISUBN2='N2 '
C
IERROR='NO'
C
N=(-99)
C
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MNN2')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMNN2--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,53)NUMVAR
53 FORMAT('NUMVAR = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N1,N2
55 FORMAT('N1,N2 = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MAX(N1,N2)
WRITE(ICOUT,57)I,Y1(I),Y2(I)
57 FORMAT('I,Y1(I),Y2(I) = ',I8,2E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
90 CONTINUE
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N1.GE.1)GOTO1119
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN DPMNN2--THE NUMBER OF OBSERVATIONS ',
1'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)N1
1112 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1119 CONTINUE
C
IF(N1.EQ.1)GOTO1120
GOTO1129
1120 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)
1121 FORMAT('***** NOTE FROM DPMNN2--VARIABLE 1 ',
1'HAS ONLY 1 ELEMENT')
CALL DPWRST('XXX','WRIT')
GOTO9000
1129 CONTINUE
C
HOLD=Y1(1)
DO1135I=2,N1
IF(Y1(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)HOLD
1131 FORMAT('***** NOTE FROM DPMNN2--VARIABLE 1 ',
1'HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
IF(N2.GE.1)GOTO1219
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1211)
1211 FORMAT('***** ERROR IN DPMNN2--THE NUMBER OF OBSERVATIONS ',
1'FOR VARIABLE 2 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1212)N2
1212 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1219 CONTINUE
C
IF(N2.EQ.1)GOTO1220
GOTO1229
1220 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1221)
1221 FORMAT('***** NOTE FROM DPMNN2--VARIABLE 2 ',
1'HAS ONLY 2 ELEMENT')
CALL DPWRST('XXX','WRIT')
GOTO9000
1229 CONTINUE
C
HOLD=Y2(1)
DO1235I=2,N1
IF(Y2(I).NE.HOLD)GOTO1239
1235 CONTINUE
1230 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1231)HOLD
1231 FORMAT('***** NOTE FROM DPMNN2--VARIABLE 2 ',
1'HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1239 CONTINUE
C
1290 CONTINUE
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAN2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IWRITE='OFF'
C
DO4200I=1,N1
YTEMP(I)=Y1(I)
4200 CONTINUE
NTEMP=N1
DO4210I=1,N2
NTEMP=NTEMP+1
YTEMP(NTEMP)=Y2(I)
4210 CONTINUE
CALL RANK(YTEMP,NTEMP,IWRITE,YRANK,IBUGA3,IERROR)
C
W1=0.0
W2=0.0
DO4300I=1,N1
W1=W1+YRANK(I)
4300 CONTINUE
DO4310I=N1+1,NTEMP
W2=W2+YRANK(I)
4310 CONTINUE
C
AN1=REAL(N1)
AN2=REAL(N2)
IF(N1.EQ.N2)THEN
U1=W1
U2=W2
ELSEIF(N1.LT.N2)THEN
WADJ=AN1*(AN1+AN2+1.0) - W1
U1=W1
U2=WADJ
ELSEIF(N1.GT.N2)THEN
WADJ=AN1*(AN1+AN2+1.0) - W2
U1=WADJ
U2=W2
ENDIF
W=MIN(U1,U2)
STATVA=W
U=W
C
AMEAN=AN1*(AN1+AN2+1.0)/2.0
ASD=SQRT(MAX(AN1,AN2)*AMEAN/6.0)
C
NMAX=MAX(N1,N2)
NMIN=MIN(N1,N2)
STTCD1=0.0
STTCD2=0.0
STTCD3=0.0
IF(NTEMP.GT.30)THEN
CALL NORCDF((ABS(W-AMEAN) - 0.5)/ASD,STTCD2)
CCCCC CALL NORCDF((U1-AMEAN)/ASD,STTCD1)
CCCCC CALL NORCDF((U2-AMEAN)/ASD,STTCD3)
ENDIF
C
ICONC1='REJECT'
ICONC2='REJECT'
ICONC3='REJECT'
C
IF(NTEMP.GT.30)THEN
CALL NORPPF(.050,CUTL90)
CUTL90=AMEAN + ASD*CUTL90
CALL NORPPF(.950,CUTU90)
CUTU90=AMEAN + ASD*CUTU90
CALL NORPPF(.025,CUTL95)
CUTL95=AMEAN + ASD*CUTL95
CALL NORPPF(.975,CUTU95)
CUTU95=AMEAN + ASD*CUTU95
CALL NORPPF(.005,CUTL99)
CUTL99=AMEAN + ASD*CUTL99
CALL NORPPF(.995,CUTU99)
CUTU99=AMEAN + ASD*CUTU99
ELSE
CUTL90=-1.0
CUTU90=-1.0
CUTL95=C2VL05(3+NMAX,1+NMIN)
CUTU95=C2VL05(3+NMAX,1+NMIN)
CUTL99=C2VL01(3+NMAX,1+NMIN)
CUTU99=C2VL01(3+NMAX,1+NMIN)
ENDIF
C
IF(NMAX.GT.30)THEN
CCCCC IF(STTCD2.GT.0.025.AND.STTCD2.LT.0.975)ICONC2='ACCEPT'
IF(STTCD2.LE.0.025.OR.STTCD2.GE.0.975)ICONC2='ACCEPT'
CCCCC IF(STTCD1.LT.0.950)ICONC1='ACCEPT'
CCCCC IF(STTCD3.LT.0.950)ICONC3='ACCEPT'
ELSE
CCCCC IF(U.GT.C2VL05(NMAX-3,NMIN-1))ICONC2='ACCEPT'
IF(U.LE.C2VL05(NMAX-3,NMIN-1))ICONC2='ACCEPT'
ENDIF
C
C ****************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR A 2-SAMPLE RANK SUM TEST **
C ****************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'OFF')GOTO4290
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(
1' MANN WHITNEY RANK SUM TEST')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4212)
4212 FORMAT(
1' (2-SAMPLE)')
CALL DPWRST('XXX','WRIT')
IF(D0.EQ.0.0)THEN
WRITE(ICOUT,4213)
4213 FORMAT('NULL HYPOTHESIS UNDER TEST--',
1 'POPULATION MEANS MU1 = MU2')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4215)D0
4215 FORMAT('NULL HYPOTHESIS UNDER TEST--',
1 'POPULATION MEANS MU1 - MU2 = ',G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4220)N1
4220 FORMAT('SAMPLE SIZE FOR VARIABLE 1 = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N2
4221 FORMAT('SAMPLE SIZE FOR VARIABLE 2 = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4202)
4202 FORMAT('BEFORE SAMPLE SIZE ADJUSTMENT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)W1
4222 FORMAT(' RANK SUM FOR VARIABLE 1 = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)W2
4223 FORMAT(' RANK SUM FOR VARIABLE 2 = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4204)
4204 FORMAT('AFTER SAMPLE SIZE ADJUSTMENT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)U1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)U2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)W
4225 FORMAT('RANK SUM TEST STATITIC (U) = ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(NTEMP.GE.30)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4226)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4228)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)(U-AMEAN)/ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4230)(U1-AMEAN)/ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)(U2-AMEAN)/ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4232)STTCD2
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4233)STTCD1
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4235)STTCD3
CCCCC CALL DPWRST('XXX','WRIT')
ENDIF
4227 FORMAT('NORMAL APPROXIMATIONS (IF NMAX > 20)')
4226 FORMAT('MEAN OF RANK SUM STATISTIC = ',G15.7)
4228 FORMAT('SD OF RANK SUM STATISTIC = ',G15.7)
4229 FORMAT('NORMAL APPROXIMATION = (U - MEAN)/SD = ',G15.7)
4230 FORMAT('NORMAL APPROXIMATION = (U1 - MEAN)/SD = ',G15.7)
4231 FORMAT('NORMAL APPROXIMATION = (U2 - MEAN)/SD = ',G15.7)
4232 FORMAT('RANK SUM STATISTIC CDF VALUE (U) = ',G15.7)
4233 FORMAT('RANK SUM STATISTIC CDF VALUE (U1) = ',G15.7)
4235 FORMAT('RANK SUM STATISTIC CDF VALUE (U2) = ',G15.7)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4258)
4258 FORMAT(' ALTERNATIVE- ALTERNATIVE-')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4259)
4259 FORMAT('ALTERNATIVE- HYPOTHESIS HYPOTHESIS')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4261)
4261 FORMAT('HYPOTHESIS ACCEPTANCE INTERVAL CONCLUSION')
CALL DPWRST('XXX','WRIT')
IF(NTEMP.GE.30)THEN
CCCCC WRITE(ICOUT,4262)ICONC1
C4262 FORMAT('MU1 < MU2 (U1) (0.000,0.950) ',A6)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4263)ICONC2
4263 FORMAT('MU1 <> MU2 (U) (0.,0.025) (0.975,1) ',A6)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4264)ICONC3
C4264 FORMAT('MU1 > MU2 (U2) (0.000,0.950) ',A6)
CCCCC CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4273)C2VL05(NMAX-3,NMIN-1),ICONC2
4273 FORMAT('MU1 <> MU2 U > ',G15.7, ' ',A6)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
4290 CONTINUE
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MAN2')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMNN2--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9013)AMU0,D0,NUMVAR,ILOCV
9013 FORMAT('AMU0,D0,NUMVAR,ILOCV = ',2E15.7,I8,I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N1
9015 FORMAT('N1 = ',I8)
CALL DPWRST('XXX','WRIT')
DO9016I=1,N1
WRITE(ICOUT,9017)I,Y1(I)
9017 FORMAT('I,Y1(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
9016 CONTINUE
WRITE(ICOUT,9025)N2
9025 FORMAT('N2 = ',I8)
CALL DPWRST('XXX','WRIT')
DO9026I=1,N2
WRITE(ICOUT,9027)I,Y2(I)
9027 FORMAT('I,Y2(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
9026 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMMEA(NPTS,NLAB,
1ASM,ASD2,SET2,SET2K1,SET2K2,
1DLOWT1,DHIGT1,
1IWRITE,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--IMPLEMENT MEAN OF MEANS APPROACH TO CONSENSUS MEANS
C PRINTING--YES
C SUBROUTINES NEEDED--TPPF
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2899
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/3
C ORIGINAL VERSION--MARCH 2006. EXTRACTED FROM DPMAN2 ROUTINE
C UPDATED --OCTOBER 2006. CALL LIST TO TPPF
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES--------------
C
IMPLICIT DOUBLE PRECISION (A-H, O-Z)
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 ISUBN0
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*20 IMETH
C
REAL APPF
REAL ASM
REAL ASD2
REAL SET2
REAL SET2K1
REAL SET2K2
C
C----------------------------------------------------------------
C
INCLUDE 'DPCOST.INC'
C
PARAMETER (MAXHED=50)
INTEGER IWIDTH(MAXHED)
INTEGER NUMDI2(MAXHED)
CHARACTER*8 ALIGN(MAXHED)
CHARACTER*8 VALIGN(MAXHED)
COMMON/HTML4/IWIDTH,NUMDI2,ALIGN,VALIGN
CHARACTER*45 IVALUE(MAXHED)
INTEGER NCHAR(MAXHED)
REAL AVALUE(MAXHED)
C
LOGICAL IFLAG1
LOGICAL IFLAG2
LOGICAL IFLAG3
C
CHARACTER*132 ITTEMP
CHARACTER*132 IHEAD
C
CHARACTER*4 IRTFMD
COMMON/COMRTF/IRTFMD
C
REAL CPUMIN
REAL CPUMAX
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT------------------------------------------------
C
IERROR='NO'
C
ISUBN1='DPMM'
ISUBN2='EA '
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MMEA')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMMEA--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)NPTS,NLAB,ASM,ASD2
52 FORMAT('NPTS,NLAB,ASM,ASD2 = ',2I8,2G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
SET2=ASD2/SQRT(REAL(NLAB))
SET2K1=SET2
SET2K2=2.0*SET2
IDF=NLAB-1
CALL TPPF(0.975,REAL(IDF),APPF)
DLOWT1=DBLE(ASM - APPF*SET2)
DHIGT1=DBLE(ASM + APPF*SET2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
WRITE(ICOUT,5107)
5107 FORMAT('')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5111)
5111 FORMAT('')
CALL DPWRST('XXX','WRIT')
C
5121 FORMAT(' ')
5123 FORMAT(' | ')
5127 FORMAT(' | ')
5126 FORMAT(' ')
5128 FORMAT(' | ')
5151 FORMAT(' ',I8)
5152 FORMAT(' ',F15.7)
5155 FORMAT(' ')
5191 FORMAT(' ')
5193 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5170)
5170 FORMAT(' 6. Method: Mean of Means')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5171)
5171 FORMAT(' ',
1 'Mean of Lab Means')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)ASM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5172)
5172 FORMAT(' ',
1 'Standard Deviation of Lab Means')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)ASD2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5173)
5173 FORMAT(' ',
1 'Standard Uncertainty (sd/sqrt(n)):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SET2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5174)
5174 FORMAT(' ',
1 'Standard Deviaton of Consensus Mean (sd/sqrt(n)):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SET2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5177)
5177 FORMAT(' ',
1 'Standard Uncertainty (k = 1):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SET2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5178)
5178 FORMAT(' ',
1 'Expanded Uncertainty (k = 2):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)2.0*SET2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5179)APPF
5179 FORMAT(' ',
1 'Expanded Uncertainty (k = ',F10.7,'):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)APPF*SET2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5181)
5181 FORMAT(' ',
1 'Degrees of Freedom:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)IDF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5182)
5182 FORMAT(' ',
1 't Percent Point Value (alpha = 0.05):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)APPF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5183)
5183 FORMAT(' ',
1 'Lower 95% (t-value) Confidence Limit:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)REAL(DLOWT1)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5184)
5184 FORMAT(' ',
1 'Upper 95% (t-value) Confidence Limit:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)REAL(DHIGT1)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5185)
5185 FORMAT(' ',
1 'Note: Mean of Means Best Usage:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5186)
5186 FORMAT(' ',
1 ' ',
1 'Any Number of Labs, but no Within Lab SD')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
CALL DPCONA(92,IBASLC)
C
8002 FORMAT(A1,'begin{table}')
8005 FORMAT(A1,'begin{center}')
8006 FORMAT(5X,A1,'begin{tabular} {lr}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8002)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8006)IBASLC
CALL DPWRST('XXX','WRIT')
C
8011 FORMAT(5X,'{',A1,'bf 6. Method: Mean of Means:} & ',
1 2X,A1,A1)
8012 FORMAT(5X,'Mean of Lab Means: & ',
1 F15.7,2X,A1,A1)
8013 FORMAT(5X,'Standard Deviation of Lab Means: & ',
1 F15.7,2X,A1,A1)
C
WRITE(ICOUT,8011)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8012)ASM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)ASD2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8018 FORMAT(5X,'Standard Uncertainty (sd/sqrt(n)): & ',
1 F15.7,2X,A1,A1)
8019 FORMAT(5X,'Standard Deviation of Consensus ',
1 'Mean (sd/sqrt(n)): & ',
1 F15.7,2X,A1,A1)
8020 FORMAT(5X,'Standard Uncertainty (k = 1): & ',
1 F15.7,2X,A1,A1)
8021 FORMAT(5X,'Expanded Uncertainty (k = 2): & ',
1 F15.7,2X,A1,A1)
8022 FORMAT(5X,'Expanded Uncertainty (k = ',F10.7,'): & ',
1 F15.7,2X,A1,A1)
WRITE(ICOUT,8018)SET2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8019)SET2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)SET2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)2.0*SET2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)APPF,APPF*SET2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8024 FORMAT(5X,'Degrees of Freedom: & ',
1 I8,2X,A1,A1)
8025 FORMAT(5X,'t Percent Point Value (alpha = 0.05): & ',
1 F10.7,2X,A1,A1)
8026 FORMAT(5X,'Lower 95',A1,'% (t-value) Confidence Interval: ',
1 ' & ',F15.7,2X,A1,A1)
8027 FORMAT(5X,'Upper 95',A1,'% (t-value) Confidence Interval: ',
1 ' & ',F15.7,2X,A1,A1)
8028 FORMAT(5X,'Note: Mean of Means Best Usage: & ',
1 2X,A1,A1)
8029 FORMAT(5X,' Any Number of Labs & ',
1 2X,A1,A1)
WRITE(ICOUT,8024)IDF,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)APPF,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)IBASLC,REAL(DLOWT1),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,REAL(DHIGT1),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8030 FORMAT(A1,'end{tabular}')
8031 FORMAT(A1,'end{center}')
8032 FORMAT(A1,'end{table}')
WRITE(ICOUT,8030)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
C
CALL DPCONA(92,IBASLC)
C
6191 FORMAT(A1,'f',I1)
IF(IRTFFF.EQ.'Courier New')THEN
ITEMP=1
ELSEIF(IRTFFF.EQ.'Lucida Console')THEN
ITEMP=8
ELSE
ITEMP=1
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
NCOL=4
IDEFPS=20
IFRST=IRTFPS*5500/IDEFPS
IINC1=IRTFPS*1540/IDEFPS
C
DO6105ISET1=1,NCOL
VALIGN(ISET1)='b'
ALIGN(ISET1)='r'
IF(NUMDI2(ISET1).LT.0.OR.NUMDI2(ISET1).GT.9)NUMDI2(ISET1)=7
6105 CONTINUE
ALIGN(1)='l'
NUMDI2(1)=0
NUMDI2(2)=7
C
IWIDTH(1)=IFRST
IWIDTH(2)=IWIDTH(1) + IINC1
C
ITTEMP=' '
NCTEMP=0
NHEAD=0
C
CALL DPRTF1(ITTEMP,NCTEMP,IHEAD,NHEAD)
C
NHEAD=2
IFLAG1=.FALSE.
IFLAG2=.FALSE.
C
IVALUE(1)=' b 6. Method: Mean of Means'
IVALUE(1)(1:1)=IBASLC
NCHAR(1)=27
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IFLAG1=.FALSE.
NHEAD=1
C
NCHAR(1)=21
IVALUE(1)=' Mean of Lab Means:'
AVALUE(2)=ASM
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=35
IVALUE(1)=' Standard Deviation of Lab Means:'
AVALUE(2)=ASD2
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=37
IVALUE(1)=' Standard Uncertainty (sd/sqrt(n)):'
AVALUE(2)=SET2
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=37
IVALUE(1)=' SD of Consensus Mean (sd/sqrt(n)):'
AVALUE(2)=SET2
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=32
IVALUE(1)=' Standard Uncertainty (k = 1):'
AVALUE(2)=SET2
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=32
IVALUE(1)=' Expanded Uncertainty (k = 2):'
AVALUE(2)=2.0*SET2
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=41
IVALUE(1)(1:29)=' Expanded Uncertainty (k = '
WRITE(IVALUE(1)(30:39),'(F10.7)')APPF
IVALUE(1)(40:41)='):'
AVALUE(2)=APPF*SET2
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=22
IVALUE(1)=' Degrees of Freedom:'
AVALUE(2)=REAL(IDF)
NJUNK=NUMDI2(2)
NUMDI2(2)=0
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
NUMDI2(2)=NJUNK
C
NCHAR(1)=34
IVALUE(1)=' t Percent Point Value of 0.975:'
AVALUE(2)=APPF
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=39
IVALUE(1)=' Lower 95% (normal) Confidence Limit:'
AVALUE(2)=REAL(DLOWT1)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=39
IVALUE(1)=' Upper 95% (normal) Confidence Limit:'
AVALUE(2)=REAL(DHIGT1)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
IVALUE(1)=' Note: Mean of Means Best Usage:'
NCHAR(1)=34
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IVALUE(1)=' Any Number of Labs:'
NCHAR(1)=28
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
CALL DPRTF6(NHEAD)
IFLAG1=.TRUE.
IFLAG2=.FALSE.
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'WOML')THEN
ELSE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4001)
4001 FORMAT('6. Method: Mean of Means')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4002)ASM
4002 FORMAT(' Mean of Lab Means: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4003)ASD2
4003 FORMAT(' Standard Deviation of Lab Means: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4011)SET2
4011 FORMAT(' Standard Uncertainty (sd/sqrt(n)): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4012)SET2
4012 FORMAT(' SD of Consensus Mean (sd/sqrt(n)): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4013)SET2
4013 FORMAT(' Standard Uncertainty (k = 1): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4014)2.0*SET2
4014 FORMAT(' Expanded Uncertainty (k = 2): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4015)APPF,APPF*SET2
4015 FORMAT(' Expanded Uncertainty (k = ',F10.7,'): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4020)IDF
4020 FORMAT(' Degrees of Freedom: ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4021)APPF
4021 FORMAT(' t Percent Point Value (alpha = 0.05): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4022)REAL(DLOWT1)
4022 FORMAT(' Lower 95% (t-value) Confidence Limit: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4023)REAL(DHIGT1)
4023 FORMAT(' Upper 95% (t-value) Confidence Limit: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4031)
4031 FORMAT(' Note: Mean of Means Best Usage:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4032)
4032 FORMAT(' Any Number of Labs')
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MMEA')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMMEA--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IERROR
9012 FORMAT('IERROR = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)NPTS,NLAB
9013 FORMAT('NPTS,NLAB = ',2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)SET2
9014 FORMAT('SET2 = ',G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)DLOWT1,DHIGT1
9015 FORMAT('DLOWT1,DHIGT1 = ',2G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
RETURN
END
SUBROUTINE DPMMPL(Y1,Y2,Y3,NPTS,NLAB,
1X,T,N,
1XMMPS,S2BMMP,SEMMP,SEMMP1,SEMMP2,
1DLOWMM,DHIGMM,
1IWRITE,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--IMPLEMENT MODIFIED MANDEL-PAULE APPROACH TO
C CONSENSUS MEANS
C WRITTEN BY--CODE FOR MODIFIED MANDEL-PAULE PROVIDED BY
C MARK VANGEL.
C PRINTING--YES
C SUBROUTINES NEEDED--MPSUB
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2899
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/3
C ORIGINAL VERSION--MARCH 2006. EXTRACTED FROM DPMAN2 ROUTINE
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES--------------
C
IMPLICIT DOUBLE PRECISION (A-H, O-Z)
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 ISUBN0
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 IPTEMP
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*20 IMETH
C
REAL APPF
REAL XMP
REAL XMMPS
REAL S2BMP
REAL S2BMMP
REAL SEMMP
REAL SEMP
REAL SEMMP1
REAL SEMMP2
C
C----------------------------------------------------------------
C
REAL Y1(*)
REAL Y2(*)
REAL Y3(*)
C
INTEGER N(*)
C
DOUBLE PRECISION X(*)
DOUBLE PRECISION T(*)
C
COMMON /MPCOM/ T0, T1
C
INCLUDE 'DPCOST.INC'
C
PARAMETER (MAXHED=50)
INTEGER IWIDTH(MAXHED)
INTEGER NUMDI2(MAXHED)
CHARACTER*8 ALIGN(MAXHED)
CHARACTER*8 VALIGN(MAXHED)
COMMON/HTML4/IWIDTH,NUMDI2,ALIGN,VALIGN
CHARACTER*45 IVALUE(MAXHED)
INTEGER NCHAR(MAXHED)
REAL AVALUE(MAXHED)
C
LOGICAL IFLAG1
LOGICAL IFLAG2
LOGICAL IFLAG3
C
CHARACTER*132 ITTEMP
CHARACTER*132 IHEAD
C
CHARACTER*4 IRTFMD
COMMON/COMRTF/IRTFMD
C
REAL CPUMIN
REAL CPUMAX
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT------------------------------------------------
C
IERROR='NO'
C
ISUBN1='DPMM'
ISUBN2='PL '
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MMPL')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMMPL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)NPTS,NLAB
52 FORMAT('NPTS,NLAB = ',2I8)
CALL DPWRST('XXX','BUG ')
DO55I=1,NPTS
WRITE(ICOUT,56)I,Y1(I),Y2(I),Y3(I)
56 FORMAT('I,Y1(I),Y2(I),Y3(I) = ',I8,3G15.7)
CALL DPWRST('XXX','BUG ')
55 CONTINUE
ENDIF
C
IMANPA='MODI'
CALL MPSUB (NLAB, N, X, T, DXMP, DS2BMP, IMANPA,IBUGA3)
C
IF(IBUGA3.EQ.'ON')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
DO102J=1,NLAB
WRITE(ICOUT,101)J,T(J)
101 FORMAT('AFTER MPSUB: J,T(J)=',I8,G15.7)
CALL DPWRST('XXX','WRIT')
102 CONTINUE
ENDIF
C
XMP=REAL(DXMP)
S2BMP=REAL(DS2BMP)
C
CALL NORPPF(0.975,APPF)
XMPS=REAL((T1-T0)*XMP + T0)
S2BMPS=REAL(((T1-T0)**2)*S2BMP)
DSUM1=0.0D0
DSUM2=0.0D0
DO340J=1,NLAB
TI=DBLE(S2BMPS) + ((T1-T0)**2)*T(J)
XJ=(T1-T0)*X(J) + T0
DSUM1=DSUM1 + (XJ-DBLE(XMPS))**2/(TI**2)
DSUM2=DSUM2 + 1.0D0/TI
340 CONTINUE
STDERR=SQRT(DSUM1)/DSUM2
SEMP=REAL(STDERR)
SEMMP1=SEMP
SEMMP2=2.0*SEMP
DLOWER=XMPS - DBLE(APPF)*STDERR
DUPPER=XMPS + DBLE(APPF)*STDERR
DLOWMM=DLOWER
DHIGMM=DUPPER
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
WRITE(ICOUT,5107)
5107 FORMAT('')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5111)
5111 FORMAT('')
CALL DPWRST('XXX','WRIT')
C
5121 FORMAT(' ')
5123 FORMAT(' | ')
5127 FORMAT(' | ')
5126 FORMAT(' ')
5128 FORMAT(' | ')
5151 FORMAT(' ',I8)
5152 FORMAT(' ',F15.7)
5155 FORMAT(' ')
5191 FORMAT(' ')
5193 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5170)
5170 FORMAT(' 2. Method: Modified Mandel-Paule:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5171)
5171 FORMAT(' ',
1 'Estimate of (unscaled) Consensus Mean:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)REAL(XMPS)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5172)
5172 FORMAT(' ',
1 'Estimate of (scaled) Consensus Mean:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)REAL(XMP)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5173)
5173 FORMAT(' ',
1 'Between Lab Variance (unscaled):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)S2BMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5174)
5174 FORMAT(' ',
1 'Between Lab SD (unscaled):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SQRT(S2BMP)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5175)
5175 FORMAT(' ',
1 'Between Lab Variance (scaled):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)S2BMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5176)
5176 FORMAT(' ',
1 'Standard Deviation of Consensus Mean:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5177)
5177 FORMAT(' ',
1 'Standard Uncertainty (k = 1):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5178)
5178 FORMAT(' ',
1 'Expanded Uncertainty (k = 2):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)2.0*SEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5179)APPF
5179 FORMAT(' ',
1 'Expanded Uncertainty (k = ',F10.7,'):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)APPF*SEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5180)
5180 FORMAT(' ',
1 'Normal ppf of 0.975:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)APPF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5181)
5181 FORMAT(' ',
1 'Lower 95% (norma) Confidence Limit:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)REAL(DLOWER)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5182)
5182 FORMAT(' ',
1 'Upper 95% (normal) Confidence Limit:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)REAL(DUPPER)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5183)
5183 FORMAT(' ',
1 'Note: Modified Mandel-Paule Best Usage:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5184)
5184 FORMAT(' ',
1 ' ',
1 '6 or More Labs')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
CALL DPCONA(92,IBASLC)
C
8002 FORMAT(A1,'begin{table}')
8005 FORMAT(A1,'begin{center}')
8006 FORMAT(5X,A1,'begin{tabular} {lr}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8002)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8006)IBASLC
CALL DPWRST('XXX','WRIT')
C
8011 FORMAT(5X,'{',A1,'bf 2. Method: Modified Mandel-Paule:} & ',
1 2X,A1,A1)
8012 FORMAT(5X,'Estimate of (unscaled) Consensus Mean: & ',
1 F15.7,2X,A1,A1)
8013 FORMAT(5X,'Estimate of (scaled) Consensus Mean: & ',
1 F15.7,2X,A1,A1)
C
WRITE(ICOUT,8011)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8012)REAL(XMPS),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)REAL(XMP),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8016 FORMAT(5X,'Between Lab Variance (unscaled): & ',
1 F15.7,2X,A1,A1)
8017 FORMAT(5X,'Between Lab SD (unscaled): & ',
1 F15.7,2X,A1,A1)
8018 FORMAT(5X,'Between Lab Variance (scaled): & ',
1 F15.7,2X,A1,A1)
8019 FORMAT(5X,'Standard Deviation of Consensus Mean: & ',
1 F15.7,2X,A1,A1)
8020 FORMAT(5X,'Standard Uncertainty (k = 1): & ',
1 F15.7,2X,A1,A1)
8021 FORMAT(5X,'Expanded Uncertainty (k = 2): & ',
1 F15.7,2X,A1,A1)
8022 FORMAT(5X,'Expanded Uncertainty (k = ',F10.7,'): & ',
1 F15.7,2X,A1,A1)
WRITE(ICOUT,8016)S2BMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8017)SQRT(S2BMP),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8018)REAL(S2BMP),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8019)SEMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)SEMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)2.0*SEMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)APPF,APPF*SEMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8025 FORMAT(5X,'Normal PPF of 0.975: & ',
1 F10.7,2X,A1,A1)
8026 FORMAT(5X,'Lower 95',A1,'% (normal) Confidence Interval: & ',
1 F15.7,2X,A1,A1)
8027 FORMAT(5X,'Upper 95',A1,'% (normal) Confidence Interval: & ',
1 F15.7,2X,A1,A1)
8028 FORMAT(5X,'Note: Modified Mandel-Paule Best Usage: & ',
1 2X,A1,A1)
8029 FORMAT(5X,' 6 or More Labs & ',
1 2X,A1,A1)
WRITE(ICOUT,8025)APPF,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)IBASLC,REAL(DLOWER),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,REAL(DUPPER),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8030 FORMAT(A1,'end{tabular}')
8031 FORMAT(A1,'end{center}')
8032 FORMAT(A1,'end{table}')
WRITE(ICOUT,8030)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
C
CALL DPCONA(92,IBASLC)
C
6191 FORMAT(A1,'f',I1)
IF(IRTFFF.EQ.'Courier New')THEN
ITEMP=1
ELSEIF(IRTFFF.EQ.'Lucida Console')THEN
ITEMP=8
ELSE
ITEMP=1
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
NCOL=4
IDEFPS=20
IFRST=IRTFPS*5500/IDEFPS
IINC1=IRTFPS*1540/IDEFPS
C
DO6105ISET1=1,NCOL
VALIGN(ISET1)='b'
ALIGN(ISET1)='r'
IF(NUMDI2(ISET1).LT.0.OR.NUMDI2(ISET1).GT.9)NUMDI2(ISET1)=7
6105 CONTINUE
ALIGN(1)='l'
NUMDI2(1)=0
NUMDI2(2)=7
C
IWIDTH(1)=IFRST
IWIDTH(2)=IWIDTH(1) + IINC1
C
ITTEMP=' '
NCTEMP=0
NHEAD=0
C
CALL DPRTF1(ITTEMP,NCTEMP,IHEAD,NHEAD)
C
NHEAD=2
IFLAG1=.FALSE.
IFLAG2=.FALSE.
C
IVALUE(1)=' b 2. Method: Modified Mandel-Paule'
IVALUE(1)(1:1)=IBASLC
NCHAR(1)=35
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IFLAG1=.FALSE.
NHEAD=1
C
NCHAR(1)=41
IVALUE(1)=' Estimate of (unscaled) Consensus Mean:'
AVALUE(2)=XMPS
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=39
IVALUE(1)=' Estimate of (scaled) Consensus Mean:'
AVALUE(2)=XMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=35
IVALUE(1)=' Between Lab Variance (unscaled):'
AVALUE(2)=S2BMPS
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=29
IVALUE(1)=' Between Lab SD (unscaled):'
AVALUE(2)=SQRT(S2BMPS)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=33
IVALUE(1)=' Between Lab Variance (scaled):'
AVALUE(2)=S2BMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=40
IVALUE(1)=' Standard Deviation of Consensus Mean:'
AVALUE(2)=SEMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=32
IVALUE(1)=' Standard Uncertainty (k = 1):'
AVALUE(2)=SEMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=32
IVALUE(1)=' Expanded Uncertainty (k = 2):'
AVALUE(2)=2.0*SEMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=41
IVALUE(1)(1:29)=' Expanded Uncertainty (k = '
WRITE(IVALUE(1)(30:39),'(F10.7)')APPF
IVALUE(1)(40:41)='):'
AVALUE(2)=APPF*SEMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=23
IVALUE(1)=' Normal PPF of 0.975:'
AVALUE(2)=APPF
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=39
IVALUE(1)=' Lower 95% (normal) Confidence Limit:'
AVALUE(2)=REAL(DLOWER)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=39
IVALUE(1)=' Upper 95% (normal) Confidence Limit:'
AVALUE(2)=REAL(DUPPER)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
IVALUE(1)=' Note: Modified Mandel-Paule Best Usage:'
NCHAR(1)=42
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IVALUE(1)=' 6 or More Labs:'
NCHAR(1)=24
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
CALL DPRTF6(NHEAD)
IFLAG1=.TRUE.
IFLAG2=.FALSE.
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'WOML')THEN
ELSE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4001)
4001 FORMAT('2. Method: Modified Mandel-Paule')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4002)XMPS
4002 FORMAT(' Estimate of (unscaled) Consensus Mean: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4003)REAL(XMP)
4003 FORMAT(' Estimate of (scaled) Consensus Mean: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4006)S2BMPS
4006 FORMAT(' Between Lab Variance (unscaled): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4007)SQRT(S2BMPS)
4007 FORMAT(' Between Lab SD (unscaled): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4008)REAL(S2BMP)
4008 FORMAT(' Between Lab Variance (scaled): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4011)SEMP
4011 FORMAT(' Standard Deviation of Consensus Mean: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4012)SEMP
4012 FORMAT(' Standard Uncertainty (k = 1): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4013)2.0*SEMP
4013 FORMAT(' Expanded Uncertainty (k = 2): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4014)APPF,APPF*SEMP
4014 FORMAT(' Expanded Uncertainty (k = ',F10.7,'): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4021)APPF
4021 FORMAT(' Normal PPF of 0.975: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4022)REAL(DLOWER)
4022 FORMAT(' Lower 95% (normal) Confidence Limit: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4023)REAL(DUPPER)
4023 FORMAT(' Upper 95% (normal) Confidence Limit: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4031)
4031 FORMAT(' Note: Modified Mandel-Paule Best Usage:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4032)
4032 FORMAT(' 6 or More Labs')
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
XMMPS=REAL(XMPS)
S2BMMP=REAL(S2BMPS)
SEMMP=REAL(STDERR)
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MMPL')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMMPL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IERROR
9012 FORMAT('IERROR = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)NPTS,NLAB
9013 FORMAT('NPTS,NLAB = ',2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)XMMPS,S2BMMP,SEMMP
9014 FORMAT('XMMPS,S2BMMP,SEMMP = ',3G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)DLOWER,DUPPER
9015 FORMAT('DLOWER,DUPPER = ',2G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
RETURN
END
SUBROUTINE DPMNPL(Y1,Y2,Y3,NPTS,NLAB,
1X,T,N,
1XMPS,S2BMPS,SEMP,SEMPK1,SEMPK2,
1DLOWMP,DHIGMP,STXMU,ST2SB,
1IWRITE,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--IMPLEMENT MANDEL-PAULE APPROACH TO CONSENSUS MEANS
C WRITTEN BY--CODE FOR MANDEL-PAULE PROVIDED BY MARK VANGEL.
C PRINTING--YES
C SUBROUTINES NEEDED--MPSUB
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-921-3651
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/3
C ORIGINAL VERSION--MARCH 2006. EXTRACTED FROM DPMAN2 ROUTINE
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES--------------
C
IMPLICIT DOUBLE PRECISION (A-H, O-Z)
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 ISUBN0
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 IPTEMP
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*20 IMETH
C
REAL APPF
REAL XMP
REAL XMPS
REAL S2BMP
REAL S2BMPS
REAL SEMP
REAL SEMPK1
REAL SEMPK2
C
C----------------------------------------------------------------
C
REAL Y1(*)
REAL Y2(*)
REAL Y3(*)
C
INTEGER N(*)
C
DOUBLE PRECISION X(*)
DOUBLE PRECISION T(*)
C
COMMON /MPCOM/ T0, T1
C
INCLUDE 'DPCOST.INC'
C
PARAMETER (MAXHED=50)
INTEGER IWIDTH(MAXHED)
INTEGER NUMDI2(MAXHED)
CHARACTER*8 ALIGN(MAXHED)
CHARACTER*8 VALIGN(MAXHED)
COMMON/HTML4/IWIDTH,NUMDI2,ALIGN,VALIGN
CHARACTER*45 IVALUE(MAXHED)
INTEGER NCHAR(MAXHED)
REAL AVALUE(MAXHED)
C
LOGICAL IFLAG1
LOGICAL IFLAG2
LOGICAL IFLAG3
C
CHARACTER*132 ITTEMP
CHARACTER*132 IHEAD
C
CHARACTER*4 IRTFMD
COMMON/COMRTF/IRTFMD
C
REAL CPUMIN
REAL CPUMAX
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT------------------------------------------------
C
IERROR='NO'
C
ISUBN1='DPMN'
ISUBN2='PL '
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MNPL')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMNPL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)NPTS,NLAB
52 FORMAT('NPTS,NLAB = ',2I8)
CALL DPWRST('XXX','BUG ')
DO55I=1,NPTS
WRITE(ICOUT,56)I,Y1(I),Y2(I),Y3(I)
56 FORMAT('I,Y1(I),Y2(I),Y3(I) = ',I8,3G15.7)
CALL DPWRST('XXX','BUG ')
55 CONTINUE
ENDIF
C
IMANPA='REGU'
CALL MPSUB (NLAB, N, X, T, DXMP, DS2BMP, IMANPA,IBUGA3)
C
IF(IBUGA3.EQ.'ON')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
DO102J=1,NLAB
WRITE(ICOUT,101)J,T(J)
101 FORMAT('AFTER MPSUB: J,T(J)=',I8,G15.7)
CALL DPWRST('XXX','WRIT')
102 CONTINUE
ENDIF
C
XMP=REAL(DXMP)
S2BMP=REAL(DS2BMP)
C
CALL NORPPF(0.975,APPF)
XMPS=REAL((T1-T0)*XMP + T0)
S2BMPS=REAL(((T1-T0)**2)*S2BMP)
DSUM1=0.0D0
DSUM2=0.0D0
DO109J=1,NLAB
TI=DBLE(S2BMPS) + ((T1-T0)**2)*T(J)
XJ=(T1-T0)*X(J) + T0
DSUM1=DSUM1 + (XJ-DBLE(XMPS))**2/(TI**2)
DSUM2=DSUM2 + 1.0D0/TI
109 CONTINUE
C
STDERR=SQRT(DSUM1)/DSUM2
SEMP=REAL(STDERR)
SEMPK1=SEMP
SEMPK2=2.0*SEMP
DLOWER=XMPS - DBLE(APPF)*STDERR
DUPPER=XMPS + DBLE(APPF)*STDERR
DLOWMP=DLOWER
DHIGMP=DUPPER
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
WRITE(ICOUT,5107)
5107 FORMAT('')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5111)
5111 FORMAT('')
CALL DPWRST('XXX','WRIT')
C
5121 FORMAT(' ')
5123 FORMAT(' | ')
5127 FORMAT(' | ')
5126 FORMAT(' ')
5128 FORMAT(' | ')
5151 FORMAT(' ',I8)
5152 FORMAT(' ',F15.7)
5155 FORMAT(' ')
5191 FORMAT(' ')
5193 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5170)
5170 FORMAT(' 1. Method: Mandel-Paule:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5171)
5171 FORMAT(' ',
1 'Estimate of (unscaled) Consensus Mean:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)XMPS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5172)
5172 FORMAT(' ',
1 'Estimate of (scaled) Consensus Mean:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)REAL(XMP)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5173)
5173 FORMAT(' ',
1 'Between Lab Variance (unscaled):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)S2BMPS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5174)
5174 FORMAT(' ',
1 'Between Lab SD (unscaled):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SQRT(S2BMPS)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5175)
5175 FORMAT(' ',
1 'Between Lab Variance (scaled):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)S2BMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5176)
5176 FORMAT(' ',
1 'Standard Deviation of Consensus Mean:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5177)
5177 FORMAT(' ',
1 'Standard Uncertainty (k = 1):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)SEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5178)
5178 FORMAT(' ',
1 'Expanded Uncertainty (k = 2):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)2.0*SEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5179)APPF
5179 FORMAT(' ',
1 'Expanded Uncertainty (k = ',F10.7,'):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)APPF*SEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5180)
5180 FORMAT(' ',
1 'Normal ppf of 0.975:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)APPF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5181)
5181 FORMAT(' ',
1 'Lower 95% (normal) Confidence Limit:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)REAL(DLOWER)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5182)
5182 FORMAT(' ',
1 'Upper 95% (normal) Confidence Limit:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5152)REAL(DUPPER)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5183)
5183 FORMAT(' ',
1 'Note: Mandel-Paule Best Usage:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5184)
5184 FORMAT(' ',
1 ' ',
1 '6 or More Labs')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5126)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5128)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
CALL DPCONA(92,IBASLC)
C
8002 FORMAT(A1,'begin{table}')
8005 FORMAT(A1,'begin{center}')
8006 FORMAT(5X,A1,'begin{tabular} {lr}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8002)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8006)IBASLC
CALL DPWRST('XXX','WRIT')
C
8011 FORMAT(5X,'{',A1,'bf 1. Method: Mandel-Paule:} & ',2X,A1,A1)
8012 FORMAT(5X,'Estimate of (unscaled) Consensus Mean: & ',
1 F15.7,2X,A1,A1)
8013 FORMAT(5X,'Estimate of (scaled) Consensus Mean: & ',
1 F15.7,2X,A1,A1)
C
WRITE(ICOUT,8011)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8012)XMPS,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)REAL(XMP),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8016 FORMAT(5X,'Between Lab Variance (unscaled): & ',
1 F15.7,2X,A1,A1)
8017 FORMAT(5X,'Between Lab SD (unscaled): & ',
1 F15.7,2X,A1,A1)
8018 FORMAT(5X,'Between Lab Variance (scaled): & ',
1 F15.7,2X,A1,A1)
8019 FORMAT(5X,'Standard Deviation of Consensus Mean: & ',
1 F15.7,2X,A1,A1)
8020 FORMAT(5X,'Standard Uncertainty (k = 1): & ',
1 F15.7,2X,A1,A1)
8021 FORMAT(5X,'Expanded Uncertainty (k = 2): & ',
1 F15.7,2X,A1,A1)
8022 FORMAT(5X,'Expanded Uncertainty (k = ',F10.7,'): & ',
1 F15.7,2X,A1,A1)
WRITE(ICOUT,8016)S2BMPS,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8017)SQRT(S2BMPS),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8018)REAL(S2BMP),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8019)SEMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)SEMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)2.0*SEMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)APPF,APPF*SEMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8025 FORMAT(5X,'Normal PPF of 0.975: & ',
1 F10.7,2X,A1,A1)
8026 FORMAT(5X,'Lower 95',A1,'% (normal) Confidence Interval: & ',
1 F15.7,2X,A1,A1)
8027 FORMAT(5X,'Upper 95',A1,'% (normal) Confidence Interval: & ',
1 F15.7,2X,A1,A1)
8028 FORMAT(5X,'Note: Mandel-Paule Best Usage: & ',
1 2X,A1,A1)
8029 FORMAT(5X,' 6 or More Labs & ',
1 2X,A1,A1)
WRITE(ICOUT,8025)APPF,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)IBASLC,REAL(DLOWER),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,REAL(DUPPER),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
8030 FORMAT(A1,'end{tabular}')
8031 FORMAT(A1,'end{center}')
8032 FORMAT(A1,'end{table}')
WRITE(ICOUT,8030)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
C
CALL DPCONA(92,IBASLC)
C
6191 FORMAT(A1,'f',I1)
IF(IRTFFF.EQ.'Courier New')THEN
ITEMP=1
ELSEIF(IRTFFF.EQ.'Lucida Console')THEN
ITEMP=8
ELSE
ITEMP=1
ENDIF
WRITE(ICOUT,6191)IBASLC,ITEMP
CALL DPWRST(ICOUT,'WRIT')
C
NCOL=4
IDEFPS=20
IFRST=IRTFPS*5500/IDEFPS
IINC1=IRTFPS*1540/IDEFPS
C
DO6105ISET1=1,NCOL
VALIGN(ISET1)='b'
ALIGN(ISET1)='r'
IF(NUMDI2(ISET1).LT.0.OR.NUMDI2(ISET1).GT.9)NUMDI2(ISET1)=7
6105 CONTINUE
ALIGN(1)='l'
NUMDI2(1)=0
NUMDI2(2)=7
C
IWIDTH(1)=IFRST
IWIDTH(2)=IWIDTH(1) + IINC1
C
ITTEMP=' '
NCTEMP=0
NHEAD=0
C
CALL DPRTF1(ITTEMP,NCTEMP,IHEAD,NHEAD)
C
NHEAD=2
IFLAG1=.FALSE.
IFLAG2=.FALSE.
C
IVALUE(1)=' b 1. Method: Mandel-Paule'
IVALUE(1)(1:1)=IBASLC
NCHAR(1)=26
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IFLAG1=.FALSE.
NHEAD=1
C
NCHAR(1)=41
IVALUE(1)=' Estimate of (unscaled) Consensus Mean:'
AVALUE(2)=XMPS
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=39
IVALUE(1)=' Estimate of (scaled) Consensus Mean:'
AVALUE(2)=XMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=35
IVALUE(1)=' Between Lab Variance (unscaled):'
AVALUE(2)=S2BMPS
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=29
IVALUE(1)=' Between Lab SD (unscaled):'
AVALUE(2)=SQRT(S2BMPS)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=33
IVALUE(1)=' Between Lab Variance (scaled):'
AVALUE(2)=S2BMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=40
IVALUE(1)=' Standard Deviation of Consensus Mean:'
AVALUE(2)=SEMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=32
IVALUE(1)=' Standard Uncertainty (k = 1):'
AVALUE(2)=SEMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=32
IVALUE(1)=' Expanded Uncertainty (k = 2):'
AVALUE(2)=2.0*SEMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=41
IVALUE(1)(1:29)=' Expanded Uncertainty (k = '
WRITE(IVALUE(1)(30:39),'(F10.7)')APPF
IVALUE(1)(40:41)='):'
AVALUE(2)=APPF*SEMP
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=23
IVALUE(1)=' Normal PPF of 0.975:'
AVALUE(2)=APPF
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=39
IVALUE(1)=' Lower 95% (normal) Confidence Limit:'
AVALUE(2)=REAL(DLOWER)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
NCHAR(1)=39
IVALUE(1)=' Upper 95% (normal) Confidence Limit:'
AVALUE(2)=REAL(DUPPER)
CALL DPRTF5(IVALUE(1),NCHAR(1),AVALUE,NHEAD,IFLAG1)
C
IVALUE(1)=' Note: Mandel-Paule Best Usage:'
NCHAR(1)=33
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
IVALUE(1)=' 6 or More Labs:'
NCHAR(1)=24
IVALUE(2)=' '
NCHAR(2)=0
CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2)
C
CALL DPRTF6(NHEAD)
IFLAG1=.TRUE.
IFLAG2=.FALSE.
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'WOML')THEN
ELSE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4001)
4001 FORMAT('1. Method: Mandel-Paule')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4002)XMPS
4002 FORMAT(' Estimate of (unscaled) Consensus Mean: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4003)REAL(XMP)
4003 FORMAT(' Estimate of (scaled) Consensus Mean: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4006)S2BMPS
4006 FORMAT(' Between Lab Variance (unscaled): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4007)SQRT(S2BMPS)
4007 FORMAT(' Between Lab SD (unscaled): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4008)REAL(S2BMP)
4008 FORMAT(' Between Lab Variance (scaled): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4011)SEMP
4011 FORMAT(' Standard Deviation of Consensus Mean: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4012)SEMP
4012 FORMAT(' Standard Uncertainty (k = 1): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4013)2.0*SEMP
4013 FORMAT(' Expanded Uncertainty (k = 2): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4014)APPF,APPF*SEMP
4014 FORMAT(' Expanded Uncertainty (k = ',F10.7,'): ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4021)APPF
4021 FORMAT(' Normal PPF of 0.975: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4022)REAL(DLOWER)
4022 FORMAT(' Lower 95% (normal) Confidence Limit: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4023)REAL(DUPPER)
4023 FORMAT(' Upper 95% (normal) Confidence Limit: ',
1 F15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4031)
4031 FORMAT(' Note: Mandel-Paule Best Usage:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4032)
4032 FORMAT(' 6 or More Labs')
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
STXMU = DXMP
ST2SB = DS2BMP
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MNPL')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMNPL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IERROR
9012 FORMAT('IERROR = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)NPTS,NLAB
9013 FORMAT('NPTS,NLAB = ',2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)XMPS,S2BMPS,SEMP
9014 FORMAT('XMPS,S2BMPs,SEMP = ',3G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)DLOWER,DUPPER
9015 FORMAT('DLOWER,DUPPER = ',2G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
RETURN
END
SUBROUTINE DPMARG(IHARG,IARGT,ARG,NUMARG,
1PDEFMR,
1PTEXMR,
1IBUGD2,ISUBRO,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE MARGIN FOR TEXT CHARACTERS.
C THE MARGIN FOR TEXT CHARACTERS WILL BE PLACED
C IN THE FLOATING POINT VARIABLE PTEXMR.
C NOTE--THE MARGIN IS IN STANDARDIZED UNITS (0.0 TO 100.0).
C NOTE--THE MARGIN DOES NOT INCLUDE BETWEEN-LINE GAP.
C INPUT ARGUMENTS--IHARG (A CHARACTER VECTOR)
C --IARGT
C --ARG
C --NUMARG
C --PDEFMR
C --IBUGD2
C OUTPUT ARGUMENTS--PTEXMR
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--APRIL 1981.
C UPDATED --MAY 1982.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IHARG
CHARACTER*4 IARGT
CHARACTER*4 IBUGD2
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IHARG(*)
DIMENSION IARGT(*)
DIMENSION ARG(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
IF(IBUGD2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMARG--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)PDEFMR
53 FORMAT('PDEFMR = ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)NUMARG
54 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO55I=1,NUMARG
WRITE(ICOUT,56)I,IHARG(I),IARGT(I),ARG(I)
56 FORMAT('I,IHARG(I),IARGT(I),ARG(I) = ',I8,2X,A4,2X,A4,E15.7)
CALL DPWRST('XXX','BUG ')
55 CONTINUE
90 CONTINUE
C
C *****************************
C ** TREAT THE MARGIN CASE **
C *****************************
C
1110 CONTINUE
IF(NUMARG.LE.0)GOTO1150
IF(IHARG(NUMARG).EQ.'ON')GOTO1150
IF(IHARG(NUMARG).EQ.'OFF')GOTO1150
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1150
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1150
IF(IHARG(NUMARG).EQ.'?')GOTO8100
C
IF(NUMARG.GE.1.AND.IARGT(NUMARG).EQ.'NUMB')
1GOTO1160
C
1120 CONTINUE
IERROR='YES'
WRITE(ICOUT,1121)
1121 FORMAT('***** ERROR IN DPMARG--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1122)
1122 FORMAT(' ILLEGAL FORM FOR MARGIN ',
1'COMMAND.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1124)
1124 FORMAT(' TEST EXAMPLE TO DEMONSTRATE THE ',
1'PROPER FORM--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1125)
1125 FORMAT(' SUPPOSE IT IS DESIRED (AFTER THE TEXT COMMAND)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1126)
1126 FORMAT(' THAT THE CURSOR RETURN TO X = 5')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1127)
1127 FORMAT(' (WHERE THE HORIZONTAL SCREEN UNITS RANGE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1128)
1128 FORMAT(' FROM 0 TO 100,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1130)
1130 FORMAT(' THEN THE ALLOWABLE FORM IS--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1131)
1131 FORMAT(' MARGIN 5 ')
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1150 CONTINUE
PTEXMR=PDEFMR
GOTO1180
C
1160 CONTINUE
PTEXMR=ARG(NUMARG)
GOTO1180
C
1180 CONTINUE
IFOUND='YES'
C
IF(IFEEDB.EQ.'OFF')GOTO1189
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1181)
1181 FORMAT('THE MARGIN (AFTER TEXT IS WRITTEN OUT)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1182)PTEXMR
1182 FORMAT('HAS JUST BEEN SET TO ',E15.7)
CALL DPWRST('XXX','BUG ')
1189 CONTINUE
GOTO9000
C
C ********************************************
C ** STEP 81-- **
C ** TREAT THE ? CASE-- **
C ** DUMP OUT CURRENT AND DEFAULT VALUES. **
C ********************************************
C
8100 CONTINUE
IFOUND='YES'
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8111)PTEXMR
8111 FORMAT('THE CURRENT (TEXT) MARGIN IS ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8112)PDEFMR
8112 FORMAT('THE DEFAULT (TEXT) MARGIN IS ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGD2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMARG--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGD2,ISUBRO,IFOUND,IERROR
9012 FORMAT('IBUGD2,ISUBRO,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)PTEXMR
9013 FORMAT('PTEXMR = ',E15.7)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMATC(ICASL7,ICASS7,ILOCV,IFTEXP,IFTORD,
CCCCC SUBROUTINE DPMATC(ICASL7,ILOCV,IFTEXP,
1IMSUBC,
1ISEED,
1IBUGA3,IBUGQ,ISUBRO,IFOUND,IERROR)
CCCCC OCTOBER 1998. SPLIT INTO 2 FILES (LAHEY COMPILER
CCCCC SEEMS TO HAVE MEMORY TROUBLES WITH THE FULL ROUTINE).
CCCCC ESSENTIALLY, SPLIT OUT THE MATRIX AND NON-MATRIX COMMANDS.
C
C PURPOSE--TREAT THE TYPE 7 LET CASE--
C --NOTE: MATRIX COMMANDS NOW IMPLEMENTED IN DPMAT2
C (THESE COMMANDS WILL SIMPLY DO A RETURN FROM THIS
C ROUTINE)
C LET Y = SORT X
C LET Y = SORTC X X2
C LET Y = COCODE X XREF
C LET Y = COCOPY X XREF YREF
C LET Y = RANK X
C LET Y = CODE X
C LET Y = CODEH X
C LET Y = CODE2 X
C LET Y = CODE4 X
C LET Y = CODE4 X
C LET Y = CODE8 X
C LET Y = CODE10 X
C LET Y = BIWEIGHT X
C LET Y = TRICUBE X
C LET Y = BOOTSTRAP SAMPLE X1 X2
C LET Y = SUBSAMPLE X1 X2
C LET Y = JACKNIFE INDEX I N
C
C LET Y = FREQUENCY X XD
C LET Y = DISTINCT X
C LET Y = DIFFERENCE X
C LET Y = SEQUENTIAL DIFFERENCE X
C LET Y = INTERARRIVAL TIMES X
C LET Y = CUMULATIVE DIFFERENCE X
C LET Y = CUMULATIVE SUM X
C LET Y = CUMULATIVE INTEGRAL X
C LET Y = CUMULATIVE PRODUCT X
C LET Z = CONVOLUTION X Y
C LET Z = DECONVOLUTION X Y
C LET Y = SUMD X XD (NOT IMPLEMENTED)
C LET Y2 = INTERPOLATION Y X X2
C LET Y2 = LINEAR INTERPOLATION Y X X2
C LET Z2 = 2D INTERPOLATION Z Y X Y2 X2
C LET Z2 = BILINEAR INTERPOLATION Z Y X Y2 X2
C LET Z2 = BIVARIATE INTERPOLATION Z Y X Y2 X2
C
C LET T = SINE TRANSFORM Y
C LET T = COSINE TRANSFORM Y
C LET T1 T2 = FOURIER TRANSFORM Y1 Y2 (OR JUST Y1)
C LET T1 T2 = INVERSE FOURIER TRANSFORM Y1 Y2 (OR JUST Y1)
C LET T1 T2 = FFT Y1 Y2
C LET T1 T2 = INVERSE FFT Y1 Y2
C LET T = LAPLACE TRANSFORM Y (NOT IMPLEMENTED)
C LET T = INVERSE LAPLACE TRANSFORM Y (NOT IMPLENETED)
C
C LET Y5 Y6 = COMPLEX ADDITION Y1 Y2 Y3 Y4
C LET Y5 Y6 = COMPLEX SUBTRACTION Y1 Y2 Y3 Y4
C LET Y5 Y6 = COMPLEX MULTIPLICATION Y1 Y2 Y3 Y4
C LET Y5 Y6 = COMPLEX DIVISION Y1 Y2 Y3 Y4
C LET Y5 Y6 = COMPLEX EXPONENTIATION Y1 Y2
C LET Y5 Y6 = COMPLEX SQUARE ROOT Y1 Y2
C LET Y5 Y6 = COMPLEX ROOTS Y1 Y2 (OR JUST Y1)
C LET Y5 Y6 = COMPLEX CONJUGATE Y1 Y2
C
C LET C3 = POLYNOMIAL ADDITION C1 C2
C LET C3 = POLYNOMIAL SUBTRACTION C1 C2
C LET C3 = POLYNOMIAL MULTIPLICATION C1 C2
C LET C3 = POLYNOMIAL DIVISION C1 C2
C LET C3 = POLYNOMIAL SQUARE C1
C LET C3 = POLYNOMIAL SQUARE ROOT C1 (FUTURE--NOT YET IMP)
C LET C3 = POLYNOMIAL GCD C1 C2 (FUTURE--NOT YET IMP)
C LET C3 = POLYNOMIAL LCM C1 C2 (FUTURE--NOT YET IMP)
C LET Y = POLYNOMIAL EVALUATION C X
C
C LET V3 = VECTOR ADDITION V1 V2
C LET V3 = VECTOR SUBTRACTION V1 V2
C LET V3 = VECTOR DOT PRODUCT V1 V2 (INNER PRODUCT)
C LET V3 = VECTOR CROSS PRODUCT V1 V2 (FUTURE--NOT YET IMP)
C LET V3 = VECTOR LENGTH V1
C LET V3 = VECTOR DISTANCE V1 V2
C LET V3 = VECTOR ANGLE V1 V2
C
C LET S3 = SET UNION S1 S2
C LET S3 = SET INTERSECTION S1 S2
C LET S3 = SET COMPLEMENT S1 S2
C LET S3 = SET CARDINALITY S1
C LET S3 S4 = SET CARTESIAN PRODUCT S1 S2
C LET S3 = SET ELEMENTS S1 (DISTINCT)
C
C LET L3 = LOGICAL AND L1 L2 (CONJUNCTION)
C LET L3 = LOGICAL OR L1 L2 (DISJUNCTION)
C LET L3 = LOGICAL NAND L1 L2
C LET L3 = LOGICAL NOR L1 L2
C LET L3 = LOGICAL IFTHEN L1 L2 (IMPLICATION)
C LET L3 = LOGICAL IFF L1 L2 (EQUIVALENCE)
C LET L3 = LOGICAL NOT L1 (NEGATION OR COMPLEMENT)
C LET L3 = LOGICAL XOR L1 L2 (EXCLUS. OR OR EXCL. DISJ.)
C
C (FOR A FULL OR PARTIAL DATA SET)
C
C LET X2 Y2 = FRACTAL X1 Y1
C
C LET C3 = GENERATOR MULTIPLICATION C1 C2
C
C LET Y2 X2 = BINNED Y (OR FREQUENCY TABLE)
C LET Y2 X2 = ASH BINNED Y
C LET Y2 X2 = COUNTS ASH BINNED Y
C LET Y2 = CUSUM ARL Y
C LET Y2 = ONE-SIDED CUSUM ARL Y
C
C LET Y2 = STANDARDIZE Y (OR ZSCORE, ZSCORE STAN)
C LET Y2 = STANDARDIZE Y GROUP1
C LET Y2 = STANDARDIZE Y GROUP1 GROUP2
C LET Y2 = LOCATION STANDARDIZE Y
C LET Y2 = LOCATION STANDARDIZE Y GROUP1
C LET Y2 = LOCATION STANDARDIZE Y GROUP1 GROUP2
C LET Y2 = SCALE STANDARDIZE Y
C LET Y2 = SCALE STANDARDIZE Y GROUP1
C LET Y2 = SCALE STANDARDIZE Y GROUP1 GROUP2
C LET Y2 = ZSCORE Y
C LET Y2 = ZSCORE Y GROUP1
C LET Y2 = ZSCORE Y GROUP1 GROUP2
C LET Y2 = USCORE Y
C LET Y2 = USCORE Y GROUP1
C LET Y2 = USCORE Y GROUP1 GROUP2
C LET Y2 = CROSS TABULATE Y
C LET Y2 = CROSS TABULATE Y GROUP1
C LET Y2 = CROSS TABULATE Y GROUP1 GROUP2
C LET INDX = MATCH Y X
C LET Y2 = MATCH X X2 Y
C LET Y2 = REPLACE X X2
C LET Y2 = REPLACE X X2 Y
C LET Y2 = WINSORIZED Y
C LET Y2 = SORT BY Y GROUP1
C
C LET Y X = STACK X1 ... XK
C LET Y X1 X2 = REPLICATED STACK X1 ... XK LAB
C LET Y = FREQUENCY TO RAW X FREQ
C LET Y2 X1 X2 = COMBINE FREQUENCY TABLE Y X
C LET Y2 X1 X2 = INTEGER FREQUENCY TABLE Y
C
C LET Y = H CONSISTENCY STATISTIC Y X
C LET Y = K CONSISTENCY STATISTIC Y X
C
C LET Y = L MOMENTS X NMOM
C LET Y = PROBABILITY WEIGHTED MOMENTS X NMOM
C LET Y = BETA PROBABILITY WEIGHTED MOMENTS X NMOM
C
C NOTE--THIS SUBROUTINE OPERATES ON A VECTOR
C AND PRODUCES A VECTOR;
C THIS IS TO BE CONTRASTED WITH DPLET8 WHICH
C OPERATES ON A VECTOR
C BUT PRODUCES A PARAMETER (= A SCALAR).
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/10
C ORIGINAL VERSION--MARCH 1978.
C UPDATED --JULY 1978.
C UPDATED --NOVEMBER 1978.
C UPDATED --FEBRUARY 1979.
C UPDATED --MARCH 1979.
C UPDATED --APRIL 1979.
C UPDATED --JULY 1979.
C UPDATED --JUNE 1981.
C UPDATED --JULY 1981.
C UPDATED --SEPTEMBER 1981.
C UPDATED --OCTOBER 1981.
C UPDATED --NOVEMBER 1981.
C UPDATED --DECEMBER 1981.
C UPDATED --MAY 1982.
C UPDATED --JANUARY 1987.
C UPDATED --APRIL 1987.
C UPDATED --AUGUST 1987. COMPLEX SQUARE ROOT
C UPDATED --AUGUST 1987. COMPLEX ROOTS (POLYNOMIAL)
C UPDATED --AUGUST 1987. POLYNOMIAL ARITHMETIC
C UPDATED --AUGUST 1987. VECTOR ARITHMETIC
C UPDATED --AUGUST 1987. SET ARITHMETIC
C UPDATED --AUGUST 1987. LOGICAL ARITHMETIC
C UPDATED --SEPTEMBER 1987. FFT AND INVERSE FFT
C UPDATED --SEPTEMBER 1987. MATRIX OPERATIONS
C UPDATED --SEPTEMBER 1987. COMPLEX CONJUGATE
C UPDATED --NOVEMBER 1987. (EXIT OUT IF ERROR)
C UPDATED --FEBRUARY 1988. (BIWEIGHT AND TRICUBE)
C UPDATED --JULY 1988. FRACTAL
C UPDATED --AUGUST 1988. LENGTH TRAP FOR FRACTAL
C UPDATED --JANAURY 1988. BOOTSTRAP SAMPLE
C UPDATED --AUGUST 1988. (VARIANCE-COVARIANCE MATRIX)
C UPDATED --AUGUST 1988. (CORRELATION MATRIX)
C UPDATED --AUGUST 1988. (PRINCIPLE COMPONENTS)
C UPDATED --AUGUST 1988. (... PRINCIPLE COMPONENTS)
C UPDATED --JANUARY 1989. FIX A FORMAT STATEMENT (ALAN)
C UPDATED --NOVEMBER 1989. FIX INTERPOLATION
C UPDATED --DECEMBER 1989. (DEX) GENERATOR MULTIPLICATION
C UPDATED --JANUARY 1990. SUBSAMPLE
C UPDATED --JULY 1991. COCODE ('COCD')
C UPDATED --JULY 1991. COCOPY ('COCP')
C UPDATED --FEBRUARY 1992. FIX COCOPY ('COCP')
C UPDATED --MARCH 1992. EXT. SORT&CARRY TO MULTI ARGS
C UPDATED --MARCH 1992. ID IN ALL ERROR STATEMENTS
C UPDATED --APRIL 1992. SPLIT LONG FORMAT STATEMENTS
C UPDATED --MAY 1992. FIX IF .AND. IF
C UPDATED --MAY 1992. FIX COMPLEX ARITH./SUBSET BUG
C UPDATED --MAY 1992. FIX COMPLEX ARITH./SUBSET BUG
C --MAY 1992.(SHOULD FOR POLARI,LOGARI,..?)
C UPDATED --JULY 1993. UPDATES FOR MATRIX CODE
C UPDATED --AUGUST 1993. UPDATES FOR MATRIX CODE
C UPDATED --SEPTEMBER 1993. UPDATES FOR MATRIX CODE
C UPDATED --SEPTEMBER 1993. FIX BUG FOR COMPLEX ROOTS
C UPDATED --OCTOBER 1993. JACNIFE INDEX
C UPDATED --OCTOBER 1993. ADDITIONAL MATRIX COMMANDS
C UPDATED --MAY 1994. LINEAR INTERPOLATE, 2D INTERPOL
C BILINEAR INTERPOLATE, BIVARIATE
C INTERPOLATE
C UPDATED --JUNE 1995. BUG IN MATRIX REPLACE ELEMENT
C UPDATED --AUGUST 1995. ZERO PADDING NO LONGER REQUIRED
C FOR FFT.
C UPDATED --JANUARY 1998. RECODE MATRIX CODE TO USE FEWER
C MATRICES (AND THUS CAN HANDLE
C LARGER MATRICES).
C UPDATED --JANUARY 1998. RECODE MATRIX CODE TO USE
C 1-DIMENSIONAL SCRATCH ARRAYS
C (WILL BE 2-D IN MATARI, MATAR2)
C UPDATED --MAY 1998. INTERARRIVAL TIMES CASE
C UPDATED --MAY 1998. CUMULATIVE AVERAGE CASE
C UPDATED --MAY 1998. REVERSE CASE
C UPDATED --MAY 1998. CUMULATIVE HAZARD CASE
C UPDATED --MAY 1998. HAZARD CASE
C UPDATED --SEPTEMBER 1998. EXPONENTIAL SMOOTHING
C UPDATED --JUNE 1998. SOME NEW MATRIX COMMANDS
C UPDATED --AUGUST 1998. MATRIX MEAN
C UPDATED --AUGUST 1998. MATRIX ADD ROW, MATRIX DELE ROW
C UPDATED --AUGUST 1998. DISTANCE FROM MEAN
C UPDATED --AUGUST 1998. FOR MATRIX COMMANDS, FIX HOW
C SUBSETTING HANDLED WHEN OUTPUT
C IS SAVED. THE IUPFLG USED TO
C CONTROL WHETHER OUTPUT IS SAVED
C WITH SUBSETTING OR IS SAVED
C AS A "FULL" MATRIX. E.G.,
C MATRIX ADDITION MAINTAINS THE
C SUBSET WHEN SAVING THE OUTPUT,
C WHILE CORRELATION MATRIX IS
C SAVED AS A "FULL" MATRIX.
C UPDATED --SEPTEMBER 1998. MATRIX GROUP MEANS
C UPDATED --SEPTEMBER 1998. MATRIX GROUP SD
C UPDATED --SEPTEMBER 1998. POOLED VARIANCE-COVARIANCE
C MATRIX (MORE THAN 2 GROUPS)
C UPDATED --OCTOBER 1998. SPLIT INTO 2 ROUTINES
C UPDATED --NOVEMBER 1998. BINNED COMMAND
C UPDATED --MARCH 2001. STANDARDIZE, LOCATION STAND
C UPDATED --SEPTEMBER 2001. CROSS TABULATE
C UPDATED --OCTOBER 2001. MATCH (A 2-VARIABLE AND
C 3-VARIABLE SYNTAX SUPPORTED)
C UPDATED --JULY 2002. WINSORIZE
C UPDATED --APRIL 2003. ARGUMENT LIST TO GRPSTA, GRPST2
C UPDATED --MAY 2003. STACK COMMAND
C UPDATED --SEPTEMBER 2004. ASH BIN
C UPDATED --SEPTEMBER 2004. COUNTS ASH BIN
C UPDATED --OCTOBER 2004. COMBINE FREQUENCY TABLE
C UPDATED --FEBRUARY 2005. H CONSISTENCY STATISTIC
C UPDATED --FEBRUARY 2005. K CONSISTENCY STATISTIC
C UPDATED --JUNE 2005. L MOMENTS
C UPDATED --JUNE 2005. PROBABILITY WEIGHTED MOMENTS
C UPDATED --DECEMBER 2005. BETA PROBABILITY WEIGHTED
C MOMENTS
C UPDATED --DECEMBER 2005. SORT BY
C UPDATED --DECEMBER 2005. SUBSTANTIAL REWRITE FOR
C BETTER CLARITY (SIMILAR TO
C CHANGES IN DPMAT2)
C UPDATED --FEBRUARY 2006. CALL LIST TO BIVAR FIXED
C UPDATED --FEBRUARY 2006. REPLACE
C UPDATED --MARCH 2006. CALL LIST TO DPBIN
C UPDATED --MAY 2006. INTEGER FREQUENCY TABLE
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICASL7
CHARACTER*4 ICASS7
CHARACTER*4 ICASE
CHARACTER*4 ICASE2
CHARACTER*4 ICASMT
CHARACTER*4 IFTEXP
CHARACTER*4 IFTORD
CHARACTER*4 IBUGA3
CHARACTER*4 IBUGQ
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
PARAMETER(MAXCAS=30)
PARAMETER(MAXCA2=3)
C
CHARACTER*4 ICASEQ
CHARACTER*4 IH
CHARACTER*4 IH1
CHARACTER*4 IH2
CHARACTER*4 IHWUSE
CHARACTER*4 MESSAG
CHARACTER*4 IWRITE
CHARACTER*4 ITCASE
CHARACTER*4 IACASE
CHARACTER*4 IMSUBC
C
CHARACTER*4 IHREPL
CHARACTER*4 IHREP2
C
CHARACTER*4 NEWNAM(MAXCA2)
CHARACTER*4 ILEFT(MAXCA2)
CHARACTER*4 ILEF2(MAXCA2)
CHARACTER*4 IHSET
CHARACTER*4 IHSET2
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*4 IMATSW
CHARACTER*4 ITYP91
C
CHARACTER*4 IHMAT1
CHARACTER*4 IHMAT2
C
CHARACTER*4 ITYPA(MAXCAS)
C
CHARACTER*4 IHCV11
CHARACTER*4 IHCV12
CHARACTER*4 IHCV21
CHARACTER*4 IHCV22
CHARACTER*4 IHCV31
CHARACTER*4 IHCV32
C
CHARACTER*4 IUPFLG
CHARACTER*4 IRELAT
CHARACTER*4 IFLGLL
C
CHARACTER*4 IHP
CHARACTER*4 IHP2
CHARACTER*4 ISUBN0
C
CHARACTER*4 IHRIGH(MAXCAS)
CHARACTER*4 IHRIG2(MAXCAS)
C
INTEGER ILISL(MAXCA2)
INTEGER ICOLL(MAXCA2)
INTEGER ILOCR(MAXCAS)
INTEGER ILISR(MAXCAS)
INTEGER ICOLR(MAXCAS)
INTEGER NIRIGH(MAXCAS)
INTEGER NS(MAXCAS)
REAL TEMPS(MAXCAS)
C
DOUBLE PRECISION ATEMP
DOUBLE PRECISION BTEMP
C
C---------------------------------------------------------------------
C
INCLUDE 'DPCOPA.INC'
C
DIMENSION TEMP1(MAXOBV)
DIMENSION TEMP2(MAXOBV)
DIMENSION TEMP3(MAXOBV)
DIMENSION TEMP4(MAXOBV)
DIMENSION TEMP5(MAXOBV)
DIMENSION TEMP12(2*MAXOBV)
DIMENSION TEMP91(MAXOBV)
DIMENSION TEMP92(MAXOBV)
DIMENSION ITEMP1(MAXOBV)
DIMENSION ITEMP2(MAXOBV)
DIMENSION ITEMP3(MAXOBV)
DIMENSION ITEMP4(MAXOBV)
DIMENSION ITEMP5(MAXOBV)
DIMENSION ITEMP6(MAXOBV)
DOUBLE PRECISION DTEMP1(MAXOBV)
DOUBLE PRECISION DTEMP2(MAXOBV)
DOUBLE PRECISION DTEMP3(MAXOBV)
COMPLEX TEMPC1
DIMENSION TEMPC1(MAXOBV)
DIMENSION TEMP6(5*MAXOBV)
INCLUDE 'DPCOZZ.INC'
INCLUDE 'DPCOZI.INC'
INCLUDE 'DPCOZD.INC'
EQUIVALENCE (GARBAG(IGARB1),TEMP1)
EQUIVALENCE (GARBAG(IGARB2),TEMP2)
EQUIVALENCE (GARBAG(IGARB3),TEMP3)
EQUIVALENCE (GARBAG(IGARB4),TEMP4)
EQUIVALENCE (GARBAG(IGARB5),TEMP12)
EQUIVALENCE (GARBAG(IGARB7),TEMP91)
EQUIVALENCE (GARBAG(IGARB8),TEMP92)
EQUIVALENCE (GARBAG(IGAR10),TEMP5)
EQUIVALENCE (GARBAG(JGAR11),TEMPC1)
EQUIVALENCE (GARBAG(JGAR13),TEMP6)
EQUIVALENCE (IGARBG(IIGAR1),ITEMP1)
EQUIVALENCE (IGARBG(IIGAR2),ITEMP2)
EQUIVALENCE (IGARBG(IIGAR3),ITEMP3)
EQUIVALENCE (IGARBG(IIGAR4),ITEMP4)
EQUIVALENCE (IGARBG(IIGAR5),ITEMP5)
EQUIVALENCE (IGARBG(IIGAR6),ITEMP6)
EQUIVALENCE (DGARBG(IDGAR1),DTEMP1)
EQUIVALENCE (DGARBG(IDGAR2),DTEMP2)
EQUIVALENCE (DGARBG(IDGAR3),DTEMP3)
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOSU.INC'
INCLUDE 'DPCOST.INC'
C
INCLUDE 'DPCOHO.INC'
INCLUDE 'DPCOHK.INC'
INCLUDE 'DPCODA.INC'
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
CCCCC DON'T PROCESS MATRIX COMMANDS.
C
IF(ICASL7.EQ.'MAAD')GOTO19090
IF(ICASL7.EQ.'MASU')GOTO19090
IF(ICASL7.EQ.'MAMU')GOTO19090
IF(ICASL7.EQ.'MASO')GOTO19090
IF(ICASL7.EQ.'MAIN')GOTO19090
IF(ICASL7.EQ.'MATR')GOTO19090
IF(ICASL7.EQ.'MAAJ')GOTO19090
IF(ICASL7.EQ.'MACE')GOTO19090
IF(ICASL7.EQ.'MAEA')GOTO19090
IF(ICASL7.EQ.'MAEE')GOTO19090
IF(ICASL7.EQ.'MARA'.AND.NUMARG.EQ.5)GOTO19090
IF(ICASL7.EQ.'MARA'.AND.NUMARG.EQ.6)GOTO19090
IF(ICASL7.EQ.'MADE')GOTO19090
IF(ICASL7.EQ.'MAPE')GOTO19090
IF(ICASL7.EQ.'MASN')GOTO19090
IF(ICASL7.EQ.'MASR')GOTO19090
IF(ICASL7.EQ.'MANR')GOTO19090
IF(ICASL7.EQ.'MANC')GOTO19090
IF(ICASL7.EQ.'MASS')GOTO19090
IF(ICASL7.EQ.'MATC')GOTO19090
IF(ICASL7.EQ.'MASM')GOTO19090
IF(ICASL7.EQ.'MAMI')GOTO19090
IF(ICASL7.EQ.'MACF')GOTO19090
IF(ICASL7.EQ.'MADF'.AND.NUMARG.EQ.7)GOTO19090
IF(ICASL7.EQ.'MADF'.AND.NUMARG.EQ.8)GOTO19090
IF(ICASL7.EQ.'MAEN')GOTO19090
IF(ICASL7.EQ.'MARW')GOTO19090
IF(ICASL7.EQ.'MAEL')GOTO19090
C
IF(ICASL7.EQ.'MAVC')GOTO19090
IF(ICASL7.EQ.'MACO')GOTO19090
IF(ICASL7.EQ.'MAPC')GOTO19090
IF(ICASL7.EQ.'MAP1')GOTO19090
IF(ICASL7.EQ.'MAP2')GOTO19090
IF(ICASL7.EQ.'MAP3')GOTO19090
IF(ICASL7.EQ.'MAP4')GOTO19090
IF(ICASL7.EQ.'MAP5')GOTO19090
IF(ICASL7.EQ.'MAP6')GOTO19090
IF(ICASL7.EQ.'MAP7')GOTO19090
IF(ICASL7.EQ.'MAP8')GOTO19090
IF(ICASL7.EQ.'MAP9')GOTO19090
IF(ICASL7.EQ.'MA10')GOTO19090
IF(ICASL7.EQ.'MASV')GOTO19090
IF(ICASL7.EQ.'MASD')GOTO19090
IF(ICASL7.EQ.'MASF')GOTO19090
IF(ICASL7.EQ.'MACH')GOTO19090
IF(ICASL7.EQ.'MAAU')GOTO19090
IF(ICASL7.EQ.'MADI')GOTO19090
IF(ICASL7.EQ.'MARR')GOTO19090
IF(ICASL7.EQ.'MAAR')GOTO19090
IF(ICASL7.EQ.'MADR')GOTO19090
IF(ICASL7.EQ.'MAMM')GOTO19090
IF(ICASL7.EQ.'MADM')GOTO19090
IF(ICASL7.EQ.'DIMA')GOTO19090
IF(ICASL7.EQ.'MAVT')GOTO19090
IF(ICASL7.EQ.'MARE')GOTO19090
IF(ICASL7.EQ.'MATD')GOTO19090
IF(ICASL7.EQ.'MATS')GOTO19090
IF(ICASL7.EQ.'MATI')GOTO19090
IF(ICASL7.EQ.'MAIS')GOTO19090
IF(ICASL7.EQ.'MQFO')GOTO19090
IF(ICASL7.EQ.'MALC')GOTO19090
IF(ICASL7.EQ.'MAGM')GOTO19090
IF(ICASL7.EQ.'MAGS')GOTO19090
IF(ICASL7.EQ.'MPIN')GOTO19090
IF(ICASL7.EQ.'MHT1')GOTO19090
IF(ICASL7.EQ.'MHT2')GOTO19090
IF(ICASL7.EQ.'MPVC')GOTO19090
IF(ICASL7.EQ.'MDER')GOTO19090
IF(ICASL7.EQ.'MDEC')GOTO19090
IF(ICASL7.EQ.'MDMR')GOTO19090
IF(ICASL7.EQ.'MDMC')GOTO19090
IF(ICASL7.EQ.'MDBR')GOTO19090
IF(ICASL7.EQ.'MDBC')GOTO19090
IF(ICASL7.EQ.'MDKR')GOTO19090
IF(ICASL7.EQ.'MDKC')GOTO19090
IF(ICASL7.EQ.'MDCR')GOTO19090
IF(ICASL7.EQ.'MDCC')GOTO19090
IF(ICASL7.EQ.'MRSC')GOTO19090
IF(ICASL7.EQ.'MCSC')GOTO19090
IF(ICASL7.EQ.'MDIP')GOTO19090
IF(ICASL7.EQ.'MQRD')GOTO19090
IF(ICASL7.EQ.'MROW')GOTO19090
IF(ICASL7.EQ.'MCOL')GOTO19090
IF(ICASL7.EQ.'MACA')GOTO19090
IF(ICASL7.EQ.'MVRN')GOTO19090
IF(ICASL7.EQ.'MURN')GOTO19090
IF(ICASL7.EQ.'MPDF')GOTO19090
IF(ICASL7.EQ.'WIRN')GOTO19090
IF(ICASL7.EQ.'MTRN')GOTO19090
IF(ICASL7.EQ.'IURN')GOTO19090
IF(ICASL7.EQ.'DIRN')GOTO19090
IF(ICASL7.EQ.'DPDF')GOTO19090
IF(ICASL7.EQ.'DLPD')GOTO19090
IF(ICASL7.EQ.'NCDF')GOTO19090
IF(ICASL7.EQ.'TCDF')GOTO19090
IF(ICASL7.EQ.'VINF')GOTO19090
IF(ICASL7.EQ.'CIND')GOTO19090
IF(ICASL7.EQ.'XTXI')GOTO19090
IF(ICASL7.EQ.'CRMA')GOTO19090
IF(ICASL7.EQ.'INRN')GOTO19090
IF(ICASL7.EQ.'MSUM')GOTO19090
IF(ICASL7.EQ.'MPAR')GOTO19090
IF(ICASL7.EQ.'MGRA')GOTO19090
IF(ICASL7.EQ.'MATB')GOTO19090
IF(ICASL7.EQ.'MARB')GOTO19090
IF(ICASL7.EQ.'MATZ')GOTO19090
IF(ICASL7.EQ.'MAUZ')GOTO19090
C
IUPFLG='SUBS'
C
ISUBN1='DPMA'
ISUBN2='TC '
C
MAXCP1=MAXCOL+1
MAXCP2=MAXCOL+2
MAXCP3=MAXCOL+3
MAXCP4=MAXCOL+4
MAXCP5=MAXCOL+5
MAXCP6=MAXCOL+6
C
ILOCR(1)=ILOCV
DO10I=2,MAXCAS
ILOCR(I)=ILOCR(I-1)+1
ITYPA(I)='VARI'
TEMPS(I)=(-999.0)
ILISR(I)=(-999)
ICOLR(I)=(-999)
NIRIGH(I)=(-999)
10 CONTINUE
DO15I=2,MAXCA2
NEWNAM(I)='NO'
ILISL(I)=(-999)
ICOLL(I)=(-999)
15 CONTINUE
C
DO20I=1,MAXOBV
ISUB(I)=1
20 CONTINUE
C
IFOUND='NO'
IERROR='NO'
C
NUMVAL=1
SCAL91=(-999.0)
C
IMATSW='NO'
ICASMT='INDE'
ITYP91='VECT'
C
C ******************************************************
C ** TREAT THE SUBCASE OF PERFORMING CERTAIN SPECIAL **
C ** DATA MANIPULATIONS (SORT, RANK, CODE) **
C ** 1) FOR A FULL VARIABLE, OR **
C ** 2) FOR PART OF A VARIABLE. **
C ******************************************************
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGA3,IBUGQ,ISUBRO
52 FORMAT('IBUGA3,IBUGQ,ISUBRO = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)ICASL7,ICASS7,ILOCV,NUMARG
53 FORMAT('ICASL7,ICASS7,ILOCV,NUMARG = ',A4,2X,A4,2X,I8,2X,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)IFTEXP
54 FORMAT('IFTEXP = ',A4)
CALL DPWRST('XXX','BUG ')
ENDIF
C
C **********************************
C ** STEP 1-- **
C ** INITIALIZE SOME VARIABLES. **
C **********************************
C
ISTEPN='1'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C ***************************************************************
C ** STEP 2A-- *
C ** EXAMINE THE LEFT-HAND SIDE-- *
C ** IS THE VARIABLE NAME TO LEFT OF = SIGN *
C ** ALREADY IN THE NAME LIST? AS A VARIABLE? *
C ** NOTE THAT ILEFT(I) IS THE NAME OF THE VARIABLE *
C ** ON THE LEFT. *
C ** NOTE THAT ILISL(I) IS THE LINE IN THE TABLE *
C ** OF THE NAME ON THE LEFT. *
C ** NOTE THAT ICOLL(I) IS THE DATA COLUMN (1 TO 12) *
C ** FOR THE NAME OF THE LEFT. *
C ***************************************************************
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MATC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEZ=1
CALL DPMAT6(ICASL7,ICASEZ,MAXCA2,
1 ILEFT,ILEF2,NEWNAM,ILISL,ICOLL,
1 NUMVAL,NIOLD,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C FEBRUARY 2006: THE REPLACE COMMAND REQUIRES THAT THE
C LEFT-HAND SIDE VARIABLE ALREADY EXISTS.
C
IF(ICASL7.EQ.'REPL')THEN
IF(NEWNAM(ICASEZ).EQ.'YES')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,101)
101 FORMAT('***** ERROR IN DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,103)
103 FORMAT(' THE FIRST VARIABLE ON THE LEFT-HAND SIDE OF')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,105)ILEFT(ICASEZ),ILEF2(ICASEZ)
105 FORMAT(' THE EQUAL SIGN, (',A4,A4,'), MUST ALREADY ',
1 'EXIST.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,107)
107 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ELSE
NILEF1=NIOLD
ENDIF
ENDIF
C
IF(ICASL7.EQ.'FOUT'.OR.ICASL7.EQ.'FOU1'.OR.
1 ICASL7.EQ.'IFOU'.OR.ICASL7.EQ.'IFO1'.OR.
1 ICASL7.EQ.'FFT'.OR.ICASL7.EQ.'BINN'.OR.
1 ICASL7.EQ.'BINR'.OR.ICASL7.EQ.'CUMH'.OR.
1 ICASL7.EQ.'ASHR'.OR.ICASL7.EQ.'ASHC'.OR.
CCCCC1 ICASL7.EQ.'MTCH'.OR.ICASL7.EQ.'HAZA'.OR.
CCCCC1 ICASL7.EQ.'FRAW'.OR.ICASL7.EQ.'FFT1'.OR.
1 ICASL7.EQ.'FFT1'.OR.
1 ICASL7.EQ.'IFFT'.OR.ICASL7.EQ.'IFF1'.OR.
1 ICASL7.EQ.'COAD'.OR.ICASL7.EQ.'COSU'.OR.
1 ICASL7.EQ.'COMU'.OR.ICASL7.EQ.'CODI'.OR.
1 ICASL7.EQ.'COEX'.OR.ICASL7.EQ.'COSR'.OR.
1 ICASL7.EQ.'CORO'.OR.ICASL7.EQ.'COR1'.OR.
1 ICASL7.EQ.'COCO'.OR.ICASL7.EQ.'PODI'.OR.
1 ICASL7.EQ.'SECP'.OR.ICASL7.EQ.'FRAC'.OR.
1 ICASL7.EQ.'STAC'.OR.ICASL7.EQ.'RSTA'.OR.
1 ICASL7.EQ.'CFRT'.OR.ICASL7.EQ.'HCO2'.OR.
1 ICASL7.EQ.'IFRT'.OR.
1 ICASL7.EQ.'KCO2'.OR.ICASL7.EQ.'SRTB')THEN
C
ICASEZ=2
CALL DPMAT6(ICASL7,ICASEZ,MAXCA2,
1 ILEFT,ILEF2,NEWNAM,ILISL,ICOLL,
1 NUMVAL,NIOLD,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(ICASL7.EQ.'CFRT' .OR. ICASL7.EQ.'RSTA' .OR.
1 ICASL7.EQ.'IFRT')THEN
ICASEZ=3
CALL DPMAT6(ICASL7,ICASEZ,MAXCA2,
1 ILEFT,ILEF2,NEWNAM,ILISL,ICOLL,
1 NUMVAL,NIOLD,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,491)
491 FORMAT('AT THE END OF STEP 2--')
CALL DPWRST('XXX','BUG ')
DO494I=1,MAXCA2
WRITE(ICOUT,492)ILEFT(I),ILEF2(I),NEWNAM(I),NUMNAM,
1 ILISL(I),NUMCOL,ICOLL(I),NIOLD
CALL DPWRST('XXX','BUG ')
492 FORMAT('ILEFT(I),ILEFT(I),NEWNAM(I),NUMNAM,ILISL(I),',
1 'NUMCOL,ICOLL(I),NIOLD = ',A4,A4,2X,A4,2X,5I8)
494 CONTINUE
ENDIF
C
C ****************************************************************
C ** STEP 4-- *
C ** EXAMINE THE RIGHT-HAND SIDE-- *
C ** HAS EACH VARIABLE ON THE RIGHT *
C ** ALREADY BEEN DEFINED? *
C ** NOTE THAT ILISR(1), ILISR(2), ILISR(3), ILISR(4) *
C ** IS THE LINE IN THE TABLE *
C ** OF THE FIRST, SECOND, THIRD, FOURTH VARIABLE ON THE RIGHT, *
C ** RESPECTIVELY. *
C ** NOTE THAT ICOLR(1), ICOLR(2), ICOLR(3), ICOLR(4) *
C ** IS THE DATA COLUMN (1 TO 10+6) *
C ** OF THE FIRST, SECOND, THIRD, FOURTH VARIABLE ON THE RIGHT, *
C ** RESPECTIVELY. *
C ****************************************************************
C
ISTEPN='4'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MATC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C ********************************************
C ** STEP 4.1-- **
C ** DETERMINE THE NUMBER OF VARIABLES **
C ** ON THE RIGHT--1, 2, 3, OR 4 **
C ********************************************
C
ISTEPN='4.1'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MATC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IMATSW='NO'
NUMVAR=1
C
IF(ICASL7.EQ.'FOU1'.OR.ICASL7.EQ.'IFO1'.OR.
1 ICASL7.EQ.'BINN'.OR.ICASL7.EQ.'BINR'.OR.
1 ICASL7.EQ.'ASHR'.OR.ICASL7.EQ.'ASHC'.OR.
1 ICASL7.EQ.'FFT1'.OR.ICASL7.EQ.'IFF1'.OR.
1 ICASL7.EQ.'COR1'.OR.ICASL7.EQ.'POSQ'.OR.
1 ICASL7.EQ.'POSR'.OR.ICASL7.EQ.'VELE'.OR.
1 ICASL7.EQ.'SECA'.OR.ICASL7.EQ.'SEEL'.OR.
1 ICASL7.EQ.'IFRT'.OR.
1 ICASL7.EQ.'LONT'.OR.ICASL7.EQ.'WINS')THEN
NUMVAR=1
ELSEIF(ICASL7.EQ.'CONV'.OR.ICASL7.EQ.'DECO'.OR.
1 ICASL7.EQ.'BOOT'.OR.ICASL7.EQ.'FREQ'.OR.
1 ICASL7.EQ.'SUMD'.OR.ICASL7.EQ.'SUBS'.OR.
1 ICASL7.EQ.'FOUT'.OR.ICASL7.EQ.'IFOU'.OR.
1 ICASL7.EQ.'FFT' .OR.ICASL7.EQ.'CUMH'.OR.
1 ICASL7.EQ.'HAZA'.OR.ICASL7.EQ.'FRAW'.OR.
1 ICASL7.EQ.'EXPS'.OR.ICASL7.EQ.'IFFT'.OR.
1 ICASL7.EQ.'COEX'.OR.ICASL7.EQ.'COSR'.OR.
1 ICASL7.EQ.'CORO'.OR.ICASL7.EQ.'COCO'.OR.
1 ICASL7.EQ.'POAD'.OR.ICASL7.EQ.'POSU'.OR.
1 ICASL7.EQ.'POMU'.OR.ICASL7.EQ.'PODI'.OR.
1 ICASL7.EQ.'POGC'.OR.ICASL7.EQ.'POLC'.OR.
1 ICASL7.EQ.'POEV'.OR.ICASL7.EQ.'VEAD'.OR.
1 ICASL7.EQ.'VESU'.OR.ICASL7.EQ.'VEDP'.OR.
1 ICASL7.EQ.'VECP'.OR.ICASL7.EQ.'VEDI'.OR.
1 ICASL7.EQ.'VEAN'.OR.ICASL7.EQ.'SEUN')THEN
NUMVAR=2
ELSEIF(ICASL7.EQ.'SEIN'.OR.ICASL7.EQ.'SECO'.OR.
1 ICASL7.EQ.'SECP'.OR.ICASL7.EQ.'LOAN'.OR.
1 ICASL7.EQ.'LOOR'.OR.ICASL7.EQ.'LONA'.OR.
1 ICASL7.EQ.'LONO'.OR.ICASL7.EQ.'LOIM'.OR.
1 ICASL7.EQ.'LOEQ'.OR.ICASL7.EQ.'LOXO'.OR.
1 ICASL7.EQ.'FRAC'.OR.ICASL7.EQ.'GEMU'.OR.
1 ICASL7.EQ.'JAIN'.OR.ICASL7.EQ.'CFRT'.OR.
1 ICASL7.EQ.'HCON'.OR.ICASL7.EQ.'KCON'.OR.
1 ICASL7.EQ.'LMOM'.OR.ICASL7.EQ.'PWMO'.OR.
1 ICASL7.EQ.'BPWM'.OR.ICASL7.EQ.'SRTB'.OR.
1 ICASL7.EQ.'COCD')THEN
NUMVAR=2
ELSEIF(ICASL7.EQ.'INTR'.OR.ICASL7.EQ.'LINT'.OR.
1 ICASL7.EQ.'HCO2'.OR.ICASL7.EQ.'KCO2'.OR.
1 ICASL7.EQ.'COCP')THEN
NUMVAR=3
ELSEIF(ICASL7.EQ.'COAD'.OR.ICASL7.EQ.'COSU'.OR.
1 ICASL7.EQ.'COMU'.OR.ICASL7.EQ.'CODI')THEN
NUMVAR=4
ELSEIF(ICASL7.EQ.'2DIN'.OR.ICASL7.EQ.'BILI'.OR.
1 ICASL7.EQ.'BIVA')THEN
NUMVAR=5
ELSEIF(ICASL7.EQ.'SORC'.OR.ICASL7.EQ.'STAC'.OR.
1 ICASL7.EQ.'RSTA'.OR.ICASL7.EQ.'MTCH'.OR.
1 ICASL7.EQ.'STAN'.OR.ICASL7.EQ.'ZSCO'.OR.
1 ICASL7.EQ.'USCO'.OR.ICASL7.EQ.'LSTA'.OR.
1 ICASL7.EQ.'LSST'.OR.ICASL7.EQ.'CRTA'.OR.
1 ICASL7.EQ.'CUMI'.OR.ICASL7.EQ.'REPL'.OR.
1 ICASL7(1:2).EQ.'CT')THEN
C
ISTRT=ILOCV
ILAST=NUMARG
DO1051I=ISTRT,NUMARG
IHRIGH(I)=IHARG(I)
IHRIG2(I)=IHARG2(I)
IF(IHRIGH(I).EQ.'SUBS'.AND.IHRIG2(I).EQ.'ET ')THEN
ILAST=I-1
GOTO1054
ELSEIF(IHRIGH(I).EQ.'EXCE'.AND.IHRIG2(I).EQ.'PT ')THEN
ILAST=I-1
GOTO1054
ELSEIF(IHRIGH(I).EQ.'FOR '.AND.IHRIG2(I).EQ.' ')THEN
ILAST=I-1
GOTO1054
ENDIF
1051 CONTINUE
1054 CONTINUE
NUMVAR=ILAST-ISTRT+1
C
IF(ICASL7.EQ.'MTCH' .OR. ICASL7.EQ.'REPL')THEN
IF(NUMVAR.EQ.2)THEN
ICASMT='INDE'
ELSEIF(NUMVAR.EQ.3)THEN
ICASMT='TRAN'
ELSE
IF(ICASL7.EQ.'MTCH')THEN
WRITE(ICOUT,1061)
ELSEIF(ICASL7.EQ.'REPL')THEN
WRITE(ICOUT,1062)
ENDIF
1061 FORMAT('****** FOR THE MATCH COMMAND, THE NUMBER OF ',
1 'VARIABLES TO THE RIGHT')
1062 FORMAT('****** FOR THE REPLACE COMMAND, THE NUMBER OF ',
1 'VARIABLES TO THE RIGHT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1063)NUMVAR
1063 FORMAT(' MUST BE 2 OR 3. ',I8,' VARIABLES FOUND.')
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
ENDIF
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MATC')THEN
WRITE(ICOUT,1091)ICASL7,NUMVAR
1091 FORMAT('ICASL7,NUMVAR = ',A4,2X,I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
C ***************************************
C ** STEP 5.1-- **
C ** EXAMINE THE VARIABLES **
C ** ON THE RIGHT. **
C ***************************************
C
ISTEPN='5.1'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MATC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IFLAG1=0
IF(ICASL7.EQ.'JAIN')THEN
IFLAG1=1
ENDIF
ICASEZ=1
CALL DPMAT7(ICASL7,ICASEZ,MAXCAS,ILOCR,
1IHRIGH(1),IHRIG2(1),ICOLR,ILISR,NIRIGH,ITYPA,TEMPS,
1IFLAG1,ATEMP2,ITEMP,
1IBUGA3,ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IF(NUMVAR.GE.2)THEN
IFLAG1=0
IF(ICASL7.EQ.'LMOM' .OR. ICASL7.EQ.'PWMO' .OR.
1 ICASL7.EQ.'BPWM' .OR. ICASL7.EQ.'JAIN' .OR.
1 ICASL7.EQ.'EXPS' .OR. ICASL7.EQ.'MTCH')THEN
IFLAG1=1
ENDIF
ICASEZ=2
CALL DPMAT7(ICASL7,ICASEZ,MAXCAS,ILOCR,
1 IHRIGH(2),IHRIG2(2),ICOLR,ILISR,NIRIGH,
1 ITYPA,TEMPS,
1 IFLAG1,ATEMP2,ITEMP,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(NUMVAR.GE.3)THEN
IFLAG1=0
ICASEZ=3
CALL DPMAT7(ICASL7,ICASEZ,MAXCAS,ILOCR,
1 IHRIGH(3),IHRIG2(3),ICOLR,ILISR,NIRIGH,
1 ITYPA,TEMPS,
1 IFLAG1,ATEMP2,ITEMP,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(NUMVAR.GE.4)THEN
IFLAG1=0
ICASEZ=4
CALL DPMAT7(ICASL7,ICASEZ,MAXCAS,ILOCR,
1 IHRIGH(4),IHRIG2(4),ICOLR,ILISR,NIRIGH,
1 ITYPA,TEMPS,
1 IFLAG1,ATEMP2,ITEMP,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
C 5 OR MORE VARIABLES.
C
IF(NUMVAR.GE.5)THEN
IFLAG1=0
DO1110ICASEZ=5,NUMVAR
CALL DPMAT7(ICASL7,ICASEZ,MAXCAS,ILOCR,
1 IHRIGH(ICASEZ),IHRIG2(ICASEZ),
1 ICOLR,ILISR,NIRIGH,
1 ITYPA,TEMPS,
1 IFLAG1,ATEMP2,ITEMP,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
1110 CONTINUE
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
C
C ******************************************************
C ** STEP 6.1-- **
C ** FOR CERTAIN 2-VARIABLE AND 3-VARIABLE CASES, **
C ** CHECK THAT VARIABLES 1 AND 2 HAVE THE SAME **
C ** NUMBER OF ELEMENTS. **
C ** THIS CHECK IS NOT DONE FOR CONVOLUTION, **
C ** DECONVOLUTION, FREQUENCY **
C ** AND SUM (DISTINCT) **
C ******************************************************
C
2100 CONTINUE
ISTEPN='6.1'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C CASE 1: NO VARIABLES NEED TO BE SAME LENGTH
C
IF(ICASL7.EQ.'CONV'.OR.ICASL7.EQ.'DECO'.OR.
1 ICASL7.EQ.'FREQ'.OR.ICASL7.EQ.'SUMD'.OR.
1 ICASL7.EQ.'SUBS'.OR.ICASL7.EQ.'POAD'.OR.
1 ICASL7.EQ.'POSU'.OR.ICASL7.EQ.'POMU'.OR.
1 ICASL7.EQ.'PODI'.OR.ICASL7.EQ.'POSQ'.OR.
1 ICASL7.EQ.'POSR'.OR.ICASL7.EQ.'POGC'.OR.
1 ICASL7.EQ.'POLC'.OR.ICASL7.EQ.'POEV'.OR.
1 ICASL7.EQ.'SEUN'.OR.ICASL7.EQ.'SEIN'.OR.
1 ICASL7.EQ.'SECO'.OR.ICASL7.EQ.'SECA'.OR.
1 ICASL7.EQ.'SECP'.OR.ICASL7.EQ.'SEEL'.OR.
1 ICASL7.EQ.'LONT'.OR.ICASL7.EQ.'VELE'.OR.
1 ICASL7.EQ.'GEMU'.OR.ICASL7.EQ.'COCD'.OR.
1 ICASL7.EQ.'COCP'.OR.ICASL7.EQ.'EXPS'.OR.
1 ICASL7.EQ.'MTCH'.OR.ICASL7.EQ.'STAC'.OR.
1 ICASL7.EQ.'RSTA'.OR.ICASL7.EQ.'LMOM'.OR.
1 ICASL7.EQ.'PWMO'.OR.ICASL7.EQ.'BPWM'.OR.
1 NUMVAR.EQ.1)THEN
GOTO2190
C
C CASE 2: SAME LENGTH REQUIRED FOR VARIABLES 1 AND 2
C
ELSEIF(ICASL7.EQ.'COEX'.OR.ICASL7.EQ.'COSR'.OR.
1 ICASL7.EQ.'CORO'.OR.
1 ICASL7.EQ.'COCO'.OR.ICASL7.EQ.'CFRT'.OR.
1 ICASL7.EQ.'VEAD'.OR.ICASL7.EQ.'VESU'.OR.
1 ICASL7.EQ.'VEDP'.OR.ICASL7.EQ.'VECP'.OR.
1 ICASL7.EQ.'VEDI'.OR.ICASL7.EQ.'VEAN'.OR.
1 ICASL7.EQ.'LOAN'.OR.ICASL7.EQ.'LOOR'.OR.
1 ICASL7.EQ.'LONA'.OR.ICASL7.EQ.'LONO'.OR.
1 ICASL7.EQ.'LOIM'.OR.ICASL7.EQ.'LOEQ'.OR.
1 ICASL7.EQ.'LOXO'.OR.ICASL7.EQ.'HCON'.OR.
1 ICASL7.EQ.'KCON'.OR.ICASL7.EQ.'SRTB'.OR.
1 (ICASL7.EQ.'ZSCO'.OR.ICASL7.EQ.'LSTA'.OR.
1 ICASL7.EQ.'USCO'.OR.ICASL7.EQ.'LSST'.OR.
1 ICASL7.EQ.'CRTA'.OR.ICASL7.EQ.'STAN'.OR.
1 ICASL7(1:2).EQ.'CT' .AND. NUMVAR.EQ.2))THEN
IF(NIRIGH(1).NE.NIRIGH(2))THEN
WRITE(ICOUT,2111)
2111 FORMAT('***** ERROR 2111 IN DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2112)
2112 FORMAT(' VARIABLES ONE AND TWO MUST HAVE THE SAME')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2113)
2113 FORMAT(' NUMBER OF OBSERVATIONS; SUCH WAS NOT ',
1 'THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
DO2114J=1,2
WRITE(ICOUT,2115)IHRIGH(J),IHRIG2(J),NIRIGH(J)
2115 FORMAT(' VARIABLE ',A4,A4,' HAS ',I8,
1 ' OBSERVATIONS;')
CALL DPWRST('XXX','BUG ')
2114 CONTINUE
WRITE(ICOUT,2118)
2118 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,2119)(IANS(I),I=1,MAX(100,IWIDTH))
2119 FORMAT(' ',100A1)
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO19000
ENDIF
C
C CASE 3: SAME LENGTH REQUIRED FOR VARIABLES 1, 2, AND 3
C
ELSEIF(ICASL7.EQ.'HCO2'.OR.ICASL7.EQ.'KCO2'.OR.
1 ICASL7.EQ.'2DIN' .OR.
1 (ICASL7.EQ.'ZSCO'.OR.ICASL7.EQ.'LSTA'.OR.
1 ICASL7.EQ.'USCO'.OR.ICASL7.EQ.'LSST'.OR.
1 ICASL7.EQ.'CRTA'.OR.ICASL7.EQ.'STAN'.OR.
1 ICASL7(1:2).EQ.'CT' .AND. NUMVAR.EQ.3))THEN
IF(NIRIGH(1).NE.NIRIGH(2) .OR. NIRIGH(1).NE.NIRIGH(3))THEN
WRITE(ICOUT,2121)
2121 FORMAT('***** ERROR 2121 IN DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2122)
2122 FORMAT(' VARIABLES ONE , TWO, AND THREE MUST HAVE ',
1 'THE SAME')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2123)
2123 FORMAT(' NUMBER OF OBSERVATIONS; SUCH WAS NOT ',
1 'THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
DO2124J=1,3
WRITE(ICOUT,2115)IHRIGH(J),IHRIG2(J),NIRIGH(J)
CALL DPWRST('XXX','BUG ')
2124 CONTINUE
WRITE(ICOUT,2118)
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,2119)(IANS(I),I=1,MAX(100,IWIDTH))
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO19000
ENDIF
C
C CASE 4: SAME LENGTH REQUIRED FOR VARIABLES 1, 2, 3, AND 4
C
ELSEIF(ICASL7.EQ.'COAD'.OR.ICASL7.EQ.'COSU'.OR.
1 ICASL7.EQ.'COMU'.OR.ICASL7.EQ.'CODI')THEN
IF(NIRIGH(1).NE.NIRIGH(2) .OR. NIRIGH(1).NE.NIRIGH(3) .OR.
1 NIRIGH(1).NE.NIRIGH(4))THEN
WRITE(ICOUT,2131)
2131 FORMAT('***** ERROR 2131 IN DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2132)
2132 FORMAT(' VARIABLES ONE , TWO, THREE, AND FOUR ',
1 'MUST HAVE THE SAME')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2133)
2133 FORMAT(' NUMBER OF OBSERVATIONS; SUCH WAS NOT ',
1 'THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
DO2134J=1,4
WRITE(ICOUT,2115)IHRIGH(J),IHRIG2(J),NIRIGH(J)
CALL DPWRST('XXX','BUG ')
2134 CONTINUE
WRITE(ICOUT,2136)IHRIGH(1),IHRIG2(1),NIRIGH(1)
2136 FORMAT(' VARIABLE ',A4,A4,' HAS ',I8,
1 ' OBSERVATIONS;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2136)IHARG(ILOCV+1),IHARG2(ILOCV+1),NIRIGH(2)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2136)IHARG(ILOCV+2),IHARG2(ILOCV+2),NIRIGH(3)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2136)IHARG(ILOCV+3),IHARG2(ILOCV+3),NIRIGH(4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2118)
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,2119)(IANS(I),I=1,MAX(100,IWIDTH))
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO19000
ENDIF
C
C CASE 5: SAME LENGTH REQUIRED FOR VARIABLES 1, 2, AND 3 AND
C FOR VARIABLES 4 AND 5
C
ELSEIF(ICASL7.EQ.'BILI'.OR.ICASL7.EQ.'BIVA')THEN
IF(NIRIGH(1).EQ.NIRIGH(2).AND.NIRIGH(2).EQ.NIRIGH(3).AND.
1 NIRIGH(4).EQ.NIRIGH(5))GOTO2190
WRITE(ICOUT,2141)
2141 FORMAT('***** ERROR 2141 IN DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2142)
2142 FORMAT(' FOR 2D INTERPOLATION, THE NUMBER OF ',
1 'OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2143)
2143 FORMAT(' IN THE FIRST THREE VARIABLES AND IN VARIABLES')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2144)
2144 FORMAT(' 4 AND 5 MUST BE THE SAME; SUCH WAS NOT THE ',
1 'CASE HERE.')
CALL DPWRST('XXX','BUG ')
DO2146J=1,5
WRITE(ICOUT,2115)IHRIGH(J),IHRIG2(J),NIRIGH(J)
CALL DPWRST('XXX','BUG ')
2146 CONTINUE
WRITE(ICOUT,2118)
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,2119)(IANS(I),I=1,MAX(100,IWIDTH))
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO19000
C
C CASE 6: VARIABLE 1 AND VARIABLE 3 MUST HAVE SAME LENGTH
C
ELSEIF((ICASL7.EQ.'MTCH'.AND.ICASMT.EQ.'TRAN') .OR.
1 (ICASL7.EQ.'REPL'.AND.ICASMT.EQ.'TRAN'))THEN
IF(NIRIGH(1).NE.NIRIGH(3))THEN
WRITE(ICOUT,2151)
2151 FORMAT('***** ERROR 2151 IN DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2152)
2152 FORMAT(' VARIABLES ONE AND THREE MUST HAVE THE SAME')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2153)
2153 FORMAT(' NUMBER OF OBSERVATIONS; SUCH WAS NOT ',
1 'THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2115)IHRIGH(1),IHRIG2(1),NIRIGH(1)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2115)IHRIGH(3),IHRIG2(3),NIRIGH(3)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2158)
2158 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,2119)(IANS(I),I=1,MAX(100,IWIDTH))
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO19000
ENDIF
ENDIF
C
2190 CONTINUE
C
C *******************************
C ** STEP 7-- **
C ** DETERMINE THE SUBCASE **
C ** AND BRANCH ACCORDINGLY. **
C *******************************
C
7000 CONTINUE
C
ISTEPN='7'
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')THEN
CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
WRITE(ICOUT,7003)NUMVAR,NUMARG
7003 FORMAT('7008--NUMVAR,NUMARG = ',2I8)
CALL DPWRST('XXX','BUG ')
DO7005I=1,NUMVAR
WRITE(ICOUT,7008)I,ITYPA(I),ILOCR(I)
7008 FORMAT('7008-I,ITYPA(I),ILOCR(I) = ',I4,2X,A4,2X,I8)
CALL DPWRST('XXX','BUG ')
7005 CONTINUE
WRITE(ICOUT,7006)IHARG(ILOCR(NUMVAR)),IHARG2(ILOCR(NUMVAR))
7006 FORMAT('IHARG(ILOCR(NUMVAR)),IHARG2(ILOCR(NUMVAR)) = ',2A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7007)IHARG(ILOCR(NUMVAR)+1),
1 IHARG2(ILOCR(NUMVAR)+1)
7007 FORMAT('IHARG(ILOCR(NUMVAR)+1),IHARG2(ILOCR(NUMVAR)+1) = ',
1 2A4)
CALL DPWRST('XXX','BUG ')
ENDIF
C
CCCCC FOR EXPONENTIAL SMOOTH, SECOND ARGUMENT OPTIONAL.
C
IF(ICASL7.EQ.'EXPS')THEN
IF(ILOCR(1).EQ.NUMARG)THEN
TEMPS(2)=0.0
NUMVAR=1
GOTO8000
ELSEIF(IHARG(ILOCR(2)).EQ.'SUBS'.OR.
1 IHARG(ILOCR(2)).EQ.'EXCE'.OR.
1 IHARG(ILOCR(2)).EQ.'FOR ')THEN
TEMPS(2)=0.0
NUMVAR=1
IF(IHARG(ILOCR(2)).EQ.'SUBS')GOTO9000
IF(IHARG(ILOCR(2)).EQ.'EXCE')GOTO9000
IF(IHARG(ILOCR(2)).EQ.'FOR ')GOTO10000
ENDIF
ELSEIF(ICASL7.EQ.'SORC' .OR. ICASL7.EQ.'STAC'.OR.
1 ICASL7.EQ.'RSTA')THEN
NUMVAR=1
ISTRT=4
IF(ICASL7.EQ.'STAC')ISTRT=5
IF(ICASL7.EQ.'RSTA')ISTRT=7
IF(NUMARG.LE.ISTRT)GOTO8000
DO7051I=ISTRT+1,NUMARG
ILOCR7=I
NUMVAR=NUMVAR+1
IF(ILOCR7.GE.NUMARG)GOTO8000
IF(ILOCR7.LT.NUMARG.AND.IHARG(ILOCR7+1).EQ.'SUBS'.AND.
1 IHARG2(ILOCR7+1).EQ.'ET ')GOTO9000
IF(ILOCR7.LT.NUMARG.AND.IHARG(ILOCR7+1).EQ.'EXCE'.AND.
1 IHARG2(ILOCR7+1).EQ.'PT ')GOTO9000
IF(ILOCR7.LT.NUMARG.AND.IHARG(ILOCR7+1).EQ.'FOR '.AND.
1 IHARG2(ILOCR7+1).EQ.' ')GOTO10000
7051 CONTINUE
GOTO8000
ENDIF
C
IF(ILOCR(NUMVAR).EQ.NUMARG)GOTO8000
C
IF(ILOCR(NUMVAR).LT.NUMARG)THEN
IT1=ILOCR(NUMVAR+1)
IF(IHARG(IT1).EQ.'SUBS'.AND.IHARG2(IT1).EQ.'ET ')GOTO9000
IF(IHARG(IT1).EQ.'EXCE'.AND.IHARG2(IT1).EQ.'PT ')GOTO9000
IF(IHARG(IT1).EQ.'FOR '.AND.IHARG2(IT1).EQ.' ')GOTO10000
ENDIF
C
WRITE(ICOUT,7081)
7081 FORMAT('***** ERROR 7081 IN DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7082)
7082 FORMAT(' ILLEGAL SYNTAX FOR LET COMMAND AT 7082--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7083)
7083 FORMAT(' THE COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7084)(IANS(I),I=1,MAX(100,IWIDTH))
7084 FORMAT(100A1)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7088)ILOCV,NUMARG,NUMVAR
7088 FORMAT('ILOCV,NUMARG,NUMVAR = ',3I8)
CALL DPWRST('XXX','BUG ')
DO7089I=1,NUMVAR
WRITE(ICOUT,7086)I,ILOCR(I)
7086 FORMAT('I,ILOCR(I) = ',I4,2X,I8)
CALL DPWRST('XXX','BUG ')
7089 CONTINUE
IERROR='YES'
GOTO19000
C
C ************************************************
C ** STEP 8-- **
C ** TREAT THE FULL VARIABLE CASE. **
C ** EXAMPLE--LET Y = SORT X **
C ** --LET Y(I) = SORT X **
C ** THEN JUMP TO STEP NUMBER 10 BELOW **
C ** FOR THE LIST UPDATING AND **
C ** FOR SOME INFORMATIVE PRINTING. **
C ************************************************
C
C
8000 CONTINUE
ISTEPN='8'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
WRITE(ICOUT,8011)NUMVAR,NIRIGH(1)
8011 FORMAT('NUMVAR,NIRIGH(1) = ',2I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
ICASEQ='FULL'
NIOLD=NIRIGH(1)
IF(NUMVAR.GE.2)THEN
DO8020I=2,NUMVAR
IF(NIRIGH(I).GT.NIOLD)NIOLD=NIRIGH(I)
8020 CONTINUE
ENDIF
NINEW=NIOLD
DO8100I=1,NINEW
ISUB(I)=1
8100 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,8021)NINEW,NIRIGH(1)
8021 FORMAT('NINEW,NIRIGH(1) = ',2I8)
CALL DPWRST('XXX','BUG ')
ENDIF
GOTO11000
C
C **************************************************
C ** STEP 9-- *
C ** TREAT THE PARTIAL VARIABLE SUBSET CASE. *
C ** EXAMPLE--LET Y = SORT X SUBSET 2 3 5 *
C ** --LET Y(I) = SORT X SUBSET 2 3 5 *
C ** JUMP TO STEP NUMBER 11 BELOW *
C ** FOR THE ACTUAL MATHEMATICAL OPERATION, *
C ** FOR THE LIST UPDATING, AND *
C ** FOR SOME INFORMATIVE PRINTING. *
C **************************************************
C
9000 CONTINUE
ISTEPN='9'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='SUBS'
ILOCSV=ILOCR(NUMVAR)+2
IHSET=IHARG(ILOCSV)
IHSET2=IHARG2(ILOCSV)
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,9002)ILOCSV,IHSET,IHSET2
9002 FORMAT('ILOCSV,IHSET,IHSET2 = ',I8,2X,A4,A4)
CALL DPWRST('XXX','BUG ')
ENDIF
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHSET,IHSET2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOC,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
NIOLD=IN(ILOC)
CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR)
NINEW=NIOLD
GOTO11000
C
C **************************************************
C ** STEP 10-- *
C ** TREAT THE PARTIAL VARIABLE FOR CASE. *
C ** EXAMPLE--LET Y = SORT X FOR I = 1 2 10 *
C ** --LET Y(I) = SORT X FOR I = 1 2 10 *
C ** JUMP TO STEP NUMBER 11 BELOW *
C ** FOR THE ACTUAL MATHEMATICAL OPERATION, *
C ** FOR THE LIST UPDATING, AND *
C ** FOR SOME INFORMATIVE PRINTING. *
C **************************************************
C
10000 CONTINUE
ISTEPN='10'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='FOR'
CALL DPFOR(NIOLD,NINEW,IROW1,IROWN,
1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
NIFOR=NINEW
GOTO11000
C
C *******************************************
C ** STEP 11-- **
C ** CARRY OUT THE **
C ** MATHEMATICAL OPERATION. **
C *******************************************
C
11000 CONTINUE
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')THEN
CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
DO11109I=1,NUMVAR
WRITE(ICOUT,11101)I,ITYPA(I)
11101 FORMAT('11101--I,ITYPA(I) = ',I4,2X,A4)
CALL DPWRST('XXX','BUG ')
11109 CONTINUE
ENDIF
C
NITEMX=NINEW
NS1=0
NS2=0
NS3=0
NS4=0
NS5=0
C
IF(NUMVAR.GE.1 .AND. ITYPA(1).EQ.'VARI')THEN
DO11111I=1,NINEW
IF(ISUB(I).EQ.0)GOTO11111
IF(I.GT.NIRIGH(1))GOTO11119
IJ=MAXN*(ICOLR(1)-1)+I
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MATC')THEN
WRITE(ICOUT,11112)I,NS1,NINEW,ISUB(I),IJ,V(IJ)
11112 FORMAT('I,NS1,NINEW,ISUB(I),IJ,V(IJ) = ',5I8,F12.5)
CALL DPWRST('XXX','BUG ')
ENDIF
C
NS1=NS1+1
IF(ICOLR(1).LE.MAXCOL)TEMP1(NS1)=V(IJ)
IF(ICOLR(1).EQ.MAXCP1)TEMP1(NS1)=PRED(I)
IF(ICOLR(1).EQ.MAXCP2)TEMP1(NS1)=RES(I)
IF(ICOLR(1).EQ.MAXCP3)TEMP1(NS1)=YPLOT(I)
IF(ICOLR(1).EQ.MAXCP4)TEMP1(NS1)=XPLOT(I)
IF(ICOLR(1).EQ.MAXCP5)TEMP1(NS1)=X2PLOT(I)
IF(ICOLR(1).EQ.MAXCP6)TEMP1(NS1)=TAGPLO(I)
11111 CONTINUE
11119 CONTINUE
ENDIF
C
IF(NUMVAR.GE.2 .AND. ITYPA(2).EQ.'VARI')THEN
DO11121I=1,NINEW
IF(ISUB(I).EQ.0)GOTO11121
IF(I.GT.NIRIGH(2))GOTO11129
NS2=NS2+1
IJ=MAXN*(ICOLR(2)-1)+I
IF(ICOLR(2).LE.MAXCOL)TEMP2(NS2)=V(IJ)
IF(ICOLR(2).EQ.MAXCP1)TEMP2(NS2)=PRED(I)
IF(ICOLR(2).EQ.MAXCP2)TEMP2(NS2)=RES(I)
IF(ICOLR(2).EQ.MAXCP3)TEMP2(NS2)=YPLOT(I)
IF(ICOLR(2).EQ.MAXCP4)TEMP2(NS2)=XPLOT(I)
IF(ICOLR(2).EQ.MAXCP5)TEMP2(NS2)=X2PLOT(I)
IF(ICOLR(2).EQ.MAXCP6)TEMP2(NS2)=TAGPLO(I)
11121 CONTINUE
11129 CONTINUE
ENDIF
C
IF(NUMVAR.GE.3 .AND. ITYPA(3).EQ.'VARI')THEN
DO11131I=1,NIRIGH(3)
IF(ISUB(I).EQ.0)GOTO11131
IF(I.GT.NIRIGH(3))GOTO11139
NS3=NS3+1
IJ=MAXN*(ICOLR(3)-1)+I
IF(ICOLR(3).LE.MAXCOL)TEMP3(NS3)=V(IJ)
IF(ICOLR(3).EQ.MAXCP1)TEMP3(NS3)=PRED(I)
IF(ICOLR(3).EQ.MAXCP2)TEMP3(NS3)=RES(I)
IF(ICOLR(3).EQ.MAXCP3)TEMP3(NS3)=YPLOT(I)
IF(ICOLR(3).EQ.MAXCP4)TEMP3(NS3)=XPLOT(I)
IF(ICOLR(3).EQ.MAXCP5)TEMP3(NS3)=X2PLOT(I)
IF(ICOLR(3).EQ.MAXCP6)TEMP3(NS3)=TAGPLO(I)
11131 CONTINUE
11139 CONTINUE
ENDIF
C
IF(NUMVAR.GE.4 .AND. ITYPA(4).EQ.'VARI')THEN
DO11141I=1,NIRIGH(4)
IF(ISUB(I).EQ.0)GOTO11141
IF(I.GT.NIRIGH(4))GOTO11149
NS4=NS4+1
IJ=MAXN*(ICOLR(4)-1)+I
IF(ICOLR(4).LE.MAXCOL)TEMP4(NS4)=V(IJ)
IF(ICOLR(4).EQ.MAXCP1)TEMP4(NS4)=PRED(I)
IF(ICOLR(4).EQ.MAXCP2)TEMP4(NS4)=RES(I)
IF(ICOLR(4).EQ.MAXCP3)TEMP4(NS4)=YPLOT(I)
IF(ICOLR(4).EQ.MAXCP4)TEMP4(NS4)=XPLOT(I)
IF(ICOLR(4).EQ.MAXCP5)TEMP4(NS4)=X2PLOT(I)
IF(ICOLR(4).EQ.MAXCP6)TEMP4(NS4)=TAGPLO(I)
11141 CONTINUE
11149 CONTINUE
ENDIF
C
IF(NUMVAR.GE.5 .AND. ITYPA(5).EQ.'VARI')THEN
DO11151I=1,NIRIGH(5)
IF(ISUB(I).EQ.0)GOTO11151
IF(I.GT.NIRIGH(5))GOTO11159
NS5=NS5+1
IJ=MAXN*(ICOLR(5)-1)+I
IF(ICOLR(5).LE.MAXCOL)TEMP5(NS5)=V(IJ)
IF(ICOLR(5).EQ.MAXCP1)TEMP5(NS5)=PRED(I)
IF(ICOLR(5).EQ.MAXCP2)TEMP5(NS5)=RES(I)
IF(ICOLR(5).EQ.MAXCP3)TEMP5(NS5)=YPLOT(I)
IF(ICOLR(5).EQ.MAXCP4)TEMP5(NS5)=XPLOT(I)
IF(ICOLR(5).EQ.MAXCP5)TEMP5(NS5)=X2PLOT(I)
IF(ICOLR(5).EQ.MAXCP6)TEMP5(NS5)=TAGPLO(I)
11151 CONTINUE
11159 CONTINUE
ENDIF
C
11290 CONTINUE
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')THEN
WRITE(ICOUT,11292)NINEW,ICASL7,ICASEQ
11292 FORMAT('11292--NINEW,ICASL7,ICASEQ = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11293)NS1,NS2,NS3,NS4,NS5
11293 FORMAT('NS1,NS2,NS3,NS4,NS5 = ',5I8)
CALL DPWRST('XXX','BUG ')
DO11294II=1,4
WRITE(ICOUT,11291)II,ICOLR(II),ITYPA(II)
11291 FORMAT('II,ICOLR(II),ITYPA(II) = ',I8,2X,I8,2X,A4)
CALL DPWRST('XXX','BUG ')
11294 CONTINUE
WRITE(ICOUT,11296)IMATSW,ICASL7
11296 FORMAT('IMATSW,ICASL7 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
ENDIF
C
C -----BRANCH TO THE PROPER CASE-----
C
IWRITE='ON'
IF(IPRINT.EQ.'OFF')IWRITE='OFF'
IF(IFEEDB.EQ.'OFF')IWRITE='OFF'
C
IF(ICASL7.EQ.'SORT')THEN
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')THEN
DO11310I=1,NS1
WRITE(ICOUT,11311)I,TEMP1(I)
11311 FORMAT('I,TEMP1(I) = ',I8,2X,F10.5)
CALL DPWRST('XXX','BUG ')
11310 CONTINUE
ENDIF
CALL SORT(TEMP1,NS1,TEMP1)
CCCCC CHECK DIRECTION. JANUARY 2000.
IF(ISORDI.EQ.'DESC')THEN
DO11315I=1,NS1
TEMP2(I)=TEMP1(I)
11315 CONTINUE
DO11317I=1,NS1
II=NS1-I+1
TEMP1(I)=TEMP2(II)
11317 CONTINUE
ENDIF
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')THEN
DO11312I=1,NS1
WRITE(ICOUT,11311)I,TEMP1(I)
CALL DPWRST('XXX','BUG ')
11312 CONTINUE
ENDIF
ELSEIF(ICASL7.EQ.'RANK')THEN
CALL RANK2(TEMP1,NS1,IWRITE,TEMP1,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'CODE')THEN
CALL CODE(TEMP1,NS1,IWRITE,TEMP1,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'DIST')THEN
CALL DISTIN(TEMP1,NS1,IWRITE,TEMP1,NITEMX,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'SEQD')THEN
CALL SEQDIF(TEMP1,NS1,IWRITE,TEMP1,NITEMX,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'IART')THEN
CALL INTARR(TEMP1,NS1,IWRITE,TEMP1,NITEMX,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'CUMS')THEN
CALL CUMSUM(TEMP1,NS1,IWRITE,TEMP1,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'CUMA')THEN
CALL CUMAVE(TEMP1,NS1,IWRITE,TEMP1,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'CUMH')THEN
CALL CUMHAZ(TEMP1,TEMP2,NS1,IWRITE,TEMP1,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'HAZA')THEN
CALL HAZARD(TEMP1,TEMP2,NS1,IWRITE,TEMP1,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'EXPS')THEN
IF(TEMPS(2).GT.0.0.AND.TEMPS(2).LT.1.0)THEN
CALL EXPSMO(TEMP1,TEMP2,TEMPS(2),TEMPS(3),NS1,IWRITE,TEMP1,
1 IBUGA3,IERROR)
ELSE
CALL EXPSM2(TEMP1,TEMP2,TEMPS(2),TEMPS(3),NS1,IWRITE,TEMP3,
1 IBUGA3,IERROR)
DO1185I=1,NS1
TEMP1(I)=TEMP3(I)
1185 CONTINUE
ENDIF
C
IH='ALPH'
IH2='A '
VALUE0=TEMPS(2)
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='EXPS'
IH2='MSE '
VALUE0=TEMPS(3)
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASL7.EQ.'CUMP')THEN
CALL CUMPRO(TEMP1,NS1,IWRITE,TEMP1,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'CUMI')THEN
CALL CUMINT(TEMP1,TEMP2,NS1,NUMVAR,IWRITE,TEMP1,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'FLIP')THEN
CALL REVERS(TEMP1,NS1,IWRITE,TEMP1,TEMP2,IBUGA3,IERROR)
ELSEIF(ICASL7.EQ.'MTCH')THEN
CALL MATCH(TEMP1,TEMP3,NS1,TEMP2,NS2,IWRITE,TEMP4,ICASMT,
1 IBUGA3,IERROR)
NITEMX=NS2
DO11373I=1,NITEMX
TEMP1(I)=TEMP4(I)
11373 CONTINUE
ELSEIF(ICASL7.EQ.'REPL')THEN
C
C FOR REPLACE COMMAND, NEED TO INSERT THE CURRENTLY DEFINED
C VALUES FOR THE FIRST LEFT-HAND SIDE VARIABLE IN TEMP4.
C
NS1SAV=NS1
NS1=0
DO11381I=1,NINEW
IF(ISUB(I).EQ.0)GOTO11381
IF(I.GT.NILEF1)GOTO11389
IJ=MAXN*(ICOLL(1)-1)+I
NS1=NS1+1
IF(ICOLL(1).LE.MAXCOL)TEMP4(NS1)=V(IJ)
IF(ICOLL(1).EQ.MAXCP1)TEMP4(NS1)=PRED(I)
IF(ICOLL(1).EQ.MAXCP2)TEMP4(NS1)=RES(I)
IF(ICOLL(1).EQ.MAXCP3)TEMP4(NS1)=YPLOT(I)
IF(ICOLL(1).EQ.MAXCP4)TEMP4(NS1)=XPLOT(I)
IF(ICOLL(1).EQ.MAXCP5)TEMP4(NS1)=X2PLOT(I)
IF(ICOLL(1).EQ.MAXCP6)TEMP4(NS1)=TAGPLO(I)
11381 CONTINUE
11389 CONTINUE
NS1=NS1SAV
CALL REPLAC(TEMP1,TEMP3,NS1,TEMP2,NS2,IWRITE,TEMP4,ICASMT,
1 ISUBRO,IBUGA3,IERROR)
NITEMX=NS1
DO11383I=1,NITEMX
TEMP1(I)=TEMP4(I)
11383 CONTINUE
C
ELSEIF(ICASL7.EQ.'CONV')THEN
CALL CONVOL(TEMP1,NS1,TEMP2,NS2,NUMVAR,IWRITE,MAXN,
1 TEMP91,NITEMX,IBUGA3,IERROR)
DO11395I=1,NITEMX
TEMP1(I)=TEMP91(I)
11395 CONTINUE
ELSEIF(ICASL7.EQ.'DECO')THEN
CALL DECONV(TEMP1,NS1,TEMP2,NS2,NUMVAR,IWRITE,
1 TEMP91,NITEMX,IBUGA3,IERROR)
DO11405I=1,NITEMX
TEMP1(I)=TEMP91(I)
11405 CONTINUE
ELSEIF(ICASL7.EQ.'SORC')THEN
CALL SORTI(TEMP1,NS1,TEMP1,TEMP91)
IF(ISORDI.EQ.'DESC')THEN
DO31411I=1,NS1
TEMP4(I)=TEMP1(I)
31411 CONTINUE
DO31412I=1,NS1
II=NS1-I+1
TEMP1(I)=TEMP4(II)
31412 CONTINUE
ENDIF
C
IF(IBUGA3.EQ.'ON')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11411)(TEMP1(I),TEMP91(I),I=1,NS1)
11411 FORMAT(F10.5,2X,F10.5)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(NUMARG.LE.4)GOTO11418
DO11412ILOCRI=5,NUMARG
IH1=IHARG(ILOCRI)
IH2=IHARG2(ILOCRI)
IF(IH1.EQ.'SUBS'.AND.IH2.EQ.'ET ')GOTO11418
IF(IH1.EQ.'EXCE'.AND.IH2.EQ.'PT ')GOTO11418
IF(IH1.EQ.'FOR '.AND.IH2.EQ.' ')GOTO11418
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IH1,IH2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOC,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
ICOLRI=IVALUE(ILOC)
NITEMP=IN(ILOC)
C
CALL DPSUBS(NITEMP,ILOCS,NS,IBUGQ,IERROR)
C
NR=0
DO11413I=1,NITEMP
IF(ISUB(I).EQ.0)GOTO11413
NR=NR+1
IJ=MAXN*(ICOLRI-1)+NR
IF(ICOLRI.LE.MAXCOL)TEMP2(NR)=V(IJ)
IF(ICOLRI.EQ.MAXCP1)TEMP2(NR)=PRED(I)
IF(ICOLRI.EQ.MAXCP2)TEMP2(NR)=RES(I)
IF(ICOLRI.EQ.MAXCP3)TEMP2(NR)=YPLOT(I)
IF(ICOLRI.EQ.MAXCP4)TEMP2(NR)=XPLOT(I)
IF(ICOLRI.EQ.MAXCP5)TEMP2(NR)=X2PLOT(I)
IF(ICOLRI.EQ.MAXCP6)TEMP2(NR)=TAGPLO(I)
11413 CONTINUE
C
DO11414I=1,NR
J=TEMP91(I)+0.5
TEMP3(I)=TEMP2(J)
11414 CONTINUE
IF(ISORDI.EQ.'DESC')THEN
DO11416I=1,NR
TEMP4(I)=TEMP3(I)
11416 CONTINUE
DO11419I=1,NR
II=NR-I+1
TEMP3(I)=TEMP4(II)
11419 CONTINUE
ENDIF
C
J=0
DO11415I=1,NITEMP
IF(ISUB(I).EQ.0)GOTO11415
J=J+1
IJ=MAXN*(ICOLRI-1)+I
IF(ICOLRI.LE.MAXCOL)V(IJ)=TEMP3(J)
IF(ICOLRI.EQ.MAXCP1)PRED(I)=TEMP3(J)
IF(ICOLRI.EQ.MAXCP2)RES(I)=TEMP3(J)
IF(ICOLRI.EQ.MAXCP3)YPLOT(I)=TEMP3(J)
IF(ICOLRI.EQ.MAXCP4)XPLOT(I)=TEMP3(J)
IF(ICOLRI.EQ.MAXCP5)X2PLOT(I)=TEMP3(J)
IF(ICOLRI.EQ.MAXCP6)TAGPLO(I)=TEMP3(J)
11415 CONTINUE
11412 CONTINUE
11418 CONTINUE
C
CCCCC THE FOLLOWING STACK SECTION ADDED MAY 2003
CCCCC FEBRUARY 2005: ADD SUPPORT FOR REPLICATED STACK. IN THIS
CCCCC CASE, LAST VARIABLE IS A REPLICATION NUMBER
CCCCC THAT WILL BE DUPLICATED FOR EACH GROUP.
C
ELSEIF(ICASL7.EQ.'STAC' .OR. ICASL7.EQ.'RSTA')THEN
IF(NUMARG.LE.4)GOTO91499
IF(ICASL7.EQ.'RSTA' .AND. NUMARG.LE.6)GOTO91499
C
ICNT=0
IVARCN=0
NLAST=NUMARG
NSTRT=5
IF(ICASL7.EQ.'RSTA')NSTRT=7
IF(ICASL7.EQ.'RSTA')THEN
NLAST=NUMARG-1
DO91403II=NSTRT,NUMARG
IH1=IHARG(II)
IH2=IHARG2(II)
IF(IH1.EQ.'SUBS'.AND.IH2.EQ.'ET ')THEN
NLAST=II-1
GOTO91407
ELSEIF(IH1.EQ.'EXCE'.AND.IH2.EQ.'PT ')THEN
NLAST=II-1
GOTO91407
ELSEIF(IH1.EQ.'FOR '.AND.IH2.EQ.' ')THEN
NLAST=II-1
GOTO91407
ENDIF
91403 CONTINUE
91407 CONTINUE
NREPL=NLAST+1
ENDIF
C
DO91412ILOCRI=NSTRT,NLAST
C
IF(ICASL7.EQ.'RSTA')THEN
IHREPL=IHARG(NREPL)
IHREP2=IHARG2(NREPL)
IF(IHREPL.EQ.'SUBS'.AND.IHREP2.EQ.'ET ')GOTO91499
IF(IHREPL.EQ.'EXCE'.AND.IHREP2.EQ.'PT ')GOTO91499
IF(IHREPL.EQ.'FOR '.AND.IHREP2.EQ.' ')GOTO91499
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHREPL,IHREP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,
1 NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOC,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
ICOLRP=IVALUE(ILOC)
NIREPL=IN(ILOC)
ENDIF
C
IHREPL=IHARG(ILOCRI)
IHREP2=IHARG2(ILOCRI)
IF(IHREPL.EQ.'SUBS'.AND.IHREP2.EQ.'ET ')GOTO91499
IF(IHREPL.EQ.'EXCE'.AND.IHREP2.EQ.'PT ')GOTO91499
IF(IHREPL.EQ.'FOR '.AND.IHREP2.EQ.' ')GOTO91499
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHREPL,IHREP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOC,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
ICOLRI=IVALUE(ILOC)
NITEMP=IN(ILOC)
IVARCN=IVARCN+1
C
CALL DPSUBS(NITEMP,ILOCS,NS,IBUGQ,IERROR)
C
NR=0
DO91413I=1,NITEMP
IF(ISUB(I).EQ.0)GOTO91413
NR=NR+1
IJ=MAXN*(ICOLRI-1)+NR
IF(ICOLRI.LE.MAXCOL)ATEMP=V(IJ)
IF(ICOLRI.EQ.MAXCP1)ATEMP=PRED(I)
IF(ICOLRI.EQ.MAXCP2)ATEMP=RES(I)
IF(ICOLRI.EQ.MAXCP3)ATEMP=YPLOT(I)
IF(ICOLRI.EQ.MAXCP4)ATEMP=XPLOT(I)
IF(ICOLRI.EQ.MAXCP5)ATEMP=X2PLOT(I)
IF(ICOLRI.EQ.MAXCP6)ATEMP=TAGPLO(I)
C
IF(ICASL7.EQ.'RSTA')THEN
IJ=MAXN*(ICOLRP-1)+NR
IF(ICOLRP.LE.MAXCOL)ATEMP2=V(IJ)
IF(ICOLRP.EQ.MAXCP1)ATEMP2=PRED(I)
IF(ICOLRP.EQ.MAXCP2)ATEMP2=RES(I)
IF(ICOLRP.EQ.MAXCP3)ATEMP2=YPLOT(I)
IF(ICOLRP.EQ.MAXCP4)ATEMP2=XPLOT(I)
IF(ICOLRP.EQ.MAXCP5)ATEMP2=X2PLOT(I)
IF(ICOLRP.EQ.MAXCP6)ATEMP2=TAGPLO(I)
ENDIF
C
ICNT=ICNT+1
IF(ICNT.GT.MAXOBV)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,91417)
91417 FORMAT('****** WARNING FROM STACK COMMAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,91419)
91419 FORMAT(' MAXIMUM NUMBER OF ROWS, ',I8,
1 ' HAS BEEN EXCEEDED.')
CALL DPWRST('XXX','BUG ')
GOTO91418
ENDIF
C
TEMP1(ICNT)=ATEMP
TEMP2(ICNT)=REAL(IVARCN)
TEMP91(ICNT)=ATEMP2
91413 CONTINUE
C
J=0
DO91415I=1,NITEMP
IF(ISUB(I).EQ.0)GOTO91415
J=J+1
91415 CONTINUE
91412 CONTINUE
91418 CONTINUE
C
NITEMX=ICNT
IFOUND='YES'
GOTO11900
C
91499 CONTINUE
IERROR='YES'
GOTO9000
C
ELSEIF(ICASL7.EQ.'FREQ')THEN
CALL FREQUE(TEMP1,NS1,TEMP2,NS2,NUMVAR,IWRITE,
1 TEMP91,NITEMX,IBUGA3,IERROR)
DO11425I=1,NITEMX
TEMP1(I)=TEMP91(I)
11425 CONTINUE
ELSEIF(ICASL7.EQ.'SUMD')THEN
CCCCC JAN 1987--NOT DONE
CCCCC CALL SUMD(TEMP1,NS1,TEMP2,NS2,NUMVAR,IWRITE,
CCCCC1 TEMP91,NITEMX,IBUGA3,IERROR)
CCCCC DO11455I=1,NITEMX
CCCCC TEMP1(I)=TEMP91(I)
11455 CONTINUE
ELSEIF(ICASL7.EQ.'INTR')THEN
NS3=0
DO11461I=1,NIRIGH(3)
NS3=NS3+1
IJ=MAXN*(ICOLR(3)-1)+I
IF(ICOLR(3).LE.MAXCOL)TEMP3(NS3)=V(IJ)
IF(ICOLR(3).EQ.MAXCP1)TEMP3(NS3)=PRED(I)
IF(ICOLR(3).EQ.MAXCP2)TEMP3(NS3)=RES(I)
IF(ICOLR(3).EQ.MAXCP3)TEMP3(NS3)=YPLOT(I)
IF(ICOLR(3).EQ.MAXCP4)TEMP3(NS3)=XPLOT(I)
IF(ICOLR(3).EQ.MAXCP5)TEMP3(NS3)=X2PLOT(I)
IF(ICOLR(3).EQ.MAXCP6)TEMP3(NS3)=TAGPLO(I)
11461 CONTINUE
CALL INTERP(TEMP1,TEMP2,NS1,TEMP3,NS3,IWRITE,TEMP91,
1 IBUGA3,ISUBRO,IERROR)
NITEMX=NS3
DO11465I=1,NITEMX
TEMP1(I)=TEMP91(I)
11465 CONTINUE
ELSEIF(ICASL7.EQ.'LINT')THEN
NS3=0
DO11561I=1,NIRIGH(3)
NS3=NS3+1
IJ=MAXN*(ICOLR(3)-1)+I
IF(ICOLR(3).LE.MAXCOL)TEMP3(NS3)=V(IJ)
IF(ICOLR(3).EQ.MAXCP1)TEMP3(NS3)=PRED(I)
IF(ICOLR(3).EQ.MAXCP2)TEMP3(NS3)=RES(I)
IF(ICOLR(3).EQ.MAXCP3)TEMP3(NS3)=YPLOT(I)
IF(ICOLR(3).EQ.MAXCP4)TEMP3(NS3)=XPLOT(I)
IF(ICOLR(3).EQ.MAXCP5)TEMP3(NS3)=X2PLOT(I)
IF(ICOLR(3).EQ.MAXCP6)TEMP3(NS3)=TAGPLO(I)
11561 CONTINUE
CALL LININT(TEMP1,TEMP2,NS1,TEMP3,NS3,IWRITE,TEMP91,
1 IBUGA3,ISUBRO,IERROR)
NITEMX=NS3
DO11565I=1,NITEMX
TEMP1(I)=TEMP91(I)
11565 CONTINUE
ELSEIF(ICASL7.EQ.'2DIN')THEN
NS4=0
DO11571I=1,NIRIGH(4)
NS4=NS4+1
IJ=MAXN*(ICOLR(4)-1)+I
IF(ICOLR(4).LE.MAXCOL)TEMP4(NS4)=V(IJ)
IF(ICOLR(4).EQ.MAXCP1)TEMP4(NS4)=PRED(I)
IF(ICOLR(4).EQ.MAXCP2)TEMP4(NS4)=RES(I)
IF(ICOLR(4).EQ.MAXCP3)TEMP4(NS4)=YPLOT(I)
IF(ICOLR(4).EQ.MAXCP4)TEMP4(NS4)=XPLOT(I)
IF(ICOLR(4).EQ.MAXCP5)TEMP4(NS4)=X2PLOT(I)
IF(ICOLR(4).EQ.MAXCP6)TEMP4(NS4)=TAGPLO(I)
11571 CONTINUE
NS5=0
DO11572I=1,NIRIGH(5)
NS5=NS5+1
IJ=MAXN*(ICOLR(5)-1)+I
IF(ICOLR(5).LE.MAXCOL)TEMP5(NS5)=V(IJ)
IF(ICOLR(5).EQ.MAXCP1)TEMP5(NS5)=PRED(I)
IF(ICOLR(5).EQ.MAXCP2)TEMP5(NS5)=RES(I)
IF(ICOLR(5).EQ.MAXCP3)TEMP5(NS5)=YPLOT(I)
IF(ICOLR(5).EQ.MAXCP4)TEMP5(NS5)=XPLOT(I)
IF(ICOLR(5).EQ.MAXCP5)TEMP5(NS5)=X2PLOT(I)
IF(ICOLR(5).EQ.MAXCP6)TEMP5(NS5)=TAGPLO(I)
11572 CONTINUE
NS6=0
CALL INT2D(TEMP1,TEMP2,TEMP3,NS1,TEMP4,NS4,TEMP5,NS5,IWRITE,
1 TEMP91,NS6,
1 IBUGA3,ISUBRO,IERROR)
NITEMX=NS6
DO11575I=1,NITEMX
TEMP1(I)=TEMP91(I)
11575 CONTINUE
ELSEIF(ICASL7.EQ.'BILI')THEN
NS4=0
DO11581I=1,NIRIGH(4)
NS4=NS4+1
IJ=MAXN*(ICOLR(4)-1)+I
IF(ICOLR(4).LE.MAXCOL)TEMP4(NS4)=V(IJ)
IF(ICOLR(4).EQ.MAXCP1)TEMP4(NS4)=PRED(I)
IF(ICOLR(4).EQ.MAXCP2)TEMP4(NS4)=RES(I)
IF(ICOLR(4).EQ.MAXCP3)TEMP4(NS4)=YPLOT(I)
IF(ICOLR(4).EQ.MAXCP4)TEMP4(NS4)=XPLOT(I)
IF(ICOLR(4).EQ.MAXCP5)TEMP4(NS4)=X2PLOT(I)
IF(ICOLR(4).EQ.MAXCP6)TEMP4(NS4)=TAGPLO(I)
11581 CONTINUE
NS5=0
DO11582I=1,NIRIGH(5)
NS5=NS5+1
IJ=MAXN*(ICOLR(5)-1)+I
IF(ICOLR(5).LE.MAXCOL)TEMP5(NS5)=V(IJ)
IF(ICOLR(5).EQ.MAXCP1)TEMP5(NS5)=PRED(I)
IF(ICOLR(5).EQ.MAXCP2)TEMP5(NS5)=RES(I)
IF(ICOLR(5).EQ.MAXCP3)TEMP5(NS5)=YPLOT(I)
IF(ICOLR(5).EQ.MAXCP4)TEMP5(NS5)=XPLOT(I)
IF(ICOLR(5).EQ.MAXCP5)TEMP5(NS5)=X2PLOT(I)
IF(ICOLR(5).EQ.MAXCP6)TEMP5(NS5)=TAGPLO(I)
11582 CONTINUE
CALL BILINR(TEMP1,TEMP2,TEMP3,NS1,TEMP4,TEMP5,NS4,
1 IWRITE,TEMP91,IBUGA3,ISUBRO,IERROR)
NITEMX=NS4
DO11585I=1,NITEMX
TEMP1(I)=TEMP91(I)
11585 CONTINUE
ELSEIF(ICASL7.EQ.'BIVA')THEN
NS4=0
DO11591I=1,NIRIGH(4)
NS4=NS4+1
IJ=MAXN*(ICOLR(4)-1)+I
IF(ICOLR(4).LE.MAXCOL)TEMP4(NS4)=V(IJ)
IF(ICOLR(4).EQ.MAXCP1)TEMP4(NS4)=PRED(I)
IF(ICOLR(4).EQ.MAXCP2)TEMP4(NS4)=RES(I)
IF(ICOLR(4).EQ.MAXCP3)TEMP4(NS4)=YPLOT(I)
IF(ICOLR(4).EQ.MAXCP4)TEMP4(NS4)=XPLOT(I)
IF(ICOLR(4).EQ.MAXCP5)TEMP4(NS4)=X2PLOT(I)
IF(ICOLR(4).EQ.MAXCP6)TEMP4(NS4)=TAGPLO(I)
11591 CONTINUE
NS5=0
DO11592I=1,NIRIGH(5)
NS5=NS5+1
IJ=MAXN*(ICOLR(5)-1)+I
IF(ICOLR(5).LE.MAXCOL)TEMP5(NS5)=V(IJ)
IF(ICOLR(5).EQ.MAXCP1)TEMP5(NS5)=PRED(I)
IF(ICOLR(5).EQ.MAXCP2)TEMP5(NS5)=RES(I)
IF(ICOLR(5).EQ.MAXCP3)TEMP5(NS5)=YPLOT(I)
IF(ICOLR(5).EQ.MAXCP4)TEMP5(NS5)=XPLOT(I)
IF(ICOLR(5).EQ.MAXCP5)TEMP5(NS5)=X2PLOT(I)
IF(ICOLR(5).EQ.MAXCP6)TEMP5(NS5)=TAGPLO(I)
11592 CONTINUE
CCCCC CALL BIVAR(TEMP1,TEMP2,TEMP3,NS1,TEMP4,TEMP5,NS4,
CALL BIVAR(TEMP1,TEMP3,TEMP2,NS1,TEMP4,TEMP5,NS4,
1 IWRITE,TEMP91,IBUGA3,ISUBRO,IERROR)
NITEMX=NS4
DO11595I=1,NITEMX
TEMP1(I)=TEMP91(I)
11595 CONTINUE
ELSEIF(ICASL7.EQ.'BIWE')THEN
CALL BIWEIG(TEMP1,NS1,IWRITE,TEMP91,IBUGA3,IERROR)
DO11475I=1,NITEMX
TEMP1(I)=TEMP91(I)
11475 CONTINUE
ELSEIF(ICASL7.EQ.'TRIC')THEN
CALL TRICUB(TEMP1,NS1,IWRITE,TEMP91,IBUGA3,IERROR)
DO11485I=1,NITEMX
TEMP1(I)=TEMP91(I)
11485 CONTINUE
ELSEIF(ICASL7.EQ.'COCD')THEN
CALL COCODE(TEMP1,NS1,TEMP2,NS2,TEMP91,IBUGA3)
DO11495I=1,NS1
TEMP1(I)=TEMP91(I)
11495 CONTINUE
ELSEIF(ICASL7.EQ.'COCP')THEN
CALL COCOPY(TEMP3,NS3,TEMP1,NS1,TEMP2,TEMP91,NITEMX,IBUGA3)
DO11505I=1,NITEMX
TEMP1(I)=TEMP91(I)
11505 CONTINUE
ELSEIF(ICASL7.EQ.'CODH')THEN
NUMINT=4
CALL CODEH(TEMP1,NS1,NUMINT,IWRITE,TEMP2,IBUGA3,IERROR)
DO11645I=1,NS1
TEMP1(I)=TEMP2(I)
11645 CONTINUE
ELSEIF(ICASL7.EQ.'COD1'.OR.ICASL7.EQ.'COD2'.OR.
1 ICASL7.EQ.'COD3'.OR.ICASL7.EQ.'COD4'.OR.
1 ICASL7.EQ.'COD5'.OR.ICASL7.EQ.'COD6'.OR.
1 ICASL7.EQ.'COD7'.OR.ICASL7.EQ.'COD8'.OR.
1 ICASL7.EQ.'COD9'.OR.ICASL7.EQ.'CO10')THEN
NUMINT=4
IF(ICASL7.EQ.'COD1')NUMINT=1
IF(ICASL7.EQ.'COD2')NUMINT=2
IF(ICASL7.EQ.'COD3')NUMINT=3
IF(ICASL7.EQ.'COD4')NUMINT=4
IF(ICASL7.EQ.'COD5')NUMINT=5
IF(ICASL7.EQ.'COD6')NUMINT=6
IF(ICASL7.EQ.'COD7')NUMINT=7
IF(ICASL7.EQ.'COD8')NUMINT=8
IF(ICASL7.EQ.'COD9')NUMINT=9
IF(ICASL7.EQ.'CO10')NUMINT=10
CALL CODEN(TEMP1,NS1,NUMINT,IWRITE,TEMP2,IBUGA3,IERROR)
DO11655I=1,NS1
TEMP1(I)=TEMP2(I)
11655 CONTINUE
ELSEIF(ICASL7.EQ.'SINT')THEN
CALL SINTRA(TEMP1,NS1,IWRITE,TEMP2,NITEMX,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
DO11715I=1,NITEMX
TEMP1(I)=TEMP2(I)
11715 CONTINUE
ELSEIF(ICASL7.EQ.'COST')THEN
CALL COSTRA(TEMP1,NS1,IWRITE,TEMP2,NITEMX,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
DO11725I=1,NITEMX
TEMP1(I)=TEMP2(I)
11725 CONTINUE
ELSEIF(ICASL7.EQ.'FOUT'.OR.ICASL7.EQ.'FOU1'.OR.
1 ICASL7.EQ.'IFOU'.OR.ICASL7.EQ.'IFO1')THEN
IF(ICASL7.EQ.'FOU1'.OR.ICASL7.EQ.'IFO1')THEN
DO11732I=1,NS1
TEMP2(I)=0.0
11732 CONTINUE
ENDIF
ITCASE=ICASL7
CALL FOUTRA(TEMP1,TEMP2,TEMPC1,TEMP6,
1 NS1,ITCASE,IWRITE,TEMP12,IFTEXP,IFTORD,
1 TEMP91,TEMP92,NITEMX,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
DO11735I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
11735 CONTINUE
ELSEIF(ICASL7.EQ.'FFT'.OR.ICASL7.EQ.'FFT1'.OR.
1 ICASL7.EQ.'IFFT'.OR.ICASL7.EQ.'IFF1')THEN
IF(ICASL7.EQ.'FFT1'.OR.ICASL7.EQ.'IFF1')THEN
DO11742I=1,NS1
TEMP2(I)=0.0
11742 CONTINUE
ENDIF
NS1NEW=NS1
ITCASE=ICASL7
CALL FOUTRA(TEMP1,TEMP2,TEMPC1,TEMP6,
1 NS1NEW,ITCASE,IWRITE,TEMP12,IFTEXP,IFTORD,
1 TEMP91,TEMP92,NITEMX,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
DO11756I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
11756 CONTINUE
ELSEIF(ICASL7.EQ.'BINN'.OR.ICASL7.EQ.'BINR')THEN
IRELAT='OFF'
IF(ICASL7.EQ.'BINR')IRELAT='ON'
CLWID=CLWIDT(1)
XSTART=CLLIMI(1)
XSTOP=CLLIMI(2)
CALL DPBIN(TEMP1,NS1,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 TEMP2,MAXOBV,IHSTCW,
1 TEMP91,TEMP92,NITEMX,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
DO11791I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
11791 CONTINUE
ELSEIF(ICASL7.EQ.'ASHR'.OR.ICASL7.EQ.'ASHC')THEN
IRELAT='ON'
IF(ICASL7.EQ.'ASHC')IRELAT='OFF'
CLWID=CLWIDT(1)
XSTART=CLLIMI(1)
XSTOP=CLLIMI(2)
C
IHP='M '
IHP2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
M=8
ELSE
M=INT(VALUE(ILOCP)+0.5)
IF(M.LE.0)M=1
IF(M.GT.64)M=64
ENDIF
C
CALL DPBINA(TEMP1,NS1,CLWID,XSTART,XSTOP,M,
1 TEMP1,MAXOBV,
1 IRELAT,IASHWT,IHSTCW,
1 TEMP91,TEMP92,NITEMX,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
DO11796I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
11796 CONTINUE
ELSEIF(ICASL7.EQ.'LAPT')THEN
CCCCC ITCASE='LT'
CCCCC CALL LAPTRA(TEMP1,NS1,ITCASE,IWRITE,TEMP2,NITEMX,
CCCCC1 IBUGA3,IERROR)
CCCCC IF(IERROR.EQ.'YES')GOTO19000
CCCCC DO11815I=1,NITEMX
CCCCC TEMP1(I)=TEMP2(I)
11815 CONTINUE
ELSEIF(ICASL7.EQ.'ILAT')THEN
CCCCC ITCASE='ILT'
CCCCC CALL LAPTRA(TEMP1,NS1,ITCASE,IWRITE,TEMP2,NITEMX,
CCCCC IBUGA3,IERROR)
CCCCC IF(IERROR.EQ.'YES')GOTO19000
CCCCC DO11825I=1,NITEMX
CCCCC TEMP1(I)=TEMP2(I)
11825 CONTINUE
ELSEIF(ICASL7.EQ.'COAD'.OR.ICASL7.EQ.'COSU'.OR.
1 ICASL7.EQ.'COMU'.OR.ICASL7.EQ.'CODI'.OR.
1 ICASL7.EQ.'COEX'.OR.ICASL7.EQ.'COSR'.OR.
1 ICASL7.EQ.'CORO'.OR.ICASL7.EQ.'COR1'.OR.
1 ICASL7.EQ.'COCO')THEN
IF(ICASL7.EQ.'COR1')THEN
DO11832I=1,NS1
TEMP2(I)=0.0
11832 CONTINUE
ENDIF
IACASE=ICASL7
CALL COMARI(TEMP1,TEMP2,TEMP3,TEMP4,NS1,IACASE,IWRITE,
1 TEMP91,TEMP92,NITEMX,SCAL91,ITYP91,
1 IBUGA3,ISUBRO,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
IF(ITYP91.EQ.'SCAL')GOTO11839
DO11835I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
11835 CONTINUE
NITEMX=NINEW
IF(ICASL7.EQ.'CORO')NITEMX=NITEMX-1
IF(ICASL7.EQ.'COR1')NITEMX=NITEMX-1
11839 CONTINUE
ELSEIF(ICASL7.EQ.'POAD'.OR.ICASL7.EQ.'POSU'.OR.
1 ICASL7.EQ.'POMU'.OR.ICASL7.EQ.'PODI'.OR.
1 ICASL7.EQ.'POSQ'.OR.ICASL7.EQ.'POSR'.OR.
1 ICASL7.EQ.'POGC'.OR.ICASL7.EQ.'POLC'.OR.
1 ICASL7.EQ.'POEV')THEN
IACASE=ICASL7
CALL POLARI(TEMP1,TEMP2,TEMP2,TEMP2,NS1,NS2,IACASE,IWRITE,
1 TEMP91,TEMP92,NITEMX,NITE2X,SCAL91,ITYP91,
1 DTEMP1,DTEMP2,DTEMP3,
1 IBUGA3,ISUBRO,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
IF(ITYP91.EQ.'SCAL')GOTO11849
DO11845I=1,NITEMX
TEMP1(I)=TEMP91(I)
11845 CONTINUE
IF(ICASL7.EQ.'PODI')THEN
DO11846I=1,NITE2X
TEMP2(I)=TEMP92(I)
11846 CONTINUE
ENDIF
11849 CONTINUE
ELSEIF(ICASL7.EQ.'VEAD'.OR.ICASL7.EQ.'VESU'.OR.
1 ICASL7.EQ.'VEDP'.OR.ICASL7.EQ.'VECP'.OR.
1 ICASL7.EQ.'VELE'.OR.ICASL7.EQ.'VEDI'.OR.
1 ICASL7.EQ.'VEAN')THEN
IACASE=ICASL7
CALL VECARI(TEMP1,TEMP2,NS1,IACASE,IWRITE,
1 TEMP91,NITEMX,SCAL91,ITYP91,IBUGA3,ISUBRO,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
IF(ITYP91.EQ.'SCAL')GOTO11859
DO11855I=1,NITEMX
TEMP1(I)=TEMP91(I)
11855 CONTINUE
11859 CONTINUE
ELSEIF(ICASL7.EQ.'SEUN'.OR.ICASL7.EQ.'SEIN'.OR.
1 ICASL7.EQ.'SECO'.OR.ICASL7.EQ.'SECA'.OR.
1 ICASL7.EQ.'SECP'.OR.ICASL7.EQ.'SEEL')THEN
IACASE=ICASL7
CALL SETARI(TEMP1,TEMP2,NS1,NS2,IACASE,IWRITE,
1 TEMP91,TEMP92,NITEMX,SCAL91,ITYP91,
1 IBUGA3,ISUBRO,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
IF(ITYP91.EQ.'SCAL')GOTO11869
DO11865I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
11865 CONTINUE
11869 CONTINUE
ELSEIF(ICASL7.EQ.'LOAN'.OR.ICASL7.EQ.'LOOR'.OR.
1 ICASL7.EQ.'LONA'.OR.ICASL7.EQ.'LONO'.OR.
1 ICASL7.EQ.'LOIM'.OR.ICASL7.EQ.'LOEQ'.OR.
1 ICASL7.EQ.'LONT'.OR.ICASL7.EQ.'LOXO')THEN
IACASE=ICASL7
CALL LOGARI(TEMP1,TEMP2,NS1,IACASE,IWRITE,
1 TEMP91,NITEMX,SCAL91,ITYP91,IBUGA3,ISUBRO,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
IF(ITYP91.EQ.'SCAL')GOTO11879
DO11875I=1,NITEMX
TEMP1(I)=TEMP91(I)
11875 CONTINUE
11879 CONTINUE
ELSEIF(ICASL7.EQ.'FRAC')THEN
IPROD=4*NS1
IF(IPROD.GT.MAXOBV)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11511)
11511 FORMAT('***** ERROR 11511 IN DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11512)
11512 FORMAT(' THE NEW FRACTAL VARIABLES WOULD BE ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11513)
11513 FORMAT(' TOO LONG (THAT IS, WOULD EXCEED ',I8,')')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
C
CALL FRACTA(TEMP1,TEMP2,NS1,IWRITE,
1 TEMP91,TEMP92,NITEMX,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
DO11516I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
11516 CONTINUE
ELSEIF(ICASL7.EQ.'BOOT')THEN
CALL BOOTSS(TEMP1,TEMP2,NS1,IWRITE,
1 TEMP91,NITEMX,IBUGA3,ISUBRO,IERROR)
DO11525I=1,NITEMX
TEMP1(I)=TEMP91(I)
11525 CONTINUE
ELSEIF(ICASL7.EQ.'SUBS')THEN
CALL SUBSAM(TEMP1,TEMP2,NS1,NS2,IWRITE,
1 TEMP91,NITEMX,IBUGA3,ISUBRO,IERROR)
DO11535I=1,NITEMX
TEMP1(I)=TEMP91(I)
11535 CONTINUE
ELSEIF(ICASL7.EQ.'GEMU')THEN
IACASE=ICASL7
CALL GENARI(TEMP1,TEMP2,TEMP2,TEMP2,NS1,NS2,IACASE,IWRITE,
1 TEMP91,TEMP92,NITEMX,NITE2X,SCAL91,ITYP91,
1 IBUGA3,ISUBRO,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
IF(ITYP91.EQ.'SCAL')GOTO11899
DO11895I=1,NITEMX
TEMP1(I)=TEMP91(I)
11895 CONTINUE
11899 CONTINUE
GOTO11900
C
ELSEIF(ICASL7.EQ.'JAIN')THEN
CALL JACKIN(TEMPS(1),TEMPS(2),IWRITE,
1 TEMP91,NITEMX,IBUGA3,ISUBRO,IERROR)
DO11545I=1,NITEMX
TEMP1(I)=TEMP91(I)
11545 CONTINUE
ELSEIF(ICASL7.EQ.'FRAW')THEN
CALL DPRAW(TEMP1,TEMP2,NS1,IWRITE,MAXOBV,TEMP3,NITEMX,
1 IBUGA3,IERROR)
IF(IERROR.EQ.'NO')THEN
DO11555I=1,NITEMX
TEMP1(I)=TEMP3(I)
11555 CONTINUE
ENDIF
ELSEIF(ICASL7.EQ.'CUSA' .OR. ICASL7.EQ.'CU1A')THEN
ICASE='TWOS'
IF(ICASL7.EQ.'CU1A')ICASE='ONES'
CALL CUSARL(TEMP1,NS1,IWRITE,TEMP2,ICASE,IBUGA3,IERROR)
DO21019I=1,NS1
TEMP1(I)=TEMP2(I)
21019 CONTINUE
ELSEIF(ICASL7.EQ.'SRTB')THEN
CALL SRTMEA(TEMP1,TEMP2,NS1,ICASS7,
1 MAXOBV,
1 TEMP12,TEMP4,TEMP5,TEMP6,TEMP92,
1 TEMP6(2*MAXOBV+1),TEMP6(3*MAXOBV+1),
1 TEMP91,TEMP3,NUMSE1,
1 ISEED,ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6,
1 ISUBRO,IBUGA3,IERROR)
DO21031I=1,NS1
TEMP1(I)=TEMP91(I)
21031 CONTINUE
DO21033I=1,NUMSE1
TEMP2(I)=TEMP3(I)
21033 CONTINUE
ELSEIF(ICASL7.EQ.'STAN'.OR.ICASL7.EQ.'ZSCO'.OR.
1 ICASL7.EQ.'USCO'.OR.ICASL7.EQ.'LSTA'.OR.
1 ICASL7.EQ.'LSST'.OR.ICASL7.EQ.'CRTA'.OR.
1 ICASL7(1:2).EQ.'CT')THEN
C
ICASE='STAN'
IF(ICASL7.EQ.'LSTA')ICASE='LOCA'
IF(ICASL7.EQ.'LSST')ICASE='SCAL'
IF(ICASL7.EQ.'ZSCO')ICASE='ZSCO'
IF(ICASL7.EQ.'USCO')ICASE='USCO'
IF(ICASL7(1:2).EQ.'CT')THEN
ICASE='CRTA'
ICASE2=ICASL7
ENDIF
IFLAGV=1
IF(ICASS7.EQ.'COVA')IFLAGV=2
IF(ICASS7.EQ.'CORR')IFLAGV=2
IF(ICASS7.EQ.'COMO')IFLAGV=2
IF(ICASS7.EQ.'RACV')IFLAGV=2
IF(ICASS7.EQ.'RACR')IFLAGV=2
IF(ICASS7.EQ.'RACM')IFLAGV=2
IF(ICASS7.EQ.'WICV')IFLAGV=2
IF(ICASS7.EQ.'WICR')IFLAGV=2
IF(ICASS7.EQ.'BIMC')IFLAGV=2
IF(ICASS7.EQ.'BICR')IFLAGV=2
IF(ICASS7.EQ.'PBCR')IFLAGV=2
IF(ICASS7.EQ.'WEME')IFLAGV=2
IF(ICASS7.EQ.'WEVA')IFLAGV=2
IF(ICASS7.EQ.'WESD')IFLAGV=2
IF(ICASS7.EQ.'DMEA')IFLAGV=2
IF(ICASS7.EQ.'DMDM')IFLAGV=2
IF(ICASS7.EQ.'DMED')IFLAGV=2
IF(ICASS7.EQ.'DTRM')IFLAGV=2
IF(ICASS7.EQ.'DWNM')IFLAGV=2
IF(ICASS7.EQ.'DGEO')IFLAGV=2
IF(ICASS7.EQ.'DHAR')IFLAGV=2
IF(ICASS7.EQ.'DHDL')IFLAGV=2
IF(ICASS7.EQ.'DBIW')IFLAGV=2
IF(ICASS7.EQ.'DSD ')IFLAGV=2
IF(ICASS7.EQ.'DVAR')IFLAGV=2
IF(ICASS7.EQ.'DAAD')IFLAGV=2
IF(ICASS7.EQ.'DMAD')IFLAGV=2
IF(ICASS7.EQ.'DIQR')IFLAGV=2
IF(ICASS7.EQ.'DWSD')IFLAGV=2
IF(ICASS7.EQ.'DWVA')IFLAGV=2
IF(ICASS7.EQ.'DBIM')IFLAGV=2
IF(ICASS7.EQ.'DBIS')IFLAGV=2
IF(ICASS7.EQ.'DPBN')IFLAGV=2
IF(ICASS7.EQ.'DGSD')IFLAGV=2
IF(ICASS7.EQ.'DRAN')IFLAGV=2
IF(ICASS7.EQ.'DMDR')IFLAGV=2
IF(ICASS7.EQ.'DQUA')IFLAGV=2
IF(ICASS7.EQ.'DSKE')IFLAGV=2
IF(ICASS7.EQ.'DKUR')IFLAGV=2
IF(ICASS7.EQ.'DRSD')IFLAGV=2
IF(ICASS7.EQ.'DSDM')IFLAGV=2
IF(ICASS7.EQ.'DRVA')IFLAGV=2
IF(ICASS7.EQ.'DVAM')IFLAGV=2
IF(ICASS7.EQ.'DMIN')IFLAGV=2
IF(ICASS7.EQ.'DMAX')IFLAGV=2
IF(ICASS7.EQ.'DEXT')IFLAGV=2
IF(ICASS7.EQ.'DCVA')IFLAGV=2
IF(ICASS7.EQ.'DCOU')IFLAGV=2
IF(ICASS7.EQ.'DSUM')IFLAGV=2
IF(ICASS7.EQ.'RATI')IFLAGV=2
C
IF(IFLAGV.EQ.1)THEN
CALL GRPSTA(TEMP1,TEMP2,TEMP3,NS1,NUMVAR,
1 ICASE,ICASE2,ICASS7,
1 MAXOBV,
1 TEMP12,TEMP4,TEMP5,TEMP6,TEMP92,
1 TEMP6(2*MAXOBV+1),TEMP6(3*MAXOBV+1),
1 TEMP91,
1 ISEED,ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6,
1 ISUBRO,IBUGA3,IERROR)
ELSE
CALL GRPST2(TEMP1,TEMP2,TEMP3,TEMP4,NS1,NUMVAR,
1 ICASE,ICASE2,ICASS7,
1 MAXOBV,
1 TEMP12,TEMP5,TEMP6,TEMP6(MAXOBV+1),
1 TEMP6(2*MAXOBV+1),TEMP92,
1 TEMP6(3*MAXOBV+1),
1 TEMP91,
1 ISEED,ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6,
1 ISUBRO,IBUGA3,IERROR)
ENDIF
DO21029I=1,NS1
TEMP1(I)=TEMP91(I)
21029 CONTINUE
ELSEIF(ICASL7.EQ.'WINS')THEN
C
IH='P1 '
IH2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IH,IH2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
PROP1=VALUE(ILOCP)
C
IH='P2 '
IH2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IH,IH2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
PROP2=VALUE(ILOCP)
C
IF(PROP1.LT.0.0 .OR. PROP1.GT.100.0 .OR.
1 PROP2.LT.0.0 .OR. PROP2.GT.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,21061)
21061 FORMAT('***** ERROR IN DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,21062)
21062 FORMAT('THE PROPORTION TO BE WINSORIZED BELOW AND ABOVE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,21063)
21063 FORMAT('MUST BE BETWEEN 0 AND 100, BUT WAS NOT.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,21064)PROP1
21064 FORMAT('PARAMETER P1 = LOWER PROPORTION = ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,21065)PROP2
21065 FORMAT('PARAMETER P2 = UPPER PROPORTION = ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,21066)
21066 FORMAT('USE THE LET COMMAND TO PRE-DEFINE P1 AND P2, AS IN')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,21067)
21067 FORMAT(' LET P1 = 25')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,21068)
21068 FORMAT(' LET P2 = 10')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
C
CALL WINSOR(TEMP1,NS1,PROP1,PROP2,IWRITE,TEMP2,MAXOBV,TEMP3,
1 IBUGA3,IERROR)
C
DO21059I=1,NS1
TEMP1(I)=TEMP3(I)
21059 CONTINUE
ELSEIF(ICASL7.EQ.'CFRT')THEN
IHP='MINS'
IHP2='IZE '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
MINSIZ=5
ELSE
MINSIZ=INT(VALUE(ILOCP)+0.5)
IF(MINSIZ.LE.0)MINSIZ=5
ENDIF
C
CALL DPCOMB(TEMP1,TEMP2,NS1,MINSIZ,
1 TEMP91,TEMP92,TEMP5,NITEMX,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
DO22016I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
TEMP91(I)=TEMP5(I)
22016 CONTINUE
ELSEIF(ICASL7.EQ.'IFRT')THEN
IHP='MINS'
IHP2='IZE '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
MINSIZ=5
ELSE
MINSIZ=INT(VALUE(ILOCP)+0.5)
IF(MINSIZ.LE.0)MINSIZ=5
ENDIF
C
CALL DPICOM(TEMP1,TEMP2,NS1,MINSIZ,
1 TEMP91,TEMP92,TEMP5,NITEMX,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
DO22116I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
TEMP91(I)=TEMP5(I)
22116 CONTINUE
ELSEIF(ICASL7.EQ.'HCON')THEN
CALL HCONS(TEMP1,TEMP2,TEMP3,TEMP4,TEMP5,NS1,IWRITE,
1 TEMP91,NITEMX,ISUBRO,IBUGA3,IERROR)
DO22029I=1,NITEMX
TEMP1(I)=TEMP91(I)
22029 CONTINUE
ELSEIF(ICASL7.EQ.'KCON')THEN
CALL KCONS(TEMP1,TEMP2,TEMP3,TEMP4,NS1,IWRITE,
1 TEMP91,NITEMX,ISUBRO,IBUGA3,IERROR)
DO22039I=1,NITEMX
TEMP1(I)=TEMP91(I)
22039 CONTINUE
ELSEIF(ICASL7.EQ.'HCO2')THEN
CALL HCONS2(TEMP1,TEMP2,TEMP3,TEMP4,TEMP5,TEMP6,TEMP12,
1 NS1,IWRITE,
1 TEMP91,TEMP92,NITEMX,ISUBRO,IBUGA3,IERROR)
DO22049I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
22049 CONTINUE
ELSEIF(ICASL7.EQ.'KCO2')THEN
CALL KCONS2(TEMP1,TEMP2,TEMP3,TEMP4,TEMP5,TEMP6,
1 NS1,IWRITE,
1 TEMP91,TEMP92,NITEMX,ISUBRO,IBUGA3,IERROR)
DO22059I=1,NITEMX
TEMP1(I)=TEMP91(I)
TEMP2(I)=TEMP92(I)
22059 CONTINUE
ELSEIF(ICASL7.EQ.'LMOM')THEN
NMOM=INT(TEMPS(2)+0.5)
IF(NMOM.LE.0)NMOM=4
IF(NMOM.GT.100)NMOM=100
IF(NMOM.GE.NS1)NMOM=NS1
DO22061I=1,NS1
DTEMP1(I)=DBLE(TEMP1(I))
22061 CONTINUE
CALL SAMLMU(DTEMP1,NS1,DTEMP2,NMOM)
DO22063I=1,NMOM
TEMP1(I)=REAL(DTEMP2(I))
22063 CONTINUE
NITEMX=NMOM
ELSEIF(ICASL7.EQ.'PWMO')THEN
NMOM=INT(TEMPS(2)+0.5)
IF(NMOM.LE.0)NMOM=4
IF(NMOM.GT.20)NMOM=20
IF(NMOM.GE.NS1)NMOM=NS1
ATEMP=0.0D0
BTEMP=0.0D0
IKIND=1
DO22071I=1,NS1
DTEMP1(I)=DBLE(TEMP1(I))
22071 CONTINUE
CALL SAMPWM(DTEMP1,NS1,DTEMP2,NMOM,ATEMP,BTEMP,IKIND)
DO22073I=1,NMOM
TEMP1(I)=REAL(DTEMP2(I))
22073 CONTINUE
NITEMX=NMOM
ELSEIF(ICASL7.EQ.'BPWM')THEN
NMOM=INT(TEMPS(2)+0.5)
IF(NMOM.LE.0)NMOM=4
IF(NMOM.GT.20)NMOM=20
IF(NMOM.GE.NS1)NMOM=NS1
ATEMP=0.0D0
BTEMP=0.0D0
IKIND=2
DO22081I=1,NS1
DTEMP1(I)=DBLE(TEMP1(I))
22081 CONTINUE
CALL SAMPWM(DTEMP1,NS1,DTEMP2,NMOM,ATEMP,BTEMP,IKIND)
DO22083I=1,NMOM
TEMP1(I)=REAL(DTEMP2(I))
22083 CONTINUE
NITEMX=NMOM
ELSE
WRITE(ICOUT,11301)
11301 FORMAT('***** INTERNAL ERROR 11301 IN DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11302)
11302 FORMAT(' NAME OF DESIRED DATA MANIPULATION OPERATION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11303)
11303 FORMAT(' WAS FOUND IN INTERNAL LIST IN CKMATH, BUT JUMP')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11305)
11305 FORMAT(' TO APPROPRIATE SUBROUTINE DID NOT TAKE PLACE ',
1 'IN DPMATC.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11306)ICASL7
11306 FORMAT('ICASL7 = ',A4)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
ENDIF
GOTO11900
C
C -----BEGINNING OF MATH CALCULATIONS-----
C
11900 CONTINUE
IFOUND='YES'
IF(IERROR.EQ.'YES')GOTO19000
C
C
C *****************************************************
C ** STEP XX-- **
C ** BRANCH TO THE PROPER CASE
C ** DEPENDING ON THE TYPE OF OUTPUT--
C ** 1) SCALAR (= PARAMETER)
C ** 2) VECTOR (= VARIABLE) (THE USUAL)
C ** 3) MATRIX
C ** UPDATE DATAPLOT'S INTERNAL WORKSPACE
C ** AND HOUSEKEEPING TABLES
C *****************************************************
C
12000 CONTINUE
C
C *****************************************************
C ** STEP 14-- **
C ** TREAT THE PARAMETER (SCALAR) CASE. **
C ** EXAMPLE--LET D = DETERMINANT A **
C ** WHERE A WAS PREVIOUSLY UNDEFINED **
C ** OR WHERE A WAS PREVIOUSLY A PARAMETER.**
C ** CARRY OUT THE LIST UPDATING AND **
C ** GENERATE THE INFORMATIVE PRINTING. **
C ** THEN EXIT. **
C *****************************************************
C
IF(ITYP91.EQ.'SCAL')THEN
ISTEPN='14'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MATC')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IHNAME(ILISL(1))=ILEFT(1)
IHNAM2(ILISL(1))=ILEFT(2)
IUSE(ILISL(1))='P'
VALUE(ILISL(1))=SCAL91
IVALUE(ILISL(1))=VALUE(ILISL(1))+0.5
IN(ILISL(1))=1
IF(NEWNAM(1).EQ.'YES')NUMNAM=NUMNAM+1
C
IF(IPRINT.EQ.'ON' .AND. IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,14011)ILEFT(1),ILEFT(2),SCAL91
14011 FORMAT('THE COMPUTED VALUE OF THE CONSTANT ',
1 A4,A4,' = ',E15.8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
GOTO19000
ENDIF
C
C -----TREAT THE VECTOR AND MATRIX CASE-----
C
C
C
12100 CONTINUE
ISTEPN='11.1'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C STORE FIRST VARIABLE ON THE LEFT
C
NSX=0
IF(NITEMX.LE.0)IROW1=0
IF(NITEMX.LE.0)IROWN=0
IF(NITEMX.LE.0)THEN
IN(ILISL(1))=0
GOTO12119
ENDIF
C
IF(IUPFLG.EQ.'FULL' .OR. ICASEQ.EQ.'FULL')THEN
DO12105I=1,NITEMX
ISUB(I)=1
12105 CONTINUE
NIFOR=NITEMX
ENDIF
C
DO12110I=1,NITEMX
C
IF(I.GT.NIFOR)GOTO12110
IF(ISUB(I).EQ.0)GOTO12110
NSX=NSX+1
C
IJ=MAXN*(ICOLL(1)-1)+I
IF(ICOLL(1).LE.MAXCOL)V(IJ)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP1)PRED(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP2)RES(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP3)YPLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP4)XPLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP5)X2PLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP6)TAGPLO(I)=TEMP1(NSX)
C
IF(NSX.EQ.1)IROW1=I
IROWN=I
C
12110 CONTINUE
C
IN(ILISL(1))=NITEMX
C
12119 CONTINUE
C
C STORE SECOND VARIABLE ON THE LEFT
C
IF(ICASL7.EQ.'FOUT'.OR.ICASL7.EQ.'FOU1'.OR.
1 ICASL7.EQ.'IFOU'.OR.ICASL7.EQ.'IFO1'.OR.
1 ICASL7.EQ.'FFT' .OR.ICASL7.EQ.'FFT1'.OR.
1 ICASL7.EQ.'IFFT'.OR.ICASL7.EQ.'IFF1'.OR.
1 ICASL7.EQ.'COAD'.OR.ICASL7.EQ.'COSU'.OR.
1 ICASL7.EQ.'COMU'.OR.ICASL7.EQ.'CODI'.OR.
1 ICASL7.EQ.'COEX'.OR.ICASL7.EQ.'COSR'.OR.
1 ICASL7.EQ.'CORO'.OR.ICASL7.EQ.'COR1'.OR.
1 ICASL7.EQ.'COCO'.OR.ICASL7.EQ.'PODI'.OR.
1 ICASL7.EQ.'SECP'.OR.ICASL7.EQ.'FRAC'.OR.
1 ICASL7.EQ.'BINN'.OR.ICASL7.EQ.'BINR'.OR.
1 ICASL7.EQ.'ASHC'.OR.ICASL7.EQ.'ASHR'.OR.
1 ICASL7.EQ.'STAC'.OR.ICASL7.EQ.'RSTA'.OR.
1 ICASL7.EQ.'CFRT'.OR.ICASL7.EQ.'HCO2'.OR.
1 ICASL7.EQ.'IFRT'.OR.
1 ICASL7.EQ.'KCO2'.OR.ICASL7.EQ.'SRTB')THEN
C
NSX=0
NITEM2=NITEMX
IF(ICASL7.EQ.'SRTB')NITEM2=NUMSE1
IF(ICASL7.EQ.'PODI')NITEM2=NITE2X
IF(NITEM2.LE.0)IROW12=0
IF(NITEM2.LE.0)IROWN2=0
IF(NITEM2.LE.0)THEN
IN(ILISL(2))=0
GOTO12129
ENDIF
C
DO12120I=1,NITEM2
C
IF(NITEM2.EQ.NITEMX)THEN
IF(I.GT.NIFOR)GOTO12120
IF(ISUB(I).EQ.0)GOTO12120
ENDIF
NSX=NSX+1
C
IJ=MAXN*(ICOLL(2)-1)+I
IF(ICOLL(2).LE.MAXCOL)V(IJ)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP1)PRED(I)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP2)RES(I)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP3)YPLOT(I)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP4)XPLOT(I)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP5)X2PLOT(I)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP6)TAGPLO(I)=TEMP2(NSX)
C
IF(NSX.EQ.1)IROW12=I
IROWN2=I
C
12120 CONTINUE
C
IN(ILISL(2))=NITEM2
C
12129 CONTINUE
ENDIF
C
IF(ICASL7.EQ.'CFRT'.OR.ICASL7.EQ.'RSTA'.OR.
1 ICASL7.EQ.'IFRT')THEN
C
NSX=0
NITEM3=NITEMX
IF(NITEM3.LE.0)IROW13=0
IF(NITEM3.LE.0)IROWN3=0
IF(NITEM3.LE.0)THEN
IN(ILISL(3))=0
GOTO12139
ENDIF
C
DO12130I=1,NITEM3
C
IF(NITEM3.EQ.NITEMX)THEN
IF(I.GT.NIFOR)GOTO12130
IF(ISUB(I).EQ.0)GOTO12130
ENDIF
NSX=NSX+1
C
IJ=MAXN*(ICOLL(3)-1)+I
IF(ICOLL(3).LE.MAXCOL)V(IJ)=TEMP91(NSX)
IF(ICOLL(3).EQ.MAXCP1)PRED(I)=TEMP91(NSX)
IF(ICOLL(3).EQ.MAXCP2)RES(I)=TEMP91(NSX)
IF(ICOLL(3).EQ.MAXCP3)YPLOT(I)=TEMP91(NSX)
IF(ICOLL(3).EQ.MAXCP4)XPLOT(I)=TEMP91(NSX)
IF(ICOLL(3).EQ.MAXCP5)X2PLOT(I)=TEMP91(NSX)
IF(ICOLL(3).EQ.MAXCP6)TAGPLO(I)=TEMP91(NSX)
C
IF(NSX.EQ.1)IROW13=I
IROWN3=I
C
12130 CONTINUE
C
IN(ILISL(3))=NITEM3
C
12139 CONTINUE
ENDIF
C
12190 CONTINUE
C
DO12210J4=1,NUMNAM
IF((IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL(1)).OR.
1 (IUSE(J4).EQ.'M'.AND.IVALUE(J4).EQ.ICOLL(1)))THEN
IUSE(J4)='V'
IVALUE(J4)=ICOLL(1)
VALUE(J4)=ICOLL(1)
IN(J4)=NITEMX
IF(IMATSW.EQ.'YES'.AND.ITYP91.EQ.'MATR')THEN
IVALUE(J4)=ICOLL(1)
IVALU2(J4)=ICOLL(1)+NC91-1
ENDIF
ENDIF
12210 CONTINUE
C
IF(NUMVAL.GE.2)THEN
DO12220J4=1,NUMNAM
IF((IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL(2)).OR.
1 (IUSE(J4).EQ.'M'.AND.IVALUE(J4).EQ.ICOLL(2)))THEN
IUSE(J4)='V'
IVALUE(J4)=ICOLL(2)
VALUE(J4)=ICOLL(2)
IN(J4)=NITEM2
ENDIF
12220 CONTINUE
ENDIF
C
IF(NUMVAL.GE.3)THEN
DO12230J4=1,NUMNAM
IF((IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL(3)).OR.
1 (IUSE(J4).EQ.'M'.AND.IVALUE(J4).EQ.ICOLL(3)))THEN
IUSE(J4)='V'
IVALUE(J4)=ICOLL(3)
VALUE(J4)=ICOLL(3)
IN(J4)=NITEM3
ENDIF
12230 CONTINUE
ENDIF
C
C *******************************************
C ** STEP 16-- **
C ** TREAT THE VARIABLE (VECTOR) CASE-- **
C ** CARRY OUT THE LIST UPDATING AND **
C ** GENERATE THE INFORMATIVE PRINTING **
C ** FOR STEP NUMBERS 7, 8, AND 9 ABOVE. **
C *******************************************
C
16000 CONTINUE
ISTEPN='16'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IHNAME(ILISL(1))=ILEFT(1)
IHNAM2(ILISL(1))=ILEF2(1)
IUSE(ILISL(1))='V'
IVALUE(ILISL(1))=ICOLL(1)
VALUE(ILISL(1))=ICOLL(1)
IF(NEWNAM(1).EQ.'YES')THEN
NUMNAM=NUMNAM+1
NUMCOL=NUMCOL+1
ENDIF
C
IF(NUMVAL.GE.2)THEN
IHNAME(ILISL(2))=ILEFT(2)
IHNAM2(ILISL(2))=ILEF2(2)
IUSE(ILISL(2))='V'
IVALUE(ILISL(2))=ICOLL(2)
VALUE(ILISL(2))=ICOLL(2)
IF(NEWNAM(2).EQ.'YES')THEN
NUMNAM=NUMNAM+1
NUMCOL=NUMCOL+1
ENDIF
ENDIF
C
IF(NUMVAL.GE.3)THEN
IHNAME(ILISL(3))=ILEFT(3)
IHNAM2(ILISL(3))=ILEF2(3)
IUSE(ILISL(3))='V'
IVALUE(ILISL(3))=ICOLL(3)
VALUE(ILISL(3))=ICOLL(3)
IF(NEWNAM(3).EQ.'YES')THEN
NUMNAM=NUMNAM+1
NUMCOL=NUMCOL+1
ENDIF
ENDIF
C
IF(IPRINT.EQ.'ON' .AND. IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,16011)ILEFT(1),ILEF2(1),NSX
16011 FORMAT('THE NUMBER OF VALUES GENERATED FOR ',
1 'THE VARIABLE ',A4,A4,' = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IJ=MAXN*(ICOLL(1)-1)+IROW1
IF(ICOLL(1).LE.MAXCOL)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),V(IJ),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP1)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),PRED(IROW1),IROW1
16021 FORMAT('THE FIRST COMPUTED VALUE OF ',A4,A4,
1 ' = ',E16.7,' (ROW ',I6,')')
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP2)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),RES(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP3)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),YPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP4)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),XPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP5)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),X2PLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP6)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),TAGPLO(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ENDIF
C
IJ=MAXN*(ICOLL(1)-1)+IROWN
IF(ICOLL(1).LE.MAXCOL.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(2),V(IJ),IROWN
16031 FORMAT('THE LAST (',I5,'-TH) COMPUTED VALUE OF ',A4,A4,
1 ' = ',E16.7,' (ROW ',I6,')')
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP1.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),PRED(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP2.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),RES(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP3.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),YPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP4.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),XPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP5.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),X2PLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP6.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),TAGPLO(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ENDIF
IF(NSX.EQ.1)THEN
WRITE(ICOUT,16032)
16032 FORMAT('SINCE THE GENERATED SAMPLE SIZE WAS ONLY 1,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,16033)
16033 FORMAT('THE ABOVE VALUE WAS THE SOLE VALUE COMPUTED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(NUMVAL.GE.2)THEN
WRITE(ICOUT,16011)ILEFT(2),ILEF2(2),NSX
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IJ=MAXN*(ICOLL(2)-1)+IROW1
IF(ICOLL(2).LE.MAXCOL)THEN
WRITE(ICOUT,16021)ILEFT(2),ILEF2(2),V(IJ),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP1)THEN
WRITE(ICOUT,16021)ILEFT(2),ILEF2(2),PRED(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP2)THEN
WRITE(ICOUT,16021)ILEFT(2),ILEF2(2),RES(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP3)THEN
WRITE(ICOUT,16021)ILEFT(2),ILEF2(2),YPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP4)THEN
WRITE(ICOUT,16021)ILEFT(2),ILEF2(2),XPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP5)THEN
WRITE(ICOUT,16021)ILEFT(2),ILEF2(2),X2PLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP6)THEN
WRITE(ICOUT,16021)ILEFT(2),ILEF2(2),TAGPLO(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ENDIF
C
IJ=MAXN*(ICOLL(2)-1)+IROWN
IF(ICOLL(2).LE.MAXCOL.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(2),ILEF2(2),V(IJ),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP1.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(2),ILEF2(2),PRED(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP2.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(2),ILEF2(2),RES(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP3.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(2),ILEF2(2),YPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP4.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(2),ILEF2(2),XPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP5.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(2),ILEF2(2),X2PLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP6.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(2),ILEF2(2),TAGPLO(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ENDIF
IF(NSX.EQ.1)THEN
WRITE(ICOUT,16032)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,16033)
CALL DPWRST('XXX','BUG ')
ENDIF
C
ENDIF
C
IF(NUMVAL.GE.3)THEN
WRITE(ICOUT,16011)ILEFT(3),ILEF2(3),NSX
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IJ=MAXN*(ICOLL(3)-1)+IROW1
IF(ICOLL(3).LE.MAXCOL)THEN
WRITE(ICOUT,16021)ILEFT(3),ILEF2(3),V(IJ),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP1)THEN
WRITE(ICOUT,16021)ILEFT(3),ILEF2(3),PRED(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP2)THEN
WRITE(ICOUT,16021)ILEFT(3),ILEF2(3),RES(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP3)THEN
WRITE(ICOUT,16021)ILEFT(3),ILEF2(3),YPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP4)THEN
WRITE(ICOUT,16021)ILEFT(3),ILEF2(3),XPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP5)THEN
WRITE(ICOUT,16021)ILEFT(3),ILEF2(3),X2PLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP6)THEN
WRITE(ICOUT,16021)ILEFT(3),ILEF2(3),TAGPLO(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ENDIF
C
IJ=MAXN*(ICOLL(3)-1)+IROWN
IF(ICOLL(3).LE.MAXCOL.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(3),ILEF2(3),V(IJ),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP1.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(3),ILEF2(3),PRED(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP2.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(3),ILEF2(3),RES(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP3.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(3),ILEF2(3),YPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP4.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(3),ILEF2(3),XPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP5.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(3),ILEF2(3),X2PLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(3).EQ.MAXCP6.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(3),ILEF2(3),TAGPLO(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ENDIF
IF(NSX.EQ.1)THEN
WRITE(ICOUT,16032)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,16033)
CALL DPWRST('XXX','BUG ')
ENDIF
C
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
GOTO19000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
19000 CONTINUE
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATC')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19011)
19011 FORMAT('***** AT THE END OF DPMATC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19012)IFOUND,IERROR
19012 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19013)IBUGA3,IBUGQ,ISUBRO
19013 FORMAT('IBUGA3,IBUGQ,ISUBRO = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19014)ICASL7,ILOCV,ITCASE,IWRITE
19014 FORMAT('ICASL7,ILOCV,ITCASE,IWRITE = ',A4,2X,I8,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19015)IFTEXP
19015 FORMAT('IFTEXP = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19016)NSX,NITEMX,NS1,NS2
19016 FORMAT('NSX,NITEMX,NS1,NS2 = ',4I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19021)ILEFT(1),ILEF2(1),ILISL(1),ICOLL(1)
19021 FORMAT('ILEFT(1),ILEF2(1),ILISL(1),ICOLL(1) = ',A4,2X,A4,2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19022)ILEFT(2),ILEF2(2),ILISL(2),ICOLL(2)
19022 FORMAT('ILEFT(2),ILEF2(2),ILISL(2),ICOLL(2) = ',A4,2X,A4,2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19023)NUMVAL,NEWNAM(1),NEWNAM(2),NUMVAR
19023 FORMAT('NUMVAL,NEWNAM(1),NEWNAM(2),NUMVAR = ',
1 I8,2X,A4,2X,A4,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19024)ILISR(1),ILISR(2),ILISR(3),ILISR(4)
19024 FORMAT('ILISR(1),ILISR(2),ILISR(3),ILISR(4) = ',4I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19025)ICOLR(1),ICOLR(2),ICOLR(3),ICOLR(4)
19025 FORMAT('ICOLR(1),ICOLR(2),ICOLR(3),ICOLR(4) = ',4I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19026)TEMPS(1),TEMPS(2),TEMPS(3),TEMPS(4)
19026 FORMAT('TEMPS(1),TEMPS(2),TEMPS(3),TEMPS(4) = ',4E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19027)ITYPA(1),ITYPA(2),ITYPA(3),ITYPA(4)
19027 FORMAT('ITYPA(1),ITYPA(2),ITYPA(3),ITYPA(4) = ',
1 A4,2X,A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19031)IMATSW,NUMVAR
19031 FORMAT('IMATSW,NUMVAR = ',A4,I8)
CALL DPWRST('XXX','BUG ')
IF(ITYPA(1).EQ.'VARI')THEN
WRITE(ICOUT,19033)ILISR(1),IN(ILISR(1)),IVALUE(ILISR(1)),
1 IVALU2(ILISR(1))
19033 FORMAT('ILISR(1),IN(ILISR(1)),IVALUE(ILISR(1)),',
1 'IVALU2(ILISR(1)) = ',
1 4I8)
CALL DPWRST('XXX','BUG ')
ENDIF
WRITE(ICOUT,19034)ILOCR(3),ILOCR(4),ILOCR(5),ILOCR(6),
1 ILOCR(7)
19034 FORMAT('ILOCR3,...,ILOCR7 = ',5I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
19090 CONTINUE
C
RETURN
END
SUBROUTINE DPMAT2(ICASL7,ICASS7,ILOCV,IFTEXP,IFTORD,
1IMSUBC,
CCCCC MAY 2002. ADD ISEED ARGUMENT
1ISEED,
1IBUGA3,IBUGQ,ISUBRO,IFOUND,IERROR)
CCCCC OCTOBER 1998. SPLIT INTO 2 FILES (LAHEY COMPILER
CCCCC SEEMS TO HAVE MEMORY TROUBLES WITH THE FULL ROUTINE).
CCCCC ESSENTIALLY, SPLIT OUT THE MATRIX AND NON-MATRIX COMMANDS.
CCCCC THIS ROUTINE, DPMAT2, IS THE MATRIX COMMANDS.
C
C PURPOSE--TREAT THE TYPE 7 LET CASE--
C (FOR A FULL OR PARTIAL DATA SET)
C LET M3 = MATRIX ADDITION M1 M2
C LET M3 = MATRIX ADDITION M1 P1
C LET M3 = MATRIX SUBTRACTION M1 M2
C LET M3 = MATRIX SUBTRACTION M1 P1
C LET M3 = MATRIX MULTIPLICATION M1 M2
C LET M3 = MATRIX MULTIPLICATION M1 V1
C LET M3 = MATRIX MULTIPLICATION M1 P1
C LET M3 = MATRIX TRUNCATION M1 P1
C LET V3 = MATRIX SOLUTION M1 V2
C LET V3 = MATRIX ITERATIVE SOLUTION M1 V2
C LET M3 = MATRIX INVERSE M1
C LET M3 = MATRIX TRANSPOSE M1
C LET M3 = MATRIX ADJOINT M1
C LET V3 = MATRIX CHAR EQUATION M1 (NOT YET IMP)
C LET V3 = MATRIX EIGENVALUES M1
C LET M3 = MATRIX EIGENVECTORS M1
C LET M3 = MATRIX RANK M1
C LET P3 = MATRIX DETERMINANT M1
C LET P3 = MATRIX PERMANENT M1 (NOT YET IMP)
C LET P3 = MATRIX SPECTRAL NORM M1
C LET P3 = MATRIX SPECTRAL RADIUS M1
C LET P3 = MATRIX NUMBER OF ROWS M1
C LET P3 = MATRIX NUMBER OF COLUMNS M1
C LET V4 = MATRIX SIMPLEX SOLUTION V1 M1
C LET P3 = MATRIX TRACE M1
C LET M3 = MATRIX SUBMATRIX M1 P1 P2
C LET P3 = MATRIX MINOR M1 P1 P2
C LET P3 = MATRIX COFACTOR M1 P1 P2
C LET M3 = MATRIX DEFINITION M1 P1 P2
C LET P3 = MATRIX EUCLIDEAN NORM M1
C LET P3 = MATRIX ROW M1 P1
C LET P3 = MATRIX ELEMENT M1 P2
C LET M3 = MATRIX REPACE ROW M1 V2 P3
C LET M3 = MATRIX ADD ROW M1 V1
C LET M3 = MATRIX DELETE ROW M1 S1
C LET M3 = MATRIX REPACE ELEMENT M1 V2 P3 P4
C LET M3 = MATRIX CHOLESKY DECOMPOSITION M1
C LET M3 = MATRIX AUGMENT M1 M2
C LET V3 = MATRIX DIAGONAL M1
C LET M3 = DIAGONAL MATRIX V1
C LET V3 = TRIDIAGONAL SOLUTION M1 V2
C LET V3 = TRIANGULAR SOLUTION M1 V2
C LET M3 = TRIANGULAR INVERSE M1
C
C LET A1 = MATRIX MEAN M1
C LET A1 = MATRIX SUM M1
C LET M2 = MATRIX GROUP MEANS M1 TAG
C LET M2 = MATRIX GROUP STANDARD DEVIATIONS M1 TAG
C LET A1 = MATRIX ROW M1
C LET A1 = MATRIX COLUMN M1
C LET A1 = MATRIX PARTITION M1 NROW NCOL
C LET A1 = MATRIX GRAND M1
C LET V1 V2 = MATRIX BIN M1
C LET M2 = MATRIX ROW SCALE M1
C LET M2 = MATRIX COLUMN SCALE M1
C LET A1 = QUADRATIC FORM M1 Y1
C LET A1 = HOTELLING 1-SAMPLE T-SQUARE M1 U1
C LET A1 = HOTELLING 2-SAMPLE T-SQUARE M1 M2
C LET M3 = POOLED VARIANCE-COVARIANCE MATRIX M1 M2
C LET M2 = PSUEDO INVERSE M1
C LET M2 M3 = QR DECOMPOSITION M1
C LET M2 = MATRIX EUCLIDEAN ROW DISTANCE M1
C LET M2 = MATRIX EUCLIDEAN COLUMN DISTANCE M1
C LET M2 = MATRIX MAHALONOBIS ROW DISTANCE M1
C LET M2 = MATRIX MAHALONOBIS COLUMN DISTANCE M1
C LET M2 = MATRIX BLOCK ROW DISTANCE M1
C LET M2 = MATRIX BLOCK COLUMN DISTANCE M1
C LET M2 = MATRIX MINKOWSKY ROW DISTANCE M1
C LET M2 = MATRIX MINKOWSKY COLUMN DISTANCE M1
C LET M2 = MATRIX CHEBYCHEV ROW DISTANCE M1
C LET M2 = MATRIX CHEBYCHEV COLUMN DISTANCE M1
C LET Y1 = DISTANCE FROM MEAN M1
C LET Y2 = LINEAR COMBINATION M Y1
C LET M1 = VECTOR TIMES TRANSPOSE Y1
C LET M3 = VARIANCE-COVARIANCE MATRIX M1
C LET M3 = CORRELATION MATRIX M1
C LET M3 = PRINCIPLE COMPONENTS M1
C LET V3 = ... PRINCIPLE COMPONENT M1
C LET M4 V3 M3 = SINGULAR VALUE M1
C LET M4 V3 M3 = SINGULAR VALUE DECOMPOSITION M1
C LET M4 V3 M3 = SINGULAR VALUE FACTORIZATION M1
C LET M2 = CATCHER MATRIX M1
C LET M2 = INDEPENDENT UNIFORM RAND NUMB LOWL UPPL P
C LET M2 = CORRELATED UNIFORM RAND NUMB SIGMA N
C LET M2 = MULTIVARIATE NORM RAND NUMB V1 M1 N
C LET M2 = MULTIVARIATE T RAND NUMB V1 M1 NU N
C LET M2 = MULTINOMIAL RAND NUMB V1 M1 N
C LET M2 = WISHART RAND NUMB V1 M1 N
C LET M2 = DIRICHLET RAND NUMB ALPHA N
C LET A2 = DIRICHLET PDF X ALPHA
C LET A2 = DIRICHLET LOG PDF X ALPHA
C LET M2 = MULTIVARIATE NORM CDF V1 M1 N
C LET M2 = MULTIVARIATE T CDF V1 M1 N
C LET A2 = MULTINOMIAL PDF X P
C LET M2 = XTXINV MATRIX M1
C LET Y1 = VARIANCE INFLATION FACTOR M1
C LET Y1 = CONDITION INDICES M1
C LET M1 = CREATE MATRIX V1 V2 ....VK
C
C NOTE--THIS SUBROUTINE OPERATES ON A VECTOR
C AND PRODUCES A VECTOR;
C THIS IS TO BE CONTRASTED WITH DPLET8 WHICH
C OPERATES ON A VECTOR
C BUT PRODUCES A PARAMETER (= A SCALAR).
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/10
C ORIGINAL VERSION--MARCH 1978.
C UPDATED --JULY 1978.
C UPDATED --NOVEMBER 1978.
C UPDATED --FEBRUARY 1979.
C UPDATED --MARCH 1979.
C UPDATED --APRIL 1979.
C UPDATED --JULY 1979.
C UPDATED --JUNE 1981.
C UPDATED --JULY 1981.
C UPDATED --SEPTEMBER 1981.
C UPDATED --OCTOBER 1981.
C UPDATED --NOVEMBER 1981.
C UPDATED --DECEMBER 1981.
C UPDATED --MAY 1982.
C UPDATED --JANUARY 1987.
C UPDATED --APRIL 1987.
C UPDATED --AUGUST 1987. COMPLEX SQUARE ROOT
C UPDATED --AUGUST 1987. COMPLEX ROOTS (POLYNOMIAL)
C UPDATED --AUGUST 1987. POLYNOMIAL ARITHMETIC
C UPDATED --AUGUST 1987. VECTOR ARITHMETIC
C UPDATED --AUGUST 1987. SET ARITHMETIC
C UPDATED --AUGUST 1987. LOGICAL ARITHMETIC
C UPDATED --SEPTEMBER 1987. FFT AND INVERSE FFT
C UPDATED --SEPTEMBER 1987. MATRIX OPERATIONS
C UPDATED --SEPTEMBER 1987. COMPLEX CONJUGATE
C UPDATED --NOVEMBER 1987. (EXIT OUT IF ERROR)
C UPDATED --FEBRUARY 1988. (BIWEIGHT AND TRICUBE)
C UPDATED --JULY 1988. FRACTAL
C UPDATED --AUGUST 1988. LENGTH TRAP FOR FRACTAL
C UPDATED --JANAURY 1988. BOOTSTRAP SAMPLE
C UPDATED --AUGUST 1988. (VARIANCE-COVARIANCE MATRIX)
C UPDATED --AUGUST 1988. (CORRELATION MATRIX)
C UPDATED --AUGUST 1988. (PRINCIPLE COMPONENTS)
C UPDATED --AUGUST 1988. (... PRINCIPLE COMPONENTS)
C UPDATED --JANUARY 1989. FIX A FORMAT STATEMENT (ALAN)
C UPDATED --NOVEMBER 1989. FIX INTERPOLATION
C UPDATED --DECEMBER 1989. (DEX) GENERATOR MULTIPLICATION
C UPDATED --JANUARY 1990. SUBSAMPLE
C UPDATED --JULY 1991. COCODE ('COCD')
C UPDATED --JULY 1991. COCOPY ('COCP')
C UPDATED --FEBRUARY 1992. FIX COCOPY ('COCP')
C UPDATED --MARCH 1992. EXT. SORT&CARRY TO MULTI ARGS
C UPDATED --MARCH 1992. ID IN ALL ERROR STATEMENTS
C UPDATED --APRIL 1992. SPLIT LONG FORMAT STATEMENTS
C UPDATED --MAY 1992. FIX IF .AND. IF
C UPDATED --MAY 1992. FIX COMPLEX ARITH./SUBSET BUG
C UPDATED --MAY 1992. FIX COMPLEX ARITH./SUBSET BUG
C --MAY 1992.(SHOULD FOR POLARI,LOGARI,..?)
C UPDATED --JULY 1993. UPDATES FOR MATRIX CODE
C UPDATED --AUGUST 1993. UPDATES FOR MATRIX CODE
C UPDATED --SEPTEMBER 1993. UPDATES FOR MATRIX CODE
C UPDATED --SEPTEMBER 1993. FIX BUG FOR COMPLEX ROOTS
C UPDATED --OCTOBER 1993. JACNIFE INDEX
C UPDATED --OCTOBER 1993. ADDITIONAL MATRIX COMMANDS
C UPDATED --MAY 1994. LINEAR INTERPOLATE, 2D INTERPOL
C BILINEAR INTERPOLATE, BIVARIATE
C INTERPOLATE
C UPDATED --JUNE 1995. BUG IN MATRIX REPLACE ELEMENT
C UPDATED --AUGUST 1995. ZERO PADDING NO LONGER REQUIRED
C FOR FFT.
C UPDATED --JANUARY 1998. RECODE MATRIX CODE TO USE FEWER
C MATRICES (AND THUS CAN HANDLE
C LARGER MATRICES).
C UPDATED --JANUARY 1998. RECODE MATRIX CODE TO USE
C 1-DIMENSIONAL SCRATCH ARRAYS
C (WILL BE 2-D IN MATARI, MATAR2)
C UPDATED --MAY 1998. INTERARRIVAL TIMES CASE
C UPDATED --MAY 1998. CUMULATIVE AVERAGE CASE
C UPDATED --MAY 1998. REVERSE CASE
C UPDATED --MAY 1998. CUMULATIVE HAZARD CASE
C UPDATED --MAY 1998. HAZARD CASE
C UPDATED --SEPTEMBER 1998. EXPONENTIAL SMOOTHING
C UPDATED --JUNE 1998. SOME NEW MATRIX COMMANDS
C UPDATED --AUGUST 1998. MATRIX MEAN
C UPDATED --AUGUST 1998. MATRIX ADD ROW, MATRIX DELE ROW
C UPDATED --AUGUST 1998. DISTANCE FROM MEAN
C UPDATED --AUGUST 1998. FOR MATRIX COMMANDS, FIX HOW
C SUBSETTING HANDLED WHEN OUTPUT
C IS SAVED. THE IUPFLG USED TO
C CONTROL WHETHER OUTPUT IS SAVED
C WITH SUBSETTING OR IS SAVED
C AS A "FULL" MATRIX. E.G.,
C MATRIX ADDITION MAINTAINS THE
C SUBSET WHEN SAVING THE OUTPUT,
C WHILE CORRELATION MATRIX IS
C SAVED AS A "FULL" MATRIX.
C UPDATED --SEPTEMBER 1998. MATRIX GROUP MEANS
C UPDATED --SEPTEMBER 1998. MATRIX GROUP SD
C UPDATED --SEPTEMBER 1998. POOLED VARIANCE-COVARIANCE
C MATRIX (MORE THAN 2 GROUPS)
C UPDATED --OCTOBER 1998. SPLIT INTO 2 ROUTINES
C UPDATED --MAY 2002. MULTIVARIATE NORM RAND NUMB
C UPDATED --MAY 2002. MULTINOMIAL RAND NUMB
C UPDATED --MAY 2002. WISHART RAND NUMB
C UPDATED --JUNE 2002. CATCHER MATRIX
C UPDATED --JULY 2002. ESSENTIALLY REWRITE FOR
C BETTER CLARITY (MAKE USE
C OF SEVERAL SUBROUTINES)
C UPDATED --JULY 2002. CREATE MATRIX
C UPDATED --MAY 2003. MULTIVARIATE T RAND NUMB
C UPDATED --MAY 2003. INDEPENDENT UNIFORM RAND NUMB
C UPDATED --MAY 2003. DIRIHLET RAND NUMB
C UPDATED --MAY 2003. MULTIVARIATE NORM CDF
C UPDATED --MAY 2003. MULTIVARIATE T CDF
C UPDATED --MAY 2003. ARGUMENT LIST TO MATAR3
C UPDATED --MAY 2003. FIX MULTINOMIAL RANDOM NUMBERS
C UPDATED --SEPTEMBER 2003. CORRELATED MULTIVARIATE
C UNIFORM RANDOM NUMBERS
C UPDATED --JUNE 2005. MATRIX SUM
C UPDATED --JUNE 2005. MATRIX PARTITION
C UPDATED --MARCH 2006. MATRIX BIN (NEED TO MODIFY
C CALL LIST TO MATAR3)
C UPDATED --MARCH 2006. MATRIX LOWER TRUNCATE
C UPDATED --MARCH 2006. MATRIX UPPER TRUNCATE
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICASL7
CHARACTER*4 ICASS7
CHARACTER*4 IFTEXP
CHARACTER*4 IFTORD
CHARACTER*4 IBUGA3
CHARACTER*4 IBUGQ
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
PARAMETER(MAXCAS=30)
PARAMETER(MAXCA2=3)
C
CHARACTER*4 NEWNAM(MAXCA2)
CHARACTER*4 ICASEQ
CHARACTER*4 IHWUSE
CHARACTER*4 MESSAG
CHARACTER*4 IWRITE
CHARACTER*4 ITCASE
CHARACTER*4 IMCASE
CHARACTER*4 IMSUBC
C
CHARACTER*4 IHRIGH
CHARACTER*4 IHRIG2
C
CHARACTER*4 ILEFT(MAXCA2)
CHARACTER*4 ILEF2(MAXCA2)
CHARACTER*4 IHSET
CHARACTER*4 IHSET2
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*4 IMATSW
CHARACTER*4 ITYP91
C
CHARACTER*4 IH1
CHARACTER*4 IH2
CHARACTER*4 IHMAT1
CHARACTER*4 IHMAT2
C
CHARACTER*4 ITYPA(MAXCAS)
C
CHARACTER*4 IHCV11
CHARACTER*4 IHCV12
CHARACTER*4 IHCV21
CHARACTER*4 IHCV22
CHARACTER*4 IHCV31
CHARACTER*4 IHCV32
C
CHARACTER*4 IUPFLG
CHARACTER*4 IFLGLL
C
CHARACTER*4 IHP
CHARACTER*4 IHP2
CHARACTER*4 ISUBN0
C
CHARACTER*4 IRELAT
C
INTEGER ILISL(MAXCA2)
INTEGER ICOLL(MAXCA2)
INTEGER ILOCR(MAXCAS)
INTEGER ILISR(MAXCAS)
INTEGER ICOLR(MAXCAS)
INTEGER NIRIGH(MAXCAS)
INTEGER NS(MAXCAS)
REAL TEMPS(MAXCAS)
C
C---------------------------------------------------------------------
C
C TOTAL FOR THE COMMON FILES IS 20+200+200=420 (SEPT 1987)
INCLUDE 'DPCOPA.INC'
C
DIMENSION TEMP1(MAXOBV)
DIMENSION TEMP2(MAXOBV)
DIMENSION TEMP3(MAXOBV)
DIMENSION TEMP4(MAXOBV)
DIMENSION TEMP12(2*MAXOBV)
DIMENSION TEMP91(MAXOBV)
DIMENSION TEMP92(MAXOBV)
DIMENSION ITEMP1(MAXOBV)
DIMENSION ITEMP2(MAXOBV)
DIMENSION ITEMP3(MAXOBV)
DIMENSION ITEMP4(MAXOBV)
DIMENSION ITEMP5(MAXOBV)
DIMENSION ITEMP6(MAXOBV)
DOUBLE PRECISION DTEMP1(MAXOBV)
DOUBLE PRECISION DTEMP2(MAXOBV)
DOUBLE PRECISION DTEMP3(MAXOBV)
INCLUDE 'DPCOZZ.INC'
INCLUDE 'DPCOZI.INC'
INCLUDE 'DPCOZD.INC'
EQUIVALENCE (GARBAG(IGARB1),TEMP1)
EQUIVALENCE (GARBAG(IGARB2),TEMP2)
EQUIVALENCE (GARBAG(IGARB3),TEMP3)
EQUIVALENCE (GARBAG(IGARB4),TEMP4)
EQUIVALENCE (GARBAG(IGARB6),TEMP12)
EQUIVALENCE (GARBAG(IGARB8),TEMP91)
EQUIVALENCE (GARBAG(IGAR10),TEMP92)
EQUIVALENCE (IGARBG(IIGAR1),ITEMP1)
EQUIVALENCE (IGARBG(IIGAR2),ITEMP2)
EQUIVALENCE (IGARBG(IIGAR3),ITEMP3)
EQUIVALENCE (IGARBG(IIGAR4),ITEMP4)
EQUIVALENCE (IGARBG(IIGAR5),ITEMP5)
EQUIVALENCE (IGARBG(IIGAR6),ITEMP6)
EQUIVALENCE (DGARBG(IDGAR1),DTEMP1)
EQUIVALENCE (DGARBG(IDGAR2),DTEMP2)
EQUIVALENCE (DGARBG(IDGAR3),DTEMP3)
C
DIMENSION TEMPM1(MAXTOM)
DIMENSION TEMPM2(MAXTOM)
DIMENSION TEMM91(MAXTOM)
INCLUDE 'DPCOZ2.INC'
EQUIVALENCE (G2RBAG(1),TEMPM1)
PARAMETER (IGINC=MAXTOM)
PARAMETER (IGT1=1+IGINC)
EQUIVALENCE (G2RBAG(IGT1),TEMPM2)
PARAMETER (IGT3=IGT1+IGINC)
EQUIVALENCE (G2RBAG(IGT3),TEMM91)
C
DIMENSION TEMPV(20)
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOHO.INC'
INCLUDE 'DPCOHK.INC'
INCLUDE 'DPCODA.INC'
INCLUDE 'DPCOST.INC'
INCLUDE 'DPCOSU.INC'
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IUPFLG='SUBS'
C
ISUBN1='DPMA'
ISUBN2='T2 '
C
MAXCP1=MAXCOL+1
MAXCP2=MAXCOL+2
MAXCP3=MAXCOL+3
MAXCP4=MAXCOL+4
MAXCP5=MAXCOL+5
MAXCP6=MAXCOL+6
C
ILOCR(1)=ILOCV
DO10I=2,MAXCAS
ILOCR(I)=ILOCR(I-1)+1
10 CONTINUE
C
IFOUND='NO'
IERROR='NO'
C
DO12I=1,MAXCA2
NEWNAM(I)='NO'
12 CONTINUE
NUMVAL=1
C
IMATSW='NO'
C
ITYP91='VECT'
SCAL91=(-999.0)
C
DO14I=1,MAXCAS
ITYPA(I)='VARI'
TEMPS(I)=(-999.0)
ILISR(I)=(-999)
14 CONTINUE
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGA3,IBUGQ,ISUBRO
52 FORMAT('IBUGA3,IBUGQ,ISUBRO = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)ICASL7,ILOCV
53 FORMAT('ICASL7,ILOCV = ',A4,2X,I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
C **********************************
C ** STEP 1-- **
C ** INITIALIZE SOME VARIABLES. **
C **********************************
C
ISTEPN='1'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NEWNAM(1)='NO'
C
C ***************************************************************
C ** STEP 2A-- *
C ** EXAMINE THE LEFT-HAND SIDE-- *
C ** IS THE VARIABLE NAME TO LEFT OF = SIGN *
C ** ALREADY IN THE NAME LIST? AS A VARIABLE? *
C ** NOTE THAT ILEFT(I) IS THE NAME OF THE VARIABLE *
C ** ON THE LEFT. *
C ** NOTE THAT ILISL(I) IS THE LINE IN THE TABLE *
C ** OF THE NAME ON THE LEFT. *
C ** NOTE THAT ICOLL(I) IS THE DATA COLUMN (1 TO 12) *
C ** FOR THE NAME OF THE LEFT. *
C ***************************************************************
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASE=1
CALL DPMAT6(ICASL7,ICASE,MAXCA2,
1 ILEFT,ILEF2,NEWNAM,ILISL,ICOLL,
1 NUMVAL,NIOLD,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IF(ICASL7.EQ.'MASD' .OR. ICASL7.EQ.'MASF' .OR.
1 ICASL7.EQ.'MQRD' .OR. ICASL7.EQ.'MATB' .OR.
1 ICASL7.EQ.'MARB')THEN
ICASE=2
CALL DPMAT6(ICASL7,ICASE,MAXCA2,
1 ILEFT,ILEF2,NEWNAM,ILISL,ICOLL,
1 NUMVAL,NIOLD,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(ICASL7.EQ.'MASD' .OR. ICASL7.EQ.'MASF')THEN
ICASE=3
CALL DPMAT6(ICASL7,ICASE,MAXCA2,
1 ILEFT,ILEF2,NEWNAM,ILISL,ICOLL,
1 NUMVAL,NIOLD,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,491)
491 FORMAT('AT THE END OF STEP 2--')
CALL DPWRST('XXX','BUG ')
DO494I=1,MAXCA2
WRITE(ICOUT,492)ILEFT(I),ILEF2(I),NEWNAM(I),NUMNAM,
1 ILISL(I),NUMCOL,ICOLL(I),NIOLD
CALL DPWRST('XXX','BUG ')
492 FORMAT('ILEFT(I),ILEFT(I),NEWNAM(I),NUMNAM,ILISL(I),',
1 'NUMCOL,ICOLL(I),NIOLD = ',A4,A4,2X,A4,2X,5I8)
494 CONTINUE
ENDIF
C
C ****************************************************************
C ** STEP 4-- *
C ** EXAMINE THE RIGHT-HAND SIDE-- *
C ** HAS EACH VARIABLE ON THE RIGHT *
C ** ALREADY BEEN DEFINED? *
C ** NOTE THAT ILISR(1), ILISR(2), ILISR(3), ILISR(4) *
C ** IS THE LINE IN THE TABLE *
C ** OF THE FIRST, SECOND, THIRD, FOURTH VARIABLE ON THE RIGHT, *
C ** RESPECTIVELY. *
C ** NOTE THAT ICOLR(1), ICOLR(2), ICOLR3, ICOLR4 *
C ** IS THE DATA COLUMN (1 TO 10+6) *
C ** OF THE FIRST, SECOND, THIRD, FOURTH VARIABLE ON THE RIGHT, *
C ** RESPECTIVELY. *
C ****************************************************************
C
ISTEPN='4'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C ********************************************
C ** STEP 4.1-- **
C ** DETERMINE THE NUMBER OF VARIABLES **
C ** ON THE RIGHT--1, 2, 3, OR 4 **
C ********************************************
C
ISTEPN='4.1'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,1021)ICASL7,NUMARG
1021 FORMAT('ICASL7,NUMARG = ',A4,2X,I2)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IMATSW='YES'
NUMVAR=1
C
IF(ICASL7.EQ.'MAIN'.OR.ICASL7.EQ.'MATR'.OR.ICASL7.EQ.'MAEN'.OR.
1 ICASL7.EQ.'MAAJ'.OR.ICASL7.EQ.'MACE'.OR.ICASL7.EQ.'MAVC'.OR.
1 ICASL7.EQ.'MAEA'.OR.ICASL7.EQ.'VINF'.OR.ICASL7.EQ.'MACO'.OR.
1 ICASL7.EQ.'CIND'.OR.ICASL7.EQ.'MAEE'.OR.ICASL7.EQ.'MAPC'.OR.
1 ICASL7.EQ.'MAP1'.OR.ICASL7.EQ.'MAP2'.OR.ICASL7.EQ.'MAP3'.OR.
1 ICASL7.EQ.'MAP4'.OR.ICASL7.EQ.'MAP5'.OR.ICASL7.EQ.'MAP6'.OR.
1 ICASL7.EQ.'MAP7'.OR.ICASL7.EQ.'MAP8'.OR.ICASL7.EQ.'MAP9'.OR.
1 ICASL7.EQ.'MA10'.OR.(ICASL7.EQ.'MARA'.AND.NUMARG.EQ.5))THEN
NUMVAR=1
ELSEIF(
1 ICASL7.EQ.'MADE'.OR.ICASL7.EQ.'MAPE'.OR.ICASL7.EQ.'MASV'.OR.
1 ICASL7.EQ.'MASN'.OR.ICASL7.EQ.'MASR'.OR.ICASL7.EQ.'MASD'.OR.
1 ICASL7.EQ.'MANR'.OR.ICASL7.EQ.'MANC'.OR.ICASL7.EQ.'MATC'.OR.
1 ICASL7.EQ.'MASF'.OR.ICASL7.EQ.'MACH'.OR.ICASL7.EQ.'MADI'.OR.
1 ICASL7.EQ.'MAMM'.OR.ICASL7.EQ.'MADM'.OR.ICASL7.EQ.'DIMA'.OR.
1 ICASL7.EQ.'MAVT'.OR.ICASL7.EQ.'MATI'.OR.ICASL7.EQ.'MPIN'.OR.
1 ICASL7.EQ.'MDER'.OR.ICASL7.EQ.'MDEC'.OR.ICASL7.EQ.'MDMR'.OR.
1 ICASL7.EQ.'MDMC'.OR.ICASL7.EQ.'MDBR'.OR.ICASL7.EQ.'MDBC'.OR.
1 ICASL7.EQ.'MDKR'.OR.ICASL7.EQ.'MDKC'.OR.ICASL7.EQ.'MDCR'.OR.
1 ICASL7.EQ.'MDCC'.OR.ICASL7.EQ.'MRSC'.OR.ICASL7.EQ.'MCSC'.OR.
1 ICASL7.EQ.'MROW'.OR.ICASL7.EQ.'MCOL'.OR.ICASL7.EQ.'MGRA'.OR.
1 ICASL7.EQ.'MATB'.OR.ICASL7.EQ.'MARB'.OR.
1 ICASL7.EQ.'MDIP'.OR.ICASL7.EQ.'MQRD'.OR.ICASL7.EQ.'MSUM')THEN
NUMVAR=1
ELSEIF(ICASL7.EQ.'MAAD'.OR.ICASL7.EQ.'MASU'.OR.
1 ICASL7.EQ.'MAMU'.OR.ICASL7.EQ.'MASO'.OR.
1 (ICASL7.EQ.'MARA'.AND.NUMARG.EQ.6).OR.
1 ICASL7.EQ.'MASS'.OR.ICASL7.EQ.'MARW'.OR.
1 ICASL7.EQ.'MAAU'.OR.
1 ICASL7.EQ.'MATZ'.OR.ICASL7.EQ.'MAUZ'.OR.
1 ICASL7.EQ.'MAAR'.OR.ICASL7.EQ.'MADR'.OR.
1 ICASL7.EQ.'MATS'.OR.ICASL7.EQ.'MAIS'.OR.
1 ICASL7.EQ.'MQFO'.OR.ICASL7.EQ.'MALC'.OR.
1 ICASL7.EQ.'MAGM'.OR.ICASL7.EQ.'MAGS'.OR.
1 ICASL7.EQ.'MHT1'.OR.ICASL7.EQ.'MHT2'.OR.
1 ICASL7.EQ.'MPDF'.OR.ICASL7.EQ.'DPDF'.OR.
1 ICASL7.EQ.'INRN'.OR.ICASL7.EQ.'DLPD'.OR.
1 ICASL7.EQ.'MPVC'.OR.ICASL7.EQ.'DIRN')THEN
NUMVAR=2
ELSEIF(ICASL7.EQ.'MASM'.OR.ICASL7.EQ.'MAMI'.OR.
1 ICASL7.EQ.'MACF'.OR.ICASL7.EQ.'MAEL'.OR.
1 (ICASL7.EQ.'MADF'.AND.NUMARG.EQ.7).OR.
1 ICASL7.EQ.'MARR'.OR.ICASL7.EQ.'MVRN'.OR.
1 ICASL7.EQ.'MURN'.OR.
1 ICASL7.EQ.'WIRN'.OR.ICASL7.EQ.'IURN'.OR.
1 ICASL7.EQ.'MPAR')THEN
NUMVAR=3
ELSEIF((ICASL7.EQ.'MADF'.AND.NUMARG.EQ.8).OR.
1 ICASL7.EQ.'MARE'.OR.ICASL7.EQ.'MATD'.OR.
1 ICASL7.EQ.'MTRN')THEN
NUMVAR=4
ELSEIF(ICASL7.EQ.'CRMA')THEN
ISTRT=5
ILAST=NUMARG
DO1051I=5,NUMARG
IHRIGH=IHARG(I)
IHRIG2=IHARG2(I)
IF(IHRIGH.EQ.'SUBS'.AND.IHRIG2.EQ.'ET ')THEN
ILAST=I-1
GOTO1054
ELSEIF(IHRIGH.EQ.'EXCE'.AND.IHRIG2.EQ.'PT ')THEN
ILAST=I-1
GOTO1054
ELSEIF(IHRIGH.EQ.'FOR '.AND.IHRIG2.EQ.' ')THEN
ILAST=I-1
GOTO1054
ENDIF
1051 CONTINUE
1054 CONTINUE
NUMVAR=ILAST-ISTRT+1
ELSEIF(ICASL7.EQ.'NCDF'.OR.ICASL7.EQ.'TCDF')THEN
ISTRT=6
ILAST=NUMARG
DO1061I=ISTRT,NUMARG
IHRIGH=IHARG(I)
IHRIG2=IHARG2(I)
IF(IHRIGH.EQ.'SUBS'.AND.IHRIG2.EQ.'ET ')THEN
ILAST=I-1
GOTO1064
ELSEIF(IHRIGH.EQ.'EXCE'.AND.IHRIG2.EQ.'PT ')THEN
ILAST=I-1
GOTO1064
ELSEIF(IHRIGH.EQ.'FOR '.AND.IHRIG2.EQ.' ')THEN
ILAST=I-1
GOTO1064
ENDIF
1061 CONTINUE
1064 CONTINUE
NUMVAR=ILAST-ISTRT+1
IF(ICASL7.EQ.'NCDF')THEN
IF(NUMVAR.EQ.3)THEN
IFLGLL='ON'
ELSEIF(NUMVAR.EQ.2)THEN
IFLGLL='OFF'
ELSE
WRITE(ICOUT,1066)
1066 FORMAT('***** ERROR FOR MULTIVARIATE NORMAL CDF--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1068)NUMVAR
1068 FORMAT(' EITHER 2 OR 3 ARGUMENTS EXPECTED, ',I8,
1 'FOUND.')
CALL DPWRST('XXX','BUG ')
ENDIF
ELSEIF(ICASL7.EQ.'TCDF')THEN
IF(NUMVAR.EQ.4)THEN
IFLGLL='ON'
ELSEIF(NUMVAR.EQ.3)THEN
IFLGLL='OFF'
ELSE
WRITE(ICOUT,1076)
1076 FORMAT('***** ERROR FOR MULTIVARIATE T CDF--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1078)NUMVAR
1078 FORMAT(' EITHER 3 OR 4 ARGUMENTS EXPECTED, ',I8,
1 'FOUND.')
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
ENDIF
C
IMATSW='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,1091)ICASL7,NUMVAR
1091 FORMAT('ICASL7,NUMVAR = ',A4,2X,I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
C ***************************************
C ** STEP 5.1-- **
C ** EXAMINE THE VARIABLES **
C ** ON THE RIGHT. **
C ***************************************
C
C
ISTEPN='5.1'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IFLAG1=0
IF(ICASL7.EQ.'MAAD'.OR.ICASL7.EQ.'MASU'.OR.ICASL7.EQ.'MAMU'.OR.
1 ICASL7.EQ.'JAIN'.OR.ICASL7.EQ.'MATZ'.OR.ICASL7.EQ.'MAUZ')THEN
IFLAG1=1
ENDIF
ICASE=1
CALL DPMAT7(ICASL7,ICASE,MAXCAS,ILOCR,
1IHRIGH,IHRIG2,ICOLR,ILISR,NIRIGH,ITYPA,TEMPS,
1IFLAG1,ATEMP,ITEMP,
1IBUGA3,ISUBRO,IFOUND,IERROR)
IF(ITYPA(ICASE).EQ.'MATR')IMATSW='YES'
IF(IERROR.EQ.'YES')GOTO9000
C
IF(NUMVAR.GE.2)THEN
IFLAG1=0
IF(ICASL7.EQ.'MAAD'.OR.ICASL7.EQ.'MASU'.OR.ICASL7.EQ.'MAMU'.OR.
1 ICASL7.EQ.'MASM'.OR.ICASL7.EQ.'MAMI'.OR.ICASL7.EQ.'MACF'.OR.
1 ICASL7.EQ.'MADF'.OR.ICASL7.EQ.'MARA'.OR.ICASL7.EQ.'MARW'.OR.
1 ICASL7.EQ.'MAEL'.OR.ICASL7.EQ.'MARE'.OR.ICASL7.EQ.'JAIN'.OR.
1 ICASL7.EQ.'DIRN'.OR.ICASL7.EQ.'TCDF'.OR.ICASL7.EQ.'INRN'.OR.
1 ICASL7.EQ.'MPAR'.OR.ICASL7.EQ.'MATZ'.OR.ICASL7.EQ.'MAUZ'.OR.
1 ICASL7.EQ.'EXPS'.OR.ICASL7.EQ.'MADR'.OR.ICASL7.EQ.'MURN')
1 THEN
IFLAG1=1
ENDIF
ICASE=2
CALL DPMAT7(ICASL7,ICASE,MAXCAS,ILOCR,
1 IHRIGH,IHRIG2,ICOLR,ILISR,NIRIGH,ITYPA,TEMPS,
1 IFLAG1,ATEMP,ITEMP,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(ITYPA(ICASE).EQ.'MATR')IMATSW='YES'
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(NUMVAR.GE.3)THEN
IFLAG1=0
IF(ICASL7.EQ.'MAAD'.OR.ICASL7.EQ.'MASU'.OR.ICASL7.EQ.'MAMU'.OR.
1 ICASL7.EQ.'MASM'.OR.ICASL7.EQ.'MAMI'.OR.ICASL7.EQ.'MACF'.OR.
1 ICASL7.EQ.'MADF'.OR.ICASL7.EQ.'MAEL'.OR.ICASL7.EQ.'MARE'.OR.
1 ICASL7.EQ.'MARR'.OR.ICASL7.EQ.'MVRN'.OR.ICASL7.EQ.'MURN'.OR.
1 ICASL7.EQ.'WIRN'.OR.ICASL7.EQ.'MADR'.OR.ICASL7.EQ.'MURN'.OR.
1 ICASL7.EQ.'MPAR'.OR.
1 ICASL7.EQ.'IURN'.OR.ICASL7.EQ.'MTRN')
1 THEN
IFLAG1=1
ENDIF
ICASE=3
CALL DPMAT7(ICASL7,ICASE,MAXCAS,ILOCR,
1 IHRIGH,IHRIG2,ICOLR,ILISR,NIRIGH,ITYPA,TEMPS,
1 IFLAG1,ATEMP,ITEMP,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(ITYPA(ICASE).EQ.'MATR')IMATSW='YES'
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(NUMVAR.GE.4)THEN
IFLAG1=0
IF(ICASL7.EQ.'MAAD'.OR.ICASL7.EQ.'MASU'.OR.ICASL7.EQ.'MARA'.OR.
1 ICASL7.EQ.'MAMU'.OR.ICASL7.EQ.'MADF'.OR.ICASL7.EQ.'MARE'.OR.
1 ICASL7.EQ.'MURN'.OR.ICASL7.EQ.'MTRN')THEN
IFLAG1=1
ENDIF
ICASE=4
CALL DPMAT7(ICASL7,ICASE,MAXCAS,ILOCR,
1 IHRIGH,IHRIG2,ICOLR,ILISR,NIRIGH,ITYPA,TEMPS,
1 IFLAG1,ATEMP,ITEMP,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
IF(ITYPA(ICASE).EQ.'MATR')IMATSW='YES'
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
C 5 VARIABLES OR MORE CURRENTLY ONLY RELEVANT FOR THE
C "CREATE MATRIX" COMMAND.
C
IF(NUMVAR.GE.5)THEN
DO1110ICASE=5,NUMVAR
IFLAG1=0
CALL DPMAT7(ICASL7,ICASE,MAXCAS,ILOCR,
1 IHRIGH,IHRIG2,ICOLR,ILISR,NIRIGH,ITYPA,TEMPS,
1 IFLAG1,ATEMP,ITEMP,
1 IBUGA3,ISUBRO,IFOUND,IERROR)
1110 CONTINUE
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
C *******************************
C ** STEP 7-- **
C ** DETERMINE THE SUBCASE **
C ** AND BRANCH ACCORDINGLY. **
C *******************************
C
7000 CONTINUE
C
ISTEPN='7'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
WRITE(ICOUT,7003)NUMVAR,NUMARG
7003 FORMAT('7008--NUMVAR,NUMARG = ',2I8)
CALL DPWRST('XXX','BUG ')
DO7005I=1,NUMVAR
WRITE(ICOUT,7008)I,ITYPA(I),ILOCR(I)
7008 FORMAT('7008-I,ITYPA(I),ILOCR(I) = ',I4,2X,A4,2X,I8)
CALL DPWRST('XXX','BUG ')
7005 CONTINUE
WRITE(ICOUT,7006)IHARG(ILOCR(NUMVAR)),IHARG2(ILOCR(NUMVAR))
7006 FORMAT('IHARG(ILOCR(NUMVAR)),IHARG2(ILOCR(NUMVAR)) = ',2A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7007)IHARG(ILOCR(NUMVAR)+1),
1 IHARG2(ILOCR(NUMVAR)+1)
7007 FORMAT('IHARG(ILOCR(NUMVAR)+1),IHARG2(ILOCR(NUMVAR)+1) = ',
1 2A4)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(ICASL7.NE.'CRMA'.AND.NUMVAR.GE.5)THEN
WRITE(ICOUT,7011)
7011 FORMAT('***** ERROR IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7012)
7012 FORMAT(' ILLEGAL SYNTAX FOR LET COMMAND AT 7000--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7013)
7013 FORMAT(' THERE WERE 5 OR MORE VARIABLES ON THE RIGHT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7014)
7014 FORMAT(' HAND SIDE OF THE EQUAL SIGN. THERE ARE NO')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7015)
7015 FORMAT(' MATRIX LET SYNTAXES (EXCEPT CREATE MATRIX)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7016)
7016 FORMAT(' WITH THAT MANY VARIABLES ON THE RIGHT.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7017)
7017 FORMAT(' THE COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7019)(IANS(I),I=1,MAX(100,IWIDTH))
7019 FORMAT(100A1)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
ENDIF
C
IF(ILOCR(NUMVAR).EQ.NUMARG)GOTO8000
C
IF(ILOCR(NUMVAR).LT.NUMARG)THEN
IT1=ILOCR(NUMVAR+1)
IF(IHARG(IT1).EQ.'SUBS'.AND.IHARG2(IT1).EQ.'ET ')GOTO9000
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,7009)
7009 FORMAT('AFTER TEST FOR SUBSET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7006)IHARG(ILOCR(NUMVAR)),
1 IHARG2(ILOCR(NUMVAR))
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7007)IHARG(ILOCR(NUMVAR)+1),
1 IHARG2(ILOCR(NUMVAR)+1)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(IHARG(IT1).EQ.'EXCE'.AND.IHARG2(IT1).EQ.'PT ')GOTO9000
IF(IHARG(IT1).EQ.'FOR '.AND.IHARG2(IT1).EQ.' ')GOTO10000
ENDIF
C
WRITE(ICOUT,7081)
7081 FORMAT('***** ERROR 7081 IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7082)
7082 FORMAT(' ILLEGAL SYNTAX FOR LET COMMAND AT 7082--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7083)
7083 FORMAT(' THE COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7084)(IANS(I),I=1,MIN(100,IWIDTH))
7084 FORMAT(100A1)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7088)ILOCV,NUMARG,NUMVAR
7088 FORMAT('ILOCV,NUMARG,NUMVAR = ',3I8)
CALL DPWRST('XXX','BUG ')
DO7089I=1,NUMVAR
WRITE(ICOUT,7086)I,ILOCR(I)
7086 FORMAT('I,ILOCR(I) = ',I4,2X,I8)
CALL DPWRST('XXX','BUG ')
7089 CONTINUE
IERROR='YES'
GOTO19000
C
C ************************************************
C ** STEP 8-- **
C ** TREAT THE FULL VARIABLE CASE. **
C ** EXAMPLE--LET Y = COVARIANCE MATRIX X **
C ** THEN JUMP TO STEP NUMBER 10 BELOW **
C ** FOR THE LIST UPDATING AND **
C ** FOR SOME INFORMATIVE PRINTING. **
C ************************************************
C
C
8000 CONTINUE
ISTEPN='8'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
WRITE(ICOUT,8011)NINEW,NIRIGH(1)
8011 FORMAT('NINEW,NIRIGH(1) = ',2I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
ICASEQ='FULL'
NIOLD=NIRIGH(1)
IF(NUMVAR.GE.2)THEN
DO8020I=2,NUMVAR
IF(NIRIGH(I).GT.NIOLD)NIOLD=NIRIGH(I)
8020 CONTINUE
ENDIF
NINEW=NIOLD
DO8100I=1,NINEW
ISUB(I)=1
8100 CONTINUE
GOTO11000
C
C ****************************************************************
C ** STEP 9-- *
C ** TREAT THE PARTIAL VARIABLE SUBSET CASE. *
C ** EXAMPLE--LET Y = SORT X SUBSET 2 3 5 *
C ** --LET Y(I) = SORT X SUBSET 2 3 5 *
C ** JUMP TO STEP NUMBER 11 BELOW *
C ** FOR THE ACTUAL MATHEMATICAL OPERATION, *
C ** FOR THE LIST UPDATING, AND *
C ** FOR SOME INFORMATIVE PRINTING. *
C ****************************************************************
C
9000 CONTINUE
ISTEPN='9'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='SUBS'
ILOCSV=ILOCR(NUMVAR)+2
IHSET=IHARG(ILOCSV)
IHSET2=IHARG2(ILOCSV)
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,9002)ILOCSV,IHSET,IHSET2
9002 FORMAT('ILOCSV,IHSET,IHSET2 = ',I8,2X,A4,A4)
CALL DPWRST('XXX','BUG ')
ENDIF
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHSET,IHSET2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOC,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
NIOLD=IN(ILOC)
CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR)
NINEW=NIOLD
GOTO11000
C
C ****************************************************************
C ** STEP 10-- *
C ** TREAT THE PARTIAL VARIABLE FOR CASE. *
C ** EXAMPLE--LET Y = SORT X FOR I = 1 2 10 *
C ** --LET Y(I) = SORT X FOR I = 1 2 10 *
C ** JUMP TO STEP NUMBER 11 BELOW *
C ** FOR THE ACTUAL MATHEMATICAL OPERATION, *
C ** FOR THE LIST UPDATING, AND *
C ** FOR SOME INFORMATIVE PRINTING. *
C ****************************************************************
C
10000 CONTINUE
ISTEPN='10'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='FOR'
CALL DPFOR(NIOLD,NINEW,IROW1,IROWN,
1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
NIFOR=NINEW
GOTO11000
C
C *******************************************
C ** STEP 11-- **
C ** CARRY OUT THE **
C ** MATHEMATICAL OPERATION. **
C *******************************************
C
11000 CONTINUE
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
DO11109I=1,NUMVAR
WRITE(ICOUT,11101)I,ITYPA(I)
11101 FORMAT('11101--I,ITYPA(I) = ',I4,2X,A4)
CALL DPWRST('XXX','BUG ')
11109 CONTINUE
ENDIF
C
NITEMX=NINEW
DO11113I=1,MAXCAS
NS(I)=0
11113 CONTINUE
C
CCCCC CREATE MATRIX HANDLED SEPARATELY, VARIABLES ARE COPIED INTO
CCCCC A MATRIX.
IF(ICASL7.EQ.'CRMA')THEN
IMCASE=ICASL7
IMATSW='YES'
DO11010K=1,NUMVAR
IF(ITYPA(K).EQ.'VARI')THEN
NJ=0
DO11011I=1,NINEW
IJ=MAXN*(ICOLR(K)-1)+I
IF(ISUB(I).EQ.0)GOTO11011
IF(I.GT.NIRIGH(K))GOTO11019
NJ=NJ+1
IF(NJ.GT.MAXROM)GOTO11019
IJ=MAXN*(ICOLR(K)-1)+I
IF(ICOLR(K).LE.MAXCOL)TEMPM1((K-1)*MAXROM+NJ)=V(IJ)
IF(ICOLR(K).EQ.MAXCP1)TEMPM1((K-1)*MAXROM+NJ)=PRED(I)
IF(ICOLR(K).EQ.MAXCP2)TEMPM1((K-1)*MAXROM+NJ)=RES(I)
IF(ICOLR(K).EQ.MAXCP3)TEMPM1((K-1)*MAXROM+NJ)=YPLOT(I)
IF(ICOLR(K).EQ.MAXCP4)TEMPM1((K-1)*MAXROM+NJ)=XPLOT(I)
IF(ICOLR(K).EQ.MAXCP5)TEMPM1((K-1)*MAXROM+NJ)=X2PLOT(I)
IF(ICOLR(K).EQ.MAXCP6)TEMPM1((K-1)*MAXROM+NJ)=TAGPLO(I)
11011 CONTINUE
11019 CONTINUE
ENDIF
11010 CONTINUE
NR1=NJ
IF(NR1.GT.MAXROM)NR1=MAXROM
NR2=0
NR3=0
NC1=NUMVAR
NC2=0
NC3=0
GOTO11189
ENDIF
C
DO11110K=1,MIN(NUMVAR,4)
IF(ITYPA(K).EQ.'VARI')THEN
DO11111I=1,NINEW
IJ=MAXN*(ICOLR(K)-1)+I
CCCCC IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
CCCCC WRITE(ICOUT,11112)I,NS(K),NINEW,ISUB(I),IJ,V(IJ)
11112 FORMAT('I,NS(K),NINEW,ISUB(I),IJ,V(IJ) = ',5I8,F12.5)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC ENDIF
IF(ISUB(I).EQ.0)GOTO11111
IF(I.GT.NIRIGH(K))GOTO11119
NS(K)=NS(K)+1
IJ=MAXN*(ICOLR(K)-1)+I
IF(ICOLR(K).LE.MAXCOL)TEMP4(NS(K))=V(IJ)
IF(ICOLR(K).EQ.MAXCP1)TEMP4(NS(K))=PRED(I)
IF(ICOLR(K).EQ.MAXCP2)TEMP4(NS(K))=RES(I)
IF(ICOLR(K).EQ.MAXCP3)TEMP4(NS(K))=YPLOT(I)
IF(ICOLR(K).EQ.MAXCP4)TEMP4(NS(K))=XPLOT(I)
IF(ICOLR(K).EQ.MAXCP5)TEMP4(NS(K))=X2PLOT(I)
IF(ICOLR(K).EQ.MAXCP6)TEMP4(NS(K))=TAGPLO(I)
11111 CONTINUE
11119 CONTINUE
IF(K.EQ.1)THEN
DO11126J=1,NS(K)
TEMP1(J)=TEMP4(J)
CCCCC IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
CCCCC WRITE(ICOUT,11137)K,J,TEMP1(J)
11137 FORMAT('K,J,TEMP1(J) = ',2I8,E15.7)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC ENDIF
11126 CONTINUE
ELSEIF(K.EQ.2)THEN
DO11127J=1,NS(K)
TEMP2(J)=TEMP4(J)
CCCCC IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
CCCCC WRITE(ICOUT,11138)K,J,TEMP1(J)
11138 FORMAT('K,J,TEMP1(J) = ',2I8,E15.7)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC ENDIF
11127 CONTINUE
ELSEIF(K.EQ.3)THEN
DO11128J=1,NS(K)
TEMP3(J)=TEMP4(J)
CCCCC IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
CCCCC WRITE(ICOUT,11139)K,J,TEMP1(J)
11139 FORMAT('K,J,TEMP1(J) = ',2I8,E15.7)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC ENDIF
11128 CONTINUE
ENDIF
ENDIF
11110 CONTINUE
11199 CONTINUE
C
C -----BEGIN MATRIX COPY-----
C
IF(ICASL7.EQ.'MADF')IMATSW='YES'
IF(ICASL7.EQ.'DIMA')IMATSW='YES'
IF(ICASL7.EQ.'MAVT')IMATSW='YES'
IF(IMATSW.EQ.'NO')GOTO11290
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
IF(ITYPA(1).EQ.'MATR')THEN
WRITE(ICOUT,11201)ILISR(1),ICOLR(1),IVALUE(ILISR(1)),
1 IVALU2(ILISR(1))
11201 FORMAT('11201--ILISR(1),ICOLR(1),IVALUE(ILISR(1)),',
1 'IVALU2(ILISR(1))=',14I8)
CALL DPWRST('XXX','BUG ')
ENDIF
DO11208I=1,MIN(4,NUMVAR)
WRITE(ICOUT,11202)I,ITYPA(I)
11202 FORMAT('11202--I,ITYPA(I) = ',I4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11204)I,ILISR(I),IVALU2(ILISR(I))
11204 FORMAT('11204--I,ILISR(I),IVALU2(I) = ',3I8)
CALL DPWRST('XXX','BUG ')
11208 CONTINUE
ENDIF
C
NC1=1
NC2=1
NC3=1
IF(ITYPA(1).EQ.'MATR'.AND.NUMVAR.GE.1)
1NC1=IVALU2(ILISR(1))-IVALUE(ILISR(1))+1
IF(ITYPA(2).EQ.'MATR'.AND.NUMVAR.GE.2)
1NC2=IVALU2(ILISR(2))-IVALUE(ILISR(2))+1
IF(ITYPA(3).EQ.'MATR'.AND.NUMVAR.GE.3)
1NC3=IVALU2(ILISR(3))-IVALUE(ILISR(3))+1
IF(ICASL7.EQ.'MADF')NC1=TEMPS(3)+0.1
C
IF(NUMVAR.LE.0)GOTO11219
IF(ITYPA(1).EQ.'MATR'.OR.ICASL7.EQ.'MADF')THEN
NLOOP=NC1
IF(NLOOP.LT.1)NLOOP=1
DO11211JLOOP=1,NLOOP
NS(1)=0
DO11212I=1,NINEW
IJ=MAXN*(ICOLR(1)-1+JLOOP-1)+I
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,11213)I,JLOOP,NS(1),NINEW,ISUB(I),IJ,V(IJ)
11213 FORMAT('I,JLOOP,NS(1),NINEW,ISUB(I),IJ,V(IJ) = ',6I8,F12.5)
CALL DPWRST('XXX','BUG ')
ENDIF
IF(ISUB(I).EQ.0)GOTO11212
IF(I.GT.NIRIGH(1))GOTO11214
NS(1)=NS(1)+1
IJ=MAXN*(ICOLR(1)-1+JLOOP-1)+I
IF(ICOLR(1).LE.MAXCOL)TEMPM1((JLOOP-1)*MAXROM+NS(1))=V(IJ)
IF(ICOLR(1).EQ.MAXCP1)TEMPM1((JLOOP-1)*MAXROM+NS(1))=PRED(I)
IF(ICOLR(1).EQ.MAXCP2)TEMPM1((JLOOP-1)*MAXROM+NS(1))=RES(I)
IF(ICOLR(1).EQ.MAXCP3)TEMPM1((JLOOP-1)*MAXROM+NS(1))=YPLOT(I)
IF(ICOLR(1).EQ.MAXCP4)TEMPM1((JLOOP-1)*MAXROM+NS(1))=XPLOT(I)
IF(ICOLR(1).EQ.MAXCP5)TEMPM1((JLOOP-1)*MAXROM+NS(1))=X2PLOT(I)
IF(ICOLR(1).EQ.MAXCP6)TEMPM1((JLOOP-1)*MAXROM+NS(1))=TAGPLO(I)
11212 CONTINUE
11214 CONTINUE
11211 CONTINUE
ENDIF
11219 CONTINUE
C
IF(NUMVAR.LE.1)GOTO11229
IF(ITYPA(2).EQ.'MATR')THEN
NLOOP=NC2
IF(NLOOP.LT.1)NLOOP=1
DO11221JLOOP=1,NLOOP
NS(2)=0
DO11222I=1,NINEW
IJ=MAXN*(ICOLR(2)-1+JLOOP-1)+I
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,11223)I,JLOOP,NS(2),NINEW,ISUB(I),IJ,V(IJ)
11223 FORMAT('I,JLOOP,NS(2),NINEW,ISUB(I),IJ,V(IJ) = ',6I8,F12.5)
CALL DPWRST('XXX','BUG ')
ENDIF
IF(ISUB(I).EQ.0)GOTO11222
IF(I.GT.NIRIGH(2))GOTO11224
NS(2)=NS(2)+1
IJ=MAXN*(ICOLR(2)-1+JLOOP-1)+I
IF(ICOLR(2).LE.MAXCOL)TEMPM2((JLOOP-1)*MAXROM+NS(2))=V(IJ)
IF(ICOLR(2).EQ.MAXCP1)TEMPM2((JLOOP-1)*MAXROM+NS(2))=PRED(I)
IF(ICOLR(2).EQ.MAXCP2)TEMPM2((JLOOP-1)*MAXROM+NS(2))=RES(I)
IF(ICOLR(2).EQ.MAXCP3)TEMPM2((JLOOP-1)*MAXROM+NS(2))=YPLOT(I)
IF(ICOLR(2).EQ.MAXCP4)TEMPM2((JLOOP-1)*MAXROM+NS(2))=XPLOT(I)
IF(ICOLR(2).EQ.MAXCP5)TEMPM2((JLOOP-1)*MAXROM+NS(2))=X2PLOT(I)
IF(ICOLR(2).EQ.MAXCP6)TEMPM2((JLOOP-1)*MAXROM+NS(2))=TAGPLO(I)
11222 CONTINUE
11224 CONTINUE
11221 CONTINUE
ENDIF
11229 CONTINUE
C
IF(NUMVAR.LE.2)GOTO11239
IF(ITYPA(3).EQ.'MATR')THEN
NLOOP=NC3
IF(NLOOP.LT.1)NLOOP=1
DO11231JLOOP=1,NLOOP
NS(3)=0
DO11232I=1,NINEW
IJ=MAXN*(ICOLR(3)-1+JLOOP-1)+I
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,11233)I,JLOOP,NS(3),NINEW,ISUB(I),IJ,V(IJ)
11233 FORMAT('I,JLOOP,NS(3),NINEW,ISUB(I),IJ,V(IJ) = ',6I8,F12.5)
CALL DPWRST('XXX','BUG ')
ENDIF
IF(ISUB(I).EQ.0)GOTO11232
IF(I.GT.NIRIGH(3))GOTO11234
NS(3)=NS(3)+1
IJ=MAXN*(ICOLR(3)-1+JLOOP-1)+I
IF(ICOLR(3).LE.MAXCOL)TEMM91((JLOOP-1)*MAXROM+NS(3))=V(IJ)
IF(ICOLR(2).EQ.MAXCP1)TEMM91((JLOOP-1)*MAXROM+NS(3))=PRED(I)
IF(ICOLR(2).EQ.MAXCP2)TEMM91((JLOOP-1)*MAXROM+NS(3))=RES(I)
IF(ICOLR(2).EQ.MAXCP3)TEMM91((JLOOP-1)*MAXROM+NS(3))=YPLOT(I)
IF(ICOLR(2).EQ.MAXCP4)TEMM91((JLOOP-1)*MAXROM+NS(3))=XPLOT(I)
IF(ICOLR(2).EQ.MAXCP5)TEMM91((JLOOP-1)*MAXROM+NS(3))=X2PLOT(I)
IF(ICOLR(2).EQ.MAXCP6)TEMM91((JLOOP-1)*MAXROM+NS(3))=TAGPLO(I)
11232 CONTINUE
11234 CONTINUE
11231 CONTINUE
ENDIF
11239 CONTINUE
C
11290 CONTINUE
C
C -----END MATRIX COPY-----
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,11291)ICOLL(1),ICOLR(1),ICOLR(2),ICOLR(3),
1 NS(1),NS(2),NS(3)
11291 FORMAT('11291--ICOLL(1),ICOLR(1),ICOLR(2),ICOLR(3),',
1 'NS(1),NS(2),NS(3) = ',7I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11292)NINEW,ICASL7,ICASEQ
11292 FORMAT('11292--NINEW,ICASL7,ICASEQ = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
DO11294I=1,NUMVAR
WRITE(ICOUT,11293)I,ITYPA(I)
11293 FORMAT('11293--I,ITYPA(I) =',I4,2X,A4)
CALL DPWRST('XXX','BUG ')
11294 CONTINUE
WRITE(ICOUT,11295)NS(1),NS(2),NS(3),NS(4)
11295 FORMAT('11295--NS(1),NS(2),NS(3),NS(4) = ',4I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11296)IMATSW,ICASL7
11296 FORMAT('11296--IMATSW,ICASL7 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IWRITE='ON'
IF(IPRINT.EQ.'OFF')IWRITE='OFF'
IF(IFEEDB.EQ.'OFF')IWRITE='OFF'
C
C -----MATRIX SECTION-----
C
11880 CONTINUE
IMCASE=ICASL7
IUPFLG='FULL'
NR1=1
NR2=1
NR3=1
IF(ITYPA(1).EQ.'MATR'.AND.NUMVAR.GE.1)NR1=NS(1)
IF(ITYPA(2).EQ.'MATR'.AND.NUMVAR.GE.2)NR2=NS(2)
IF(ITYPA(3).EQ.'MATR'.AND.NUMVAR.GE.3)NR3=NS(3)
IF(ICASL7.EQ.'MADF')NR1=TEMPS(2)+0.1
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,11881)NS(1),NS(2),NS(3),NR1,NC1,NR2,NC2,NR3,NC3
11881 FORMAT('NS(1),NS(2),NS(3),NR1,NC1,NR2,NC2,NR3,NC3 = ',9I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
11189 CONTINUE
IF(ICASL7.EQ.'MASV'.OR.ICASL7.EQ.'MASD'.OR.ICASL7.EQ.'MASF'.OR.
1 ICASL7.EQ.'MARW'.OR.ICASL7.EQ.'MAEL'.OR.ICASL7.EQ.'MACH'.OR.
1 ICASL7.EQ.'MAAU'.OR.ICASL7.EQ.'MADI'.OR.ICASL7.EQ.'DIMA'.OR.
1 ICASL7.EQ.'MARR'.OR.ICASL7.EQ.'MARE'.OR.ICASL7.EQ.'MATD'.OR.
1 ICASL7.EQ.'MATS'.OR.ICASL7.EQ.'MATI'.OR.ICASL7.EQ.'MAIS')THEN
CALL MATAR2(TEMPM1,NR1,NC1,TEMPM2,NR2,NC2,NR3,NC3,
1 MAXROM,MAXCOM,
1 TEMP1,NS(1),TEMP2,NS(2),TEMP3,NS(3),TEMP4,NS(4),
1 ITEMP1,
1 TEMPS(1),TEMPS(2),TEMPS(3),TEMPS(4),
1 IMCASE,IUPFLG,IMSUBC,
1 ITYPA(1),ITYPA(2),ITYPA(3),ITYPA(4),NUMVAR,IWRITE,
1 TEMM91,NR91,NC91,TEMP91,NVECT9,SCAL91,ITYP91,
1 IBUGA3,ISUBRO,IERROR)
ELSEIF(ICASL7.EQ.'MPIN'.OR.ICASL7.EQ.'MQFO'.OR.
1 ICASL7.EQ.'MALC'.OR.ICASL7.EQ.'MAVT'.OR.ICASL7.EQ.'MAGM'.OR.
1 ICASL7.EQ.'MAGS'.OR.ICASL7.EQ.'MHT1'.OR.ICASL7.EQ.'MHT2'.OR.
1 ICASL7.EQ.'MPVC'.OR.ICASL7.EQ.'MAMM'.OR.ICASL7.EQ.'MAAR'.OR.
1 ICASL7.EQ.'MADR'.OR.ICASL7.EQ.'MDER'.OR.ICASL7.EQ.'MDEC'.OR.
1 ICASL7.EQ.'MDMR'.OR.ICASL7.EQ.'MDMC'.OR.ICASL7.EQ.'MDBR'.OR.
1 ICASL7.EQ.'MDBC'.OR.ICASL7.EQ.'MDKR'.OR.ICASL7.EQ.'MDKC'.OR.
1 ICASL7.EQ.'MDCR'.OR.ICASL7.EQ.'MDCC'.OR.ICASL7.EQ.'MRSC'.OR.
1 ICASL7.EQ.'MCSC'.OR.ICASL7.EQ.'MDIP'.OR.ICASL7.EQ.'MADM'.OR.
1 ICASL7.EQ.'MVRN'.OR.ICASL7.EQ.'MACA'.OR.ICASL7.EQ.'XTXI'.OR.
1 ICASL7.EQ.'VINF'.OR.ICASL7.EQ.'CIND'.OR.
1 ICASL7.EQ.'MURN'.OR.ICASL7.EQ.'WIRN'.OR.ICASL7.EQ.'MPDF'.OR.
1 ICASL7.EQ.'MROW'.OR.ICASL7.EQ.'MCOL'.OR.ICASL7.EQ.'DPDF'.OR.
1 ICASL7.EQ.'NCDF'.OR.ICASL7.EQ.'TCDF'.OR.ICASL7.EQ.'DLPD'.OR.
1 ICASL7.EQ.'MTRN'.OR.ICASL7.EQ.'DIRN'.OR.ICASL7.EQ.'INRN'.OR.
1 ICASL7.EQ.'MPAR'.OR.ICASL7.EQ.'MGRA'.OR.
1 ICASL7.EQ.'MATB'.OR.ICASL7.EQ.'MARB'.OR.
1 ICASL7.EQ.'CRMA'.OR.ICASL7.EQ.'IURN'.OR.ICASL7.EQ.'MSUM')THEN
C
IHP='P '
IHP2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
P=2.0
ELSE
P=VALUE(ILOCP)
ENDIF
C
IHP='ABSE'
IHP2='PS '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
ABSEPS=0.00005
IF(ICASL7.EQ.'TCDF')ABSEPS=0.0
ELSE
ABSEPS=VALUE(ILOCP)
ENDIF
C
IHP='RELE'
IHP2='PS '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
RELEPS=0.0
IF(ICASL7.EQ.'TCDF')RELEPS=0.005
ELSE
RELEPS=VALUE(ILOCP)
ENDIF
C
IRELAT='OFF'
IF(ICASL7.EQ.'MARB')IRELAT='ON'
CLWID=CLWIDT(1)
XSTART=CLLIMI(1)
XSTOP=CLLIMI(2)
C
CALL MATAR3(TEMPM1,NR1,NC1,TEMPM2,NR2,NC2,NR3,NC3,
1 MAXROM,MAXCOM,MAXOBV,
1 TEMP1,NS(1),TEMP2,NS(2),TEMP3,NS(3),TEMP4,NS(4),TEMP12,
1 ITEMP1,
1 DTEMP1,DTEMP2,DTEMP3,
1 P,ABSEPS,RELEPS,ERRS,
1 TEMPS(1),TEMPS(2),TEMPS(3),TEMPS(4),
1 ASIG90,ASIG95,ASIG99,ASG995,
1 IMCASE,IUPFLG,IMSUBC,
1 ITYPA(1),ITYPA(2),ITYPA(3),ITYPA(4),NUMVAR,IWRITE,
1 ISEED,ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6,
1 TEMM91,NR91,NC91,TEMP91,NVECT9,SCAL91,ITYP91,
1 ICASS7,
1 IRELAT,CLWID,XSTART,XSTOP,
1 IBUGA3,ISUBRO,IERROR)
C
IF(ICASL7.EQ.'MHT1'.OR.ICASL7.EQ.'MHT2')THEN
IHP='B90 '
IHP2=' '
VALUE0=ASIG90
CALL DPADDP(IHP,IHP2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IHP='B95 '
IHP2=' '
VALUE0=ASIG95
CALL DPADDP(IHP,IHP2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IHP='B99 '
IHP2=' '
VALUE0=ASIG99
CALL DPADDP(IHP,IHP2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IHP='B995'
IHP2=' '
VALUE0=ASG995
CALL DPADDP(IHP,IHP2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
ENDIF
C
ELSE
IHP='P1 '
IHP2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
P1=10.0
ELSE
P1=VALUE(ILOCP)
IF(P1.LT.0.0)P1=10.0
IF(P1.GT.50.0)P1=50.0
ENDIF
C
IHP='P2 '
IHP2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
P2=10.0
ELSE
P2=VALUE(ILOCP)
IF(P2.LT.0.0)P2=10.0
IF(P2.GT.50.0)P2=50.0
ENDIF
C
IHP='BETA'
IHP2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
BETA=0.1
ELSE
BETA=VALUE(ILOCP)
IF(BETA.LE.0.0)BETA=0.01
IF(P2.GT.0.5)BETA=0.5
ENDIF
C
CALL MATARI(TEMPM1,NR1,NC1,TEMPM2,NR2,NC2,NR3,NC3,
1 MAXROM,MAXCOM,
1 TEMP1,NS(1),TEMP2,NS(2),TEMP3,NS(3),TEMP4,NS(4),
1 ITEMP1,ITEMP2,ITEMP3,
1 DTEMP1,DTEMP2,P1,P2,BETA,
1 TEMPS(1),TEMPS(2),TEMPS(3),TEMPS(4),
1 IMCASE,IUPFLG,IMSUBC,
1 ITYPA(1),ITYPA(2),ITYPA(3),ITYPA(4),NUMVAR,IWRITE,
1 TEMM91,NR91,NC91,TEMP91,NVECT9,SCAL91,ITYP91,
1 IBUGA3,ISUBRO,IERROR)
ENDIF
C
NITEMX=NVECT9
IF(IERROR.EQ.'YES')GOTO19000
IF(ITYP91.EQ.'VECT')THEN
DO11887I=1,NITEMX
TEMP1(I)=TEMP91(I)
11887 CONTINUE
ELSEIF(ITYP91.EQ.'MATR')THEN
NITEMX=NR91
DO11882J=1,NC91
DO11883I=1,NITEMX
TEMPM1((J-1)*MAXROM+I)=TEMM91((J-1)*MAXROM+I)
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')THEN
WRITE(ICOUT,11885)I,J,TEMM91((J-1)*MAXROM+I)
11885 FORMAT('I,J,TEMPM1((J-1)*MAXROM+I) = ',2I8,E15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
11883 CONTINUE
11882 CONTINUE
IF(ICASL7.EQ.'MASD' .OR. ICASL7.EQ.'MASF')THEN
DO11886I=1,NVECT9
TEMP1(I)=TEMP91(I)
11886 CONTINUE
ENDIF
ENDIF
IFOUND='YES'
IF(IERROR.EQ.'YES')GOTO19000
C
C
C *****************************************************
C ** STEP XX-- **
C ** BRANCH TO THE PROPER CASE
C ** DEPENDING ON THE TYPE OF OUTPUT--
C ** 1) SCALAR (= PARAMETER)
C ** 2) VECTOR (= VARIABLE) (THE USUAL)
C ** 3) MATRIX
C ** UPDATE DATAPLOT'S INTERNAL WORKSPACE
C ** AND HOUSEKEEPING TABLES
C *****************************************************
C
12000 CONTINUE
IF(ITYP91.EQ.'SCAL')GOTO14000
C
C -----TREAT THE VECTOR AND MATRIX CASE-----
C
CCCCC NOTE: FOR "MATRIX COLUMN "
CCCCC CASE, TREAT AS FULL EVEN IF A SUBSET CLAUSE WAS ENTERED
CCCCC (NUMBER OF ROWS IN THE RETURNED VECTOR IS KEYED TO THE
CCCCC COLUMNS IN THE MATRIX, NOT THE ROWS IN THE MATRIX).
CCCCC NOTE: FURTHER CONSIDERATION SHOWED THAT WHETHER UPDATING
CCCCC SHOULD BE DONE AS "FULL" OR AS SUBSET CASE DEPENDDS ON THE
CCCCC SPECIFIC MATRIX COMMAND (E.G., MATRIX ADDITION SHOULD MAINTAIN
CCCCC THE SUBSET WHEN SAVING THE RESULT, WHILE A CORRELATION
CCCCC MATRIX SHOULD ALWAYS BE UPDATED AS A FULL MATRIX).
C
IF(IUPFLG.EQ.'FULL' .OR. ICASEQ.EQ.'FULL')GOTO12100
IF(ICASEQ.EQ.'SUBS')GOTO12300
IF(ICASEQ.EQ.'FOR')GOTO12500
C
C *******************************************
C ** STEP 11.1-- **
C ** TREAT THE FULL CASE. **
C *******************************************
C
12100 CONTINUE
ISTEPN='11.1'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
NSX=0
IF(NITEMX.LE.0)THEN
IROW1=0
IROWN=0
GOTO12190
ENDIF
C
IF(IMATSW.EQ.'YES'.AND.ITYP91.EQ.'MATR')GOTO12130
IF(ICASL7.EQ.'IURN'.AND.ITYP91.EQ.'MATR')GOTO12130
IF(ICASL7.EQ.'DIRN'.AND.ITYP91.EQ.'MATR')GOTO12130
IF(ICASL7.EQ.'MURN'.AND.ITYP91.EQ.'MATR')GOTO12130
IF(ICASL7.EQ.'WIRN'.AND.ITYP91.EQ.'MATR')GOTO12130
C
DO12110I=1,NITEMX
NSX=I
C
IJ=MAXN*(ICOLL(1)-1)+I
IF(ICOLL(1).LE.MAXCOL)V(IJ)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP1)PRED(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP2)RES(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP3)YPLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP4)XPLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP5)X2PLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP6)TAGPLO(I)=TEMP1(NSX)
12110 CONTINUE
C
IF(ICASL7.EQ.'MATB' .OR. ICASL7.EQ.'MARB')THEN
DO12120I=1,NITEMX
NSX=I
IJ=MAXN*(ICOLL(2)-1)+I
IF(ICOLL(2).LE.MAXCOL)V(IJ)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP1)PRED(I)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP2)RES(I)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP3)YPLOT(I)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP4)XPLOT(I)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP5)X2PLOT(I)=TEMP2(NSX)
IF(ICOLL(2).EQ.MAXCP6)TAGPLO(I)=TEMP2(NSX)
12120 CONTINUE
ENDIF
C
GOTO12190
C
C -----BEGIN MATRIX COPY FOR FULL CASE-----
C
12130 CONTINUE
ISTEPN='FULL'
ISTEPN='11.3'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
NLOOP=NC91
C
ICOL=ICOLL(1)-1+NLOOP
IF(ICOL.LE.MAXCOL)GOTO12139
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12131)
12131 FORMAT('***** ERROR 12131 IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12132)
12132 FORMAT(' AN ATTEMPT WAS MADE TO CREATE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12133)
12133 FORMAT(' A MATRIX WHOSE COLUMNS EXTEND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12134)MAXCOL
12134 FORMAT(' BEYOND THE ALLOWABLE ',I8,' COLUMNS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12135)
12135 FORMAT(' OF THE INTERNAL INTERNAL WORKSHEET.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
12139 CONTINUE
C
CCCCC OCTOBER 1993. FOR MATRIX AUGMENT, NEED TO ADD NC2 BLANK
CCCCC COLUMNS IF LEFT HAND MATRIX IS OLD.
IF(NEWNAM(1).NE.'YES'.AND.ICASL7.EQ.'MAAU')THEN
NFIRST=IVALU2(ILISL(1))+1
NUMADD=NC2
IERROR='NO'
CALL DPUPD2(NUMADD,NFIRST,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO19000
ENDIF
C
ISTEPN='11.4'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT2')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
DO12140JLOOP=1,NLOOP
NSX=0
DO12150I=1,NITEMX
NSX=I
IJ=MAXN*(ICOLL(1)-1+JLOOP-1)+I
IF(ICOLL(1).LE.MAXCOL)V(IJ)=TEMPM1((JLOOP-1)*MAXROM+NSX)
12150 CONTINUE
12140 CONTINUE
C
CCCCC JULY 1993. IF FIRST MATRIX IS NEW, NEED TO ADJUST COLUMN
CCCCC NUMBERS FOR SECOND (AND POSSIBLY THIRD) NEW VARIABLES
CCCCC OR MATRICES ON LEFT.
IF(NEWNAM(1).EQ.'YES')THEN
IF(NEWNAM(2).EQ.'YES')THEN
NADD=NLOOP-1
ICOLL(2)=ICOLL(2)+NADD
ILISL(2)=ILISL(2)+NADD+1
ENDIF
IF(NEWNAM(3).EQ.'YES')THEN
NADD=NLOOP-1
ICOLL(3)=ICOLL(3)+NADD
ILISL(3)=ILISL(3)+NADD+1
ENDIF
ENDIF
IF(ICASL7.EQ.'MASD')GOTO22130
IF(ICASL7.EQ.'MASF')GOTO22130
GOTO12190
C
CCCCC NOTE: FOR SVD, SVF, HAVE LET U S V = MATRIX SING VALUE FACT M
CCCCC I.E., THE SECOND MATRIX IS IN THE THIRD ARGUMENT.
22130 CONTINUE
NLOOP=NC2
C
ICOL=ICOLL(3)-1+NLOOP
IF(ICOL.LE.MAXCOL)GOTO22139
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22131)
22131 FORMAT('***** ERROR 22131 IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22132)
22132 FORMAT(' AN ATTEMPT WAS MADE TO CREATE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22133)
22133 FORMAT(' A MATRIX WHOSE COLUMNS EXTEND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22134)MAXCOL
22134 FORMAT(' BEYOND THE ALLOWABLE ',I8,' COLUMNS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22135)
22135 FORMAT(' OF THE INTERNAL INTERNAL WORKSHEET.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
22139 CONTINUE
C
DO22140JLOOP=1,NLOOP
NSX=0
DO22150I=1,NR2
NSX=I
IJ=MAXN*(ICOLL(3)-1+JLOOP-1)+I
IF(ICOLL(3).LE.MAXCOL)V(IJ)=TEMPM2((JLOOP-1)*MAXROM+NSX)
22150 CONTINUE
22140 CONTINUE
GOTO12190
C
C -----END MATRIX COPY FOR FULL CASE-----
C
12190 CONTINUE
C
IF(ICASL7.NE.'MASD'.AND.ICASL7.NE.'MASF')THEN
IF(NITEMX.GE.1)IROW1=1
IF(NITEMX.GE.1)IROWN=NITEMX
IN(ILISL(1))=NITEMX
IF(NUMVAL.EQ.2)IN(ILISL(2))=NITEMX
ELSE
IF(NITEMX.GE.1)IROW1=1
IF(NITEMX.GE.1)IROWN=NITEMX
IN(ILISL(1))=NITEMX
IF(NUMVAL.EQ.2)IN(ILISL(2))=NVECT9
IF(NUMVAL.EQ.3)IN(ILISL(3))=NR2
ENDIF
C
DO12210J4=1,NUMNAM
IF(IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL(1))GOTO12215
IF(IUSE(J4).EQ.'M'.AND.IVALUE(J4).EQ.ICOLL(1))GOTO12215
GOTO12210
12215 CONTINUE
IUSE(J4)='V'
IVALUE(J4)=ICOLL(1)
VALUE(J4)=ICOLL(1)
IN(J4)=NITEMX
IF(IMATSW.EQ.'YES'.AND.ITYP91.EQ.'MATR')THEN
IVALUE(J4)=ICOLL(1)
IVALU2(J4)=ICOLL(1)+NC91-1
ENDIF
12210 CONTINUE
C
IF(NUMVAL.LE.1)GOTO12229
DO12220J4=1,NUMNAM
IF(IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL(2))GOTO12225
IF(IUSE(J4).EQ.'M'.AND.IVALUE(J4).EQ.ICOLL(2))GOTO12225
GOTO12220
12225 CONTINUE
IUSE(J4)='V'
IVALUE(J4)=ICOLL(2)
VALUE(J4)=ICOLL(2)
IF(ICASL7.NE.'MASD'.AND.ICASL7.NE.'MASF')THEN
IN(J4)=NITEMX
ELSE
IN(J4)=NVECT9
ENDIF
12220 CONTINUE
12229 CONTINUE
C
IF(NUMVAL.LE.2)GOTO12239
DO12230J4=1,NUMNAM
IF(IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL(3))GOTO12235
IF(IUSE(J4).EQ.'M'.AND.IVALUE(J4).EQ.ICOLL(3))GOTO12235
GOTO12230
12235 CONTINUE
IUSE(J4)='V'
IVALUE(J4)=ICOLL(3)
VALUE(J4)=ICOLL(3)
IF(ICASL7.NE.'MASD'.AND.ICASL7.NE.'MASF')THEN
IN(J4)=NITEMX
ELSE
IN(J4)=NR2
IVALUE(J4)=ICOLL(3)
IVALU2(J4)=ICOLL(3)+NC2-1
ENDIF
12230 CONTINUE
12239 CONTINUE
C
GOTO13000
C
C *******************************************
C ** STEP 11.2-- **
C ** TREAT THE SUBSET CASE. **
C *******************************************
C
12300 CONTINUE
ISTEPN='11.2'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
NSX=0
IF(NITEMX.LE.0)IROW1=0
IF(NITEMX.LE.0)IROWN=0
IF(NITEMX.LE.0)GOTO12390
C
IF(IMATSW.EQ.'YES'.AND.ITYP91.EQ.'MATR')GOTO12330
C
DO12310I=1,NITEMX
IF(ISUB(I).EQ.0)GOTO12310
NSX=NSX+1
C
IJ=MAXN*(ICOLL(1)-1)+I
IF(ICOLL(1).LE.MAXCOL)V(IJ)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP1)PRED(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP2)RES(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP3)YPLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP4)XPLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP5)X2PLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP6)TAGPLO(I)=TEMP1(NSX)
IF(NSX.EQ.1)IROW1=I
IROWN=I
C
12310 CONTINUE
GOTO12390
C
C -----BEGIN MATRIX COPY FOR SUBSET CASE-----
C
12330 CONTINUE
NLOOP=NC91
C
ICOL=ICOLL(1)-1+NLOOP
IF(ICOL.LE.MAXCOL)GOTO12339
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12331)
12331 FORMAT('***** ERROR 12331 IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12332)
12332 FORMAT(' AN ATTEMPT WAS MADE TO CREATE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12333)
12333 FORMAT(' A MATRIX WHOSE COLUMNS EXTEND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12334)MAXCOL
12334 FORMAT(' BEYOND THE ALLOWABLE ',I8,' COLUMNS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12335)
12335 FORMAT(' OF THE INTERNAL INTERNAL WORKSHEET.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
12339 CONTINUE
C
DO12340JLOOP=1,NLOOP
NSX=0
DO12350I=1,NITEMX
IF(ISUB(I).EQ.0)GOTO12350
NSX=NSX+1
IJ=MAXN*(ICOLL(1)-1+JLOOP-1)+I
IF(ICOLL(1).LE.MAXCOL)V(IJ)=TEMPM1((JLOOP-1)*MAXROM+NSX)
IF(NSX.EQ.1)IROW1=I
IROWN=I
12350 CONTINUE
12340 CONTINUE
GOTO12390
C
C -----END MATRIX COPY FOR SUBSET CASE-----
C
12390 CONTINUE
C
IN(ILISL(1))=NITEMX
IF(NUMVAL.EQ.2)IN(ILISL(2))=NITEMX
C
DO12410J4=1,NUMNAM
IF(IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL(1))GOTO12415
IF(IUSE(J4).EQ.'M'.AND.IVALUE(J4).EQ.ICOLL(1))GOTO12415
GOTO12410
12415 CONTINUE
IUSE(J4)='V'
IVALUE(J4)=ICOLL(1)
VALUE(J4)=ICOLL(1)
IN(J4)=NITEMX
IF(IMATSW.EQ.'YES'.AND.ITYP91.EQ.'MATR')IVALUE(J4)=ICOLL(1)
IF(IMATSW.EQ.'YES'.AND.ITYP91.EQ.'MATR')IVALU2(J4)=ICOLL(1)+NC91-1
12410 CONTINUE
C
IF(NUMVAL.LE.1)GOTO12429
DO12420J4=1,NUMNAM
IF(IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL(2))GOTO12425
IF(IUSE(J4).EQ.'M'.AND.IVALUE(J4).EQ.ICOLL(2))GOTO12425
GOTO12420
12425 CONTINUE
IUSE(J4)='V'
IVALUE(J4)=ICOLL(2)
VALUE(J4)=ICOLL(2)
IN(J4)=NITEMX
12420 CONTINUE
12429 CONTINUE
C
GOTO13000
C
C *******************************************
C ** STEP 11.3-- **
C ** TREAT THE FOR CASE. **
C *******************************************
C
12500 CONTINUE
ISTEPN='11.3'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
NSX=0
IF(NITEMX.LE.0)IROW1=0
IF(NITEMX.LE.0)IROWN=0
IF(NITEMX.LE.0)GOTO12590
C
IF(IMATSW.EQ.'YES'.AND.ITYP91.EQ.'MATR')GOTO12530
C
DO12510I=1,NITEMX
IF(I.GT.NIFOR)GOTO12590
IF(ISUB(I).EQ.0)GOTO12510
NSX=NSX+1
IJ=MAXN*(ICOLL(1)-1)+I
IF(ICOLL(1).LE.MAXCOL)V(IJ)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP1)PRED(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP2)RES(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP3)YPLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP4)XPLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP5)X2PLOT(I)=TEMP1(NSX)
IF(ICOLL(1).EQ.MAXCP6)TAGPLO(I)=TEMP1(NSX)
IF(NSX.EQ.1)IROW1=I
IROWN=I
C
12510 CONTINUE
GOTO12590
C
C -----BEGIN MATRIX COPY FOR FOR CASE-----
C
12530 CONTINUE
NLOOP=NC91
C
ICOL=ICOLL(1)-1+NLOOP
IF(ICOL.LE.MAXCOL)GOTO12539
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12531)
12531 FORMAT('***** ERROR 12531 IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12532)
12532 FORMAT(' AN ATTEMPT WAS MADE TO CREATE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12533)
12533 FORMAT(' A MATRIX WHOSE COLUMNS EXTEND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12534)MAXCOL
12534 FORMAT(' BEYOND THE ALLOWABLE ',I8,' COLUMNS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12535)
12535 FORMAT(' OF THE INTERNAL INTERNAL WORKSHEET.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
12539 CONTINUE
C
DO12540JLOOP=1,NLOOP
NSX=0
DO12550I=1,NITEMX
IF(I.GT.NIFOR)GOTO12550
IF(ISUB(I).EQ.0)GOTO12550
NSX=NSX+1
IJ=MAXN*(ICOLL(1)-1+JLOOP-1)+I
IF(ICOLL(1).LE.MAXCOL)V(IJ)=TEMPM1((JLOOP-1)*MAXROM+NSX)
IF(NSX.EQ.1)IROW1=I
IROWN=I
12550 CONTINUE
12540 CONTINUE
GOTO12590
C
C -----END MATRIX COPY FOR FOR CASE-----
C
12590 CONTINUE
C
IN(ILISL(1))=NITEMX
IF(NUMVAL.EQ.2)IN(ILISL(2))=NITEMX
C
DO12610J4=1,NUMNAM
IF(IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL(1))GOTO12615
IF(IUSE(J4).EQ.'M'.AND.IVALUE(J4).EQ.ICOLL(1))GOTO12615
GOTO12610
12615 CONTINUE
IUSE(J4)='V'
IVALUE(J4)=ICOLL(1)
VALUE(J4)=ICOLL(1)
IN(J4)=NITEMX
IF(IMATSW.EQ.'YES'.AND.ITYP91.EQ.'MATR')IVALUE(J4)=ICOLL(1)
IF(IMATSW.EQ.'YES'.AND.ITYP91.EQ.'MATR')IVALU2(J4)=ICOLL(1)+NC91-1
12610 CONTINUE
C
IF(NUMVAL.LE.1)GOTO12629
DO12620J4=1,NUMNAM
IF(IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL(2))GOTO12625
IF(IUSE(J4).EQ.'M'.AND.IVALUE(J4).EQ.ICOLL(2))GOTO12625
GOTO12620
12625 CONTINUE
IUSE(J4)='V'
IVALUE(J4)=ICOLL(2)
VALUE(J4)=ICOLL(2)
IN(J4)=NITEMX
12620 CONTINUE
12629 CONTINUE
C
GOTO13000
C
C *****************************************************
C ** STEP 13-- **
C ** BRANCH TO THE PROPER CASE
C ** DEPENDING ON THE TYPE OF OUTPUT--
C ** 1) SCALAR (= PARAMETER)
C ** 2) VECTOR (= VARIABLE) (THE USUAL)
C ** 3) MATRIX
C ** UPDATE DATAPLOT'S INTERNAL WORKSPACE
C ** AND HOUSEKEEPING TABLES
C *****************************************************
C
13000 CONTINUE
IF(ITYP91.EQ.'SCAL')GOTO14000
IF(ITYP91.EQ.'MATR')GOTO15000
GOTO16000
C
C *****************************************************
C ** STEP 14-- **
C ** TREAT THE PARAMETER (SCALAR) CASE. **
C ** EXAMPLE--LET D = DETERMINANT A **
C ** WHERE A WAS PREVIOUSLY UNDEFINED **
C ** OR WHERE A WAS PREVIOUSLY A PARAMETER.**
C ** CARRY OUT THE LIST UPDATING AND **
C ** GENERATE THE INFORMATIVE PRINTING. **
C ** THEN EXIT. **
C *****************************************************
C
14000 CONTINUE
ISTEPN='14'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IHNAME(ILISL(1))=ILEFT(1)
IHNAM2(ILISL(1))=ILEF2(1)
IUSE(ILISL(1))='P'
VALUE(ILISL(1))=SCAL91
IVALUE(ILISL(1))=VALUE(ILISL(1))+0.5
IN(ILISL(1))=1
IF(NEWNAM(1).EQ.'YES')NUMNAM=NUMNAM+1
C
IF(IPRINT.EQ.'OFF')GOTO14019
IF(IFEEDB.EQ.'OFF')GOTO14019
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,14011)ILEFT(1),ILEF2(1),SCAL91
14011 FORMAT('THE COMPUTED VALUE OF THE CONSTANT ',
1A4,A4,' = ',E15.8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
14019 CONTINUE
C
C FOR MULTIVARIATE NORMAL CDF OR MULTIVARIATE T CDF, UPDATE
C AN ADDITIONAL PARAMETER. SET IT AFTER OTHER SCALAR UPDATE
C TO AVOID OVERWRITE.
C
IF(ICASL7.EQ.'NCDF'.OR.ICASL7.EQ.'TCDF')THEN
IHP='NCDF'
IHP2='ERRS'
VALUE0=ERRS
CALL DPADDP(IHP,IHP2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
ENDIF
GOTO19000
C
C *******************************************
C ** STEP 15-- **
C ** TREAT THE MATRIX CASE-- **
C ** CARRY OUT THE LIST UPDATING AND **
C ** GENERATE THE INFORMATIVE PRINTING **
C ** FOR STEP NUMBERS 7, 8, AND 9 ABOVE. **
C *******************************************
C
15000 CONTINUE
ISTEPN='15'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IHMAT1=ILEFT(1)
IHMAT2=ILEF2(1)
IMATNR=NR91
IMATNC=NC91
IMATCO=ICOLL(1)
C
IHNAME(ILISL(1))=IHMAT1
IHNAM2(ILISL(1))=IHMAT2
IUSE(ILISL(1))='M'
IVALUE(ILISL(1))=IMATCO
IN(ILISL(1))=IMATNR
IVALU2(ILISL(1))=IMATCO+IMATNC-1
IF(NEWNAM(1).EQ.'YES')NUMNAM=NUMNAM+1
CCCCC AUGUST 1993. NUMBER OF COLUMNS UPDATED IN SUBSEQUENT LOOP
CCCCC IF(NEWNAM(1).EQ.'YES')NUMCOL=NUMCOL+1
C
IF(IMATNC.LE.0)GOTO15039
INAM=NUMNAM
DO15010J=1,IMATNC
C
INAM=INAM+1
IF(INAM.LE.MAXNAM)GOTO15019
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,15011)
15011 FORMAT('***** ERROR 15011 IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,15012)
15012 FORMAT(' THE NUMBER OF VARIABLE AND/OR PARAMETER')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,15013)MAXNAM
15013 FORMAT(' NAMES HAS JUST EXCEEDED THE MAX ALLOWABLE ',
1I8,' .')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
15019 CONTINUE
C
ICOL=IMATCO+J-1
IF(ICOL.LE.MAXCOL)GOTO15029
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,15021)
15021 FORMAT('***** ERROR 15021 IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,15022)
15022 FORMAT(' THE NUMBER OF WORKSHEET VARIABLES (COLUMNS)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,15023)MAXCOL
15023 FORMAT(' HAS JUST EXCEEDED THE MAX ALLOWABLE ',
1I8,' .')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
15029 CONTINUE
C
CALL DPAPN2(IHMAT1,IHMAT2,J,
1IH1,IH2,IBUGA3,ISUBRO,IERROR)
IHNAME(INAM)=IH1
IHNAM2(INAM)=IH2
IUSE(INAM)='V'
IVALUE(INAM)=ICOL
IN(INAM)=IMATNR
IF(NEWNAM(1).EQ.'YES')NUMNAM=NUMNAM+1
IF(NEWNAM(1).EQ.'YES')NUMCOL=NUMCOL+1
C
15010 CONTINUE
15039 CONTINUE
C
IF(IPRINT.EQ.'OFF')GOTO15090
IF(IFEEDB.EQ.'OFF')GOTO15090
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,15041)IHMAT1,IHMAT2,IMATNR
15041 FORMAT('THE NUMBER OF ROWS GENERATED FOR ',
1'THE MATRIX ',A4,A4,' = ',I8)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,15042)IHMAT1,IHMAT2,IMATNC
15042 FORMAT('THE NUMBER OF COLUMNS GENERATED FOR ',
1'THE MATRIX ',A4,A4,' = ',I8)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,15051)IHMAT1,IHMAT2
15051 FORMAT('THE FIRST COMPUTED ROW OF ',A4,A4,' =')
CALL DPWRST('XXX','BUG ')
JMAX=IMATNC
IF(JMAX.GT.10)JMAX=10
DO15055J=1,JMAX
IJ=MAXN*(IMATCO-1+J-1)+1
TEMPV(J)=V(IJ)
15055 CONTINUE
IF(JMAX.LE.10)WRITE(ICOUT,15056)(TEMPV(J),J=1,JMAX)
15056 FORMAT(10E10.3)
IF(JMAX.LE.10)CALL DPWRST('XXX','BUG ')
IF(JMAX.GT.10)WRITE(ICOUT,15057)(TEMPV(J),J=1,JMAX)
15057 FORMAT(10E10.3,' ...')
IF(JMAX.GT.10)CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,15061)IMATNR,IHMAT1,IHMAT2
15061 FORMAT('THE LAST (',I5,'-TH) COMPUTED ROW OF ',A4,A4,' =')
CALL DPWRST('XXX','BUG ')
JMAX=IMATNC
IF(JMAX.GT.10)JMAX=10
DO15065J=1,JMAX
IJ=MAXN*(IMATCO-1+J-1)+IMATNR
TEMPV(J)=V(IJ)
15065 CONTINUE
IF(JMAX.LE.10)WRITE(ICOUT,15066)(TEMPV(J),J=1,JMAX)
15066 FORMAT(10E10.3)
IF(JMAX.LE.10)CALL DPWRST('XXX','BUG ')
IF(JMAX.GT.10)WRITE(ICOUT,15067)(TEMPV(J),J=1,JMAX)
15067 FORMAT(10E10.3,' ...')
IF(JMAX.GT.10)CALL DPWRST('XXX','BUG ')
C
IF(IMATNR.NE.1.AND.IMATNC.NE.1)GOTO15079
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,15072)
15072 FORMAT('CAUTION--THIS MATRIX HAS ONLY 1 ROW AND 1 COLUMN')
CALL DPWRST('XXX','BUG ')
15079 CONTINUE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
IHCV11=' '
IHCV12=' '
IHCV21=' '
IHCV22=' '
IHCV31=' '
IHCV32=' '
J=1
IF(IMATNC.GE.1)CALL DPAPN2(IHMAT1,IHMAT2,J,
1IHCV11,IHCV12,IBUGA3,ISUBRO,IERROR)
J=2
IF(IMATNC.GE.2)CALL DPAPN2(IHMAT1,IHMAT2,J,
1IHCV21,IHCV22,IBUGA3,ISUBRO,IERROR)
J=3
IF(IMATNC.GE.3)CALL DPAPN2(IHMAT1,IHMAT2,J,
1IHCV31,IHCV32,IBUGA3,ISUBRO,IERROR)
IF(IMATNC.LE.3)
1WRITE(ICOUT,15081)IHMAT1,IHMAT2,IHCV11,IHCV12,IHCV21,IHCV22,
1IHCV31,IHCV32
15081 FORMAT('THE COLUMN VECTOR NAMES ASSIGNED TO MATRIX ',A4,A4,
1'ARE ',A4,A4,2X,A4,A4,2X,A4,A4)
IF(IMATNC.LE.3)
1CALL DPWRST('XXX','BUG ')
IF(IMATNC.GT.3)
1WRITE(ICOUT,15082)IHMAT1,IHMAT2,IHCV11,IHCV12,IHCV21,IHCV22,
1IHCV31,IHCV32
15082 FORMAT('THE COLUMN VECTOR NAMES ASSIGNED TO MATRIX ',A4,A4,
1'ARE ',A4,A4,2X,A4,A4,2X,A4,A4,' ...')
IF(IMATNC.GT.3)
1CALL DPWRST('XXX','BUG ')
C
ICV1=IMATCO
ICV2=IMATCO+IMATNC-1
WRITE(ICOUT,15083)IHMAT1,IHMAT2,ICV1,ICV2
15083 FORMAT('THE WORKSHEET COLUMNS ASSIGNED TO MATRIX ',A4,A4,
1'ARE ',I8,' TO',I8)
CALL DPWRST('XXX','BUG ')
C
15090 CONTINUE
IF(ICASL7.EQ.'MASD' .OR. ICASL7.EQ.'MASF')GOTO25000
C
GOTO19000
C
C *******************************************
C ** STEP 25-- **
C ** TREAT THE MATRIX CASE-- **
C ** UPDATE MATRIX 2 **
C ** CARRY OUT THE LIST UPDATING AND **
C ** GENERATE THE INFORMATIVE PRINTING **
C ** FOR STEP NUMBERS 7, 8, AND 9 ABOVE. **
C *******************************************
C
25000 CONTINUE
ISTEPN='25'
CCCCC JULY 1993. SINGULAR VALUE DECOMPOSTION USES VECTOR AS SECOND
CCCCC ARGUMENT ON LEFT.
IHNAME(ILISL(2))=ILEFT(2)
IHNAM2(ILISL(2))=ILEF2(2)
IUSE(ILISL(2))='V'
IVALUE(ILISL(2))=ICOLL(2)
VALUE(ILISL(2))=ICOLL(2)
IN(ILISL(2))=NVECT9
IF(NEWNAM(2).EQ.'YES')NUMNAM=NUMNAM+1
CCCCC AUGUST 1993. NUMBER OF COLUMNS UPDATED IN SUBSEQUENT LOOP
CCCCC IF(NEWNAM(2).EQ.'YES')NUMCOL=NUMCOL+1
IF(NEWNAM(2).EQ.'YES')NUMCOL=NUMCOL+1
C
DO25002I=1,NVECT9
IJ=MAXN*(ICOLL(2)-1)+I
IF(ICOLL(2).LE.MAXCOL)V(IJ)=TEMP1(I)
IF(ICOLL(2).EQ.MAXCP1)PRED(I)=TEMP1(I)
IF(ICOLL(2).EQ.MAXCP2)RES(I)=TEMP1(I)
IF(ICOLL(2).EQ.MAXCP3)YPLOT(I)=TEMP1(I)
IF(ICOLL(2).EQ.MAXCP4)XPLOT(I)=TEMP1(I)
IF(ICOLL(2).EQ.MAXCP5)X2PLOT(I)=TEMP1(I)
IF(ICOLL(2).EQ.MAXCP6)TAGPLO(I)=TEMP1(I)
25002 CONTINUE
C
ISTEPN='25A'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IHMAT1=ILEFT(3)
IHMAT2=ILEF2(3)
IMATNR=NR2
IMATNC=NC2
IMATCO=ICOLL(3)
C
IHNAME(ILISL(3))=IHMAT1
IHNAM2(ILISL(3))=IHMAT2
IUSE(ILISL(3))='M'
IVALUE(ILISL(3))=IMATCO
IN(ILISL(3))=IMATNR
IVALU2(ILISL(3))=IMATCO+IMATNC-1
IF(NEWNAM(3).EQ.'YES')NUMNAM=NUMNAM+1
IF(NEWNAM(3).EQ.'YES')NUMCOL=NUMCOL+1
C
IF(IMATNC.LE.0)GOTO25039
INAM=NUMNAM
DO25010J=1,IMATNC
C
INAM=INAM+1
IF(INAM.LE.MAXNAM)GOTO25019
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,25011)
25011 FORMAT('***** ERROR 15011 IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,25012)
25012 FORMAT(' THE NUMBER OF VARIABLE AND/OR PARAMETER')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,25013)MAXNAM
25013 FORMAT(' NAMES HAS JUST EXCEEDED THE MAX ALLOWABLE ',
1I8,' .')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
25019 CONTINUE
C
ICOL=IMATCO+J-1
IF(INAM.LE.MAXNAM)GOTO25029
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,25021)
25021 FORMAT('***** ERROR 25021 IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,25022)
25022 FORMAT(' THE NUMBER OF WORKSHEET VARIABLES (COLUMNS)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,25023)MAXCOL
25023 FORMAT(' HAS JUST EXCEEDED THE MAX ALLOWABLE ',
1I8,' .')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
25029 CONTINUE
C
CALL DPAPN2(IHMAT1,IHMAT2,J,
1IH1,IH2,IBUGA3,ISUBRO,IERROR)
IHNAME(INAM)=IH1
IHNAM2(INAM)=IH2
IUSE(INAM)='V'
IVALUE(INAM)=ICOL
IN(INAM)=IMATNR
IF(NEWNAM(3).EQ.'YES')NUMNAM=NUMNAM+1
IF(NEWNAM(3).EQ.'YES')NUMCOL=NUMCOL+1
C
25010 CONTINUE
25039 CONTINUE
C
IF(IPRINT.EQ.'OFF')GOTO25090
IF(IFEEDB.EQ.'OFF')GOTO25090
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,25041)IHMAT1,IHMAT2,IMATNR
25041 FORMAT('THE NUMBER OF ROWS GENERATED FOR ',
1'THE MATRIX ',A4,A4,' = ',I8)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,25042)IHMAT1,IHMAT2,IMATNC
25042 FORMAT('THE NUMBER OF COLUMNS GENERATED FOR ',
1'THE MATRIX ',A4,A4,' = ',I8)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,25051)IHMAT1,IHMAT2
25051 FORMAT('THE FIRST COMPUTED ROW OF ',A4,A4,' =')
CALL DPWRST('XXX','BUG ')
JMAX=IMATNC
IF(JMAX.GT.10)JMAX=10
DO25055J=1,JMAX
IJ=MAXN*(IMATCO-1+J-1)+1
TEMPV(J)=V(IJ)
25055 CONTINUE
IF(JMAX.LE.10)WRITE(ICOUT,25056)(TEMPV(J),J=1,JMAX)
25056 FORMAT(10E10.3)
IF(JMAX.LE.10)CALL DPWRST('XXX','BUG ')
IF(JMAX.GT.10)WRITE(ICOUT,25057)(TEMPV(J),J=1,JMAX)
25057 FORMAT(10E10.3,' ...')
IF(JMAX.GT.10)CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,25061)IMATNR,IHMAT1,IHMAT2
25061 FORMAT('THE LAST (',I5,'-TH) COMPUTED ROW OF ',A4,A4,' =')
CALL DPWRST('XXX','BUG ')
JMAX=IMATNC
IF(JMAX.GT.10)JMAX=10
DO25065J=1,JMAX
IJ=MAXN*(IMATCO-1+J-1)+IMATNR
TEMPV(J)=V(IJ)
25065 CONTINUE
IF(JMAX.LE.10)WRITE(ICOUT,25066)(TEMPV(J),J=1,JMAX)
25066 FORMAT(10E10.3)
IF(JMAX.LE.10)CALL DPWRST('XXX','BUG ')
IF(JMAX.GT.10)WRITE(ICOUT,25067)(TEMPV(J),J=1,JMAX)
25067 FORMAT(10E10.3,' ...')
IF(JMAX.GT.10)CALL DPWRST('XXX','BUG ')
C
IF(IMATNR.NE.1.AND.IMATNC.NE.1)GOTO25079
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,25072)
25072 FORMAT('CAUTION--THIS MATRIX HAS ONLY 1 ROW AND 1 COLUMN')
CALL DPWRST('XXX','BUG ')
25079 CONTINUE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
IHCV11=' '
IHCV12=' '
IHCV21=' '
IHCV22=' '
IHCV31=' '
IHCV32=' '
J=1
IF(IMATNC.GE.1)CALL DPAPN2(IHMAT1,IHMAT2,J,
1IHCV11,IHCV12,IBUGA3,ISUBRO,IERROR)
J=2
IF(IMATNC.GE.2)CALL DPAPN2(IHMAT1,IHMAT2,J,
1IHCV21,IHCV22,IBUGA3,ISUBRO,IERROR)
J=3
IF(IMATNC.GE.3)CALL DPAPN2(IHMAT1,IHMAT2,J,
1IHCV31,IHCV32,IBUGA3,ISUBRO,IERROR)
IF(IMATNC.LE.3)
1WRITE(ICOUT,25081)IHMAT1,IHMAT2,IHCV11,IHCV12,IHCV21,IHCV22,
1IHCV31,IHCV32
25081 FORMAT('THE COLUMN VECTOR NAMES ASSIGNED TO MATRIX ',A4,A4,
1'ARE ',A4,A4,2X,A4,A4,2X,A4,A4)
IF(IMATNC.LE.3)
1CALL DPWRST('XXX','BUG ')
IF(IMATNC.GT.3)
1WRITE(ICOUT,25082)IHMAT1,IHMAT2,IHCV11,IHCV12,IHCV21,IHCV22,
1IHCV31,IHCV32
25082 FORMAT('THE COLUMN VECTOR NAMES ASSIGNED TO MATRIX ',A4,A4,
1'ARE ',A4,A4,2X,A4,A4,2X,A4,A4,' ...')
IF(IMATNC.GT.3)
1CALL DPWRST('XXX','BUG ')
C
ICV1=IMATCO
ICV2=IMATCO+IMATNC-1
WRITE(ICOUT,25083)IHMAT1,IHMAT2,ICV1,ICV2
25083 FORMAT('THE WORKSHEET COLUMNS ASSIGNED TO MATRIX ',A4,A4,
1'ARE ',I8,' TO',I8)
CALL DPWRST('XXX','BUG ')
C
25090 CONTINUE
C
GOTO19000
C
C
C *******************************************
C ** STEP 16-- **
C ** TREAT THE VARIABLE (VECTOR) CASE-- **
C ** CARRY OUT THE LIST UPDATING AND **
C ** GENERATE THE INFORMATIVE PRINTING **
C ** FOR STEP NUMBERS 7, 8, AND 9 ABOVE. **
C *******************************************
C
16000 CONTINUE
ISTEPN='16'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IHNAME(ILISL(1))=ILEFT(1)
IHNAM2(ILISL(1))=ILEF2(1)
IUSE(ILISL(1))='V'
IVALUE(ILISL(1))=ICOLL(1)
VALUE(ILISL(1))=ICOLL(1)
IF(NEWNAM(1).EQ.'YES')NUMNAM=NUMNAM+1
IF(NEWNAM(1).EQ.'YES')NUMCOL=NUMCOL+1
C
IF(NUMVAL.LE.1)GOTO16009
IHNAME(ILISL(2))=ILEFT(2)
IHNAM2(ILISL(2))=ILEF2(2)
IUSE(ILISL(2))='V'
IVALUE(ILISL(2))=ICOLL(2)
VALUE(ILISL(2))=ICOLL(2)
IF(NEWNAM(2).EQ.'YES')NUMNAM=NUMNAM+1
IF(NEWNAM(2).EQ.'YES')NUMCOL=NUMCOL+1
16009 CONTINUE
C
IF(IPRINT.EQ.'OFF')GOTO16090
IF(IFEEDB.EQ.'OFF')GOTO16090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,16011)ILEFT(1),ILEF2(1),NSX
16011 FORMAT('THE NUMBER OF VALUES GENERATED FOR ',
1'THE VARIABLE ',A4,A4,' = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IJ=MAXN*(ICOLL(1)-1)+IROW1
IF(ICOLL(1).LE.MAXCOL)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),V(IJ),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP1)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),PRED(IROW1),IROW1
16021 FORMAT('THE FIRST COMPUTED VALUE OF ',A4,A4,
1 ' = ',E16.7,' (ROW ',I6,')')
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP2)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),RES(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP3)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),YPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP4)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),XPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP5)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),X2PLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP6)THEN
WRITE(ICOUT,16021)ILEFT(1),ILEF2(1),TAGPLO(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ENDIF
C
IJ=MAXN*(ICOLL(1)-1)+IROWN
16031 FORMAT('THE LAST (',I5,'-TH) COMPUTED VALUE OF ',A4,A4,
1' = ',E16.7,' (ROW ',I6,')')
IF(ICOLL(1).LE.MAXCOL.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),V(IJ),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP1.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),PRED(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP2.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),RES(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP3.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),YPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP4.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),XPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP5.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),X2PLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(1).EQ.MAXCP6.AND.NSX.NE.1)THEN
WRITE(ICOUT,16031)NSX,ILEFT(1),ILEF2(1),TAGPLO(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ENDIF
IF(NSX.NE.1)GOTO16039
WRITE(ICOUT,16032)
16032 FORMAT('SINCE THE GENERATED SAMPLE SIZE WAS ONLY 1,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,16033)
16033 FORMAT('THE ABOVE VALUE WAS THE SOLE VALUE COMPUTED.')
CALL DPWRST('XXX','BUG ')
16039 CONTINUE
C
IF(NUMVAL.LE.1)GOTO16079
WRITE(ICOUT,16051)ILEFT(2),ILEF2(2),NSX
16051 FORMAT('THE NUMBER OF VALUES GENERATED FOR ',
1'THE VARIABLE ',A4,A4,' = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IJ=MAXN*(ICOLL(2)-1)+IROW1
16061 FORMAT('THE FIRST COMPUTED VALUE OF ',A4,A4,
1' = ',E16.7,' (ROW ',I6,')')
IF(ICOLL(2).LE.MAXCOL)THEN
WRITE(ICOUT,16061)ILEFT(2),ILEF2(2),V(IJ),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP1)THEN
WRITE(ICOUT,16061)ILEFT(2),ILEF2(2),PRED(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP2)THEN
WRITE(ICOUT,16061)ILEFT(2),ILEF2(2),RES(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP3)THEN
WRITE(ICOUT,16061)ILEFT(2),ILEF2(2),YPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP4)THEN
WRITE(ICOUT,16061)ILEFT(2),ILEF2(2),XPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP5)THEN
WRITE(ICOUT,16061)ILEFT(2),ILEF2(2),X2PLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP6)THEN
WRITE(ICOUT,16061)ILEFT(2),ILEF2(2),TAGPLO(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ENDIF
C
IJ=MAXN*(ICOLL(2)-1)+IROWN
16071 FORMAT('THE LAST (',I5,'-TH) COMPUTED VALUE OF ',A4,A4,
1' = ',E16.7,' (ROW ',I6,')')
IF(ICOLL(2).LE.MAXCOL.AND.NSX.NE.1)THEN
WRITE(ICOUT,16071)NSX,ILEFT(2),ILEF2(2),V(IJ),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP1.AND.NSX.NE.1)THEN
WRITE(ICOUT,16071)NSX,ILEFT(2),ILEF2(2),PRED(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP2.AND.NSX.NE.1)THEN
WRITE(ICOUT,16071)NSX,ILEFT(2),ILEF2(2),RES(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP3.AND.NSX.NE.1)THEN
WRITE(ICOUT,16071)NSX,ILEFT(2),ILEF2(2),YPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP4.AND.NSX.NE.1)THEN
WRITE(ICOUT,16071)NSX,ILEFT(2),ILEF2(2),XPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP5.AND.NSX.NE.1)THEN
WRITE(ICOUT,16071)NSX,ILEFT(2),ILEF2(2),X2PLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSEIF(ICOLL(2).EQ.MAXCP6.AND.NSX.NE.1)THEN
WRITE(ICOUT,16071)NSX,ILEFT(2),ILEF2(1),TAGPLO(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ENDIF
IF(NSX.NE.1)GOTO16079
WRITE(ICOUT,16072)
16072 FORMAT('SINCE THE GENERATED SAMPLE SIZE WAS ONLY 1,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,16073)
16073 FORMAT('THE ABOVE VALUE WAS THE SOLE VALUE COMPUTED.')
CALL DPWRST('XXX','BUG ')
16079 CONTINUE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
16090 CONTINUE
GOTO19000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
19000 CONTINUE
IF(IBUGA3.EQ.'OFF')GOTO19090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19011)
19011 FORMAT('***** AT THE END OF DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19012)IFOUND,IERROR
19012 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19013)IBUGA3,IBUGQ,ISUBRO
19013 FORMAT('IBUGA3,IBUGQ,ISUBRO = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19014)ICASL7,ILOCV,ITCASE,IWRITE
19014 FORMAT('ICASL7,ILOCV,ITCASE,IWRITE = ',A4,2X,I8,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19016)NSX,NITEMX,NS(1),NS(2)
19016 FORMAT('NSX,NITEMX,NS(1),NS(2) = ',4I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19021)ILEFT(1),ILEF2(1),ILISL(1),ICOLL(1)
19021 FORMAT('ILEFT(1),ILEF2(1),ILISL(1),ICOLL(1) = ',A4,2X,A4,2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19022)ILEFT(2),ILEF2(2),ILISL(2),ICOLL(2)
19022 FORMAT('ILEFT(2),ILEF2(2),ILISL(2),ICOLL(2) = ',A4,2X,A4,2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19023)NUMVAL,NEWNAM(1),NEWNAM(2),NUMVAR
19023 FORMAT('NUMVAL,NEWNAM(1),NEWNAM(2),NUMVAR = ',I8,2X,A4,2X,A4,I8)
CALL DPWRST('XXX','BUG ')
DO19025I=1,4
WRITE(ICOUT,19024)I,ILISR(I),ICOLR(I),ITYPA(I)
19024 FORMAT('I,ILISR(I),ICOLR(I),ITYPA(I) = ',I2,I8,I8,1X,A4)
CALL DPWRST('XXX','BUG ')
19025 CONTINUE
WRITE(ICOUT,19026)TEMPS(1),TEMPS(2),TEMPS(3),TEMPS(4)
19026 FORMAT('TEMPS(1),TEMPS(2),TEMPS(3),TEMPS(4) = ',4E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19031)IMATSW,NUMVAR
19031 FORMAT('IMATSW,NUMVAR = ',A4,I8)
CALL DPWRST('XXX','BUG ')
IF(IMATSW.EQ.'NO')GOTO19079
WRITE(ICOUT,19032)NR1,NC1,NR2,NC2,NR91,NC91
19032 FORMAT('NR1,NC1,NR2,NC2,NR91,NC91 = ',6I8)
CALL DPWRST('XXX','BUG ')
IF(ITYPA(1).EQ.'MATR'.OR.ITYPA(1).EQ.'VARI')THEN
WRITE(ICOUT,19033)ILISR(1),IN(ILISR(1)),IVALUE(ILISR(1)),
1 IVALU2(ILISR(1))
19033 FORMAT(
1'ILISR(1),IN(ILISR(1)),IVALUE(ILISR(1)),IVALU2(ILISR(1)) = ',4I8)
CALL DPWRST('XXX','BUG ')
ENDIF
WRITE(ICOUT,19034)(ILOCR(J),J=3,7)
19034 FORMAT('ILOCR(3),...,ILOCR(7) = ',5I8)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(NR1.LE.0 .OR. NC1.LE.0)GOTO19049
JMAX=NC1
IF(JMAX.GT.10)JMAX=10
DO19045I=1,NR1
WRITE(ICOUT,19046)I,(TEMPM1((J-1)*MAXROM+I),J=1,JMAX)
19046 FORMAT('I,TEMPM1(I,.) = ',I8,10E10.3)
CALL DPWRST('XXX','BUG ')
19045 CONTINUE
19049 CONTINUE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(NR2.LE.0 .OR. NC2.LE.0)GOTO19059
JMAX=NC2
IF(JMAX.GT.10)JMAX=10
DO19055I=1,NR2
WRITE(ICOUT,19056)I,(TEMPM2((J-1)*MAXROM+I),J=1,JMAX)
19056 FORMAT('I,TEMPM2(I,.) = ',I8,10E10.3)
CALL DPWRST('XXX','BUG ')
19055 CONTINUE
19059 CONTINUE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(NR91.LE.0 .OR. NC91.LE.0)GOTO19069
JMAX=NC91
IF(JMAX.GT.10)JMAX=10
DO19065I=1,NR91
WRITE(ICOUT,19066)I,(TEMM91((J-1)*MAXROM+I),J=1,JMAX)
19066 FORMAT('I,TEMM91(I,.) = ',I8,10E10.3)
CALL DPWRST('XXX','BUG ')
19065 CONTINUE
19069 CONTINUE
19079 CONTINUE
19090 CONTINUE
C
RETURN
END
SUBROUTINE DPMAT6(ICASL7,ICASE,MAXCAS,
1ILEFT,ILEFT2,NEWNAM,ILISL,ICOLL,
1NUMVAL,NIOLD,
1IBUGA3,ISUBRO,IFOUND,IERROR)
C
C NOTE--THIS SUBROUTINE IS A UTILITY ROUTINE FOR DPMATC AND
C DPMAT2. IT CHECKS A VARIABLE ON THE LEFT HAND SIDE
C OF THE EQUAL SIGN.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2002/6
C ORIGINAL VERSION--JUNE 2002.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICASL7
CHARACTER*4 IBUGA3
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 NEWNAM(MAXCAS)
CHARACTER*4 ILEFT(MAXCAS)
CHARACTER*4 ILEFT2(MAXCAS)
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
INTEGER ILISL(MAXCAS)
INTEGER ICOLL(MAXCAS)
C
C---------------------------------------------------------------------
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOPA.INC'
INCLUDE 'DPCOHK.INC'
INCLUDE 'DPCODA.INC'
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPMA'
ISUBN2='T6 '
C
IFOUND='NO'
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT6')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMAT6--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICASL7,IBUGA3,ISUBRO
52 FORMAT('ICASL7,IBUGA3,ISUBRO = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
ENDIF
C
C **********************************
C ** STEP 1-- **
C ** INITIALIZE SOME VARIABLES. **
C **********************************
C
ISTEPN='1'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT6')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NEWNAM(ICASE)='NO'
C
C ******************************************************
C ** STEP 2A-- *
C ** EXAMINE THE LEFT-HAND SIDE-- *
C ** IS THE VARIABLE NAME TO LEFT OF = SIGN *
C ** ALREADY IN THE NAME LIST? AS A VARIABLE? *
C ** NOTE THAT ILEFT IS THE NAME OF THE VARIABLE *
C ** ON THE LEFT. *
C ** NOTE THAT ILISL IS THE LINE IN THE TABLE *
C ** OF THE NAME ON THE LEFT. *
C ** NOTE THAT ICOLL(ICASE) IS THE DATA COLUMN *
C ** (1 TO 12) *
C ** FOR THE NAME OF THE LEFT. *
C ******************************************************
C
ISTEPN='2A'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT6')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ILEFT(ICASE)=IHARG(ICASE)
ILEFT2(ICASE)=IHARG2(ICASE)
DO210I=1,NUMNAM
I2=I
IF(ILEFT(ICASE).EQ.IHNAME(I).AND.
1 ILEFT2(ICASE).EQ.IHNAM2(I).AND.
1 IUSE(I).EQ.'P')GOTO230
IF(ILEFT(ICASE).EQ.IHNAME(I).AND.
1 ILEFT2(ICASE).EQ.IHNAM2(I).AND.
1 IUSE(I).EQ.'V')GOTO280
IF(ILEFT(ICASE).EQ.IHNAME(I).AND.
1 ILEFT2(ICASE).EQ.IHNAM2(I).AND.
1 IUSE(I).EQ.'M')GOTO280
210 CONTINUE
C
C CASE WHERE NAME NOT FOUND IN CURRENT NAME LIST
C
NEWNAM(ICASE)='YES'
IF(ICASE.GT.1)NUMVAL=ICASE
C
IJUNK=0
DO211I=1,ICASE
IF(NEWNAM(I).EQ.'YES')IJUNK=IJUNK+1
211 CONTINUE
ILISL(ICASE)=NUMNAM+IJUNK
C
IF(ILISL(ICASE).GT.MAXNAM)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,221)
221 FORMAT('***** ERROR 221 IN DPMAT6--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,222)
222 FORMAT(' THE NUMBER OF VARIABLE AND/OR PARAMETER')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,223)MAXNAM
223 FORMAT(' NAMES HAS JUST EXCEEDED THE MAX ALLOWABLE ',
1 I8,' .')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,224)
224 FORMAT(' SUGGESTED ACTION--ENTER STATUS VARIABLES')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,226)
226 FORMAT(' TO FIND OUT THE FULL LIST OF USED NAMES,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,227)
227 FORMAT(' AND THEN REDEFINE (REUSE) SOME OF THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,228)
228 FORMAT(' ALREADY-USED NAMES. ALTERNATIVELY, USE THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,229)
229 FORMAT(' DELETE COMMAND TO FREE NO LONGER NEED NAMES.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
ELSE
GOTO235
ENDIF
C
C CASE WHERE NAME FOUND AS A PARAMETER
C
230 CONTINUE
IF(ICASE.GT.1)NUMVAL=ICASE
ILISL(ICASE)=I2
GOTO235
C
235 CONTINUE
NIOLD=0
IF(ICASE.GT.1)NUMVAL=ICASE
IF(ICASE.EQ.1)THEN
ICOLL(ICASE)=NUMCOL+1
ELSEIF(ICASE.GT.1)THEN
ICOLL(ICASE)=NUMCOL
DO237I=1,ICASE
IF(NEWNAM(I).EQ.'YES')ICOLL(ICASE)=ICOLL(ICASE)+1
237 CONTINUE
ENDIF
IF(ICOLL(ICASE).LE.MAXCOL)GOTO290
C
WRITE(ICOUT,241)
241 FORMAT('***** ERROR 241 IN DPMAT6--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,242)
242 FORMAT(' THE NUMBER OF DATA COLUMNS HAS JUST EXCEEDED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,243)MAXCOL
243 FORMAT(' THE MAX ALLOWABLE ',I8,' . SUGGESTED ACTION--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,245)
245 FORMAT(' ENTER STATUS VARIABLES')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,246)
246 FORMAT(' TO FIND OUT THE FULL LIST OF USED COLUMNS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,247)
247 FORMAT(' AND THEN OVERWRITE SOME COLUMNS. EXAMPLE--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,248)
248 FORMAT(' IF LET X(I) = 3.14 FAILED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,249)
249 FORMAT(' THEN ONE MIGHT ENTER LET X = COLUMN 7')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,250)
250 FORMAT(' (THEREBY EQUATING THE NAME X WITH COLUMN 7')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,251)
251 FORMAT(' FOLLOWED BY LET X(I) = 3.14')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,252)
252 FORMAT(' (WHICH WILL ACTUALLY OVERWRITE COLUMN 7')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,253)
253 FORMAT(' WITH THE NUMERIC CONSTANTS 3.14).')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,255)
255 FORMAT(' ALTERNATIVELY, USE THE DIMENSION COMMAND TO ',
1 'CREATE MORE COLUMNS.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
C
C CASE WHERE NAME FOUND AS A VARIABLE
C
280 CONTINUE
IF(ICASE.GT.1)NUMVAL=ICASE
ILISL(ICASE)=I2
ICOLL(ICASE)=IVALUE(ILISL(ICASE))
NIOLD=IN(ILISL(ICASE))
C
290 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT6')THEN
WRITE(ICOUT,291)
291 FORMAT('AT THE END OF STEP 2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,292)ILEFT(ICASE),ILEFT2(ICASE),NEWNAM(ICASE),
1 NUMNAM,ILISL(ICASE),
1 ICOLL(ICASE),NIOLD
CALL DPWRST('XXX','BUG ')
292 FORMAT('ILEFT,ILEFT2,NEWNAM,NUMNAM,ILISL(ICASE),',
1 'ICOLL(ICASE),NIOLD = ',A4,A4,2X,A4,2X,4I8)
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
19000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT6')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19011)
19011 FORMAT('***** AT THE END OF DPMAT6--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19012)IFOUND,IERROR
19012 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19013)IBUGA3,ISUBRO
19013 FORMAT('IBUGA3,ISUBRO = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19021)ILEFT(ICASE),ILEFT2(ICASE),ILISL(ICASE),
1 ICOLL(ICASE)
19021 FORMAT('ILEFT,ILEFT2,ILISL(ICASE),ICOLL(ICASE) = ',
1 A4,2X,A4,2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19023)NEWNAM(ICASE)
19023 FORMAT('NEWNAM = ',A4)
CALL DPWRST('XXX','BUG ')
ENDIF
C
19090 CONTINUE
C
RETURN
END
SUBROUTINE DPMAT7(ICASL7,ICASE,MAXCAS,ILOCR,
1IHRIGH,IHRIG2,ICOLR,ILISR,NIRIGH,ITYPA,TEMPS,
1IFLAG1,ATEMP,ITEMP,
1IBUGA3,ISUBRO,IFOUND,IERROR)
C
C NOTE--THIS SUBROUTINE IS A UTILITY ROUTINE FOR DPMATC AND
C DPMAT2. IT CHECKS A VARIABLE ON THE LEFT HAND SIDE
C OF THE EQUAL SIGN.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2002/6
C ORIGINAL VERSION--JUNE 2002.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICASL7
CHARACTER*4 IBUGA3
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHRIGH
CHARACTER*4 IHRIG2
CHARACTER*4 ITYPA(MAXCAS)
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
REAL TEMPS(MAXCAS)
C
INTEGER ICOLR(MAXCAS)
INTEGER ILISR(MAXCAS)
INTEGER NIRIGH(MAXCAS)
INTEGER ILOCR(MAXCAS)
C
C---------------------------------------------------------------------
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOPA.INC'
INCLUDE 'DPCODA.INC'
INCLUDE 'DPCOHK.INC'
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPMA'
ISUBN2='T7 '
C
IFOUND='NO'
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT7')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMAT7--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICASL7,IBUGA3,ISUBRO
52 FORMAT('ICASL7,IBUGA3,ISUBRO = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)ICASE
53 FORMAT('ICASE = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)ILOCR(ICASE)
54 FORMAT('ILOCR(ICASE) = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)ICOLR(ICASE)
55 FORMAT('ICOLR(ICASE) = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,56)ILISR(ICASE)
56 FORMAT('ILISR(ICASE) = ',I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
C ***************************************
C ** STEP 1-- **
C ** EXAMINE THE VARIABLE **
C ** ON THE RIGHT. **
C ***************************************
C
ISTEPN='1.0'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT7')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IHRIGH=IHARG(ILOCR(ICASE))
IHRIG2=IHARG2(ILOCR(ICASE))
ATEMP=ARG(ILOCR(ICASE))
ITEMP=IARG(ILOCR(ICASE))
DO1220I=1,NUMNAM
I2=I
IF(IHRIGH.EQ.IHNAME(I).AND.
1 IHRIG2.EQ.IHNAM2(I).AND.
1 IUSE(I).EQ.'V')GOTO1270
IF(IHRIGH.EQ.IHNAME(I).AND.
1 IHRIG2.EQ.IHNAM2(I).AND.
1 IUSE(I).EQ.'M')GOTO1280
IF(IHRIGH.EQ.IHNAME(I).AND.
1 IHRIG2.EQ.IHNAM2(I).AND.
1 IUSE(I).EQ.'P')GOTO1240
1220 CONTINUE
C
IF(IFLAG1.EQ.1)GOTO1250
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1221)
1221 FORMAT('***** ERROR 1221 IN DPMAT7--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1222)ICASE
1222 FORMAT(' THE SPECIFIED ARGUMENT ',I3)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1223)
1223 FORMAT(' (VARIABLE NAME OR COLUMN NUMBER)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1224)
1224 FORMAT(' ON THE RIGHT OF THE = SIGN')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1225)
1225 FORMAT(' WAS NOT FOUND IN THE INTERNAL NAME LIST')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1226)
1226 FORMAT(' OF AVAILABLE VARIABLE NAMES.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1227)IHRIGH,IHRIG2
1227 FORMAT(' THE VARIABLE IN QUESTION WAS ',A4,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1228)
1228 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,1229)(IANS(I),I=1,MIN(100,IWIDTH))
1229 FORMAT(100A1)
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO19000
C
1240 CONTINUE
IF(IFLAG1.EQ.1)GOTO1260
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1241)
1241 FORMAT('***** ERROR 1241 IN DPMAT2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1242)ICASE
1242 FORMAT(' THE SPECIFIED ARGUMENT ',I4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1243)
1243 FORMAT(' (VARIABLE NAME OR COLUMN NUMBER)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1244)
1244 FORMAT(' ON THE RIGHT OF THE = SIGN')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1245)
1245 FORMAT(' WAS FOUND IN THE INTERNAL NAME LIST,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1246)
1246 FORMAT(' BUT AS A PARAMETER,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1247)
1247 FORMAT(' AND NOT AS A VARIABLE AS IT SHOULD BE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1248)
1248 FORMAT(' THE COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1249)(IANS(I),I=1,MIN(100,IWIDTH))
1249 FORMAT(100A1)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO19000
C
1250 CONTINUE
ITYPA(ICASE)='PARA'
TEMPS(ICASE)=ARG(ILOCR(ICASE))
NIRIGH(ICASE)=1
GOTO1290
C
1260 CONTINUE
ITYPA(ICASE)='PARA'
ILISR(ICASE)=I2
TEMPS(ICASE)=VALUE(ILISR(ICASE))
NIRIGH(ICASE)=1
GOTO1290
C
1270 CONTINUE
ITYPA(ICASE)='VARI'
ILISR(ICASE)=I2
ICOLR(ICASE)=IVALUE(ILISR(ICASE))
NIRIGH(ICASE)=IN(ILISR(ICASE))
GOTO1290
C
1280 CONTINUE
ITYPA(ICASE)='MATR'
ILISR(ICASE)=I2
ICOLR(ICASE)=IVALUE(ILISR(ICASE))
NIRIGH(ICASE)=IN(ILISR(ICASE))
GOTO1290
C
1290 CONTINUE
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
19000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MAT7')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19011)
19011 FORMAT('***** AT THE END OF DPMAT7--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19012)IFOUND,IERROR
19012 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19013)IBUGA3,ISUBRO
19013 FORMAT('IBUGA3,ISUBRO = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19021)IHRIGH,IHRIG2,
1 ILISR(ICASE),NIRIGH(ICASE)
19021 FORMAT('IHRIGH,IHRIG2,ILISR(ICASE),',
1 'NIRIGH(ICASE) = ',A4,2X,A4,2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19023)ITYPA(ICASE),ICOLR(ICASE)
19023 FORMAT('ITYPA(ICASE),ICOLR(ICASE) = ',A4,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,19025)TEMPS(ICASE),NIRIGH(ICASE)
19025 FORMAT('TEMPS(ICASE),NIRIGH(ICASE) = ',E15.7,I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
19090 CONTINUE
C
RETURN
END
SUBROUTINE DPMATH(ICHARC,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
C
C PURPOSE--DEFINE AND SET THE HERSHEY CHARACTER SET COORDINATES
C FOR MATH SYMBOLS.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/4
C ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--MARCH 1981.
C UPDATED --MAY 1982.
C UPDATED --MARCH 1987.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICHARC
CHARACTER*4 IOP
CHARACTER*4 IBUGD2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IOP(*)
DIMENSION X(*)
DIMENSION Y(*)
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOBE.INC'
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
NUMCO=1
ISTART=1
ISTOP=1
NC=1
C
C ******************************************
C ** TREAT THE ROMAN SIMPLEX UPPER CASE **
C ** HERSHEY CHARACTER SET CASE **
C ******************************************
C
C
IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'MATH')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMATH--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICHARC
52 FORMAT('ICHARC = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,59)IBUGG4,ISUBG4,IFOUND,IERROR
59 FORMAT('IBUGG4,ISUBG4,IFOUND,IERROR = ',A4,2X,A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************************************
C ** STEP 1-- **
C ** SEARCH FOR THE INPUT CHARACTER(S). **
C ** MAP THE CHARACTER(S) INTO A NUMERIC VALUE. **
C **************************************************
C
CALL DPCHMA(ICHARC,ICHARN,IBUGD2,IFOUND)
IF(IFOUND.EQ.'NO')GOTO9000
C
IF(ICHARN.LE.32)GOTO1010
GOTO1019
1010 CONTINUE
CALL DMATH1(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1019 CONTINUE
C
IF(33.LE.ICHARN.AND.ICHARN.LE.51)GOTO1020
GOTO1029
1020 CONTINUE
CALL DMATH2(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1029 CONTINUE
C
IF(52.LE.ICHARN.AND.ICHARN.LE.60)GOTO1030
GOTO1039
1030 CONTINUE
CALL DMATH3(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1039 CONTINUE
C
IF(ICHARN.GE.61)GOTO1040
GOTO1049
1040 CONTINUE
CALL DMATH4(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1049 CONTINUE
C
IFOUND='NO'
GOTO9000
C
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'MATH')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMATH--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGG4,ISUBG4,IFOUND,IERROR
9012 FORMAT('IBUGG4,ISUBG4,IFOUND,IERROR = ',A4,2X,A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)ICHARC,ICHARN
9013 FORMAT('ICHARC,ICHARN = ',A4,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)ISTART,ISTOP,NC,NUMCO
9014 FORMAT('ISTART,ISTOP,NC,NUMCO = ',4I8)
CALL DPWRST('XXX','BUG ')
IF(NUMCO.GE.1.AND.NUMCO.LE.1000)GOTO9019
DO9015I=1,NUMCO
WRITE(ICOUT,9016)I,IOP(I),X(I),Y(I)
9016 FORMAT('I,IOP(I),X(I),Y(I) = ',I8,2X,A4,2F10.2)
CALL DPWRST('XXX','BUG ')
9015 CONTINUE
9019 CONTINUE
WRITE(ICOUT,9021)IXMINS,IXMAXS,IXDELS
9021 FORMAT('IXMINS,IXMAXS,IXDELS = ',3I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMATN(ICOM,IHARG,IARGT,IARG,NUMARG,
1IX1JSW,IX2JSW,IY1JSW,IY2JSW,
1NMJX1T,NMJX2T,NMJY1T,NMJY2T,
1IFOUND,IERROR)
C
C PURPOSE--DEFINE THE NUMBER OF MAJOR TIC MARKS
C FOR HORIZONTAL FRAME LINES OR VERTICAL FRAME LINES OR BOTH.
C INPUT ARGUMENTS--ICOM (A CHARACTER VECTOR)
C --IHARG (A CHARACTER VECTOR)
C --IARG (AN INTEGER VECTOR)
C --NUMARG
C OUTPUT ARGUMENTS--
C --IX1JSW (A CHARACTER VARIABLE)
C --IX2JSW (A CHARACTER VARIABLE)
C --IY1JSW (A CHARACTER VARIABLE)
C --IY2JSW (A CHARACTER VARIABLE)
C --NMJX1T (AN INTEGER VARIABLE)
C --NMJX2T (AN INTEGER VARIABLE)
C --NMJY1T (AN INTEGER VARIABLE)
C --NMJY2T (AN INTEGER VARIABLE)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--DECEMBER 1982.
C UPDATED--JANUARY 1988. (OPTIONAL OMISSION OF THE WORD MAJOR)
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICOM
CHARACTER*4 IHARG
CHARACTER*4 IARGT
C
CHARACTER*4 IX1JSW
CHARACTER*4 IX2JSW
CHARACTER*4 IY1JSW
CHARACTER*4 IY2JSW
C
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHHOLD
C
C---------------------------------------------------------------------
C
DIMENSION IHARG(*)
DIMENSION IARGT(*)
DIMENSION IARG(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
IF(ICOM.NE.'MAJO')GOTO1010
GOTO1019
1010 CONTINUE
IF(ICOM.EQ.'XTIC')GOTO1100
IF(ICOM.EQ.'X1TI')GOTO1200
IF(ICOM.EQ.'X2TI')GOTO1300
IF(ICOM.EQ.'YTIC')GOTO1400
IF(ICOM.EQ.'Y1TI')GOTO1500
IF(ICOM.EQ.'Y2TI')GOTO1600
IF(ICOM.EQ.'TIC')GOTO1700
IF(ICOM.EQ.'TICS')GOTO1700
GOTO9000
1019 CONTINUE
C
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.1)GOTO1020
GOTO1029
1020 CONTINUE
IF(IHARG(1).EQ.'XTIC')GOTO1100
IF(IHARG(1).EQ.'X1TI')GOTO1200
IF(IHARG(1).EQ.'X2TI')GOTO1300
IF(IHARG(1).EQ.'YTIC')GOTO1400
IF(IHARG(1).EQ.'Y1TI')GOTO1500
IF(IHARG(1).EQ.'Y2TI')GOTO1600
IF(IHARG(1).EQ.'TIC')GOTO1700
IF(IHARG(1).EQ.'TICS')GOTO1700
GOTO9000
1029 CONTINUE
GOTO9000
C
C ********************************************************
C ** STEP 1--
C ** TREAT THE CASE WHEN
C ** ONLY THE HORIZONTAL MAJOR TICS ARE TO BE CHANGED
C ********************************************************
C
1100 CONTINUE
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.1.AND.IHARG(1).EQ.'NUMB')GOTO1110
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1110
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1110
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1110
C
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1101)
1101 FORMAT('***** ERROR IN DPMATN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1102)
1102 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1103)
1103 FORMAT(' NUMBER OF MAJOR (HORIZONTAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1104)
1104 FORMAT(' EXAMPLE TO SPECIFY 3 MAJOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1105)
1105 FORMAT(' (ON THE HORIZONTAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1106)
1106 FORMAT(' MAJOR XTIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1107)
1107 FORMAT(' MAJOR XTICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1110 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1150
IF(IHARG(NUMARG).EQ.'OFF')GOTO1150
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1150
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1150
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1150
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1160
IERROR='YES'
GOTO9000
C
1150 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1180
C
1160 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1180
C
1180 CONTINUE
IFOUND='YES'
IX1JSW=IHHOLD
IX2JSW=IHHOLD
NMJX1T=IHOLD
NMJX2T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1189
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1181)
1181 FORMAT('THE NUMBER OF MAJOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1182)
1182 FORMAT('(FOR BOTH HORIZONTAL FRAME LINES')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1183)IHOLD
1183 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1184)
1184 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1189 CONTINUE
GOTO9000
1190 CONTINUE
C
C ********************************************************
C ** STEP 2--
C ** TREAT THE CASE WHEN
C ** ONLY THE BOTTOM HORIZONTAL MAJOR TICS ARE TO BE CHANGED
C ********************************************************
C
1200 CONTINUE
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.1.AND.IHARG(1).EQ.'NUMB')GOTO1210
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1210
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1210
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1210
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1201)
1201 FORMAT('***** ERROR IN DPMATN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1202)
1202 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1203)
1203 FORMAT(' NUMBER OF MAJOR (HORIZONTAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1204)
1204 FORMAT(' EXAMPLE TO SPECIFY 3 MAJOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1205)
1205 FORMAT(' (ON THE BOTTOM HORIZONTAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1206)
1206 FORMAT(' MAJOR X1TIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1207)
1207 FORMAT(' MAJOR X1TICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1210 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1250
IF(IHARG(NUMARG).EQ.'OFF')GOTO1250
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1250
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1250
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1250
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1260
IERROR='YES'
GOTO9000
C
1250 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1280
C
1260 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1280
C
1280 CONTINUE
IFOUND='YES'
IX1JSW=IHHOLD
NMJX1T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1289
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1281)
1281 FORMAT('THE NUMBER OF MAJOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1282)
1282 FORMAT('(FOR THE BOTTOM HORIZONTAL FRAME LINE')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1283)IHOLD
1283 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1284)
1284 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1289 CONTINUE
GOTO9000
1290 CONTINUE
C
C ********************************************************
C ** STEP 3--
C ** TREAT THE CASE WHEN
C ** ONLY THE TOP HORIZONTAL MAJOR TICS ARE TO BE CHANGED
C ********************************************************
C
1300 CONTINUE
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.1.AND.IHARG(1).EQ.'NUMB')GOTO1310
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1310
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1310
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1310
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1301)
1301 FORMAT('***** ERROR IN DPMATN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1302)
1302 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1303)
1303 FORMAT(' NUMBER OF MAJOR (HORIZONTAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1304)
1304 FORMAT(' EXAMPLE TO SPECIFY 3 MAJOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1305)
1305 FORMAT(' (ON THE TOP HORIZONTAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1306)
1306 FORMAT(' MAJOR X2TIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1307)
1307 FORMAT(' MAJOR X2TICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1310 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1350
IF(IHARG(NUMARG).EQ.'OFF')GOTO1350
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1350
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1350
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1350
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1360
IERROR='YES'
GOTO9000
C
1350 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1380
C
1360 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1380
C
1380 CONTINUE
IFOUND='YES'
IX2JSW=IHHOLD
NMJX2T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1389
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1381)
1381 FORMAT('THE NUMBER OF MAJOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1382)
1382 FORMAT('(FOR THE TOP HORIZONTAL FRAME LINE')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1383)IHOLD
1383 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1384)
1384 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1389 CONTINUE
GOTO9000
1390 CONTINUE
C
C ********************************************************
C ** STEP 4--
C ** TREAT THE CASE WHEN
C ** ONLY THE VERTICAL MAJOR TICS ARE TO BE CHANGED
C ********************************************************
C
1400 CONTINUE
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.1.AND.IHARG(1).EQ.'NUMB')GOTO1410
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1410
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1410
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1410
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1401)
1401 FORMAT('***** ERROR IN DPMATN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1402)
1402 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1403)
1403 FORMAT(' NUMBER OF MAJOR (VERTICAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1404)
1404 FORMAT(' EXAMPLE TO SPECIFY 3 MAJOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1405)
1405 FORMAT(' (ON THE VERTICAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1406)
1406 FORMAT(' MAJOR YTIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1407)
1407 FORMAT(' MAJOR YTICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1410 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1450
IF(IHARG(NUMARG).EQ.'OFF')GOTO1450
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1450
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1450
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1450
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1460
IERROR='YES'
GOTO9000
C
1450 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1480
C
1460 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1480
C
1480 CONTINUE
IFOUND='YES'
IY1JSW=IHHOLD
IY2JSW=IHHOLD
NMJY1T=IHOLD
NMJY2T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1489
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1481)
1481 FORMAT('THE NUMBER OF MAJOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1482)
1482 FORMAT('(FOR BOTH VERTICAL FRAME LINES')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1483)IHOLD
1483 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1484)
1484 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1489 CONTINUE
GOTO9000
1490 CONTINUE
C
C ********************************************************
C ** STEP 5--
C ** TREAT THE CASE WHEN
C ** ONLY THE LEFT VERTICAL MAJOR TICS ARE TO BE CHANGED
C ********************************************************
C
1500 CONTINUE
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.1.AND.IHARG(1).EQ.'NUMB')GOTO1510
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1510
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1510
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1510
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1501)
1501 FORMAT('***** ERROR IN DPMATN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1502)
1502 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1503)
1503 FORMAT(' NUMBER OF MAJOR (VERTICAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1504)
1504 FORMAT(' EXAMPLE TO SPECIFY 3 MAJOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1505)
1505 FORMAT(' (ON THE LEFT VERTICAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1506)
1506 FORMAT(' MAJOR Y1TIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1507)
1507 FORMAT(' MAJOR Y1TICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1510 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1550
IF(IHARG(NUMARG).EQ.'OFF')GOTO1550
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1550
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1550
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1550
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1560
IERROR='YES'
GOTO9000
C
1550 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1580
C
1560 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1580
C
1580 CONTINUE
IFOUND='YES'
IY1JSW=IHHOLD
NMJY1T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1589
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1581)
1581 FORMAT('THE NUMBER OF MAJOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1582)
1582 FORMAT('(FOR THE LEFT VERTICAL FRAME LINE')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1583)IHOLD
1583 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1584)
1584 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1589 CONTINUE
GOTO9000
1590 CONTINUE
C
C ********************************************************
C ** STEP 6--
C ** TREAT THE CASE WHEN
C ** ONLY THE RIGHT VERTICAL MAJOR TICS ARE TO BE CHANGED
C ********************************************************
C
1600 CONTINUE
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.1.AND.IHARG(1).EQ.'NUMB')GOTO1610
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1610
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1610
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1610
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1601)
1601 FORMAT('***** ERROR IN DPMATN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1602)
1602 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1603)
1603 FORMAT(' NUMBER OF MAJOR (VERTICAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1604)
1604 FORMAT(' EXAMPLE TO SPECIFY 3 MAJOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1605)
1605 FORMAT(' (ON THE RIGHT VERTICAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1606)
1606 FORMAT(' MAJOR Y2TIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1607)
1607 FORMAT(' MAJOR Y2TICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1610 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1650
IF(IHARG(NUMARG).EQ.'OFF')GOTO1650
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1650
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1650
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1650
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1660
IERROR='YES'
GOTO9000
C
1650 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1680
C
1660 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1680
C
1680 CONTINUE
IFOUND='YES'
IY2JSW=IHHOLD
NMJY2T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1689
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1681)
1681 FORMAT('THE NUMBER OF MAJOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1682)
1682 FORMAT('(FOR THE RIGHT VERTICAL FRAME LINE')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1683)IHOLD
1683 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1684)
1684 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1689 CONTINUE
GOTO9000
1690 CONTINUE
C
C ********************************************************
C ** STEP 7--
C ** TREAT THE CASE WHEN
C ** BOTH HORIZONTAL AND VERTICAL MAJOR TICS ARE TO BE
C ********************************************************
C
1700 CONTINUE
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.1.AND.IHARG(1).EQ.'NUMB')GOTO1710
IF(ICOM.NE.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1710
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1710
IF(ICOM.EQ.'MAJO'.AND.NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1710
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1701)
1701 FORMAT('***** ERROR IN DPMATN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1702)
1702 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1703)
1703 FORMAT(' NUMBER OF MAJOR TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1704)
1704 FORMAT(' EXAMPLE TO SPECIFY 3 MAJOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1705)
1705 FORMAT(' (ON ALL 4 FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1706)
1706 FORMAT(' MAJOR TIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1707)
1707 FORMAT(' MAJOR TICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1710 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1750
IF(IHARG(NUMARG).EQ.'OFF')GOTO1750
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1750
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1750
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1750
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1760
IERROR='YES'
GOTO9000
C
1750 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1780
C
1760 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1780
C
1780 CONTINUE
IFOUND='YES'
IX1JSW=IHHOLD
IX2JSW=IHHOLD
IY1JSW=IHHOLD
IY2JSW=IHHOLD
NMJX1T=IHOLD
NMJX2T=IHOLD
NMJY1T=IHOLD
NMJY2T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1789
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1781)
1781 FORMAT('THE NUMBER OF MAJOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1782)
1782 FORMAT('(FOR EACH FRAME LINES')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1783)IHOLD
1783 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1784)
1784 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1789 CONTINUE
GOTO9000
1790 CONTINUE
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
RETURN
END
SUBROUTINE DPMAX(ICOM,IHARG,IARGT,ARG,NUMARG,
1GX1MAX,GY1MAX,
1GX2MAX,GY2MAX,
1IX1MAX,IY1MAX,
1IX2MAX,IY2MAX,
1IFOUND,IERROR)
C
C PURPOSE--DEFINE AXIS MAXIMA
C (HORIZONTAL AXIS OR VERTICAL AXIS OR BOTH)
C WHICH IN TURN WILL DEFINE THE UPPER EXTREME
C WHICH WILL APPEAR ON THE PLOT.
C THE MAXIMA WILL BE PLACED IN THE 4 VARIABLES
C GX1MAX,GY1MAX,
C GX2MAX,GY2MAX,
C THE STATUS (FIXED OR FLOAT) WILL BE PLACED
C IN THE 4 VARIABLES
C IX1MAX,IY1MAX,
C IX2MAX,IY2MAX,
C INPUT ARGUMENTS--ICOM (A HOLLERITH VARIABLE)
C --IHARG (A HOLLERITH VECTOR)
C --IARGT (A HOLLERITH VECTOR)
C --ARG (A FLOATING POINT VECTOR)
C --NUMARG
C OUTPUT ARGUMENTS--
C --GX1MAX = MAXIMUM FOR BOTTOM HORIZONTAL AXIS
C --GY1MAX = MAXIMUM FOR LEFT VERTICAL AXIS
C --GX2MAX = MAXIMUM FOR TOP HORIZONTAL AXIS
C --GX2MAX = MAXIMUM FOR RIGHT VERTICAL AXIS
C --IX1MAX = STATUS FOR MAXIMUM FOR BOTTOM HORIZONTAL AXIS
C --IY1MAX = STATUS FOR MAXIMUM FOR LEFT VERTICAL AXIS
C --IX2MAX = STATUS FOR MAXIMUM FOR TOP HORIZONTAL AXIS
C --IX2MAX = STATUS FOR MAXIMUM FOR RIGHT VERTICAL AXIS
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--NOVEMBER 1978.
C UPDATED --SEPTEMBER 1980.
C UPDATED --OCTOBER 1981.
C UPDATED --NOVEMBER 1981.
C UPDATED --MAY 1982.
C UPDATED --FEBRUARY 1992. FIX YMAX WITH NO ARG BOMB
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICOM
CHARACTER*4 IHARG
CHARACTER*4 IARGT
C
CHARACTER*4 IX1MAX
CHARACTER*4 IY1MAX
CHARACTER*4 IX2MAX
CHARACTER*4 IY2MAX
C
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IHARG(*)
DIMENSION IARGT(*)
DIMENSION ARG(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
CCCCC THE FOLLOWING LINE WAS FIXED FEBRUARY 1992
CCCCC IF(IHARG(NUMARG).EQ.'?')GOTO8100
IF(NUMARG.LE.0)GOTO1090
IF(IHARG(NUMARG).EQ.'?')GOTO8100
1090 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN **
C ** BOTH HORIZONTAL AXIS MAXIMA ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'XMAX')GOTO1100
GOTO1199
C
1100 CONTINUE
IF(NUMARG.LE.0)GOTO1110
IF(IARGT(1).EQ.'NUMB')GOTO1120
GOTO1110
C
1110 CONTINUE
IFOUND='YES'
GX1MAX=CPUMAX
GX2MAX=CPUMAX
IX1MAX='FLOA'
IX2MAX='FLOA'
1113 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1119
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1115)
1115 FORMAT('THE X AXIS MAXIMUM (FOR BOTH HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1116)
1116 FORMAT('FRAME LINES) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1117)
1117 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1119 CONTINUE
GOTO9000
C
1120 CONTINUE
IFOUND='YES'
A1=ARG(1)
GX1MAX=A1
GX2MAX=A1
IX1MAX='FIXE'
IX2MAX='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1129
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1125)
1125 FORMAT('THE X AXIS MAXIMUM (FOR BOTH HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1126)GX1MAX
1126 FORMAT('FRAME LINES) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1129 CONTINUE
GOTO9000
C
1199 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN THE **
C ** BOTTOM HORIZONTAL AXIS MAXIMUM ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'X1MA')GOTO1200
GOTO1299
C
1200 CONTINUE
IF(NUMARG.LE.0)GOTO1210
IF(IARGT(1).EQ.'NUMB')GOTO1220
GOTO1210
C
1210 CONTINUE
IFOUND='YES'
GX1MAX=CPUMAX
IX1MAX='FLOA'
1213 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1219
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1215)
1215 FORMAT('THE X AXIS MAXIMUM (FOR THE BOTTOM HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1216)
1216 FORMAT('FRAME LINE) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1217)
1217 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1219 CONTINUE
GOTO9000
C
1220 CONTINUE
IFOUND='YES'
A1=ARG(1)
GX1MAX=A1
IX1MAX='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1229
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1225)
1225 FORMAT('THE X AXIS MAXIMUM (FOR THE BOTTOM HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1226)GX1MAX
1226 FORMAT('FRAME LINE) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1229 CONTINUE
GOTO9000
C
1299 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN THE **
C ** TOP HORIZONTAL AXIS MAXIMUM ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'X2MA')GOTO1300
GOTO1399
C
1300 CONTINUE
IF(NUMARG.LE.0)GOTO1310
IF(IARGT(1).EQ.'NUMB')GOTO1320
GOTO1310
C
1310 CONTINUE
IFOUND='YES'
GX2MAX=CPUMAX
IX2MAX='FLOA'
1313 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1319
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1315)
1315 FORMAT('THE X AXIS MAXIMUM (FOR THE TOP HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1316)
1316 FORMAT('FRAME LINE) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1317)
1317 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
GOTO9000
C
1320 CONTINUE
IFOUND='YES'
A1=ARG(1)
GX2MAX=A1
IX2MAX='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1329
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1325)
1325 FORMAT('THE X AXIS MAXIMUM (FOR THE TOP HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1326)GX2MAX
1326 FORMAT('FRAME LINE) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1329 CONTINUE
GOTO9000
C
1399 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN **
C ** BOTH VERTICAL AXIS MAXIMUM ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'YMAX')GOTO1400
GOTO1499
C
1400 CONTINUE
IF(NUMARG.LE.0)GOTO1410
IF(IARGT(1).EQ.'NUMB')GOTO1420
GOTO1410
C
1410 CONTINUE
IFOUND='YES'
GY1MAX=CPUMAX
GY2MAX=CPUMAX
IY1MAX='FLOA'
IY2MAX='FLOA'
1413 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1419
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1415)
1415 FORMAT('THE Y AXIS MAXIMUM (FOR BOTH VERTICAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1416)
1416 FORMAT('FRAME LINES) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1417)
1417 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1419 CONTINUE
GOTO9000
C
1420 CONTINUE
IFOUND='YES'
A1=ARG(1)
GY1MAX=A1
GY2MAX=A1
IY1MAX='FIXE'
IY2MAX='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1429
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1425)
1425 FORMAT('THE Y AXIS MAXIMUM (FOR BOTH VERTICAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1426)GY1MAX
1426 FORMAT('FRAME LINES) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1429 CONTINUE
GOTO9000
C
1499 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN THE **
C ** LEFT VERTICAL AXIS MAXIMUM ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'Y1MA')GOTO1500
GOTO1599
C
1500 CONTINUE
IF(NUMARG.LE.0)GOTO1510
IF(IARGT(1).EQ.'NUMB')GOTO1520
GOTO1510
C
1510 CONTINUE
IFOUND='YES'
GY1MAX=CPUMAX
IY1MAX='FLOA'
1513 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1519
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1515)
1515 FORMAT('THE Y AXIS MAXIMUM (FOR THE LEFT VERTICAL ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1516)
1516 FORMAT('FRAME LINE) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1517)
1517 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1519 CONTINUE
GOTO9000
C
1520 CONTINUE
IFOUND='YES'
A1=ARG(1)
GY1MAX=A1
IY1MAX='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1529
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1525)
1525 FORMAT('THE Y AXIS MAXIMUM (FOR THE LEFT VERTICAL ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1526)GY1MAX
1526 FORMAT('FRAME LINE) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1529 CONTINUE
GOTO9000
C
1599 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN THE **
C ** RIGHT VERTICAL AXIS MAXIMUM ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'Y2MA')GOTO1600
GOTO1699
C
1600 CONTINUE
IF(NUMARG.LE.0)GOTO1610
IF(IARGT(1).EQ.'NUMB')GOTO1620
GOTO1610
C
1610 CONTINUE
IFOUND='YES'
GY2MAX=CPUMAX
IY2MAX='FLOA'
1613 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1619
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1615)
1615 FORMAT('THE Y AXIS MAXIMUM (FOR THE RIGHT VERTICAL ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1616)
1616 FORMAT('FRAME LINE) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1617)
1617 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1619 CONTINUE
GOTO9000
C
1620 CONTINUE
IFOUND='YES'
A1=ARG(1)
GY2MAX=A1
IY2MAX='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1629
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1625)
1625 FORMAT('THE Y AXIS MAXIMUM (FOR THE RIGHT VERTICAL ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1626)GY2MAX
1626 FORMAT('FRAME LINE) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1629 CONTINUE
GOTO9000
C
1699 CONTINUE
C
C ******************************************
C ** TREAT THE CASE WHEN **
C ** BOTH AXIS MAXIMUM ARE TO BE FIXED **
C ******************************************
C
C
IF(ICOM.EQ.'XYMA')GOTO1700
IF(ICOM.EQ.'YXMA')GOTO1700
IF(ICOM.EQ.'MAXI')GOTO1700
IF(ICOM.EQ.'MAX ')GOTO1700
GOTO1799
C
1700 CONTINUE
IF(NUMARG.LE.0)GOTO1710
IF(IARGT(1).EQ.'NUMB')GOTO1720
GOTO1710
C
1710 CONTINUE
IFOUND='YES'
GX1MAX=CPUMAX
GY1MAX=CPUMAX
GX2MAX=CPUMAX
GY2MAX=CPUMAX
IX1MAX='FLOA'
IY1MAX='FLOA'
IX2MAX='FLOA'
IY2MAX='FLOA'
1713 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1719
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1715)
1715 FORMAT('THE X AXIS MAXIMUM (FOR ALL 4')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1716)
1716 FORMAT('FRAME LINES) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1717)
1717 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1719 CONTINUE
GOTO9000
C
1720 CONTINUE
IFOUND='YES'
A1=ARG(1)
GX1MAX=A1
GY1MAX=A1
GX2MAX=A1
GY2MAX=A1
IX1MAX='FIXE'
IY1MAX='FIXE'
IX2MAX='FIXE'
IY2MAX='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1729
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1725)
1725 FORMAT('THE AXIS MAXIMUM (FOR ALL 4')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1726)GX1MAX
1726 FORMAT('FRAME LINES) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1729 CONTINUE
GOTO9000
C
1799 CONTINUE
GOTO9000
C
C ********************************************
C ** STEP 81-- **
C ** TREAT THE ? CASE-- **
C ** DUMP OUT CURRENT AND DEFAULT VALUES. **
C ********************************************
C
8100 CONTINUE
IFOUND='YES'
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8111)
8111 FORMAT('THE CURRENT AXIS MAXIMA ARE ')
CALL DPWRST('XXX','BUG ')
IF(IX1MAX.NE.'FLOA')WRITE(ICOUT,8112)GX1MAX
8112 FORMAT(' --X1 (BOTTOM HORIZONTAL) = ',E15.7)
IF(IX1MAX.NE.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IX1MAX.EQ.'FLOA')WRITE(ICOUT,8113)
8113 FORMAT(' --X1 (BOTTOM HORIZONTAL) = FLOAT & NEAT')
IF(IX1MAX.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IX2MAX.NE.'FLOA')WRITE(ICOUT,8114)GX2MAX
8114 FORMAT(' --X2 (TOP HORIZONTAL) = ',E15.7)
IF(IX2MAX.NE.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IX2MAX.EQ.'FLOA')WRITE(ICOUT,8115)
8115 FORMAT(' --X2 (TOP HORIZONTAL) = FLOAT & NEAT')
IF(IX2MAX.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IY1MAX.NE.'FLOA')WRITE(ICOUT,8116)GY1MAX
8116 FORMAT(' --Y1 (LEFT VERTICAL ) = ',E15.7)
IF(IY1MAX.NE.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IY1MAX.EQ.'FLOA')WRITE(ICOUT,8117)
8117 FORMAT(' --Y1 (LEFT VERTICAL ) = FLOAT & NEAT')
IF(IY1MAX.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IY2MAX.NE.'FLOA')WRITE(ICOUT,8118)GY2MAX
8118 FORMAT(' --Y2 (RIGHT VERTICAL ) = ',E15.7)
IF(IY2MAX.NE.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IY2MAX.EQ.'FLOA')WRITE(ICOUT,8119)
8119 FORMAT(' --Y2 (RIGHT VERTICAL ) = FLOAT & NEAT')
IF(IY2MAX.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8121)
8121 FORMAT('THE DEFAULT AXIS MAXIMA ARE ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8122)
8122 FORMAT(' --X1 (BOTTOM HORIZONTAL) = FLOAT & NEAT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8123)
8123 FORMAT(' --X2 (TOP HORIZONTAL) = FLOAT & NEAT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8124)
8124 FORMAT(' --Y1 (LEFT VERTICAL ) = FLOAT & NEAT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8125)
8125 FORMAT(' --Y2 (BOTTOM VERTICAL ) = FLOAT & NEAT')
CALL DPWRST('XXX','BUG ')
GOTO9000
C
C ******************
C ** STEP 90-- **
C ** EXIT **
C ******************
C
9000 CONTINUE
RETURN
END
SUBROUTINE DPMBCO(IHARG,NUMARG,IDEMBC,MAXMAR,IMABCO,
1IBUGP2,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE MARKER BORDER COLORS = THE COLORS
C OF THE BORDER LINE AROUND THE MARKERS.
C THESE ARE LOCATED IN THE VECTOR IMABCO(.).
C INPUT ARGUMENTS--IHARG (A CHARACTER VECTOR)
C --NUMARG
C --IDEMBC
C --MAXMAR
C --IBUGP2 ('ON' OR 'OFF' )
C OUTPUT ARGUMENTS--IMABCO (A CHARACTER VECTOR)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--DECEMBER 1983.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IHARG
CHARACTER*4 IDEMBC
CHARACTER*4 IMABCO
C
CHARACTER*4 IBUGP2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHOLD1
CHARACTER*4 IHOLD2
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
DIMENSION IHARG(*)
DIMENSION IMABCO(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
ISUBN1='DPMB'
ISUBN2='CO '
C
NUMMAR=0
IHOLD1='-999'
IHOLD2='-999'
C
IF(IBUGP2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMBCO--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGP2,IFOUND,IERROR
52 FORMAT('IBUGP2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)MAXMAR,NUMMAR
53 FORMAT('MAXMAR,NUMMAR = ',I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)IHOLD1,IHOLD2
54 FORMAT('IHOLD1,IHOLD2 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)IDEMBC
55 FORMAT('IDEMBC = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,60)NUMARG
60 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO65I=1,NUMARG
WRITE(ICOUT,66)IHARG(I)
66 FORMAT('IHARG(I) = ',A4)
CALL DPWRST('XXX','BUG ')
65 CONTINUE
WRITE(ICOUT,70)IMABCO(1)
70 FORMAT('IMABCO(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO75I=1,10
WRITE(ICOUT,76)I,IMABCO(I)
76 FORMAT('I,IMABCO(I) = ',I8,2X,A4)
CALL DPWRST('XXX','BUG ')
75 CONTINUE
90 CONTINUE
C
C **************************************
C ** STEP 1-- **
C ** BRANCH TO THE APPROPRIATE CASE **
C **************************************
C
ISTEPN='1'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.1)GOTO9000
IF(NUMARG.EQ.2)GOTO1120
IF(NUMARG.EQ.3)GOTO1130
IF(NUMARG.EQ.4)GOTO1140
GOTO1150
C
1120 CONTINUE
GOTO1200
C
1130 CONTINUE
IF(IHARG(3).EQ.'ALL')IHOLD1=' '
IF(IHARG(3).EQ.'ALL')GOTO1300
GOTO1200
C
1140 CONTINUE
IF(IHARG(3).EQ.'ALL')IHOLD1=IHARG(4)
IF(IHARG(3).EQ.'ALL')GOTO1300
IF(IHARG(4).EQ.'ALL')IHOLD1=IHARG(3)
IF(IHARG(4).EQ.'ALL')GOTO1300
GOTO1200
C
1150 CONTINUE
GOTO1200
C
C *************************************************
C ** STEP 2-- **
C ** TREAT THE SINGLE SPECIFICATION CASE **
C *************************************************
C
1200 CONTINUE
ISTEPN='2'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.2)GOTO1210
GOTO1220
C
1210 CONTINUE
NUMMAR=1
IMABCO(1)=IDEMBC
GOTO1270
C
1220 CONTINUE
NUMMAR=NUMARG-2
IF(NUMMAR.GT.MAXMAR)NUMMAR=MAXMAR
DO1225I=1,NUMMAR
J=I+2
IHOLD1=IHARG(J)
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2=IDEMBC
IF(IHOLD1.EQ.'OFF')IHOLD2=IDEMBC
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDEMBC
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDEMBC
IMABCO(I)=IHOLD2
1225 CONTINUE
GOTO1270
C
1270 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1279
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO1278I=1,NUMMAR
WRITE(ICOUT,1276)I,IMABCO(I)
1276 FORMAT('THE COLOR OF MARKER BORDER ',I6,
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1278 CONTINUE
1279 CONTINUE
IFOUND='YES'
GOTO9000
C
C **************************
C ** STEP 3-- **
C ** TREAT THE ALL CASE **
C **************************
C
1300 CONTINUE
ISTEPN='3'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMMAR=MAXMAR
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2=IDEMBC
IF(IHOLD1.EQ.'OFF')IHOLD2=IDEMBC
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDEMBC
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDEMBC
DO1315I=1,NUMMAR
IMABCO(I)=IHOLD2
1315 CONTINUE
GOTO1370
C
1370 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1319
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
I=1
WRITE(ICOUT,1316)IMABCO(I)
1316 FORMAT('THE COLOR OF ALL MARKER BORDERS',
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
IFOUND='YES'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGP2.EQ.'OFF')GOTO9090
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMBCO--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGP2,IFOUND,IERROR
9012 FORMAT('IBUGP2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)MAXMAR,NUMMAR
9013 FORMAT('MAXMAR,NUMMAR = ',I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)IHOLD1,IHOLD2
9014 FORMAT('IHOLD1,IHOLD2 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)IDEMBC
9015 FORMAT('IDEMBC = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9020)NUMARG
9020 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO9025I=1,NUMARG
WRITE(ICOUT,9026)IHARG(I)
9026 FORMAT('IHARG(I) = ',A4)
CALL DPWRST('XXX','BUG ')
9025 CONTINUE
WRITE(ICOUT,9030)IMABCO(1)
9030 FORMAT('IMABCO(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO9035I=1,10
WRITE(ICOUT,9036)I,IMABCO(I)
9036 FORMAT('I,IMABCO(I) = ',I8,2X,A4)
CALL DPWRST('XXX','BUG ')
9035 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMBLI(IHARG,IHARG2,NUMARG,IDEMBL,MAXMAR,IMABLI,
CCCCC AUGUST 1995. ADD IHARG2 FOR DASH2, ETC
CCCCC SUBROUTINE DPMBLI(IHARG,NUMARG,IDEMBL,MAXMAR,IMABLI,
1IBUGP2,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE BORDER LINES = THE LINES TYPES
C OF THE BORDER AROUND THE MARKERS.
C THESE ARE LOCATED IN THE VECTOR IMABLI(.).
C INPUT ARGUMENTS--IHARG (A CHARACTER VECTOR)
C --NUMARG
C --IDEMBL
C --MAXMAR
C --IBUGP2 ('ON' OR 'OFF' )
C OUTPUT ARGUMENTS--IMABLI (A CHARACTER VECTOR)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--DECEMBER 1983.
C UPDATED --AUGUST 1995. DASH2 BUG
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IHARG
CCCCC AUGUST 1995. ADD FOLLOWING LINE
CHARACTER*4 IHARG2
CHARACTER*4 IDEMBL
CHARACTER*4 IMABLI
C
CHARACTER*4 IBUGP2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHOLD1
CHARACTER*4 IHOLD2
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
DIMENSION IHARG(*)
CCCCC AUGUST 1995. ADD FOLLOWING LINE
DIMENSION IHARG2(*)
DIMENSION IMABLI(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
ISUBN1='DPMB'
ISUBN2='LI '
C
NUMMAR=0
IHOLD1='-999'
IHOLD2='-999'
C
IF(IBUGP2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMBLI--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGP2,IFOUND,IERROR
52 FORMAT('IBUGP2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)MAXMAR,NUMMAR
53 FORMAT('MAXMAR,NUMMAR = ',I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)IHOLD1,IHOLD2
54 FORMAT('IHOLD1,IHOLD2 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)IDEMBL
55 FORMAT('IDEMBL = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,60)NUMARG
60 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO65I=1,NUMARG
WRITE(ICOUT,66)IHARG(I)
66 FORMAT('IHARG(I) = ',A4)
CALL DPWRST('XXX','BUG ')
65 CONTINUE
WRITE(ICOUT,70)IMABLI(1)
70 FORMAT('IMABLI(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO75I=1,10
WRITE(ICOUT,76)I,IMABLI(I)
76 FORMAT('I,IMABLI(I) = ',I8,2X,A4)
CALL DPWRST('XXX','BUG ')
75 CONTINUE
90 CONTINUE
C
C **************************************
C ** STEP 1-- **
C ** BRANCH TO THE APPROPRIATE CASE **
C **************************************
C
ISTEPN='1'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.2)GOTO9000
IF(NUMARG.EQ.3)GOTO1130
IF(NUMARG.EQ.4)GOTO1140
IF(NUMARG.EQ.5)GOTO1150
GOTO1160
C
1130 CONTINUE
GOTO1200
C
1140 CONTINUE
IF(IHARG(5).EQ.'ALL')IHOLD1=' '
IF(IHARG(5).EQ.'ALL')GOTO1300
GOTO1200
C
1150 CONTINUE
IF(IHARG(5).EQ.'ALL')THEN
IHOLD1=IHARG(6)
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(6).EQ.'2')IHOLD1='DA2'
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(6).EQ.'3')IHOLD1='DA3'
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(6).EQ.'4')IHOLD1='DA4'
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(6).EQ.'5')IHOLD1='DA5'
GOTO1300
ENDIF
IF(IHARG(6).EQ.'ALL')THEN
IHOLD1=IHARG(5)
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(5).EQ.'2')IHOLD1='DA2'
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(5).EQ.'3')IHOLD1='DA3'
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(5).EQ.'4')IHOLD1='DA4'
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(5).EQ.'5')IHOLD1='DA5'
GOTO1300
ENDIF
GOTO1200
C
1160 CONTINUE
GOTO1200
C
C *************************************************
C ** STEP 2-- **
C ** TREAT THE SINGLE SPECIFICATION CASE **
C *************************************************
C
1200 CONTINUE
ISTEPN='2'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.3)GOTO1210
GOTO1220
C
1210 CONTINUE
NUMMAR=1
IMABLI(1)=' '
GOTO1270
C
1220 CONTINUE
NUMMAR=NUMARG-3
IF(NUMMAR.GT.MAXMAR)NUMMAR=MAXMAR
DO1225I=1,NUMMAR
J=I+3
IHOLD1=IHARG(J)
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(J).EQ.'2')IHOLD1='DA2'
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(J).EQ.'3')IHOLD1='DA3'
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(J).EQ.'4')IHOLD1='DA4'
IF(IHOLD1.EQ.'DASH'.AND.IHARG2(J).EQ.'5')IHOLD1='DA5'
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2='SOLI'
IF(IHOLD1.EQ.'OFF')IHOLD2=' '
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDEMBL
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDEMBL
IMABLI(I)=IHOLD2
1225 CONTINUE
GOTO1270
C
1270 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1279
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO1278I=1,NUMMAR
WRITE(ICOUT,1276)I,IMABLI(I)
1276 FORMAT('THE LINE TYPE FOR MARKER BORDER ',I6,
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1278 CONTINUE
1279 CONTINUE
IFOUND='YES'
GOTO9000
C
C **************************
C ** STEP 3-- **
C ** TREAT THE ALL CASE **
C **************************
C
1300 CONTINUE
ISTEPN='3'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMMAR=MAXMAR
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2='SOLI'
IF(IHOLD1.EQ.'OFF')IHOLD2=' '
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDEMBL
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDEMBL
DO1315I=1,NUMMAR
IMABLI(I)=IHOLD2
1315 CONTINUE
GOTO1370
C
1370 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1319
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
I=1
WRITE(ICOUT,1316)IMABLI(I)
1316 FORMAT('THE LINE TYPE FOR ALL MARKER BORDERS',
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
IFOUND='YES'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGP2.EQ.'OFF')GOTO9090
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMBLI--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGP2,IFOUND,IERROR
9012 FORMAT('IBUGP2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)MAXMAR,NUMMAR
9013 FORMAT('MAXMAR,NUMMAR = ',I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)IHOLD1,IHOLD2
9014 FORMAT('IHOLD1,IHOLD2 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)IDEMBL
9015 FORMAT('IDEMBL = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9020)NUMARG
9020 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO9025I=1,NUMARG
WRITE(ICOUT,9026)IHARG(I)
9026 FORMAT('IHARG(I) = ',A4)
CALL DPWRST('XXX','BUG ')
9025 CONTINUE
WRITE(ICOUT,9030)IMABLI(1)
9030 FORMAT('IMABLI(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO9035I=1,10
WRITE(ICOUT,9036)I,IMABLI(I)
9036 FORMAT('I,IMABLI(I) = ',I8,2X,A4)
CALL DPWRST('XXX','BUG ')
9035 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMBTH(IHARG,IARGT,ARG,NUMARG,PDEMBT,MAXMAR,PMABTH,
1IBUGP2,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE MARKER (BORDER) LINE THICKNESSES = THE THICKNESSES
C OF THE BORDER LINE AROUND THE MARKERS.
C THESE ARE LOCATED IN THE VECTOR PMABTH(.).
C INPUT ARGUMENTS--IHARG (A CHARACTER VECTOR)
C --IARGT (A CHARACTER VECTOR)
C --ARG
C --NUMARG
C --PDEMBT
C --MAXMAR
C --IBUGP2 ('ON' OR 'OFF' )
C OUTPUT ARGUMENTS--PMABTH (A FLOATING POINT VECTOR)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--DECEMBER 1983.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IHARG
CHARACTER*4 IARGT
C
CHARACTER*4 IBUGP2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHOLD1
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
DIMENSION IHARG(*)
DIMENSION IARGT(*)
DIMENSION ARG(*)
DIMENSION PMABTH(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
ISUBN1='DPMB'
ISUBN2='TH '
C
NUMMAR=0
IHOLD1='-999'
HOLD1=-999.0
HOLD2=-999.0
C
IF(IBUGP2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMBTH--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGP2,IFOUND,IERROR
52 FORMAT('IBUGP2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)MAXMAR,NUMMAR
53 FORMAT('MAXMAR,NUMMAR = ',I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)IHOLD1,HOLD1,HOLD2
54 FORMAT('IHOLD1,HOLD1,HOLD2 = ',A4,2E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)PDEMBT
55 FORMAT('PDEMBT = ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,60)NUMARG
60 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO65I=1,NUMARG
WRITE(ICOUT,66)IHARG(I),IARGT(I),ARG(I)
66 FORMAT('IHARG(I),IARGT(I),ARG(I) = ',A4,2X,A4,I8)
CALL DPWRST('XXX','BUG ')
65 CONTINUE
WRITE(ICOUT,70)PMABTH(1)
70 FORMAT('PMABTH(1) = ',E15.7)
CALL DPWRST('XXX','BUG ')
DO75I=1,10
WRITE(ICOUT,76)I,PMABTH(I)
76 FORMAT('I,PMABTH(I) = ',I8,2X,E15.7)
CALL DPWRST('XXX','BUG ')
75 CONTINUE
90 CONTINUE
C
C **************************************
C ** STEP 1-- **
C ** BRANCH TO THE APPROPRIATE CASE **
C **************************************
C
ISTEPN='1'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.1)GOTO9000
IF(NUMARG.EQ.2)GOTO1120
IF(NUMARG.EQ.3)GOTO1130
IF(NUMARG.EQ.4)GOTO1140
GOTO1150
C
1120 CONTINUE
GOTO1200
C
1130 CONTINUE
IF(IHARG(3).EQ.'ALL')IHOLD1=' '
IF(IHARG(3).EQ.'ALL')HOLD1=PDEMBT
IF(IHARG(3).EQ.'ALL')GOTO1300
GOTO1200
C
1140 CONTINUE
IF(IHARG(3).EQ.'ALL')IHOLD1=IHARG(4)
IF(IHARG(3).EQ.'ALL')HOLD1=ARG(4)
IF(IHARG(3).EQ.'ALL')GOTO1300
IF(IHARG(4).EQ.'ALL')IHOLD1=IHARG(3)
IF(IHARG(4).EQ.'ALL')HOLD1=ARG(3)
IF(IHARG(4).EQ.'ALL')GOTO1300
GOTO1200
C
1150 CONTINUE
GOTO1200
C
C *************************************************
C ** STEP 2-- **
C ** TREAT THE SINGLE SPECIFICATION CASE **
C *************************************************
C
1200 CONTINUE
ISTEPN='2'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.2)GOTO1210
GOTO1220
C
1210 CONTINUE
NUMMAR=1
PMABTH(1)=PDEMBT
GOTO1270
C
1220 CONTINUE
NUMMAR=NUMARG-2
IF(NUMMAR.GT.MAXMAR)NUMMAR=MAXMAR
DO1225I=1,NUMMAR
J=I+2
IHOLD1=IHARG(J)
HOLD1=ARG(J)
HOLD2=HOLD1
IF(IHOLD1.EQ.'ON')HOLD2=PDEMBT
IF(IHOLD1.EQ.'OFF')HOLD2=PDEMBT
IF(IHOLD1.EQ.'AUTO')HOLD2=PDEMBT
IF(IHOLD1.EQ.'DEFA')HOLD2=PDEMBT
PMABTH(I)=HOLD2
1225 CONTINUE
GOTO1270
C
1270 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1279
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO1278I=1,NUMMAR
WRITE(ICOUT,1276)I,PMABTH(I)
1276 FORMAT('THE THICKNESS OF MARKER BORDER ',I6,
1' HAS JUST BEEN SET TO ',E15.7)
CALL DPWRST('XXX','BUG ')
1278 CONTINUE
1279 CONTINUE
IFOUND='YES'
GOTO9000
C
C **************************
C ** STEP 3-- **
C ** TREAT THE ALL CASE **
C **************************
C
1300 CONTINUE
ISTEPN='3'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMMAR=MAXMAR
HOLD2=HOLD1
IF(IHOLD1.EQ.'ON')HOLD2=PDEMBT
IF(IHOLD1.EQ.'OFF')HOLD2=PDEMBT
IF(IHOLD1.EQ.'AUTO')HOLD2=PDEMBT
IF(IHOLD1.EQ.'DEFA')HOLD2=PDEMBT
DO1315I=1,NUMMAR
PMABTH(I)=HOLD2
1315 CONTINUE
GOTO1370
C
1370 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1319
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
I=1
WRITE(ICOUT,1316)PMABTH(I)
1316 FORMAT('THE THICKNESS OF ALL MARKER BORDERS',
1' HAS JUST BEEN SET TO ',E15.7)
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
IFOUND='YES'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGP2.EQ.'OFF')GOTO9090
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMBTH--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGP2,IFOUND,IERROR
9012 FORMAT('IBUGP2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)MAXMAR,NUMMAR
9013 FORMAT('MAXMAR,NUMMAR = ',I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)IHOLD1,HOLD1,HOLD2
9014 FORMAT('IHOLD1,HOLD1,HOLD2 = ',A4,2E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)PDEMBT
9015 FORMAT('PDEMBT = ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9020)NUMARG
9020 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO9025I=1,NUMARG
WRITE(ICOUT,9026)IHARG(I),IARGT(I),ARG(I)
9026 FORMAT('IHARG(I),IARGT(I),ARG(I) = ',A4,2X,A4,I8)
CALL DPWRST('XXX','BUG ')
9025 CONTINUE
WRITE(ICOUT,9030)PMABTH(1)
9030 FORMAT('PMABTH(1) = ',E15.7)
CALL DPWRST('XXX','BUG ')
DO9035I=1,10
WRITE(ICOUT,9036)I,PMABTH(I)
9036 FORMAT('I,PMABTH(I) = ',I8,2X,E15.7)
CALL DPWRST('XXX','BUG ')
9035 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMED3(X1,X2,X3,XMED3,IBUGG3,IERROR)
C
C PURPOSE--THIS SUBROUTINE COMPUTES THE
C SAMPLE MEDIAN
C OF THE 3 NUMBERS X1, X2, AND X3.
C OUTPUT ARGUMENTS--XMED3 = THE SINGLE PRECISION VALUE OF THE
C COMPUTED SAMPLE MEDIAN.
C OUTPUT--THE COMPUTED SINGLE PRECISION VALUE OF THE
C SAMPLE MEDIAN.
C LANGUAGE--ANSI FORTRAN (1977)
C REFERENCES--MCNEIL, INTERACTIVE DATA ANALYSIS
C 1977, PAGE 145
C (= SOURCE OF ALGORITHM).
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C VERSION NUMBER--83.6
C ORIGINAL VERSION--JULY 1983.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IBUGG3
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IERROR='NO'
C
IF(IBUGG3.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMED3--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGG3
52 FORMAT('IBUGG3 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)X1,X2,X3
53 FORMAT('X1,X2,X3 = ',3E15.7)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **********************
C ** COMPUTE MEDIAN **
C **********************
C
XMED3=X2
IF(X1.LE.X2.AND.X2.LE.X3)GOTO9000
IF(X3.LE.X2.AND.X2.LE.X1)GOTO9000
C
XMED3=X1
IF(X2.LE.X1.AND.X1.LE.X3)GOTO9000
IF(X3.LE.X1.AND.X1.LE.X2)GOTO9000
C
XMED3=X3
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT. **
C *****************
C
9000 CONTINUE
IF(IBUGG3.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMED3--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGG3,IERROR
9012 FORMAT('IBUGG3,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)X1,X2,X3
9013 FORMAT('X1,X2,X3 = ',3E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)XMED3
9014 FORMAT('XMED3 = ',E15.7)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMENU(ICOM,ICOM2,ICOMT,ICOMI,
1IHARG,IHARG2,IARGT,IARG,NUMARG,
1IMENSW,
1IME1CO,IME1AL,IME2CO,IME2AL,
1IME3CO,IME3AL,IME4CO,IME4AL,
1IME5CO,IME5AL,IME6CO,IME6AL,
1IME7CO,IME7AL,IME8CO,IME8AL,
1IME9CO,IME9AL,IM10CO,IM10AL,
1IM11CO,IM11AL,IM12CO,IM12AL,
1IM13CO,IM13AL,IM14CO,IM14AL,
1IM15CO,IM15AL,IM16CO,IM16AL,
1IM17CO,IM17AL,IM18CO,IM18AL,
1IM19CO,IM19AL,IM20CO,IM20AL,
1IMENCO,IMENAL,
1IHELMX,ICPREH,NCPREH,ICPOSH,NCPOSH,
1IANS,IWIDTH,IBUGME,IBUGM2,ISUBRO,IFOUND,IERROR)
CCCCC THE ABOVE ARG LIST EXPANDED AUGUST 1990
CCCCC THE IHELMX LINE WAS ADDED TO ABOVE ARGUMENT LIST AUGUST 1990
C
C PURPOSE--DETERMINE IF DATAPLOT'S MENU SYSTEM
C COMMAND IS BEING INVOKED AND/OR
C DETERMINE IF A USER'S MENU DESIGNATION IS VALID.
C THIS SUBROUTINE IN TURN CALLS DPMEN2
C WHICH READS THE DESIGNATED MENU
C FROM (ONE OF) DATAPLOT'S MENU SUB-SYSTEM FILE(S),
C AND WRITES THE MENU OUT TO SCREEN.
C INPUT ARGUMENTS--ICOM ETC.
C OUTPUT ARGUMENTS--IMENSW, IMENCO, AND IMENAL
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--90/7
C ORIGINAL VERSION--JUNE 1990.
C UPDATED --AUGUST 1990. MENU 11 TO 20
C UPDATED --AUGUST 1990. NEW INPUT ARGUMENTS
C UPDATED --AUGUST 1990. NEW MENU
C UPDATED --AUGUST 1990. MORE/PAUSE WITH MENU
C UPDATED --AUGUST 1990. TOP AND T
C UPDATED --AUGUST 1990. UP AND U
C UPDATED --MARCH 1993. CONFLICTS WITH T TEST, T PPF, AND
C T PROBABILTY PLOT
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICOM
CHARACTER*4 ICOM2
CHARACTER*4 ICOMT
C
CHARACTER*4 IHARG
CHARACTER*4 IHARG2
CHARACTER*4 IARGT
C
CHARACTER*4 IMENSW
C
CHARACTER*12 IME1CO
CHARACTER*4 IME1AL
C
CHARACTER*12 IME2CO
CHARACTER*4 IME2AL
C
CHARACTER*12 IME3CO
CHARACTER*4 IME3AL
C
CHARACTER*12 IME4CO
CHARACTER*4 IME4AL
C
CHARACTER*12 IME5CO
CHARACTER*4 IME5AL
C
CHARACTER*12 IME6CO
CHARACTER*4 IME6AL
C
CHARACTER*12 IME7CO
CHARACTER*4 IME7AL
C
CHARACTER*12 IME8CO
CHARACTER*4 IME8AL
C
CHARACTER*12 IME9CO
CHARACTER*4 IME9AL
C
CCCCC THE FOLLOWING 11 SECTIONS (10 TO 20) WERE ADDED AUGUST 1990
CHARACTER*12 IM10CO
CHARACTER*4 IM10AL
C
CHARACTER*12 IM11CO
CHARACTER*4 IM11AL
C
CHARACTER*12 IM12CO
CHARACTER*4 IM12AL
C
CHARACTER*12 IM13CO
CHARACTER*4 IM13AL
C
CHARACTER*12 IM14CO
CHARACTER*4 IM14AL
C
CHARACTER*12 IM15CO
CHARACTER*4 IM15AL
C
CHARACTER*12 IM16CO
CHARACTER*4 IM16AL
C
CHARACTER*12 IM17CO
CHARACTER*4 IM17AL
C
CHARACTER*12 IM18CO
CHARACTER*4 IM18AL
C
CHARACTER*12 IM19CO
CHARACTER*4 IM19AL
C
CHARACTER*12 IM20CO
CHARACTER*4 IM20AL
C
CHARACTER*12 IMENCO
CHARACTER*4 IMENAL
C
CCCCC THE FOLLOWING 2 LINES WERE ADDED AUGUST 1990
CHARACTER*40 ICPREH
CHARACTER*40 ICPOSH
C
CHARACTER*4 IANS
CHARACTER*4 IBUGME
CHARACTER*4 IBUGM2
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IH11
CHARACTER*4 IH12
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*4 ICJUNK
CHARACTER*80 ISTRIN
C
DIMENSION IHARG(*)
DIMENSION IHARG2(*)
DIMENSION IARGT(*)
DIMENSION IARG(*)
C
DIMENSION IANS(*)
C
C-----COMMON----------------------------------------------------------
C
CCCCC INCLUDE 'DPCOFO.INC'
INCLUDE 'DPCOWI.INC'
INCLUDE 'DPCONP.INC'
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ICURWI=0
C
50 CONTINUE
C
ISUBN1='DPME'
ISUBN2='NU '
C
IFOUND='NO'
IERROR='NO'
C
IMENAL='OFF'
C
MAXCPS=12
C
I2=(-999)
C
IF(IBUGME.EQ.'OFF'.AND.ISUBRO.NE.'MENU')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMENU--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IMENSW
52 FORMAT('IMENSW = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,61)IME1CO,IME1AL
61 FORMAT('IME1CO,IME1AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,62)IME2CO,IME2AL
62 FORMAT('IME2CO,IME2AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,63)IME3CO,IME3AL
63 FORMAT('IME3CO,IME3AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,64)IME4CO,IME4AL
64 FORMAT('IME4CO,IME4AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,65)IME5CO,IME5AL
65 FORMAT('IME5CO,IME5AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,66)IME6CO,IME6AL
66 FORMAT('IME6CO,IME6AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,67)IME7CO,IME7AL
67 FORMAT('IME7CO,IME7AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,68)IME8CO,IME8AL
68 FORMAT('IME8CO,IME8AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,69)IME9CO,IME9AL
69 FORMAT('IME9CO,IME9AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
CCCCC THE FOLLOWING 11 PAIRS OF LINES WERE ADDED AUGUST 1990
WRITE(ICOUT,70)IM10CO,IM10AL
70 FORMAT('IM10CO,IM10AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,71)IM11CO,IM11AL
71 FORMAT('IM11CO,IM11AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,72)IM12CO,IM12AL
72 FORMAT('IM12CO,IM12AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,73)IM13CO,IM13AL
73 FORMAT('IM13CO,IM13AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,74)IM14CO,IM14AL
74 FORMAT('IM14CO,IM14AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,75)IM15CO,IM15AL
75 FORMAT('IM15CO,IM15AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,76)IM16CO,IM16AL
76 FORMAT('IM16CO,IM16AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,77)IM17CO,IM17AL
77 FORMAT('IM17CO,IM17AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,78)IM18CO,IM18AL
78 FORMAT('IM18CO,IM18AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,79)IM19CO,IM19AL
79 FORMAT('IM19CO,IM19AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,80)IM20CO,IM20AL
80 FORMAT('IM20CO,IM20AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,84)IMENCO,IMENAL
84 FORMAT('IMENCO,IMENAL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,85)IWIDTH
85 FORMAT('IWIDTH = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,86)(IANS(I),I=1,80)
86 FORMAT('(IANS(I),I=1,80) = ',80A1)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,87)IBUGME,IBUGM2,IERROR
87 FORMAT('IBUGME,IBUGM2,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************************************************
C ** STEP 11-- **
C ** DETERMINE IF HAVE AN MENU COMMAND, OR **
C ** IF HAVE A MENU RESPONSE NUMBER TO A MENU, OR **
C ** IF HAVE NEITHER. **
C **************************************************************
C
1100 CONTINUE
ISTEPN='11'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICOM.EQ.'MENU')GOTO1200
CCCCC THE FOLLOWING 2 LINES WERE ADDED AUGUST 1990
IF(ICOM.EQ.'TOP')GOTO1200
CCCCC DECEMBER 1992. CHECK FOR CONFLICT WITH T TEST
CCCCC MARCH 1993. CHECK FOR CONFLICT WITH T PPCC PLOT
CCCCC MARCH 1993. CHECK FOR CONFLICT WITH T PROB PLOT
CCCCC IF(ICOM.EQ.'T')GOTO1200
CCCCC IF(ICOM.EQ.'T'.AND.IHARG(1).NE.'TEST')GOTO1200
IF(ICOM.EQ.'T'.AND.IHARG(1).EQ.'TEST')GOTO1109
IF(ICOM.EQ.'T'.AND.IHARG(1).EQ.'PPCC')GOTO1109
IF(ICOM.EQ.'T'.AND.IHARG(1).EQ.'PROB')GOTO1109
IF(ICOM.EQ.'T'.AND.IHARG(1).EQ.'KOLM')GOTO1109
IF(ICOM.EQ.'T'.AND.IHARG(1).EQ.'CHIS')GOTO1109
IF(ICOM.EQ.'T'.AND.IHARG(1).EQ.'CHI ')GOTO1109
IF(ICOM.EQ.'T'.AND.IHARG(1).EQ.'KS ')GOTO1109
IF(ICOM.EQ.'T'.AND.IHARG(1).EQ.'CENS')GOTO1109
IF(ICOM.EQ.'T'.AND.IHARG(1).EQ.'PLOT')GOTO1109
IF(ICOM.EQ.'BOOT')GOTO1109
IF(ICOM.EQ.'T')GOTO1200
1109 CONTINUE
CCCCC THE FOLLOWING 2 LINES WERE ADDED AUGUST 1990
IF(ICOM.EQ.'UP')GOTO1600
CCCCC DECEMBER 1992. CHECK FOR CONFLICT WITH U CHART
CCCCC IF(ICOM.EQ.'U')GOTO1600
IF(ICOM.EQ.'U'.AND.IHARG(1).NE.'CHAR')GOTO1600
IF(ICOM(1:1).EQ.IESCC)GOTO1600
IF(ICOM.EQ.'.')GOTO9000
IF(ICOM.EQ.' ')GOTO9000
IF(ICOM.EQ.'P'.AND.NUMARG.GE.1.AND.IHARG(1).EQ.'CHAR')GOTO9000
IF(ICOM.EQ.'P'.AND.NUMARG.GE.1.AND.IHARG(1).EQ.'CONT')GOTO9000
IF(ICOM.EQ.'P')GOTO1700
CCCCC IF(NUMARG.LE.0.AND.ICOM.EQ.' ')GOTO2100
IF(NUMARG.LE.0.AND.ICOMT.EQ.'NUMB'.AND.ICOMI.EQ.0)GOTO2300
IF(NUMARG.LE.0.AND.ICOMT.EQ.'NUMB'.AND.ICOMI.GT.0)GOTO1500
IF(NUMARG.LE.0.AND.ICOMT.EQ.'NUMB'.AND.ICOMI.LT.0)GOTO1600
GOTO9000
C
C ***************************************
C ** STEP 12-- **
C ** TREAT THE CASE WHEN HAVE **
C ** AN EXPLICIT MENU COMMAND **
C ***************************************
C
1200 CONTINUE
ISTEPN='12'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.0)GOTO2100
IF(IHARG(1).EQ.'LAST')GOTO2100
IF(IHARG(1).EQ.'?')GOTO2100
IF(IHARG(1).EQ.'ALL')IMENAL='ON'
IF(IHARG(1).EQ.'ALL')GOTO2100
C
IF(IHARG(1).EQ.'UP')GOTO1300
IF(IHARG(1).EQ.'PRIO')GOTO1300
IF(IHARG(1).EQ.'PREV')GOTO1300
IF(IHARG(1).EQ.'BEFO')GOTO1300
C
GOTO1400
C
C ****************************************
C ** STEP 13 -- **
C ** TREAT THE MENU UP # CASE **
C ****************************************
C
1300 CONTINUE
ISTEPN='13'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IMENCO.EQ.'0 ')IMENSW='TOP'
IF(IMENCO.EQ.'0 ')GOTO2100
IF(IMENCO.EQ.' ')IMENSW='TOP'
IF(IMENCO.EQ.' ')GOTO2100
C
NLOOP=1
IF(NUMARG.GE.2.AND.IARGT(2).EQ.'NUMB')NLOOP=IARG(2)
IF(NLOOP.LE.1)NLOOP=1
C
DO1310ILOOP=1,NLOOP
C
DO1320I=1,MAXCPS
IREV=MAXCPS-I+1
IF(IMENCO(IREV:IREV).EQ.'.')GOTO1325
IMENCO(IREV:IREV)=' '
1320 CONTINUE
GOTO1310
1325 CONTINUE
IMENCO(IREV:IREV)=' '
GOTO1310
C
1310 CONTINUE
GOTO2100
C
C *************************************
C ** STEP 14-- **
C ** TREAT THE MENU # CASE **
C *************************************
C
1400 CONTINUE
ISTEPN='14'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'DP')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'DATA')GOTO1490
IF(NUMARG.GE.2.AND.IHARG(1).EQ.'DATA')GOTO1490
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'COMM')GOTO1490
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'FUNC')GOTO1490
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'TEXT')GOTO1490
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'DEXP')GOTO1490
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'TUTO')GOTO1490
IF(NUMARG.GE.2.AND.IHARG(1).EQ.'I/O')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'GRAP')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'STAT')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'STAC')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'STAI')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'PROB')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'MATH')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'SCIE')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'ENGI')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'BUSI')GOTO1490
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'MISC')GOTO1490
C
IH11=IHARG(1)
IH12=IHARG2(1)
IMENCO(1:4)=IH11(1:4)
IMENCO(5:8)=IH12(1:4)
IMENCO(9:12)=' '
C
1490 CONTINUE
GOTO2100
C
C *****************************************
C ** STEP 15-- **
C ** TREAT THE # CASE **
C ** (AS IN RESPONDING TO A MENU **
C ** BY SPECIFYING A MENU ITEM CHOICE) **
C *****************************************
C
1500 CONTINUE
ISTEPN='15'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IMENSW.EQ.'TOP')IMENCO='0 '
IF(IMENSW.EQ.'TOP')GOTO2100
C
IF(IMENCO(1:1).EQ.'0')GOTO1510
GOTO1520
C
1510 CONTINUE
I2=0
GOTO1530
C
1520 CONTINUE
DO1525I=1,MAXCPS
I2=I
IF(IMENCO(I2:I2).EQ.' ')GOTO1526
1525 CONTINUE
GOTO1539
1526 CONTINUE
IMENCO(I2:I2)='.'
GOTO1530
C
1530 CONTINUE
DO1535J=1,4
I2=I2+1
IF(I2.GT.MAXCPS)GOTO1539
IMENCO(I2:I2)=ICOM(J:J)
1535 CONTINUE
1539 CONTINUE
GOTO2100
C
C *****************************************
C ** STEP 16-- **
C ** TREAT THE -# CASE **
C ** (AS IN CALLING FOR PRIOR MENUS **
C *****************************************
C
1600 CONTINUE
ISTEPN='16'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IMENCO.EQ.'0 ')IMENSW='TOP'
IF(IMENCO.EQ.'0 ')GOTO2100
IF(IMENCO.EQ.' ')IMENSW='TOP'
IF(IMENCO.EQ.' ')GOTO2100
C
NLOOP=1
IF(ICOMT.EQ.'NUMB')NLOOP=(-ICOMI)
C
CCCCC THE FOLLOWING 5 LINES WERE ADDED AUGUST 1990
IF(ICOM.EQ.'UP'.AND.NUMARG.LE.0)GOTO1609
IF(ICOM.EQ.'U'.AND.NUMARG.LE.0)GOTO1609
IF(ICOM.EQ.'UP'.AND.NUMARG.GE.1)NLOOP=IARG(1)
IF(ICOM.EQ.'U'.AND.NUMARG.GE.1)NLOOP=IARG(1)
1609 CONTINUE
C
IF(NLOOP.LE.0)GOTO1619
DO1610ILOOP=1,NLOOP
C
DO1620I=1,MAXCPS
IREV=MAXCPS-I+1
IF(IMENCO(IREV:IREV).EQ.'.')GOTO1621
IMENCO(IREV:IREV)=' '
1620 CONTINUE
GOTO1610
1621 CONTINUE
IMENCO(IREV:IREV)=' '
GOTO1610
C
1610 CONTINUE
C
1619 CONTINUE
CCCCC IF(NLOOP.LE.0)GOTO1639
CCCCC DO1630ILOOP=1,NLOOP
CCCCC IF(IWINSY.EQ.'OTG')GOTO1632
CCCCC GOTO1630
C1632 CONTINUE
CCCCC CALL WICLOS('ON ','OFF ',ICURWI)
CCCCC IF(ICURWI.LE.2)CALL WIEXIT('ON ')
CCCCC ICURWI=ICURWI-1
CCCCC GOTO1630
C1630 CONTINUE
C1639 CONTINUE
C
GOTO2100
C
C *****************************************
C ** STEP 17-- **
C ** TREAT THE CASE WHEN HAVE AN EXPLICIT
C ** P COMMAND ( P AS IN 'PREVIOUS')
C ** TREAT THE p # CASE **
C ** (AS IN CALLING FOR ITEM # **
C ** OF THE PREVIOUS MENU (A BASE MENU)
C *****************************************
C
1700 CONTINUE
ISTEPN='17'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IMENCO.EQ.'0 ')IMENSW='TOP'
IF(IMENCO.EQ.'0 ')GOTO2100
IF(IMENCO.EQ.' ')IMENSW='TOP'
IF(IMENCO.EQ.' ')GOTO2100
C
IF(NUMARG.LE.0)GOTO2100
DO1720I=1,MAXCPS
IREV=MAXCPS-I+1
IF(IMENCO(IREV:IREV).EQ.'.')GOTO1721
IMENCO(IREV:IREV)=' '
1720 CONTINUE
IMENSW='TOP'
GOTO2100
1721 CONTINUE
I2=IREV
GOTO1730
C
1730 CONTINUE
DO1735J=1,4
I2=I2+1
IF(I2.GT.MAXCPS)GOTO1739
ICJUNK=IHARG(1)
IMENCO(I2:I2)=ICJUNK(J:J)
1735 CONTINUE
1739 CONTINUE
GOTO2100
C
1719 CONTINUE
GOTO2100
C
C *************************************************
C ** STEP 18-- **
C ** STRIP OFF TRAILING PERIOD (IF ONE EXISTS) **
C *************************************************
C
1800 CONTINUE
ISTEPN='18'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO1810I=1,MAXCPS
IREV=MAXCPS-I+1
IF(IMENCO(IREV:IREV).NE.' ')GOTO1811
1810 CONTINUE
GOTO1890
1811 CONTINUE
IF(IMENCO(IREV:IREV).EQ.'.')IMENCO(IREV:IREV)=' '
GOTO1890
1890 CONTINUE
C
C *********************************************
C ** STEP 21-- **
C ** BRANCH BETWEEN THE OVERALL MENU **
C ** OR THE GENERAL MENU WITHIN EACH AREA. **
C *********************************************
C
2100 CONTINUE
ISTEPN='21'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IFOUND='YES'
IF(IMENCO.EQ.' ')IMENCO='0 '
IF(ICOM.EQ.'MENU'.AND.NUMARG.LE.0)GOTO2200
CCCCC THE FOLLOWING 2 LINES WERE ADDED AUGUST 1990
IF(ICOM.EQ.'TOP'.AND.NUMARG.LE.0)GOTO2200
IF(ICOM.EQ.'T'.AND.NUMARG.LE.0)GOTO2200
CCCCC THE FOLLOWING 2 LINES WERE ADDED AUGUST 1990
IF(ICOM.EQ.'UP'.AND.IMENSW.EQ.'TOP')GOTO2200
IF(ICOM.EQ.'U'.AND.IMENSW.EQ.'TOP')GOTO2200
IF(IMENSW.EQ.'TOP'.AND.NUMARG.LE.0.AND.
1ICOM.EQ.' ')GOTO2200
IF(IMENSW.EQ.'TOP'.AND.NUMARG.LE.0.AND.
1ICOMT.EQ.'NUMB'.AND.ICOMI.LE.0)GOTO2200
GOTO2300
C
C **********************************************
C ** STEP 22-- **
C ** WRITE (TO THE SCREEN) THE OVERALL MENU **
C **********************************************
C
2200 CONTINUE
ISTEPN='22'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IMENSW='TOP'
C
CCCCC WRITE(ICOUT,2211)IESCC,IFFC
C2211 FORMAT(2A1)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,2212)IESCC
C2212 FORMAT(A1,'8')
CCCCC CALL DPWRST('XXX','BUG ')
C
CCCCC THE FOLLOWING SECTION WAS ADDED AUGUST 1990
C
IF(IWINSY.EQ.'NONE')GOTO2220
GOTO2250
C
2220 CONTINUE
WRITE(ICOUT,2221)
2221 FORMAT('For menu assistance at any time, enter HELP MENU')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2224)
2224 FORMAT('------------------------------------------------')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2230)
2230 FORMAT(' Top Menu')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2231)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2232)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2233)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2234)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2235)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2236)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2237)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2238)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2239)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2240)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2241)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2242)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2243)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2244)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2245)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2246)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2247)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,2248)
CCCCC CALL DPWRST('XXX','BUG ')
C
2231 FORMAT(5X,' 1. Dataplot --General')
2232 FORMAT(5X,' 2. --On-line Data Files')
2233 FORMAT(5X,' 3. --Commands +')
2234 FORMAT(5X,' 4. --Built-in Functions')
2235 FORMAT(5X,' 5. --TEXT Subcommands')
2236 FORMAT(5X,' 6. --Exp. Design Tables')
2237 FORMAT(5X,' 7. --Input/Output')
2238 FORMAT(5X,' 8. --Tutorial Examples')
2239 FORMAT(5X,' 9. Techniques --Graphics')
2240 FORMAT(5X,' 10. --Statistics--Classical')
2241 FORMAT(5X,' 11. --Statistics--Industrial')
2242 FORMAT(5X,' 12. --Experiment Design')
2243 FORMAT(5X,' 13. --Probability')
2244 FORMAT(5X,' 14. --Mathematics')
2245 FORMAT(5X,' 15. Applications--Science')
2246 FORMAT(5X,' 16. --Engineering')
2247 FORMAT(5X,' 17. --Business')
2248 FORMAT(5X,' 18. Miscellaneous')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
GOTO2290
C
2250 CONTINUE
CCCCC IF(ICURWI.LE.0)CALL WIINWS('OFF ')
IF(ICURWI.LE.0)CALL SHINIT(' ')
ICURWI=1
CCCCC CALL WISEWI(ICURWI)
CCCCC CALL WNSEL(1)
CCCCC CALL WISECO('BLUE','WHIT')
CALL WNACTN('FC')
CALL COLOR('RED ','GREE')
CCCCC CALL WISETY('PERM')
CCCCC CALL WISEFR('ON ')
CCCCC CALL WNACTN('FC')
CCCCC CALL WISELS(1,23,40,1)
CCCCC CALL WISEWR('OFF ')
CCCCC CALL WNWRAP('OFF ')
CCCCC CALL WIOPWI
CCCCC CALL WNOPEN(1,23,40,1)
CCCCC CALL WNOPEN(1,10,40,5)
CALL WNOPEN(IXJUNK,IYJUNK,IXJNK2,IYJNK2)
CCCCC CALL WIERWI
CCCCC CALL WNCLR
CCCCC CALL WIMOHO
CCCCC CALL WNHOME
CALL WNOUSX(3,3,'ABCDEF')
CALL WNCLOS(0)
CCCCC THE FOLLOWING LINE IS TEMPORARY
CCCCC IFLAG=0
IFLAG=1
IF(IFLAG.EQ.0)GOTO9999
GOTO9000
C
9999 CONTINUE
ICURWI=2
CCCCC CALL WISEWI(ICURWI)
CALL WNSEL(2)
MENWID=40
IX=1
IY=1
IXLEN=MENWID
IYLEN=20
CCCCC CALL WISECO('BLUE','WHIT')
CALL COLOR('WHIT','BLUE')
CCCCC CALL WISETY('POP ')
CCCCC CALL WISEFR('ON ')
CALL WNACTN('FCP')
CCCCC CALL WISELS(IX,IY,IXLEN,IYLEN)
CCCCC CALL WISEWR('OFF ')
CALL WNWRAP('OFF ')
CCCCC CALL WIOPWI
CALL WNOPEN(IX,IY,IXLEN,IYLEN)
CCCCC CALL WIERWI
CALL WNCLR
CCCCC CALL WIMOHO
CALL WNHOME
C
IY=0
IY=IY+1
ISTRIN=' Top Menu'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' '
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 1. Dataplot --General'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 2. --On-line Data Files'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 3. --Commands +'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 4. --Built-in Functions'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 5. --TEXT Subcommands'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 6. --Exp. Design Tables'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 7. --Input/Output'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' '
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 8. --Tutorial Examples'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 9. Techniques --Graphics'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 10. --Statistics--Classical'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 11. --Statistics--Industrial'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 12. --Experiment Design'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 13. --Probability'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 14. --Mathematics'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' '
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 15. Applications--Science'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 16. --Engineering'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
IY=IY+1
ISTRIN=' 17. --Business'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CALL WNOUSX(1,IY,ISTRIN)
CCCCC IY=IY+1
CCCCC ISTRIN=' '
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
CCCCC IY=IY+1
CCCCC ISTRIN=' 18. Miscellaneous'
CCCCC CALL WIMWST(1,IY,ISTRIN,80)
C
CCCCC CALL WISEWI(1)
CALL WNSEL(1)
CCCCC CALL WIERWI
CALL WNCLR
ISTRIN='>'
CCCCC CALL WIMWST(1,1,ISTRIN,1)
CALL WNOUSX(1,1,ISTRIN)
CCCCC CAUTION--THE FOLLOWING LINE REDEFINES THE INPUT VARIABLE ICOM
CCCCC CALL WIREST(ISTRIN,LENGTH)
CALL INSTR(ISTRIN,LENGTH)
ICOM(1:4)=ISTRIN(1:4)
NUMARG=0
ICOM2=' '
ICOMT='NUMB'
ICOMI=0
IF(ICOM.EQ.'1')ICOMI=1
IF(ICOM.EQ.'2')ICOMI=2
IF(ICOM.EQ.'3')ICOMI=3
IF(ICOM.EQ.'4')ICOMI=4
IF(ICOM.EQ.'5')ICOMI=5
IF(ICOM.EQ.'6')ICOMI=6
IF(ICOM.EQ.'7')ICOMI=7
IF(ICOM.EQ.'8')ICOMI=8
IF(ICOM.EQ.'9')ICOMI=9
IF(ICOM.EQ.'10')ICOMI=10
IF(ICOM.EQ.'11')ICOMI=11
IF(ICOM.EQ.'12')ICOMI=12
IF(ICOM.EQ.'13')ICOMI=13
IF(ICOM.EQ.'14')ICOMI=14
IF(ICOM.EQ.'15')ICOMI=15
IF(ICOM.EQ.'16')ICOMI=16
IF(ICOM.EQ.'17')ICOMI=17
IF(ICOM.EQ.'18')ICOMI=18
IF(ICOM.EQ.'19')ICOMI=19
IF(ICOM.EQ.'20')ICOMI=20
IF(ICOM.EQ.' ')ICOM='UP'
IF(ICOM.EQ.'U')ICOM='UP'
IF(ICOM.EQ.'u')ICOM='UP'
IF(ICOM.EQ.'up')ICOM='UP'
IF(ICOM.EQ.'UP')ICOMT='WORD'
IF(ICOM.EQ.'UP')GOTO2280
IF(ICOM.EQ.'EXIT')GOTO2280
GOTO50
C
2280 CONTINUE
CCCCC CALL WISEWI(2)
CALL WNSEL(2)
CCCCC CALL WICLWI('ON ','OFF ')
CCCCC CALL WNCLOS('ON ','OFF ')
CALL WNCLOS(0)
CCCCC CALL WIEXWS('ON ')
CALL SHQUIT('ON ')
ICURWI=ICURWI-1
GOTO9000
C
2290 CONTINUE
GOTO9000
C
C ****************************************
C ** STEP 23-- **
C ** READ THE MENU FILE **
C ** AND WRITE (TO THE SCREEN) A MENU **
C ****************************************
C
2300 CONTINUE
ISTEPN='23'
IF(IBUGME.EQ.'ON'.OR.ISUBRO.EQ.'MENU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'DATA'.AND.
1IHARG2(1).EQ.'PLOT')GOTO2331
IF(NUMARG.GE.2.AND.IHARG(1).EQ.'DATA'.AND.
1IHARG(2).EQ.'FILE')GOTO2332
IF(NUMARG.GE.2.AND.IHARG(1).EQ.'DATA'.AND.
1IHARG(2).EQ.'SETS')GOTO2332
IF(NUMARG.GE.2.AND.IHARG(1).EQ.'DATA'.AND.
1IHARG(2).EQ.'ANAL')GOTO2340
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'GRAP')GOTO2339
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'MATH')GOTO2344
C
IF(IMENSW.EQ.'TOP'.AND.NUMARG.GE.1.AND.
1IARGT(1).EQ.'NUMB')GOTO2310
C
IF(IMENSW.EQ.'TOP'.AND.NUMARG.EQ.0.AND.
1ICOMT.EQ.'NUMB')GOTO2320
C
GOTO2390
C
2310 CONTINUE
IF(IARG(1).EQ.1)GOTO2331
IF(IARG(1).EQ.2)GOTO2332
IF(IARG(1).EQ.3)GOTO2333
IF(IARG(1).EQ.4)GOTO2334
IF(IARG(1).EQ.5)GOTO2335
IF(IARG(1).EQ.6)GOTO2336
IF(IARG(1).EQ.7)GOTO2337
IF(IARG(1).EQ.8)GOTO2338
IF(IARG(1).EQ.9)GOTO2339
IF(IARG(1).EQ.10)GOTO2340
IF(IARG(1).EQ.11)GOTO2341
IF(IARG(1).EQ.12)GOTO2342
IF(IARG(1).EQ.13)GOTO2343
IF(IARG(1).EQ.14)GOTO2344
IF(IARG(1).EQ.15)GOTO2345
IF(IARG(1).EQ.16)GOTO2346
IF(IARG(1).EQ.17)GOTO2347
IF(IARG(1).EQ.18)GOTO2348
GOTO2390
C
2320 CONTINUE
IF(ICOMI.EQ.1)GOTO2331
IF(ICOMI.EQ.2)GOTO2332
IF(ICOMI.EQ.3)GOTO2333
IF(ICOMI.EQ.4)GOTO2334
IF(ICOMI.EQ.5)GOTO2335
IF(ICOMI.EQ.6)GOTO2336
IF(ICOMI.EQ.7)GOTO2337
IF(ICOMI.EQ.8)GOTO2338
IF(ICOMI.EQ.9)GOTO2339
IF(ICOMI.EQ.10)GOTO2340
IF(ICOMI.EQ.11)GOTO2341
IF(ICOMI.EQ.12)GOTO2342
IF(ICOMI.EQ.13)GOTO2343
IF(ICOMI.EQ.14)GOTO2344
IF(ICOMI.EQ.15)GOTO2345
IF(ICOMI.EQ.16)GOTO2346
IF(ICOMI.EQ.17)GOTO2347
IF(ICOMI.EQ.18)GOTO2348
GOTO2390
C
2331 CONTINUE
IMENSW='DP'
CCCCC IMENCO='0 '
GOTO2390
C
2332 CONTINUE
IMENSW='DATA'
CCCCC IMENCO='0 '
GOTO2390
C
2333 CONTINUE
IMENSW='COMM'
CCCCC IMENCO='0 '
GOTO2390
C
2334 CONTINUE
IMENSW='FUNC'
CCCCC IMENCO='0 '
GOTO2390
C
2335 CONTINUE
IMENSW='TEXT'
CCCCC IMENCO='0 '
GOTO2390
C
2336 CONTINUE
IMENSW='DEXT'
CCCCC IMENCO='0 '
GOTO2390
C
2337 CONTINUE
IMENSW='I/O'
CCCCC IMENCO='0 '
GOTO2390
C
2338 CONTINUE
IMENSW='TUTO'
CCCCC IMENCO='0 '
GOTO2390
C
2339 CONTINUE
IMENSW='GRAP'
CCCCC IMENCO='0 '
GOTO2390
C
2340 CONTINUE
IMENSW='STAC'
CCCCC IMENCO='0 '
GOTO2390
C
2341 CONTINUE
IMENSW='STAI'
CCCCC IMENCO='0 '
GOTO2390
C
2342 CONTINUE
IMENSW='DEXP'
CCCCC IMENCO='0 '
GOTO2390
C
2343 CONTINUE
IMENSW='PROB'
CCCCC IMENCO='0 '
GOTO2390
C
2344 CONTINUE
IMENSW='MATH'
CCCCC IMENCO='0 '
GOTO2390
C
2345 CONTINUE
IMENSW='SCIE'
CCCCC IMENCO='0 '
GOTO2390
C
2346 CONTINUE
IMENSW='ENGI'
CCCCC IMENCO='0 '
GOTO2390
C
2347 CONTINUE
IMENSW='BUSI'
CCCCC IMENCO='0 '
GOTO2390
C
2348 CONTINUE
IMENSW='MISC'
CCCCC IMENCO='0 '
GOTO2390
C
2390 CONTINUE
C
CCCCC THE IHELMX LINE WAS ADDED TO FOLLOWING ARGUMENT LIST AUGUST 1990
CALL DPMEN2(ICOM,ICOM2,ICOMT,ICOMI,
1IHARG,IHARG2,IARGT,IARG,NUMARG,
1IMENSW,
1IMENCO,IMENAL,
1IHELMX,ICPREH,NCPREH,ICPOSH,NCPOSH,
1IANS,IWIDTH,IBUGM2,ISUBRO,IFOUND,IERROR)
C
IF(IMENSW.EQ.'DP')IME1CO=IMENCO
IF(IMENSW.EQ.'DATA')IME2CO=IMENCO
IF(IMENSW.EQ.'COMM')IME3CO=IMENCO
IF(IMENSW.EQ.'FUNC')IME4CO=IMENCO
IF(IMENSW.EQ.'TEXT')IME5CO=IMENCO
IF(IMENSW.EQ.'DEXT')IME6CO=IMENCO
IF(IMENSW.EQ.'I/O')IME7CO=IMENCO
IF(IMENSW.EQ.'TUTO')IME8CO=IMENCO
IF(IMENSW.EQ.'GRAP')IME9CO=IMENCO
IF(IMENSW.EQ.'STAC')IM10CO=IMENCO
IF(IMENSW.EQ.'STAI')IM11CO=IMENCO
IF(IMENSW.EQ.'DEXP')IM12CO=IMENCO
IF(IMENSW.EQ.'PROB')IM13CO=IMENCO
IF(IMENSW.EQ.'MATH')IM14CO=IMENCO
IF(IMENSW.EQ.'SCIE')IM15CO=IMENCO
IF(IMENSW.EQ.'ENGI')IM16CO=IMENCO
IF(IMENSW.EQ.'BUSI')IM17CO=IMENCO
IF(IMENSW.EQ.'MISC')IM18CO=IMENCO
C
IF(IWINSY.EQ.'NONE')GOTO9000
GOTO50
C
C ****************
C ** STEP 90-- **
C ** EXIT. **
C ****************
C
9000 CONTINUE
IF(IBUGME.EQ.'OFF'.AND.ISUBRO.NE.'MENU')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMENU--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IMENSW
9012 FORMAT('IMENSW = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9031)IME1CO,IME1AL
9031 FORMAT('IME1CO,IME1AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9032)IME2CO,IME2AL
9032 FORMAT('IME2CO,IME2AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9033)IME3CO,IME3AL
9033 FORMAT('IME3CO,IME3AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9034)IME4CO,IME4AL
9034 FORMAT('IME4CO,IME4AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9035)IME5CO,IME5AL
9035 FORMAT('IME5CO,IME5AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9036)IME6CO,IME6AL
9036 FORMAT('IME6CO,IME6AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9037)IME7CO,IME7AL
9037 FORMAT('IME7CO,IME7AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9038)IME8CO,IME8AL
9038 FORMAT('IME8CO,IME8AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9039)IME9CO,IME9AL
9039 FORMAT('IME9CO,IME9AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9040)IM10CO,IM10AL
9040 FORMAT('IM10CO,IM10AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9041)IM11CO,IM11AL
9041 FORMAT('IM11CO,IM11AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9042)IM12CO,IM12AL
9042 FORMAT('IM12CO,IM12AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9043)IM13CO,IM13AL
9043 FORMAT('IM13CO,IM13AL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9048)IMENCO,IMENAL
9048 FORMAT('IMENCO,IMENAL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9049)IBUGME,IBUGM2,IFOUND,IERROR
9049 FORMAT('IBUGME,IBUGM2,IFOUND,IERROR = ',A4,2X,A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMEN2(ICOM,ICOM2,ICOMT,ICOMI,
1IHARG,IHARG2,IARGT,IARG,NUMARG,
1IMENSW,
1IMENCO,IMENAL,
1IHELMX,ICPREH,NCPREH,ICPOSH,NCPOSH,
1IANS,IWIDTH,IBUGM2,ISUBRO,IFOUND,IERROR)
CCCCC THE THIRD LINE OF THE ARGUMENT LIST WAS ADDED AUGUST 1990
C
C PURPOSE--READ THE DESIGNATED MENU
C FROM (ONE OF) DATAPLOT'S MENU SUB-SYSTEM FILE(S),
C AND WRITE THE MENU OUT TO SCREEN.
C INPUT ARGUMENTS--IMENSW (A HOLLARITH VARIABLE
C IDENTIFYING WHICH SUB-SYSTEM.
C --IMENCO (A HOLLARITH VARIABLE
C CONTAINING A MENU IDENTIFICATION STRING.
C --IMENAL (A HOLLARITH VARIABLE (ON/OFF)
C CONTAINING A SWITCH SETTING AS TO WHETHER
C ALL OF THE TOPIC MENU SHOULD BE PRINTED OUT.
C OUTPUT ARGUMENTS--IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--90/7
C ORIGINAL VERSION--JUNE 1990.
C UPDATED --AUGUST 1990. MENU 11 TO 20
C UPDATED --AUGUST 1990. NEW INPUT ARGUMENTS
C UPDATED --AUGUST 1990. NEW MENU
C UPDATED --AUGUST 1990. MORE/PAUSE WITH MENU
C UPDATED --AUGUST 1990. EXPLICIT SETTING OF NUMLPR=0
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICOM
CHARACTER*4 ICOM2
CHARACTER*4 ICOMT
C
CHARACTER*4 IHARG
CHARACTER*4 IHARG2
CHARACTER*4 IARGT
C
CHARACTER*4 IMENSW
CHARACTER*12 IMENCO
CHARACTER*4 IMENAL
C
CCCCC THE FOLLOWING 2 LINES WERE ADDED AUGUST 1990
CHARACTER*40 ICPREH
CHARACTER*40 ICPOSH
C
CHARACTER*4 IANS
CHARACTER*4 IBUGM2
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*80 IFILE
CHARACTER*12 ISTAT
CHARACTER*12 IFORM
CHARACTER*12 IACCES
CHARACTER*12 IPROT
CHARACTER*12 ICURST
CHARACTER*4 ISUBN0
CHARACTER*4 IERRFI
CHARACTER*4 IENDFI
CHARACTER*4 IREWIN
C
CHARACTER*12 ITABID
C
CHARACTER*80 ICTEXT
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 ICJUNK
C
CHARACTER*12 ICID
CHARACTER*80 ISTRIN
C
CCCCC THE FOLLOWING LINE WAS ADDED AUGUST 1990
CHARACTER*4 IRESP
C
DIMENSION IHARG(*)
DIMENSION IHARG2(*)
DIMENSION IARGT(*)
DIMENSION IARG(*)
C
DIMENSION ITABID(500)
DIMENSION ITABLN(500)
C
DIMENSION IANS(*)
C
C-----COMMON----------------------------------------------------------
C
CCCCC INCLUDE 'DPCOFO.INC'
INCLUDE 'DPCOF2.INC'
INCLUDE 'DPCONP.INC'
INCLUDE 'DPCOWI.INC'
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
NUMSEC=(-999)
JSEC=(-999)
ISKIP=(-999)
ISTART=(-999)
I2=(-999)
C
IFOUND='YES'
IERROR='NO'
C
ISUBN1='DPME'
ISUBN2='N2 '
C
IF(IBUGM2.EQ.'OFF'.AND.ISUBRO.NE.'MEN2')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMEN2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IMENSW
52 FORMAT('IMENSW = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)IMENCO,IMENAL
53 FORMAT('IMENCO,IMENAL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)IBUGM2,ISUBRO,IERROR
55 FORMAT('IBUGM2,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,61)IHELMX
61 FORMAT('IHELMX = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,62)NCPREH
62 FORMAT('NCPREH = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NCPREH.LE.0)GOTO65
DO63I=1,NCPREH
WRITE(ICOUT,64)I,ICPREH(I:I)
64 FORMAT('I,ICPREH(I:I) = ',I8,2X,A1,4X)
CALL DPWRST('XXX','BUG ')
63 CONTINUE
65 CONTINUE
WRITE(ICOUT,66)NCPOSH
66 FORMAT('NCPOSH = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NCPOSH.LE.0)GOTO69
DO67I=1,NCPOSH
WRITE(ICOUT,68)I,ICPOSH(I:I)
68 FORMAT('I,ICPOSH(I:I) = ',I8,2X,A1,4X)
CALL DPWRST('XXX','BUG ')
67 CONTINUE
69 CONTINUE
90 CONTINUE
C
C **************************
C ** STEP 11-- **
C ** COPY OVER VARIABLES **
C **************************
C
ISTEPN='11'
IF(IBUGM2.EQ.'ON'.OR.ISUBRO.EQ.'MEN2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CCCCC THE FOLLOWING LINE WAS ADDED AUGUST 1990
IF(IMENSW.EQ.'TOP')GOTO1110
IF(IMENSW.EQ.'DP')GOTO1110
IF(IMENSW.EQ.'DATA')GOTO1120
IF(IMENSW.EQ.'COMM')GOTO1130
IF(IMENSW.EQ.'FUNC')GOTO1140
IF(IMENSW.EQ.'TEXT')GOTO1150
IF(IMENSW.EQ.'DEXT')GOTO1160
IF(IMENSW.EQ.'I/O')GOTO1170
IF(IMENSW.EQ.'TUTO')GOTO1180
IF(IMENSW.EQ.'GRAP')GOTO1190
IF(IMENSW.EQ.'STAC')GOTO1200
IF(IMENSW.EQ.'STAI')GOTO1210
IF(IMENSW.EQ.'DEXP')GOTO1220
IF(IMENSW.EQ.'PROB')GOTO1230
IF(IMENSW.EQ.'MATH')GOTO1240
IF(IMENSW.EQ.'SCIE')GOTO1250
IF(IMENSW.EQ.'ENGI')GOTO1260
IF(IMENSW.EQ.'BUSI')GOTO1270
IF(IMENSW.EQ.'MISC')GOTO1280
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1101)
1101 FORMAT('***** INTERNAL ERROR IN DPMEN2 ',
1'AT BRANCH POINT 1101--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1102)
1102 FORMAT(' IMENSW SHOULD BE ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1103)
1103 FORMAT(' TOP, DP, DATA, COMM, I/O, GRAP, STAC, ETC.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1105)
1105 FORMAT(' BUT IS NOT.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1106)IMENSW
1106 FORMAT(' IMENSW = ',A4)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1110 CONTINUE
IOUNIT=IME1NU
IFILE=IME1NA
ISTAT=IME1ST
IFORM=IME1FO
IACCES=IME1AC
IPROT=IME1PR
ICURST=IME1CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1120 CONTINUE
IOUNIT=IME2NU
IFILE=IME2NA
ISTAT=IME2ST
IFORM=IME2FO
IACCES=IME2AC
IPROT=IME2PR
ICURST=IME2CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1130 CONTINUE
IOUNIT=IME3NU
IFILE=IME3NA
ISTAT=IME3ST
IFORM=IME3FO
IACCES=IME3AC
IPROT=IME3PR
ICURST=IME3CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1140 CONTINUE
IOUNIT=IME4NU
IFILE=IME4NA
ISTAT=IME4ST
IFORM=IME4FO
IACCES=IME4AC
IPROT=IME4PR
ICURST=IME4CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1150 CONTINUE
IOUNIT=IME5NU
IFILE=IME5NA
ISTAT=IME5ST
IFORM=IME5FO
IACCES=IME5AC
IPROT=IME5PR
ICURST=IME5CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1160 CONTINUE
IOUNIT=IME6NU
IFILE=IME6NA
ISTAT=IME6ST
IFORM=IME6FO
IACCES=IME6AC
IPROT=IME6PR
ICURST=IME6CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1170 CONTINUE
IOUNIT=IME7NU
IFILE=IME7NA
ISTAT=IME7ST
IFORM=IME7FO
IACCES=IME7AC
IPROT=IME7PR
ICURST=IME7CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1180 CONTINUE
IOUNIT=IME8NU
IFILE=IME8NA
ISTAT=IME8ST
IFORM=IME8FO
IACCES=IME8AC
IPROT=IME8PR
ICURST=IME8CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1190 CONTINUE
IOUNIT=IME9NU
IFILE=IME9NA
ISTAT=IME9ST
IFORM=IME9FO
IACCES=IME9AC
IPROT=IME9PR
ICURST=IME9CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1200 CONTINUE
IOUNIT=IM10NU
IFILE=IM10NA
ISTAT=IM10ST
IFORM=IM10FO
IACCES=IM10AC
IPROT=IM10PR
ICURST=IM10CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1210 CONTINUE
IOUNIT=IM11NU
IFILE=IM11NA
ISTAT=IM11ST
IFORM=IM11FO
IACCES=IM11AC
IPROT=IM11PR
ICURST=IM11CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1220 CONTINUE
IOUNIT=IM12NU
IFILE=IM12NA
ISTAT=IM12ST
IFORM=IM12FO
IACCES=IM12AC
IPROT=IM12PR
ICURST=IM12CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1230 CONTINUE
IOUNIT=IM13NU
IFILE=IM13NA
ISTAT=IM13ST
IFORM=IM13FO
IACCES=IM13AC
IPROT=IM13PR
ICURST=IM13CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1240 CONTINUE
IOUNIT=IM14NU
IFILE=IM14NA
ISTAT=IM14ST
IFORM=IM14FO
IACCES=IM14AC
IPROT=IM14PR
ICURST=IM14CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1250 CONTINUE
IOUNIT=IM15NU
IFILE=IM15NA
ISTAT=IM15ST
IFORM=IM15FO
IACCES=IM15AC
IPROT=IM15PR
ICURST=IM15CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1260 CONTINUE
IOUNIT=IM16NU
IFILE=IM16NA
ISTAT=IM16ST
IFORM=IM16FO
IACCES=IM16AC
IPROT=IM16PR
ICURST=IM16CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1270 CONTINUE
IOUNIT=IM17NU
IFILE=IM17NA
ISTAT=IM17ST
IFORM=IM17FO
IACCES=IM17AC
IPROT=IM17PR
ICURST=IM17CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1280 CONTINUE
IOUNIT=IM18NU
IFILE=IM18NA
ISTAT=IM18ST
IFORM=IM18FO
IACCES=IM18AC
IPROT=IM18PR
ICURST=IM18CS
ISUBN0='MEN2'
IERRFI='NO'
GOTO1290
C
1290 CONTINUE
IF(IBUGM2.EQ.'OFF'.AND.ISUBRO.NE.'MEN2')GOTO1299
WRITE(ICOUT,1293)IOUNIT
1293 FORMAT('IOUNIT = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1294)IFILE
1294 FORMAT('IFILE = ',A80)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1295)ISTAT,IFORM,IACCES,IPROT,ICURST
1295 FORMAT('ISTAT,IFORM,IACCES,IPROT,ICURST = ',
1A12,2X,A12,2X,A12,2X,A12,2X,A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1296)IBUGM2,ISUBRO,ISUBN0,IERRFI
1296 FORMAT('IBUGM2,ISUBRO,ISUBN0,IERRFI = ',A4,2X,A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
1299 CONTINUE
C
C ***********************************************
C ** STEP 13-- **
C ** CHECK TO SEE IF THIS MENU FILE EXISTS **
C ***********************************************
C
ISTEPN='13'
IF(IBUGM2.EQ.'ON'.OR.ISUBRO.EQ.'MEN2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ISTAT.EQ.'NONE')GOTO1300
GOTO1390
1300 CONTINUE
IERROR='YES'
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1311)
1311 FORMAT('***** ERROR IN DPMEN2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1312)
1312 FORMAT(' THE MENU SUB-SYSTEM')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1313)
1313 FORMAT(' CANNOT BE ENTERED FOR THIS TOPIC BECAUSE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1314)
1314 FORMAT(' THE REQUIRED SYSTEM MASS STORAGE FILE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1315)
1315 FORMAT(' WHICH STORES MENU MENUS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1316)
1316 FORMAT(' IS NOT YET AVAILABLE FOR THIS TOPIC.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1317)ISTAT,IMENSW
1317 FORMAT('ISTAT,IMENSW = ',A12,2X,A12)
CALL DPWRST('XXX','BUG ')
GOTO9000
1390 CONTINUE
C
C *********************
C ** STEP 20-- **
C ** OPEN THE FILE **
C *********************
C
ISTEPN='20'
IF(IBUGM2.EQ.'ON'.OR.ISUBRO.EQ.'MEN2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IREWIN='ON'
CALL DPOPFI(IOUNIT,IFILE,ISTAT,IFORM,IACCES,IPROT,ICURST,
1IREWIN,ISUBN0,IERRFI,IBUGM2,ISUBRO,IERROR)
IF(IERRFI.EQ.'YES')GOTO9000
C
C ************************************************************
C ** STEP 41-- **
C ** READ IN FILE INFORMATION **
C ** FROM THE BEGINNING LINES OF THE FILE. **
C ** THESE LEAD LINES CONTAIN **
C ** THE IDENTIFIER FOR EACH SECTION **
C ** IN THE FILE (ITABID(.) (A12 FORMAT). **
C ** THE STARTING BASE LINE NUMBER OF EACH SECTION *
C ** IN THE FILE (ITABLN) (I8 FORMAT), AND **
C ** THE STARTING INCREMENT LINE NUMBER OF EACH SECTION
C ** IN THE FILE (ITABDE) (I10 FORMAT), AND **
C ************************************************************
C
READ(IOUNIT,4110,END=4180)ICJUNK
4110 FORMAT(A1)
READ(IOUNIT,4110,END=4180)ICJUNK
C
NUMSEC=0
DO4120I=1,100000
READ(IOUNIT,4121,END=4180)ITABID(I),ITABBA,ITABDE
4121 FORMAT(A12,I8,I10)
READ(IOUNIT,4122,END=4180)ICJUNK
4122 FORMAT(A1)
IF(ITABID(I).EQ.' ')GOTO4129
NUMSEC=NUMSEC+1
ITABLN(I)=ITABBA+ITABDE
IF(IBUGM2.EQ.'ON'.OR.ISUBRO.EQ.'MEN2')
1WRITE(ICOUT,4123)I,ITABID(I),ITABBA,ITABDE,ITABLN(I)
4123 FORMAT('I,ITABID(I),ITABBA,ITABDE,ITABLN(I)=',I8,2X,A12,3I8)
IF(IBUGM2.EQ.'ON'.OR.ISUBRO.EQ.'MEN2')
1CALL DPWRST('XXX','BUG ')
4120 CONTINUE
4129 CONTINUE
ANUMSE=NUMSEC
GOTO4190
C
4180 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4181)
4181 FORMAT('***** INTERNAL ERROR IN DPMEN2 ',
1'AT BRANCH POINT 4181--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4182)
4182 FORMAT(' AN UNEXPECTED END OF FILE WAS ENCOUNTERED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4183)
4183 FORMAT(' WHILE READING THE LOOK-UP TABLE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4184)
4184 FORMAT(' WITHIN A DATAPLOT MENU SUB-SYSTEM FILE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4185)IFILE
4185 FORMAT(' IFILE = ',A80)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
4190 CONTINUE
C
C *******************************************************
C ** STEP 42-- **
C ** BASED ON THE CODE STRING IN IMENCO **
C ** DO A TABLE LOOK-UP WHICH WILL SPECIFY **
C ** THE ABSOLUTE LINE NUMBER IN THE FILE **
C ** WHERE THE SECTION WITH THAT CODE WORD STARTS **
C *******************************************************
C
ISTEPN='42'
IF(IBUGM2.EQ.'ON'.OR.ISUBRO.EQ.'MEN2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO4200I=1,NUMSEC
I2=I
IF(IMENCO.EQ.ITABID(I))GOTO4210
4200 CONTINUE
JSEC=1
4210 CONTINUE
JSEC=I2
C
ISTART=ITABLN(JSEC)
C
IF(IBUGM2.EQ.'OFF'.AND.ISUBRO.NE.'MEN2')GOTO4290
WRITE(ICOUT,4211)
4211 FORMAT('***** FROM 4211 IN MIDDLE OF DPMEN2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4213)JSEC,ISTART
4213 FORMAT('JSEC,ISTART = ',2I8)
CALL DPWRST('XXX','BUG ')
4290 CONTINUE
C
C *************************************************
C ** STEP 43-- **
C ** READ DOWN IN THE FILE TO **
C ** THE LINE BEFORE WHERE THE SECTION STARTS **
C *************************************************
C
ISTEPN='43'
IF(IBUGM2.EQ.'ON'.OR.ISUBRO.EQ.'MEN2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
REWIND(IOUNIT)
C
MENWID=70
ISKIP=ISTART-1
IF(ISKIP.LE.0)GOTO4319
READ(IOUNIT,4315,END=4380)
4315 FORMAT()
IF(ISKIP.LE.1)GOTO4319
READ(IOUNIT,4316,END=4380)MENWID
4316 FORMAT(I2)
IF(MENWID.LE.0)MENWID=70
IF(ISKIP.LE.2)GOTO4319
IMAX=ISKIP-2
DO4310I=1,IMAX
READ(IOUNIT,4315,END=4380)
4310 CONTINUE
4319 CONTINUE
GOTO4390
C
4380 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4381)
4381 FORMAT('***** INTERNAL ERROR IN DPMEN2 ',
1'AT BRANCH POINT 4381--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4382)
4382 FORMAT(' AN UNEXPECTED END OF FILE WAS ENCOUNTERED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4383)
4383 FORMAT(' WHILE CARRYING OUT SKIPS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4384)
4384 FORMAT(' WITHIN A DATAPLOT MENU SUB-SYSTEM FILE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4385)IFILE
4385 FORMAT(' IFILE = ',A80)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
4390 CONTINUE
C
C ***************************************************
C ** STEP 45-- **
C ** FOR THIS TARGET SECTION-- **
C ** 1) SKIP OVER 3 HEADER LINES **
C ** (---- AND BLANK AND ID) **
C ** 2) READ IN (AND WRITE OUT) THE TEXT **
C ** FOR THE SECTION-- **
C ** (THIS IS WHAT THE ANALYST WILL SEE **
C ** ON THE SCREEN). **
C ** THE LAST LINE OF THE TEXT IS **
C ** A LINE OF HYPHENS (THIS LINE IS **
C ** NOT PRINTED OUT). **
C ** 3) READ IN (AND STORE) THE NUMBER OF **
C ** MENU ITEMS THAT WERE OFFERED **
C ** 4) READ IN (AND STORE) THE CODE WORD **
C ** (= SUBSEQUENT BRANCH POINT) **
C ** FOR EACH MENU ITEM **
C ***************************************************
C
ISTEPN='45'
IF(IBUGM2.EQ.'ON'.OR.ISUBRO.EQ.'MEN2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
READ(IOUNIT,4501,END=4580)
4501 FORMAT()
READ(IOUNIT,4501,END=4580)
READ(IOUNIT,4502,END=4580)ICID
4502 FORMAT(A12)
C
CCCCC WRITE(ICOUT,4511)IESCC,IFFC
C4511 FORMAT(2A1)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,4512)IESCC
C4512 FORMAT(A1,'8')
CCCCC CALL DPWRST('XXX','BUG ')
C
CCCCC WRITE(ICOUT,4513)IMENCO
C4513 FORMAT(58X,A12)
CCCCC CALL DPWRST('XXX','BUG ')
C
C ----------
C
IF(IWINSY.EQ.'NONE')GOTO4509
IF(IWINSY.EQ.'OTG')GOTO4504
GOTO4509
C
4504 CONTINUE
IF(ICOM.EQ.'UP')GOTO4505
ICURWI=ICURWI+1
CCCCC CALL WISEWI(ICURWI)
CALL WNSEL(ICURWI)
IX1=1+(ICURWI-2)*10
IX2=80-MENWID+1
IX=IX1
IF(IX2.LT.IX1)IX=IX2
IY=1
IXLEN=80-IX+1
IYLEN=20
IF(ICURWI.EQ.2)IXLEN=40
CCCCC CALL WISECO('BLUE','WHIT')
CALL COLOR('WHIT','BLUE')
CCCCC CALL WISETY('POP ')
CCCCC CALL WISEFR('ON ')
CALL WNACTN('FC')
CCCCC CALL WISELS(IX,IY,IXLEN,IYLEN)
CCCCC CALL WISEWR('OFF ')
CALL WNWRAP('OFF ')
CCCCC CALL WIOPWI
CALL WNOPEN(IX,IY,IXLEN,IYLEN)
4505 CONTINUE
CCCCC CALL WIERWI
CALL WNCLR
CCCCC CALL WIMOHO
CALL WNHOME
GOTO4509
C
4509 CONTINUE
C
C ----------
C
IF(IWINSY.EQ.'NONE')GOTO4510
IF(IWINSY.EQ.'OTG')GOTO4512
GOTO4510
C
4510 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4511)ICID
4511 FORMAT(A12,'---------------------------------------------')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
GOTO4519
C
4512 CONTINUE
ISTRIN(1:12)=ICID(1:12)
CCCCC CALL WIMWST(1,1,ISTRIN,12)
CALL WNOUSX(1,1,ISTRIN)
GOTO4519
C
4519 CONTINUE
C
C ----------
C
NUMLPR=3
IRESP='YES'
IPASS=1
IPOS=NUMLPR
C
DO4520I=1,100000
C
READ(IOUNIT,4521,END=4580)ICTEXT
4521 FORMAT(A80)
CCCCC IF(ICTEXT(1:5).EQ.'SSSSS')GOTO4590 DECEMBER 1986
CCCCC IF(ICTEXT(1:5).EQ.'EEEEE')GOTO4590 DECEMBER 1986
IF(ICTEXT(1:5).EQ.'-----')GOTO4529
C
DO4530J=1,80
JREV=80-J+1
IF(ICTEXT(JREV:JREV).NE.' ')GOTO4535
4530 CONTINUE
JREV=1
4535 CONTINUE
C
IF(IWINSY.EQ.'NONE')GOTO4536
IF(IWINSY.EQ.'OTG')GOTO4538
GOTO4536
C
4536 CONTINUE
IF(JREV.LE.0)WRITE(ICOUT,999)
IF(JREV.LE.0)CALL DPWRST('XXX','BUG ')
IF(JREV.GE.1)WRITE(ICOUT,4537)(ICTEXT(K:K),K=1,JREV)
4537 FORMAT(80A1)
IF(JREV.GE.1)CALL DPWRST('XXX','BUG ')
GOTO4539
C
4538 CONTINUE
IPOS=NUMLPR
IF(IPASS.GE.2)IPOS=NUMLPR+1
IF(JREV.LE.0)ISTRIN=' '
CCCCC IF(JREV.LE.0)CALL WIMWST(1,IPOS,ISTRIN,1)
IF(JREV.LE.0)CALL WNOUSX(1,IPOS,ISTRIN)
CCCCC IF(JREV.GE.1)CALL WIMWST(1,IPOS,ICTEXT,JREV)
IF(JREV.GE.1)CALL WNOUSX(1,IPOS,ICTEXT)
GOTO4539
C
4539 CONTINUE
NUMLPR=NUMLPR+1
C
IF(NUMLPR.GE.IHELMX)GOTO4540
IF(IRESP(1:1).EQ.'N')GOTO4529
IF(IRESP(1:1).EQ.'n')GOTO4529
GOTO4520
C
4540 CONTINUE
IPASS=IPASS+1
IF(IWINSY.EQ.'NONE')GOTO4541
IF(IWINSY.EQ.'OTG')GOTO4542
GOTO4541
C
4541 CONTINUE
CALL DPMORE(NUMLPR,NCPREH,ICPREH,IRESP,IBUGM2,IERROR)
IF(NUMLPR.GE.IHELMX)NUMLPR=0
IF(IRESP.EQ.'NO')GOTO4529
GOTO4520
C
4542 CONTINUE
CCCCC CALL WISEWI(1)
CALL WNSEL(1)
CCCCC CALL WIERWI
CALL WNCLR
ISTRIN='MORE (Y,N)...?>'
CCCCC CALL WIMWST(1,1,ISTRIN,15)
CALL WNOUSX(1,1,ISTRIN)
CCCCC CALL WIREST(ISTRIN,LENGTH)
CALL INSTR(ISTRIN,LENGTH)
IRESP(1:4)=ISTRIN(1:4)
IF(NUMLPR.GE.IHELMX)NUMLPR=0
IF(IRESP(1:1).EQ.'N')IRESP='NO '
IF(IRESP(1:1).EQ.'n')IRESP='NO '
IF(IRESP(1:1).EQ.'Y')IRESP='YES '
IF(IRESP(1:1).EQ.'y')IRESP='YES '
IF(IRESP.EQ.'NO')GOTO4529
IF(IRESP.EQ.'YES')GOTO4545
GOTO4565
C
4545 CONTINUE
CCCCC CALL WISEWI(ICURWI)
CALL WNSEL(ICURWI)
CCCCC CALL WIERWI
CALL WNCLR
CCCCC CALL WIMOHO
CALL WNHOME
GOTO4520
C
4520 CONTINUE
4529 CONTINUE
C
C ----------
C
IF(IWINSY.EQ.'NONE')GOTO4555
IF(IWINSY.EQ.'OTG')GOTO4560
GOTO4555
C
4555 CONTINUE
IF(NCPOSH.LE.0)GOTO4559
WRITE(ICOUT,4556)(ICPOSH(J:J),J=1,NCPOSH)
4556 FORMAT(80A1)
CALL DPWRST('XXX','BUG ')
4559 CONTINUE
GOTO4590
C
4560 CONTINUE
CCCCC CALL WISEWI(1)
CALL WNSEL(1)
CCCCC CALL WIERWI
CALL WNCLR
ISTRIN='>'
CCCCC CALL WIMWST(1,1,ISTRIN,1)
CALL WNOUSX(1,1,ISTRIN)
CCCCC CALL WIREST(ISTRIN,LENGTH)
CALL INSTR(ISTRIN,LENGTH)
IRESP(1:4)=ISTRIN(1:4)
CCCCC CAUTION--THE FOLLOWING LINE REDEFINES THE INPUT VARIABLE ICOM
4565 CONTINUE
ICOM=IRESP
NUMARG=0
ICOM2=' '
ICOMT='NUMB'
ICOMI=0
IF(ICOM.EQ.'1')ICOMI=1
IF(ICOM.EQ.'2')ICOMI=2
IF(ICOM.EQ.'3')ICOMI=3
IF(ICOM.EQ.'4')ICOMI=4
IF(ICOM.EQ.'5')ICOMI=5
IF(ICOM.EQ.'6')ICOMI=6
IF(ICOM.EQ.'7')ICOMI=7
IF(ICOM.EQ.'8')ICOMI=8
IF(ICOM.EQ.'9')ICOMI=9
IF(ICOM.EQ.'10')ICOMI=10
IF(ICOM.EQ.'11')ICOMI=11
IF(ICOM.EQ.'12')ICOMI=12
IF(ICOM.EQ.'13')ICOMI=13
IF(ICOM.EQ.'14')ICOMI=14
IF(ICOM.EQ.'15')ICOMI=15
IF(ICOM.EQ.'16')ICOMI=16
IF(ICOM.EQ.'17')ICOMI=17
IF(ICOM.EQ.'18')ICOMI=18
IF(ICOM.EQ.'19')ICOMI=19
IF(ICOM.EQ.'20')ICOMI=20
IF(ICOM.EQ.'21')ICOMI=21
IF(ICOM.EQ.'22')ICOMI=22
IF(ICOM.EQ.'23')ICOMI=23
IF(ICOM.EQ.'24')ICOMI=24
IF(ICOM.EQ.'25')ICOMI=25
IF(ICOM.EQ.'26')ICOMI=26
IF(ICOM.EQ.'27')ICOMI=27
IF(ICOM.EQ.'28')ICOMI=28
IF(ICOM.EQ.'29')ICOMI=29
IF(ICOM.EQ.'30')ICOMI=30
IF(ICOM.EQ.' ')ICOM='UP'
IF(ICOM.EQ.'U')ICOM='UP'
IF(ICOM.EQ.'u')ICOM='UP'
IF(ICOM.EQ.'up')ICOM='UP'
IF(ICOM.EQ.'UP')ICOMT='WORD'
IF(ICOM.EQ.'UP')GOTO4570
IF(ICOM.EQ.'EXIT')GOTO4575
GOTO4590
C
4570 CONTINUE
CCCCC CALL WISEWI(ICURWI)
CALL WNSEL(ICURWI)
CCCCC CALL WICLWI('ON ','OFF ')
CCCCC CALL WNCLOS('ON ','OFF ')
CALL WNCLOS(0)
CCCCC IF(ICURWI.LE.2)CALL WIEXWS('ON ')
IF(ICURWI.LE.2)CALL SHQUIT('ON ')
ICURWI=ICURWI-1
GOTO4590
C
4575 CONTINUE
DO4576I=1,100
CCCCC CALL WISEWI(ICURWI)
CALL WNSEL(ICURWI)
CCCCC CALL WICLWI('ON ','OFF ')
CCCCC CALL WNCLOS('ON ','OFF ')
CALL WNCLOS(0)
ICURWI=ICURWI-1
IF(ICURWI.LE.0)GOTO4577
4576 CONTINUE
4577 CONTINUE
CCCCC CALL WIEXWS('ON ')
CALL SHQUIT('ON ')
GOTO4590
C
C ----------
C
4580 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4581)
4581 FORMAT('***** INTERNAL ERROR IN DPMEN2 ',
1'AT BRANCH POINT 4581--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4582)
4582 FORMAT(' AN UNEXPECTED END OF FILE WAS ENCOUNTERED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4583)
4583 FORMAT(' WHILE READING WITHIN THE TARGET SECTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4584)
4584 FORMAT(' WITHIN A DATAPLOT MENU SUB-SYSTEM FILE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4585)IFILE
4585 FORMAT(' IFILE = ',A80)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4586)JSEC,ISTART
4586 FORMAT('JSEC,ISTART = ',2I8)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO5000
4589 CONTINUE
C
4590 CONTINUE
C
C **************************************
C ** STEP 50-- **
C ** CLOSE THIS MENU FILE. **
C **************************************
C
5000 CONTINUE
C
ISTEPN='50'
IF(IBUGM2.EQ.'ON'.OR.ISUBRO.EQ.'MEN2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IENDFI='OFF'
IREWIN='ON'
CALL DPCLFI(IOUNIT,IFILE,ISTAT,IFORM,IACCES,IPROT,ICURST,
1IENDFI,IREWIN,ISUBN0,IERRFI,IBUGM2,ISUBRO,IERROR)
IF(IERRFI.EQ.'YES')GOTO9000
C
C ****************
C ** STEP 90-- **
C ** EXIT. **
C ****************
C
9000 CONTINUE
IF(IBUGM2.EQ.'OFF'.AND.ISUBRO.NE.'MEN2')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMEN2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGM2,ISUBRO,IERROR
9012 FORMAT('IBUGM2,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9021)IOUNIT
9021 FORMAT('IOUNIT = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9022)IFILE
9022 FORMAT('IFILE = ',A80)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9023)ISTAT
9023 FORMAT('ISTAT = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9024)IFORM
9024 FORMAT('IFORM = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9025)IACCES
9025 FORMAT('IACCES = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9026)IPROT
9026 FORMAT('IPROT = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9027)ICURST
9027 FORMAT('ICURST = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9028)IENDFI
9028 FORMAT('IENDFI = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9029)IREWIN
9029 FORMAT('IREWIN = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9031)ISUBN0
9031 FORMAT('ISUBN0 = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9032)IERRFI
9032 FORMAT('IERRFI = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9051)ISKIP,ISTART,I2
9051 FORMAT('ISKIP,ISTART,I2 = ',3I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9052)IMENSW
9052 FORMAT('IMENSW = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9054)IMENCO,IMENAL
9054 FORMAT('IMENCO,IMENAL = ',A12,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9061)NUMSEC
9061 FORMAT('NUMSEC = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9062)JSEC,ITABLN(JSEC),ITABID(JSEC)
9062 FORMAT('JSEC,ITABLN(JSEC),ITABID(JSEC) = ',2I8,2X,A12)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMEP2(Y,F1,F2,F3,F4,F5,W,N,NUMFAC,
1B,SDB,FCUM,REPSD,REPDF,RESSD,RESDF,PRED2,RES2,ALFCDF,
1Y2,Z,
1IBUGA3,IERROR)
CCCCC JUNE, 1990. MOVE DIMENSIONING OF Y2 AND Z TO DPMEPO.
C
C PURPOSE--DO A MULTI-WAY MEDIAN POLISH
C FOR 1, 2, 3, 4, OR 5 FACTORS.
C THE ASSUMED MODEL IS RESPONSE = CONSTANT + FACTOR-1 EFFECT + ...
C FACTOR-NUMFAC EFFECT + ERROR
C NOTE-- LINES NEAR 390 NEEDS TO BE GENERALIZED FOR
C UNEQUAL NUMBER OF OBS PER CELL.
C PRINTING--YES
C SUBROUTINES NEEDED--FCDF
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--APRIL 1978.
C UPDATED --NOVEMBER 1978.
C UPDATED --JULY 1979.
C UPDATED --FEBRUARY 1981.
C UPDATED --JULY 1981.
C UPDATED --OCTOBER 1981.
C UPDATED --NOVEMBER 1981.
C UPDATED --MARCH 1982.
C UPDATED --MAY 1982.
C UPDATED --MARCH 1988. ADD LOFCDF
C UPDATED --JUNE 1990. MOVE DIMENSIONING OF Y2 AND Z
C UPDATED --JANUARY 1996. MAKE MAXIMUM NUMBER OF LEVELS
C SETTABLE VIA PARAMETER
C STATEMENT (AND PUT IN CHECKS
C FOR EXCEEDING THIS MAXIMUM)
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 IREP
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
CCCCC JUNE, 1990. MOVE DIMENSIONING OF Y2 AND Z TO DPMEPO
CCCCC INCLUDE 'DPCOPA.INC'
C
CCCCC DIMENSION Y2(MAXOBV)
DIMENSION Y2(*)
C
DIMENSION Y(*)
C
DIMENSION F1(*)
DIMENSION F2(*)
DIMENSION F3(*)
DIMENSION F4(*)
DIMENSION F5(*)
C
DIMENSION W(*)
C
DIMENSION B(*)
DIMENSION SDB(*)
DIMENSION FCUM(*)
DIMENSION PRED2(*)
DIMENSION RES2(*)
C
CCCCC JANUARY 1996. MAKE DIMENSION STATEMENTS DEPEND ON A PARAMETER
CCCCC STATEMENT (SO THAT THEY CAN BE EASILY UPDATED IF NEEDED).
PARAMETER (MAXLEV=500)
CCCCC DIMENSION F1ID(100)
CCCCC DIMENSION F2ID(100)
CCCCC DIMENSION F3ID(100)
CCCCC DIMENSION F4ID(100)
CCCCC DIMENSION F5ID(100)
DIMENSION F1ID(MAXLEV)
DIMENSION F2ID(MAXLEV)
DIMENSION F3ID(MAXLEV)
DIMENSION F4ID(MAXLEV)
DIMENSION F5ID(MAXLEV)
C
CCCCC DIMENSION F1N(100)
CCCCC DIMENSION F2N(100)
CCCCC DIMENSION F3N(100)
CCCCC DIMENSION F4N(100)
CCCCC DIMENSION F5N(100)
DIMENSION F1N(MAXLEV)
DIMENSION F2N(MAXLEV)
DIMENSION F3N(MAXLEV)
DIMENSION F4N(MAXLEV)
DIMENSION F5N(MAXLEV)
C
CCCCC DIMENSION F1TYP(100)
CCCCC DIMENSION F2TYP(100)
CCCCC DIMENSION F3TYP(100)
CCCCC DIMENSION F4TYP(100)
CCCCC DIMENSION F5TYP(100)
DIMENSION F1TYP(MAXLEV)
DIMENSION F2TYP(MAXLEV)
DIMENSION F3TYP(MAXLEV)
DIMENSION F4TYP(MAXLEV)
DIMENSION F5TYP(MAXLEV)
C
CCCC DIMENSION F1EFFE(100)
CCCC DIMENSION F2EFFE(100)
CCCC DIMENSION F3EFFE(100)
CCCC DIMENSION F4EFFE(100)
CCCC DIMENSION F5EFFE(100)
DIMENSION F1EFFE(MAXLEV)
DIMENSION F2EFFE(MAXLEV)
DIMENSION F3EFFE(MAXLEV)
DIMENSION F4EFFE(MAXLEV)
DIMENSION F5EFFE(MAXLEV)
C
CCCCC DIMENSION F1EFSD(100)
CCCCC DIMENSION F2EFSD(100)
CCCCC DIMENSION F3EFSD(100)
CCCCC DIMENSION F4EFSD(100)
CCCCC DIMENSION F5EFSD(100)
DIMENSION F1EFSD(MAXLEV)
DIMENSION F2EFSD(MAXLEV)
DIMENSION F3EFSD(MAXLEV)
DIMENSION F4EFSD(MAXLEV)
DIMENSION F5EFSD(MAXLEV)
C
CCCCC DIMENSION CELLN(MAXOBV)
CCCCC DIMENSION CELLME(MAXOBV)
CCCCC DIMENSION CELLSD(MAXOBV)
DIMENSION FVAL(10)
DIMENSION RSD(10)
CCCCC DIMENSION Z(MAXOBV)
DIMENSION Z(*)
C
DIMENSION Y2MED(100)
C
C---------------------------------------------------------------------
C
CCCCC EQUIVALENCE (Y2(1),CELLME(1))
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IERROR='NO'
C
ISUBN1='DPAN'
ISUBN2='O2 '
C
MAXFAC=5
AN=N
C
MAXPAS=25
IWRITE='OFF'
CUTOFF=0.99
C
GTYP=0.0
C
IF(IBUGA3.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMEP2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)N,NUMFAC
52 FORMAT('N,NUMFAC = ',2I8)
CALL DPWRST('XXX','BUG ')
DO55I=1,N
WRITE(ICOUT,56)I,Y(I),F1(I),F2(I),F3(I),F4(I),F5(I),W(I)
56 FORMAT('I,Y(I),F1(I),F2(I),F3(I),F4(I),F5(I),W(I) = ',
1I8,7E11.3)
CALL DPWRST('XXX','BUG ')
55 CONTINUE
90 CONTINUE
C
C ********************************************
C ** STEP 1-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
IF(N.GE.1)GOTO109
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,101)
101 FORMAT('***** ERROR IN DPMEP2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,102)
102 FORMAT(' THE NUMBER OF OBSERVATIONS FOR THE ',
1'MEDIAN POLISH')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,103)
103 FORMAT(' MUST BE AT LEAST 1;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,104)N
104 FORMAT(' THE ENTERED NUMBER OF OBSERVATIONS HERE = ',I6)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
109 CONTINUE
C
IF(N.GE.2)GOTO119
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,116)
116 FORMAT('***** ERROR IN DPMEP2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,117)
117 FORMAT(' THE NUMBER OF OBSERVATIONS FOR THE ',
1'MEDIAN POLISH')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,118)
118 FORMAT(' WAS EXACTLY EQUAL TO 1.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
119 CONTINUE
C
IF(NUMFAC.GE.1.AND.NUMFAC.LE.MAXFAC)GOTO139
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,131)
131 FORMAT('***** ERROR IN DPMEP2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,132)
132 FORMAT(' THE NUMBER OF FACTORS FOR THE MEDIAN POLISH')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,133)MAXFAC
133 FORMAT(' MUST BE AT LEAST 1 AND AT MOST ',I6,';')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,134)NUMFAC
134 FORMAT(' THE ENTERED NUMBER OF FACTORS HERE = ',I6)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
139 CONTINUE
C
HOLD=Y(1)
DO140I=1,N
IF(Y(I).NE.HOLD)GOTO149
140 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,141)
141 FORMAT('***** ERROR IN DPMEP2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,142)
142 FORMAT(' ALL RESPONSE VARIABLE ELEMENTS FOR THE ',
1'MEDIAN POLISH')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,143)HOLD
143 FORMAT(' ARE IDENTICALLY EQUAL TO ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
149 CONTINUE
C
DO150J=1,NUMFAC
IF(J.EQ.1)HOLD=F1(1)
IF(J.EQ.2)HOLD=F2(1)
IF(J.EQ.3)HOLD=F3(1)
IF(J.EQ.4)HOLD=F4(1)
IF(J.EQ.5)HOLD=F5(1)
DO155I=1,N
IF(J.EQ.1)HOLD2=F1(I)
IF(J.EQ.2)HOLD2=F2(I)
IF(J.EQ.3)HOLD2=F3(I)
IF(J.EQ.4)HOLD2=F4(I)
IF(J.EQ.5)HOLD2=F5(I)
IF(HOLD2.NE.HOLD)GOTO150
155 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,151)
151 FORMAT('***** DIAGNOSTIC NOTE FROM DPMEP2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,152)J
152 FORMAT(' ALL ELEMENTS OF FACTOR ',I5,' IN THE ',
1'MEDIAN POLISH')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,153)HOLD
153 FORMAT(' ARE IDENTICALLY EQUAL TO ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
150 CONTINUE
C
C ***********************************************
C ** STEP 1.1-- **
C ** DETERMINE THE NUMBER OF DISTINCT VALUES **
C ** FOR FACTOR 1 **
C ***********************************************
C
CCCCC JANUARY 1996. CHECK FOR EXCEEDING MAXIMUM NUMBER OF LEVELS
ISTEPN='1.1'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
N1=0
DO160I=1,N
IF(N1.LE.0)GOTO180
DO170J=1,N1
IF(F1(I).EQ.F1ID(J))GOTO160
170 CONTINUE
180 CONTINUE
N1=N1+1
IF(N1.GT.MAXLEV)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,190)MAXLEV
CALL DPWRST('XXX','BUG')
IERROR='YES'
GOTO9000
ENDIF
190 FORMAT('***** ERROR IN DPMEP2--MAXIMUM NUMBER OF LEVELS, ',I10,
1' EXCEEDED FOR FACTOR 1')
F1ID(N1)=F1(I)
160 CONTINUE
IF(N1.LE.0)WRITE(ICOUT,999)
IF(N1.LE.0)CALL DPWRST('XXX','BUG ')
IF(N1.LE.0)WRITE(ICOUT,165)
165 FORMAT('***** ERROR IN DPMEP2--N1 = 0')
IF(N1.LE.0)CALL DPWRST('XXX','BUG ')
IF(N1.LE.0)IERROR='YES'
IF(N1.LE.0)GOTO9000
169 CONTINUE
AN1=N1
IF(NUMFAC.LE.1)GOTO900
C
C ***********************************************
C ** STEP 1.2-- **
C ** DETERMINE THE NUMBER OF DISTINCT VALUES **
C ** FOR FACTOR 2 **
C ***********************************************
C
CCCCC JANUARY 1996. CHECK FOR EXCEEDING MAXIMUM NUMBER OF LEVELS
ISTEPN='1.2'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
N2=0
DO200I=1,N
IF(N2.LE.0)GOTO250
DO220J=1,N2
IF(F2(I).EQ.F2ID(J))GOTO200
220 CONTINUE
250 N2=N2+1
IF(N2.GT.MAXLEV)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,290)MAXLEV
CALL DPWRST('XXX','BUG')
IERROR='YES'
GOTO9000
ENDIF
290 FORMAT('***** ERROR IN DPMEP2--MAXIMUM NUMBER OF LEVELS, ',I10,
1' EXCEEDED FOR FACTOR 2')
F2ID(N2)=F2(I)
200 CONTINUE
IF(N2.LE.0)WRITE(ICOUT,205)
205 FORMAT('ERROR IN DPMEP2 SUBROUTINE--N2 = 0')
IF(N2.LE.0)CALL DPWRST('XXX','BUG ')
IF(N2.LE.0)IERROR='YES'
IF(N2.LE.0)GOTO9000
208 CONTINUE
AN2=N2
IF(NUMFAC.LE.2)GOTO900
C
C ***********************************************
C ** STEP 1.3-- **
C ** DETERMINE THE NUMBER OF DISTINCT VALUES **
C ** FOR FACTOR 3 **
C ***********************************************
C
CCCCC JANUARY 1996. CHECK FOR EXCEEDING MAXIMUM NUMBER OF LEVELS
ISTEPN='1.3'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
N3=0
DO300I=1,N
IF(N3.LE.0)GOTO350
DO320J=1,N3
IF(F3(I).EQ.F3ID(J))GOTO300
320 CONTINUE
350 N3=N3+1
IF(N3.GT.MAXLEV)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,390)MAXLEV
CALL DPWRST('XXX','BUG')
IERROR='YES'
GOTO9000
ENDIF
390 FORMAT('***** ERROR IN DPMEP2--MAXIMUM NUMBER OF LEVELS, ',I10,
1' EXCEEDED FOR FACTOR 3')
F3ID(N3)=F3(I)
300 CONTINUE
IF(N3.LE.0)WRITE(ICOUT,305)
305 FORMAT('ERROR IN DPMEP2 SUBROUTINE--N3 = 0')
IF(N3.LE.0)CALL DPWRST('XXX','BUG ')
IF(N3.LE.0)IERROR='YES'
IF(N3.LE.0)GOTO9000
AN3=N3
IF(NUMFAC.LE.3)GOTO900
C
C ***********************************************
C ** STEP 1.4-- **
C ** DETERMINE THE NUMBER OF DISTINCT VALUES **
C ** FOR FACTOR 4 **
C ***********************************************
C
CCCCC JANUARY 1996. CHECK FOR EXCEEDING MAXIMUM NUMBER OF LEVELS
ISTEPN='1.4'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
N4=0
DO400I=1,N
IF(N4.LE.0)GOTO450
DO420J=1,N4
IF(F4(I).EQ.F4ID(J))GOTO400
420 CONTINUE
450 N4=N4+1
IF(N4.GT.MAXLEV)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,490)MAXLEV
CALL DPWRST('XXX','BUG')
IERROR='YES'
GOTO9000
ENDIF
490 FORMAT('***** ERROR IN DPMEP2--MAXIMUM NUMBER OF LEVELS, ',I10,
1' EXCEEDED FOR FACTOR 4')
F4ID(N4)=F4(I)
400 CONTINUE
IF(N4.LE.0)WRITE(ICOUT,405)
405 FORMAT('ERROR IN DPMEP2 SUBROUTINE--N4 = 0')
IF(N4.LE.0)CALL DPWRST('XXX','BUG ')
IF(N4.LE.0)IERROR='YES'
IF(N4.LE.0)GOTO9000
AN4=N4
IF(NUMFAC.LE.4)GOTO900
C
C ***********************************************
C ** STEP 1.5-- **
C ** DETERMINE THE NUMBER OF DISTINCT VALUES **
C ** FOR FACTOR 5 **
C ***********************************************
C
CCCCC JANUARY 1996. CHECK FOR EXCEEDING MAXIMUM NUMBER OF LEVELS
ISTEPN='1.5'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
N5=0
DO500I=1,N
IF(N5.LE.0)GOTO550
DO520J=1,N5
IF(F5(I).EQ.F5ID(J))GOTO500
520 CONTINUE
550 N5=N5+1
IF(N5.GT.MAXLEV)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,590)MAXLEV
CALL DPWRST('XXX','BUG')
IERROR='YES'
GOTO9000
ENDIF
590 FORMAT('***** ERROR IN DPMEP2--MAXIMUM NUMBER OF LEVELS, ',I10,
1' EXCEEDED FOR FACTOR 5')
F5ID(N5)=F5(I)
500 CONTINUE
IF(N5.LE.0)WRITE(ICOUT,505)
505 FORMAT('ERROR IN DPMEP2 SUBROUTINE--N5 = 0')
IF(N5.LE.0)CALL DPWRST('XXX','BUG ')
IF(N5.LE.0)IERROR='YES'
IF(N5.LE.0)GOTO9000
AN5=N5
IF(NUMFAC.LE.5)GOTO900
C
900 CONTINUE
C
C **************************************
C ** STEP 2-- **
C ** SORT THE LEVELS OF FACTOR 1 **
C ** AND OF FACTOR 2 **
C ** AND OF FACTOR 3 **
C ** AND OF FACTOR 4 **
C ** AND OF FACTOR 5 **
C ** SO AS TO PUT THEM IN ORDER FOR **
C ** PRESENTATION PURPOSES. **
C **************************************
C
ISTEPN='2'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CALL SORT(F1ID,N1,F1ID)
IF(NUMFAC.LE.1)GOTO1900
CALL SORT(F2ID,N2,F2ID)
IF(NUMFAC.LE.2)GOTO1900
CALL SORT(F3ID,N3,F3ID)
IF(NUMFAC.LE.3)GOTO1900
CALL SORT(F4ID,N4,F4ID)
IF(NUMFAC.LE.4)GOTO1900
CALL SORT(F5ID,N5,F5ID)
IF(NUMFAC.LE.5)GOTO1900
C
1900 CONTINUE
C
C ********************************************
C ** STEP 3-- **
C ** DETERMINE IF HAVE **
C ** REPLICATION WITHIN CELLS. **
C ** IF SO, COMPUTE (FOR EACH CELL)-- **
C ** 1) NUMBER OF OBSERVATIONS; **
C ** 2) MEAN; **
C ** 3) SUM OF SQUARED DEVIATIONS. **
C ********************************************
C
ISTEPN='3'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IREP='NO'
IREPDF=0
REPDF=0.0
REPSS=0.0
REPSD=0.0
C
IF(NUMFAC.EQ.1)GOTO3100
IF(NUMFAC.EQ.2)GOTO3200
IF(NUMFAC.EQ.3)GOTO3300
IF(NUMFAC.EQ.4)GOTO3400
IF(NUMFAC.EQ.5)GOTO3500
C
C *******************************
C ** STEP 3.1-- **
C ** TREAT THE 1-FACTOR CASE **
C *******************************
C
3100 CONTINUE
ISTEPN='3.1'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
K=0
DO3110ISET1=1,N1
K=K+1
CELLN=0.0
CELLME=0.0
CCCCC CELLSD(K)=0.0
C
NI=0
DO3160I=1,N
IF(F1(I).NE.F1ID(ISET1))GOTO3160
NI=NI+1
Z(NI)=Y(I)
3160 CONTINUE
C
CELLN=NI
IF(NI.LE.0)GOTO3190
IF(NI.EQ.1)CELLME=Z(NI)
IF(NI.EQ.1)GOTO3190
IREP='YES'
SUM=0.0
DO3170I=1,NI
SUM=SUM+Z(I)
3170 CONTINUE
CELLME=SUM/CELLN
C
SUM=0.0
DO3180I=1,NI
SUM=SUM+(Z(I)-CELLME)**2
3180 CONTINUE
CELLV=SUM/(CELLN-1.0)
CCCCC IF(CELLV.LE.0.0)CELLSD(K)=0.0
CCCCC IF(CELLV.GT.0.0)CELLSD(K)=SQRT(CELLV)
C
REPSS=REPSS+SUM
IREPDF=IREPDF+NI-1
3190 CONTINUE
3110 CONTINUE
GOTO3900
C
C *******************************
C ** STEP 3.2-- **
C ** TREAT THE 2-FACTOR CASE **
C *******************************
C
3200 CONTINUE
ISTEPN='3.2'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
K=0
DO3210ISET1=1,N1
DO3220ISET2=1,N2
K=K+1
CELLN=0.0
CELLME=0.0
CCCCC CELLSD(K)=0.0
C
NI=0
DO3260I=1,N
IF(F1(I).NE.F1ID(ISET1))GOTO3260
IF(F2(I).NE.F2ID(ISET2))GOTO3260
NI=NI+1
Z(NI)=Y(I)
3260 CONTINUE
C
CELLN=NI
IF(NI.LE.0)GOTO3290
IF(NI.EQ.1)CELLME=Z(NI)
IF(NI.EQ.1)GOTO3290
IREP='YES'
SUM=0.0
DO3270I=1,NI
SUM=SUM+Z(I)
3270 CONTINUE
CELLME=SUM/CELLN
C
SUM=0.0
DO3280I=1,NI
SUM=SUM+(Z(I)-CELLME)**2
3280 CONTINUE
CELLV=SUM/(CELLN-1.0)
CCCCC IF(CELLV.LE.0.0)CELLSD(K)=0.0
CCCCC IF(CELLV.GT.0.0)CELLSD(K)=SQRT(CELLV)
C
REPSS=REPSS+SUM
IREPDF=IREPDF+NI-1
3290 CONTINUE
3220 CONTINUE
3210 CONTINUE
GOTO3900
C
C *******************************
C ** STEP 3.3-- **
C ** TREAT THE 3-FACTOR CASE **
C *******************************
C
3300 CONTINUE
ISTEPN='3.3'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
K=0
DO3310ISET1=1,N1
DO3320ISET2=1,N2
DO3330ISET3=1,N3
K=K+1
CELLN=0.0
CELLME=0.0
CCCCC CELLSD(K)=0.0
C
NI=0
DO3360I=1,N
IF(F1(I).NE.F1ID(ISET1))GOTO3360
IF(F2(I).NE.F2ID(ISET2))GOTO3360
IF(F3(I).NE.F3ID(ISET3))GOTO3360
NI=NI+1
Z(NI)=Y(I)
3360 CONTINUE
C
CELLN=NI
IF(NI.LE.0)GOTO3390
IF(NI.EQ.1)CELLME=Z(NI)
IF(NI.EQ.1)GOTO3390
IREP='YES'
SUM=0.0
DO3370I=1,NI
SUM=SUM+Z(I)
3370 CONTINUE
CELLME=SUM/CELLN
C
SUM=0.0
DO3380I=1,NI
SUM=SUM+(Z(I)-CELLME)**2
3380 CONTINUE
CELLV=SUM/(CELLN-1.0)
CCCCC IF(CELLV.LE.0.0)CELLSD(K)=0.0
CCCCC IF(CELLV.GT.0.0)CELLSD(K)=SQRT(CELLV)
C
IREPDF=IREPDF+NI-1
REPSS=REPSS+SUM
3390 CONTINUE
3330 CONTINUE
3320 CONTINUE
3310 CONTINUE
GOTO3900
C
C *******************************
C ** STEP 3.4-- **
C ** TREAT THE 4-FACTOR CASE **
C *******************************
C
3400 CONTINUE
ISTEPN='3.4'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
K=0
DO3410ISET1=1,N1
DO3420ISET2=1,N2
DO3430ISET3=1,N3
DO3440ISET4=1,N4
K=K+1
CELLN=0.0
CELLME=0.0
CCCCC CELLSD(K)=0.0
C
NI=0
DO3460I=1,N
IF(F1(I).NE.F1ID(ISET1))GOTO3460
IF(F2(I).NE.F2ID(ISET2))GOTO3460
IF(F3(I).NE.F3ID(ISET3))GOTO3460
IF(F4(I).NE.F4ID(ISET4))GOTO3460
NI=NI+1
Z(NI)=Y(I)
3460 CONTINUE
C
CELLN=NI
IF(NI.LE.0)GOTO3490
IF(NI.EQ.1)CELLME=Z(NI)
IF(NI.EQ.1)GOTO3490
IREP='YES'
SUM=0.0
DO3470I=1,NI
SUM=SUM+Z(I)
3470 CONTINUE
CELLME=SUM/CELLN
C
SUM=0.0
DO3480I=1,NI
SUM=SUM+(Z(I)-CELLME)**2
3480 CONTINUE
CELLV=SUM/(CELLN-1.0)
CCCCC IF(CELLV.LE.0.0)CELLSD(K)=0.0
CCCCC IF(CELLV.GT.0.0)CELLSD(K)=SQRT(CELLV)
C
REPSS=REPSS+SUM
IREPDF=IREPDF+NI-1
3490 CONTINUE
3440 CONTINUE
3430 CONTINUE
3420 CONTINUE
3410 CONTINUE
GOTO3900
C
C *******************************
C ** STEP 3.5-- **
C ** TREAT THE 5-FACTOR CASE **
C *******************************
C
3500 CONTINUE
ISTEPN='3.5'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
K=0
DO3510ISET1=1,N1
DO3520ISET2=1,N2
DO3530ISET3=1,N3
DO3540ISET4=1,N4
DO3550ISET5=1,N5
K=K+1
CELLN=0.0
CELLME=0.0
CCCCC CELLSD(K)=0.0
C
NI=0
DO3560I=1,N
IF(F1(I).NE.F1ID(ISET1))GOTO3560
IF(F2(I).NE.F2ID(ISET2))GOTO3560
IF(F3(I).NE.F3ID(ISET3))GOTO3560
IF(F4(I).NE.F4ID(ISET4))GOTO3560
IF(F5(I).NE.F5ID(ISET5))GOTO3560
NI=NI+1
Z(NI)=Y(I)
3560 CONTINUE
C
CELLN=NI
IF(NI.LE.0)GOTO3590
IF(NI.EQ.1)CELLME=Z(NI)
IF(NI.EQ.1)GOTO3590
IREP='YES'
SUM=0.0
DO3570I=1,NI
SUM=SUM+Z(I)
3570 CONTINUE
CELLME=SUM/CELLN
C
SUM=0.0
DO3580I=1,NI
SUM=SUM+(Z(I)-CELLME)**2
3580 CONTINUE
CELLV=SUM/(CELLN-1.0)
CCCCC IF(CELLV.LE.0.0)CELLSD(K)=0.0
CCCCC IF(CELLV.GT.0.0)CELLSD(K)=SQRT(CELLV)
C
REPSS=REPSS+SUM
IREPDF=IREPDF+NI-1
3590 CONTINUE
3550 CONTINUE
3540 CONTINUE
3530 CONTINUE
3520 CONTINUE
3510 CONTINUE
GOTO3900
C
3900 CONTINUE
NUMCEL=K
IF(IREP.EQ.'NO')GOTO3950
REPDF=IREPDF
REPMS=REPSS/REPDF
IF(REPMS.LE.0.0)REPSD=0.0
IF(REPMS.GT.0.0)REPSD=SQRT(REPMS)
3950 CONTINUE
C
C ******************************
C ** STEP 4-- **
C ** COMPUTE THE GRAND MEAN **
C ******************************
C
ISTEPN='4'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM=0.0
DO4100I=1,N
SUM=SUM+Y(I)
4100 CONTINUE
GMEAN=SUM/AN
C
CALL MEDIA2(Y,N,IWRITE,GMED,IBUGA3,IERROR)
C
SUM=0.0
DO4200I=1,N
SUM=SUM+(Y(I)-GMEAN)**2
4200 CONTINUE
GSS=SUM
GVAR=GSS/(AN-1.0)
IF(GVAR.LE.0.0)GSD=0.0
IF(GVAR.GT.0.0)GSD=SQRT(GVAR)
C
YMIN=Y(1)
YMAX=Y(1)
DO4300I=1,N
IF(Y(I).LT.YMIN)YMIN=Y(I)
IF(Y(I).GT.YMAX)YMAX=Y(I)
4300 CONTINUE
GRANGE=YMAX-YMIN
C
C **********************************************
C ** STEP 5.01-- **
C ** INITIALIZE ROW AND COLUMN MEDIANS TO 0 **
C **********************************************
C
ISTEPN='5.01'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO4500I=1,N
RES2(I)=Y(I)
4500 CONTINUE
C
DO4510J=1,N1
F1EFFE(J)=0.0
4510 CONTINUE
IF(NUMFAC.LE.1)GOTO4590
C
DO4520J=1,N2
F2EFFE(J)=0.0
4520 CONTINUE
IF(NUMFAC.LE.2)GOTO4590
C
DO4530J=1,N3
F3EFFE(J)=0.0
4530 CONTINUE
IF(NUMFAC.LE.3)GOTO4590
C
DO4540J=1,N4
F4EFFE(J)=0.0
4540 CONTINUE
IF(NUMFAC.LE.4)GOTO4590
C
DO4550J=1,N5
F5EFFE(J)=0.0
4550 CONTINUE
IF(NUMFAC.LE.5)GOTO4590
C
4590 CONTINUE
C
C ******************************************
C ** STEP 5.02-- **
C ** COMPUTE THE NUMBER OF OBSERVATIONS **
C ** IN EACH LEVEL OF EACH VARIABLE **
C ******************************************
C
ISTEPN='5.02'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO4610J=1,N1
K=0
DO4612I=1,N
IF(F1(I).EQ.F1ID(J))GOTO4614
GOTO4612
4614 CONTINUE
K=K+1
4612 CONTINUE
F1N(J)=K
4610 CONTINUE
IF(NUMFAC.LE.1)GOTO4690
C
DO4620J=1,N2
K=0
DO4622I=1,N
IF(F2(I).EQ.F2ID(J))GOTO4624
GOTO4622
4624 CONTINUE
K=K+1
4622 CONTINUE
F2N(J)=K
4620 CONTINUE
IF(NUMFAC.LE.2)GOTO4690
C
DO4630J=1,N3
K=0
DO4632I=1,N
IF(F3(I).EQ.F3ID(J))GOTO4634
GOTO4632
4634 CONTINUE
K=K+1
4632 CONTINUE
F3N(J)=K
4630 CONTINUE
IF(NUMFAC.LE.3)GOTO4690
C
DO4640J=1,N4
K=0
DO4642I=1,N
IF(F4(I).EQ.F4ID(J))GOTO4644
GOTO4642
4644 CONTINUE
K=K+1
4642 CONTINUE
F4N(J)=K
4640 CONTINUE
IF(NUMFAC.LE.4)GOTO4690
C
DO4650J=1,N5
K=0
DO4652I=1,N
IF(F5(I).EQ.F5ID(J))GOTO4654
GOTO4652
4654 CONTINUE
K=K+1
4652 CONTINUE
F5N(J)=K
4650 CONTINUE
IF(NUMFAC.LE.5)GOTO4690
C
4690 CONTINUE
C
C *******************************************************
C ** STEP 5.03-- **
C ** DEFINE THE ITERATION LOOP FOR THE MEDIAN POLISH **
C *******************************************************
C
ISTEPN='5.03'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO5000IPASS=1,MAXPAS
C
IF(IBUGA3.EQ.'OFF')GOTO5019
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5011)
5011 FORMAT('******************************')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5012)IPASS
5012 FORMAT('AT BEGINNING OF PASS ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
5019 CONTINUE
C
C ***********************************************
C ** STEP 5.1-- **
C ** FOR THIS PASS-- **
C ** DETERMINE (FOR EACH LEVEL OF FACTOR 1) **
C ** 1) UPDATED MEDIAN; **
C ** 2) UPDATED RESIDUALS **
C ***********************************************
C
ISTEPN='5.1'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO5100J=1,N1
C
K=0
DO5120I=1,N
IF(F1(I).EQ.F1ID(J))GOTO5130
GOTO5120
5130 CONTINUE
K=K+1
Y2(K)=RES2(I)
5120 CONTINUE
CALL MEDIA2(Y2,K,IWRITE,Y2MED(J),IBUGA3,IERROR)
F1EFFE(J)=F1EFFE(J)+Y2MED(J)
C
DO5140I=1,N
IF(F1(I).EQ.F1ID(J))GOTO5150
GOTO5140
5150 CONTINUE
RES2(I)=RES2(I)-Y2MED(J)
5140 CONTINUE
C
5100 CONTINUE
C
Y3MED=0.0
IF(NUMFAC.GE.2.AND.IPASS.GE.2)
1CALL MEDIA2(F2EFFE,N2,IWRITE,Y3MED,IBUGA3,IERROR)
GTYP=GTYP+Y3MED
C
DO5160J=1,N2
F2EFFE(J)=F2EFFE(J)-Y3MED
5160 CONTINUE
C
DO5170J=1,N1
F1TYP(J)=GTYP+F1EFFE(J)
5170 CONTINUE
C
IF(IBUGA3.EQ.'OFF')GOTO5189
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5181)
5181 FORMAT('***** AFTER THE HORIZONTAL SWEEP--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5182I=1,N
WRITE(ICOUT,5183)I,RES2(I)
5183 FORMAT('I,RES2(I) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5182 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5184J=1,N1
WRITE(ICOUT,5185)J,F1EFFE(J)
5185 FORMAT('J,F1EFFE(J) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5184 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5186J=1,N2
WRITE(ICOUT,5187)J,F2EFFE(J)
5187 FORMAT('J,F2EFFE(J) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5186 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5188)GTYP
5188 FORMAT('GTYP = ',8X,E15.7)
CALL DPWRST('XXX','BUG ')
5189 CONTINUE
C
IF(NUMFAC.LE.1)GOTO5800
C
C ***********************************************
C ** STEP 5.2-- **
C ** FOR THIS PASS-- **
C ** DETERMINE (FOR EACH LEVEL OF FACTOR 2) **
C ** 1) UPDATED MEDIAN; **
C ** 2) UPDATED RESIDUALS **
C ***********************************************
C
ISTEPN='5.2'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO5200J=1,N2
C
K=0
DO5220I=1,N
IF(F2(I).EQ.F2ID(J))GOTO5230
GOTO5220
5230 CONTINUE
K=K+1
Y2(K)=RES2(I)
5220 CONTINUE
CALL MEDIA2(Y2,K,IWRITE,Y2MED(J),IBUGA3,IERROR)
F2EFFE(J)=F2EFFE(J)+Y2MED(J)
C
DO5240I=1,N
IF(F2(I).EQ.F2ID(J))GOTO5250
GOTO5240
5250 CONTINUE
RES2(I)=RES2(I)-Y2MED(J)
5240 CONTINUE
C
5200 CONTINUE
C
CALL MEDIA2(F1EFFE,N1,IWRITE,Y3MED,IBUGA3,IERROR)
GTYP=GTYP+Y3MED
C
DO5260J=1,N1
F1EFFE(J)=F1EFFE(J)-Y3MED
5260 CONTINUE
C
DO5270J=1,N2
F2TYP(J)=GTYP+F2EFFE(J)
5270 CONTINUE
C
IF(IBUGA3.EQ.'OFF')GOTO5289
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5281)
5281 FORMAT('***** AFTER THE VERTICAL SWEEP--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5282I=1,N
WRITE(ICOUT,5283)I,RES2(I)
5283 FORMAT('I,RES2(I) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5282 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5284J=1,N1
WRITE(ICOUT,5285)J,F1EFFE(J)
5285 FORMAT('J,F1EFFE(J) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5284 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5286J=1,N2
WRITE(ICOUT,5287)J,F2EFFE(J)
5287 FORMAT('J,F2EFFE(J) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5286 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5288)GTYP
5288 FORMAT('GTYP = ',8X,E15.7)
CALL DPWRST('XXX','BUG ')
5289 CONTINUE
IF(NUMFAC.LE.2)GOTO5800
C
C ***********************************************
C ** STEP 5.3-- **
C ** FOR THIS PASS-- **
C ** DETERMINE (FOR EACH LEVEL OF FACTOR 3) **
C ** 1) UPDATED MEDIAN; **
C ** 2) UPDATED RESIDUALS **
C ***********************************************
C
ISTEPN='5.3'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO5300J=1,N3
C
K=0
DO5320I=1,N
IF(F3(I).EQ.F3ID(J))GOTO5330
GOTO5320
5330 CONTINUE
K=K+1
Y2(K)=RES2(I)
5320 CONTINUE
CALL MEDIA2(Y2,K,IWRITE,Y2MED(J),IBUGA3,IERROR)
F3EFFE(J)=F3EFFE(J)+Y2MED(J)
C
DO5340I=1,N
IF(F3(I).EQ.F3ID(J))GOTO5350
GOTO5340
5350 CONTINUE
RES2(I)=RES2(I)-Y2MED(J)
5340 CONTINUE
C
5300 CONTINUE
C
CALL MEDIA2(F1EFFE,N1,IWRITE,Y3MED,IBUGA3,IERROR)
GTYP=GTYP+Y3MED
C
DO5360J=1,N1
F1EFFE(J)=F1EFFE(J)-Y3MED
5360 CONTINUE
C
DO5370J=1,N3
F3TYP(J)=GTYP+F3EFFE(J)
5370 CONTINUE
C
IF(IBUGA3.EQ.'OFF')GOTO5389
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5381)
5381 FORMAT('***** AFTER THE DIMENSION 3 SWEEP--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5382I=1,N
WRITE(ICOUT,5383)I,RES2(I)
5383 FORMAT('I,RES2(I) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5382 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5384J=1,N1
WRITE(ICOUT,5385)J,F1EFFE(J)
5385 FORMAT('J,F1EFFE(J) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5384 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5386J=1,N2
WRITE(ICOUT,5387)J,F2EFFE(J)
5387 FORMAT('J,F2EFFE(J) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5386 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5388)GTYP
5388 FORMAT('GTYP = ',8X,E15.7)
CALL DPWRST('XXX','BUG ')
5389 CONTINUE
IF(NUMFAC.LE.3)GOTO5800
C
C ***********************************************
C ** STEP 5.4-- **
C ** FOR THIS PASS-- **
C ** DETERMINE (FOR EACH LEVEL OF FACTOR 4) **
C ** 1) UPDATED MEDIAN; **
C ** 2) UPDATED RESIDUALS **
C ***********************************************
C
ISTEPN='5.4'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO5400J=1,N4
C
K=0
DO5420I=1,N
IF(F4(I).EQ.F4ID(J))GOTO5430
GOTO5420
5430 CONTINUE
K=K+1
Y2(K)=RES2(I)
5420 CONTINUE
CALL MEDIA2(Y2,K,IWRITE,Y2MED(J),IBUGA3,IERROR)
F4EFFE(J)=F4EFFE(J)+Y2MED(J)
C
DO5440I=1,N
IF(F4(I).EQ.F4ID(J))GOTO5450
GOTO5440
5450 CONTINUE
RES2(I)=RES2(I)-Y2MED(J)
5440 CONTINUE
C
5400 CONTINUE
C
CALL MEDIA2(F1EFFE,N1,IWRITE,Y3MED,IBUGA3,IERROR)
GTYP=GTYP+Y3MED
C
DO5460J=1,N1
F1EFFE(J)=F1EFFE(J)-Y3MED
5460 CONTINUE
C
DO5470J=1,N4
F4TYP(J)=GTYP+F4EFFE(J)
5470 CONTINUE
C
IF(IBUGA3.EQ.'OFF')GOTO5489
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5481)
5481 FORMAT('***** AFTER THE DIMENSION 4 SWEEP--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5482I=1,N
WRITE(ICOUT,5483)I,RES2(I)
5483 FORMAT('I,RES2(I) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5482 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5484J=1,N1
WRITE(ICOUT,5485)J,F1EFFE(J)
5485 FORMAT('J,F1EFFE(J) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5484 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5486J=1,N2
WRITE(ICOUT,5487)J,F2EFFE(J)
5487 FORMAT('J,F2EFFE(J) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5486 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5488)GTYP
5488 FORMAT('GTYP = ',8X,E15.7)
CALL DPWRST('XXX','BUG ')
5489 CONTINUE
IF(NUMFAC.LE.4)GOTO5800
C
C ***********************************************
C ** STEP 5.5-- **
C ** FOR THIS PASS-- **
C ** DETERMINE (FOR EACH LEVEL OF FACTOR 5) **
C ** 1) UPDATED MEDIAN; **
C ** 2) UPDATED RESIDUALS **
C ***********************************************
C
ISTEPN='5.5'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO5500J=1,N5
C
K=0
DO5520I=1,N
IF(F5(I).EQ.F5ID(J))GOTO5530
GOTO5520
5530 CONTINUE
K=K+1
Y2(K)=RES2(I)
5520 CONTINUE
CALL MEDIA2(Y2,K,IWRITE,Y2MED(J),IBUGA3,IERROR)
F5EFFE(J)=F5EFFE(J)+Y2MED(J)
C
DO5540I=1,N
IF(F5(I).EQ.F5ID(J))GOTO5550
GOTO5540
5550 CONTINUE
RES2(I)=RES2(I)-Y2MED(J)
5540 CONTINUE
C
5500 CONTINUE
C
CALL MEDIA2(F1EFFE,N1,IWRITE,Y3MED,IBUGA3,IERROR)
GTYP=GTYP+Y3MED
C
DO5560J=1,N1
F1EFFE(J)=F1EFFE(J)-Y3MED
5560 CONTINUE
C
DO5570J=1,N5
F5TYP(J)=GTYP+F5EFFE(J)
5570 CONTINUE
C
IF(IBUGA3.EQ.'OFF')GOTO5589
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5581)
5581 FORMAT('***** AFTER THE DIMENSION 5 SWEEP--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5582I=1,N
WRITE(ICOUT,5583)I,RES2(I)
5583 FORMAT('I,RES2(I) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5582 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5584J=1,N1
WRITE(ICOUT,5585)J,F1EFFE(J)
5585 FORMAT('J,F1EFFE(J) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5584 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO5586J=1,N2
WRITE(ICOUT,5587)J,F2EFFE(J)
5587 FORMAT('J,F2EFFE(J) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
5586 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5588)GTYP
5588 FORMAT('GTYP = ',8X,E15.7)
CALL DPWRST('XXX','BUG ')
5589 CONTINUE
IF(NUMFAC.LE.5)GOTO5800
C
C *************************************************************
C ** STEP 5.6-- **
C ** DETERMINE IF THE CHANGE IN THE RESIDUALS **
C ** (FROM THIS PASS AS COMPARED TO THE PREVIOUS PASS) **
C ** IS SO SMALL THAT THE ITERATIONS SHOULD BE TERMINATED. **
C *************************************************************
C
5800 CONTINUE
C
ISTEPN='5.6'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM=0.0
DO5810I=1,N
SUM=SUM+ABS(RES2(I))
5810 CONTINUE
AARES=SUM/AN
C
IF(IBUGA3.EQ.'OFF')GOTO5819
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5811)IPASS
5811 FORMAT('***** AT THE CLOSE OF PASS ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5812)IPASS,AN,SUM,AARES,AARESO
5812 FORMAT('IPASS,AN,SUM,AARES,AARESO = ',I8,4E15.7)
CALL DPWRST('XXX','BUG ')
5819 CONTINUE
C
IF(AARES.LE.0.0)GOTO5900
C
IF(IPASS.EQ.1)AARESO=AARES
IF(IPASS.EQ.1)GOTO5000
C
RATIO=AARES/AARESO
IF(IBUGA3.EQ.'ON')WRITE(ICOUT,5816)IPASS,AARES,AARESO,RATIO,CUTOFF
5816 FORMAT('IPASS,AARES,AARESO,RATIO,CUTOFF = ',I8,4E15.7)
IF(IBUGA3.EQ.'ON')CALL DPWRST('XXX','BUG ')
IF(RATIO.GE.CUTOFF)GOTO5900
AARESO=AARES
GOTO5000
C
5000 CONTINUE
C
5900 CONTINUE
C
C ******************************************
C ** STEP 6-- **
C ** COMPUTE THE FOLLOWING-- **
C ** 1) PREDICTED VALUES; **
C ** 2) RESIDUALS; **
C ** 3) RESIDUAL STANDARD DEVIATION; **
C ** 4) RESIDUAL DEGREES OF FREEDOM; **
C ** IF HAVE REPLICATION, **
C ** THEN ALSO CARRY OUT **
C ** THE LACK OF FIT F TEST. **
C ******************************************
C
ISTEPN='6'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
RESSS=0.0
IRESDF=0
RESDF=0.0
RESMS=0.0
RESSD=0.0
ALFCDF=(-999.99)
C
DO6000I=1,N
C
DO6100ISET1=1,N1
J1=ISET1
IF(F1(I).EQ.F1ID(ISET1))GOTO6115
6100 CONTINUE
6115 CONTINUE
E1=F1EFFE(J1)
IF(NUMFAC.LE.1)GOTO6900
C
DO6200ISET2=1,N2
J2=ISET2
IF(F2(I).EQ.F2ID(ISET2))GOTO6215
6200 CONTINUE
6215 CONTINUE
E2=F2EFFE(J2)
IF(NUMFAC.LE.2)GOTO6900
C
DO6300ISET3=1,N3
J3=ISET3
IF(F3(I).EQ.F3ID(ISET3))GOTO6315
6300 CONTINUE
6315 CONTINUE
E3=F3EFFE(J3)
IF(NUMFAC.LE.3)GOTO6900
C
DO6400ISET4=1,N4
J4=ISET4
IF(F4(I).EQ.F4ID(ISET4))GOTO6415
6400 CONTINUE
6415 CONTINUE
E4=F4EFFE(J4)
IF(NUMFAC.LE.4)GOTO6900
C
DO6500ISET5=1,N5
J5=ISET5
IF(F5(I).EQ.F5ID(ISET5))GOTO6515
6500 CONTINUE
6515 CONTINUE
E5=F5EFFE(J5)
IF(NUMFAC.LE.5)GOTO6900
C
6900 CONTINUE
IF(NUMFAC.EQ.1)PRED2(I)=GTYP+E1
IF(NUMFAC.EQ.2)PRED2(I)=GTYP+E1+E2
IF(NUMFAC.EQ.3)PRED2(I)=GTYP+E1+E2+E3
IF(NUMFAC.EQ.4)PRED2(I)=GTYP+E1+E2+E3+E4
IF(NUMFAC.EQ.5)PRED2(I)=GTYP+E1+E2+E3+E4+E5
6000 CONTINUE
CCCCC RES2(I)=Y(I)-PRED2(I)
C
IF(NUMFAC.EQ.1)IRESDF=N-(1+(N1-1))
IF(NUMFAC.EQ.2)IRESDF=N-(1+(N1-1)+(N2-1))
IF(NUMFAC.EQ.3)IRESDF=N-(1+(N1-1)+(N2-1)+(N3-1))
IF(NUMFAC.EQ.4)IRESDF=N-(1+(N1-1)+(N2-1)+(N3-1)+(N4-1))
IF(NUMFAC.EQ.5)IRESDF=N-(1+(N1-1)+(N2-1)+(N3-1)+(N4-1)+(N5-1))
RESDF=IRESDF
C
SUM=0.0
DO6910I=1,N
SUM=SUM+RES2(I)*RES2(I)
6910 CONTINUE
RESSS=SUM
RESMS=RESSS/RESDF
IF(RESMS.LE.0.0)RESSD=0.0
IF(RESMS.GT.0.0)RESSD=SQRT(RESMS)
C
IF(IREP.EQ.'NO')GOTO6990
IFITDF=IRESDF-IREPDF
FITDF=IFITDF
IF(IFITDF.LE.0)GOTO6990
FITSS=RESSS-REPSS
FITMS=FITSS/FITDF
FITFVA=FITMS/REPMS
CALL FCDF(FITFVA,IFITDF,IREPDF,FITCDF)
FITCD2=100.0*FITCDF
CCCCC THE FOLLOWING LINE WAS INSERTED MARCH 1988.
ALFCDF=FITCDF
6990 CONTINUE
C
C ************************************************
C ** STEP 7-- **
C ** COMPUTE THE ESTIMATED STANDARD DEVIATION **
C ** OF THE GRAND MEAN **
C ** AND THE ESTIMATED STANDARD DEVIATION **
C ** OF THE ESTIMATED EFFECTS. **
C ************************************************
C
ISTEPN='7'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.0)GMEASD=0.0
IF(N.GT.0)GMEASD=RESSD/SQRT(AN)
C
DO7100ISET1=1,N1
ANI=F1N(ISET1)
CONST=((1.0/ANI)-(1.0/AN))
IF(CONST.LE.0.0)F1EFSD(ISET1)=0.0
IF(CONST.GT.0.0)F1EFSD(ISET1)=RESSD*SQRT(CONST)
7100 CONTINUE
IF(NUMFAC.LE.1)GOTO7900
C
DO7200ISET2=1,N2
ANI=F2N(ISET2)
CONST=((1.0/ANI)-(1.0/AN))
IF(CONST.LE.0.0)F2EFSD(ISET2)=0.0
IF(CONST.GT.0.0)F2EFSD(ISET2)=RESSD*SQRT(CONST)
7200 CONTINUE
IF(NUMFAC.LE.2)GOTO7900
C
DO7300ISET3=1,N3
ANI=F3N(ISET3)
CONST=((1.0/ANI)-(1.0/AN))
IF(CONST.LE.0.0)F3EFSD(ISET3)=0.0
IF(CONST.GT.0.0)F3EFSD(ISET3)=RESSD*SQRT(CONST)
7300 CONTINUE
IF(NUMFAC.LE.3)GOTO7900
C
DO7400ISET4=1,N4
ANI=F4N(ISET4)
CONST=((1.0/ANI)-(1.0/AN))
IF(CONST.LE.0.0)F4EFSD(ISET4)=0.0
IF(CONST.GT.0.0)F4EFSD(ISET4)=RESSD*SQRT(CONST)
7400 CONTINUE
IF(NUMFAC.LE.4)GOTO7900
C
DO7500ISET5=1,N5
ANI=F5N(ISET5)
CONST=((1.0/ANI)-(1.0/AN))
IF(CONST.LE.0.0)F5EFSD(ISET5)=0.0
IF(CONST.GT.0.0)F5EFSD(ISET5)=RESSD*SQRT(CONST)
7500 CONTINUE
IF(NUMFAC.LE.5)GOTO7900
C
7900 CONTINUE
C
C ********************************
C ** STEP 8-- **
C ** PERFORM THE F TEST **
C ** TO TEST THE SIGNIFICANCE **
C ** OF FACTOR 1 **
C ** OF FACTOR 2 **
C ** OF FACTOR 3 **
C ** OF FACTOR 4 **
C ** OF FACTOR 5 **
C ********************************
C
ISTEPN='8'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM=0.0
DO8100J=1,N1
SUM=SUM+F1N(J)*F1EFFE(J)*F1EFFE(J)
8100 CONTINUE
SS1=SUM
IDF1=N1-1
DF1=IDF1
RESMS1=SS1/DF1
IF(RESMS1.LE.0.0)RSD(1)=0.0
IF(RESMS1.GT.0.0)RSD(1)=SQRT(RESMS1)
FVAL(1)=RESMS1/RESMS
CALL FCDF(FVAL(1),IDF1,IRESDF,FCUM(1))
F1CDF2=100.0*FCUM(1)
IF(NUMFAC.LE.1)GOTO8900
C
SUM=0.0
DO8200J=1,N2
SUM=SUM+F2N(J)*F2EFFE(J)*F2EFFE(J)
8200 CONTINUE
SS=SUM
IDF=N2-1
DF=IDF
RESMS2=SS/DF
IF(RESMS2.LE.0.0)RSD(2)=0.0
IF(RESMS2.GT.0.0)RSD(2)=SQRT(RESMS2)
FVAL(2)=RESMS2/RESMS
CALL FCDF(FVAL(2),IDF,IRESDF,FCUM(2))
F2CDF2=100.0*FCUM(2)
IF(NUMFAC.LE.2)GOTO8900
C
SUM=0.0
DO8300J=1,N3
SUM=SUM+F3N(J)*F3EFFE(J)*F3EFFE(J)
8300 CONTINUE
SS=SUM
IDF=N3-1
DF=IDF
RESMS3=SS/DF
IF(RESMS3.LE.0.0)RSD(3)=0.0
IF(RESMS3.GT.0.0)RSD(3)=SQRT(RESMS3)
FVAL(3)=RESMS3/RESMS
CALL FCDF(FVAL(3),IDF,IRESDF,FCUM(3))
F3CDF2=100.0*FCUM(3)
IF(NUMFAC.LE.3)GOTO8900
C
SUM=0.0
DO8400J=1,N4
SUM=SUM+F4N(J)*F4EFFE(J)*F4EFFE(J)
8400 CONTINUE
SS=SUM
IDF=N4-1
DF=IDF
RESMS4=SS/DF
IF(RESMS4.LE.0.0)RSD(4)=0.0
IF(RESMS4.GT.0.0)RSD(4)=SQRT(RESMS4)
FVAL(4)=RESMS4/RESMS
CALL FCDF(FVAL(4),IDF,IRESDF,FCUM(4))
F4CDF2=100.0*FCUM(4)
IF(NUMFAC.LE.4)GOTO8900
C
SUM=0.0
DO8500J=1,N5
SUM=SUM+F5N(J)*F5EFFE(J)*F5EFFE(J)
8500 CONTINUE
SS=SUM
IDF=N5-1
DF=IDF
RESMS5=SS/DF
IF(RESMS5.LE.0.0)RSD(5)=0.0
IF(RESMS5.GT.0.0)RSD(5)=SQRT(RESMS5)
FVAL(5)=RESMS5/RESMS
CALL FCDF(FVAL(5),IDF,IRESDF,FCUM(5))
F5CDF2=100.0*FCUM(5)
IF(NUMFAC.LE.5)GOTO8900
C
8900 CONTINUE
C
C *************************************************
C ** STEP 9.1-- **
C ** DETERMINE THE RESIDUAL STANDARD DEVIATION **
C ** FOR THE 1-FACTOR MODEL **
C ** FOR FACTOR 1 ONLY. **
C *************************************************
C
ISTEPN='9.1'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM=0.0
DO9100I=1,N
DO9110J=1,N1
J1=J
IF(F1(I).EQ.F1ID(J))GOTO9120
9110 CONTINUE
9120 CONTINUE
WMEAN=F1TYP(J1)
SUM=SUM+(Y(I)-WMEAN)**2
9100 CONTINUE
WSS1=SUM
WDF1=AN-AN1
WVAR1=WSS1/WDF1
IF(WVAR1.LE.0.0)WSD1=0.0
IF(WVAR1.GT.0.0)WSD1=SQRT(WVAR1)
RSD(1)=WSD1
IF(NUMFAC.LE.1)GOTO9900
C
C *************************************************
C ** STEP 9.2-- **
C ** DETERMINE THE RESIDUAL STANDARD DEVIATION **
C ** FOR THE 1-FACTOR MODEL **
C ** FOR FACTOR 2 ONLY. **
C *************************************************
C
ISTEPN='9.2'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM=0.0
DO9200I=1,N
DO9210J=1,N2
J1=J
IF(F2(I).EQ.F2ID(J))GOTO9220
9210 CONTINUE
9220 CONTINUE
WMEAN=F2TYP(J1)
SUM=SUM+(Y(I)-WMEAN)**2
9200 CONTINUE
WSS2=SUM
WDF2=AN-AN2
WVAR2=WSS2/WDF2
IF(WVAR2.LE.0.0)WSD2=0.0
IF(WVAR2.GT.0.0)WSD2=SQRT(WVAR2)
RSD(2)=WSD2
IF(NUMFAC.LE.2)GOTO9900
C
C *************************************************
C ** STEP 9.3-- **
C ** DETERMINE THE RESIDUAL STANDARD DEVIATION **
C ** FOR THE 1-FACTOR MODEL **
C ** FOR FACTOR 3 ONLY. **
C *************************************************
C
ISTEPN='9.3'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM=0.0
DO9300I=1,N
DO9310J=1,N3
J1=J
IF(F3(I).EQ.F3ID(J))GOTO9320
9310 CONTINUE
9320 CONTINUE
WMEAN=F3TYP(J1)
SUM=SUM+(Y(I)-WMEAN)**2
9300 CONTINUE
WSS3=SUM
WDF3=AN-AN3
WVAR3=WSS3/WDF3
IF(WVAR3.LE.0.0)WSD3=0.0
IF(WVAR3.GT.0.0)WSD3=SQRT(WVAR3)
RSD(3)=WSD3
IF(NUMFAC.LE.3)GOTO9900
C
C *************************************************
C ** STEP 9.4-- **
C ** DETERMINE THE RESIDUAL STANDARD DEVIATION **
C ** FOR THE 1-FACTOR MODEL **
C ** FOR FACTOR 4 ONLY. **
C *************************************************
C
ISTEPN='9.4'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM=0.0
DO9400I=1,N
DO9410J=1,N4
J1=J
IF(F4(I).EQ.F4ID(J))GOTO9420
9410 CONTINUE
9420 CONTINUE
WMEAN=F4TYP(J1)
SUM=SUM+(Y(I)-WMEAN)**2
9400 CONTINUE
WSS4=SUM
WDF4=AN-AN4
WVAR4=WSS4/WDF4
IF(WVAR4.LE.0.0)WSD4=0.0
IF(WVAR4.GT.0.0)WSD4=SQRT(WVAR4)
RSD(4)=WSD4
IF(NUMFAC.LE.4)GOTO9900
C
C *************************************************
C ** STEP 9.5-- **
C ** DETERMINE THE RESIDUAL STANDARD DEVIATION **
C ** FOR THE 1-FACTOR MODEL **
C ** FOR FACTOR 5 ONLY. **
C *************************************************
C
ISTEPN='9.5'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM=0.0
DO9500I=1,N
DO9510J=1,N5
J1=J
IF(F5(I).EQ.F5ID(J))GOTO9520
9510 CONTINUE
9520 CONTINUE
WMEAN=F5TYP(J1)
SUM=SUM+(Y(I)-WMEAN)**2
9500 CONTINUE
WSS5=SUM
WDF5=AN-AN5
WVAR5=WSS5/WDF5
IF(WVAR5.LE.0.0)WSD5=0.0
IF(WVAR5.GT.0.0)WSD5=SQRT(WVAR5)
RSD(5)=WSD5
IF(NUMFAC.LE.5)GOTO9900
C
9900 CONTINUE
C
C
C ****************************************************************
C ** STEP 10--
C ** COPY OVER INTO THE OUTPUT VECTORS B(.) AND SDB(.)--
C ** 1) THE GRAND MEAN;
C ** 2) THE ESTIMATED EFFECTS;
C ** 3) THE STANDARD DEVIATIONS OF GRAND MEAN AND EFFECTS.
C ****************************************************************
C
ISTEPN='10'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
K=1
B(K)=GTYP
SDB(K)=GMEASD
C
DO10100ISET1=1,N1
K=K+1
B(K)=F1EFFE(ISET1)
SDB(K)=F1EFSD(ISET1)
10100 CONTINUE
IF(NUMFAC.LE.1)GOTO10900
C
DO10200ISET2=1,N2
K=K+1
B(K)=F2EFFE(ISET2)
SDB(K)=F2EFSD(ISET2)
10200 CONTINUE
IF(NUMFAC.LE.2)GOTO10900
C
DO10300ISET3=1,N3
K=K+1
B(K)=F3EFFE(ISET3)
SDB(K)=F3EFSD(ISET3)
10300 CONTINUE
IF(NUMFAC.LE.3)GOTO10900
C
DO10400ISET4=1,N4
K=K+1
B(K)=F4EFFE(ISET4)
SDB(K)=F4EFSD(ISET4)
10400 CONTINUE
IF(NUMFAC.LE.4)GOTO10900
C
DO10500ISET5=1,N5
K=K+1
B(K)=F5EFFE(ISET5)
SDB(K)=F5EFSD(ISET5)
10500 CONTINUE
IF(NUMFAC.LE.5)GOTO10900
C
10900 CONTINUE
C
C ****************************
C ** STEP 11-- **
C ** WRITE EVERYTHING OUT **
C ****************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'OFF')GOTO11690
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11101)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11101)
11101 FORMAT(' ***************************')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11102)NUMFAC
11102 FORMAT(' ** ',I2,'-WAY MEDIAN POLISH',
1' **')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11101)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11101)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11103)N
11103 FORMAT(' NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11104)NUMFAC
11104 FORMAT(' NUMBER OF FACTORS = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.GE.1)WRITE(ICOUT,11111)N1
11111 FORMAT(' NUMBER OF LEVELS FOR FACTOR 1 = ',I8)
IF(NUMFAC.GE.1)CALL DPWRST('XXX','BUG ')
IF(NUMFAC.GE.2)WRITE(ICOUT,11112)N2
11112 FORMAT(' NUMBER OF LEVELS FOR FACTOR 2 = ',I8)
IF(NUMFAC.GE.2)CALL DPWRST('XXX','BUG ')
IF(NUMFAC.GE.3)WRITE(ICOUT,11113)N3
11113 FORMAT(' NUMBER OF LEVELS FOR FACTOR 3 = ',I8)
IF(NUMFAC.GE.3)CALL DPWRST('XXX','BUG ')
IF(NUMFAC.GE.4)WRITE(ICOUT,11114)N4
11114 FORMAT(' NUMBER OF LEVELS FOR FACTOR 4 = ',I8)
IF(NUMFAC.GE.4)CALL DPWRST('XXX','BUG ')
IF(NUMFAC.GE.5)WRITE(ICOUT,11115)N5
11115 FORMAT(' NUMBER OF LEVELS FOR FACTOR 5 = ',I8)
IF(NUMFAC.GE.5)CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,11123)RESSD
11123 FORMAT(' RESIDUAL STANDARD DEVIATION = ',E20.11)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11124)IRESDF
11124 FORMAT(' RESIDUAL DEGREES OF FREEDOM = ',I8)
CALL DPWRST('XXX','BUG ')
IF(IREP.EQ.'NO')WRITE(ICOUT,11201)
11201 FORMAT(' NO REPLICATION CASE')
IF(IREP.EQ.'NO')CALL DPWRST('XXX','BUG ')
IF(IREP.EQ.'YES')WRITE(ICOUT,11202)
11202 FORMAT(' REPLICATION CASE')
IF(IREP.EQ.'YES')CALL DPWRST('XXX','BUG ')
IF(IREP.EQ.'YES')WRITE(ICOUT,11203)REPSD
11203 FORMAT(' REPLICATION STANDARD DEVIATION = ',E20.11)
IF(IREP.EQ.'YES')CALL DPWRST('XXX','BUG ')
IF(IREP.EQ.'YES')WRITE(ICOUT,11204)IREPDF
11204 FORMAT(' REPLICATION DEGREES OF FREEDOM = ',I8)
IF(IREP.EQ.'YES')CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11205)NUMCEL
11205 FORMAT(' NUMBER OF DISTINCT CELLS = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,11301)
11301 FORMAT(' ****************')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11302)
11302 FORMAT(' * ESTIMATION *')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11301)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11211)GMEAN
11211 FORMAT(' GRAND MEAN = ',E20.11)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11212)GMED
11212 FORMAT(' GRAND MEDIAN = ',E20.11)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11213)GTYP
11213 FORMAT(' MEDIAN POLISH TYPICAL VALUE = ',E20.11)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11214)GRANGE
11214 FORMAT(' GRAND RANGE = ',E20.11)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11215)GSD
11215 FORMAT(' GRAND STANDARD DEVIATION = ',E20.11)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11304)
11304 FORMAT(' LEVEL-ID NI TYP. VALUE ',
1'EFFECT ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11305)
11305 FORMAT('-----------------------------------------------',
1'---------------------')
CALL DPWRST('XXX','BUG ')
DO11510I=1,N1
IF(I.EQ.1)
1WRITE(ICOUT,11511)F1ID(I),F1N(I),F1TYP(I),F1EFFE(I)
11511 FORMAT('FACTOR 1--',F11.5,F8.0,2F11.5)
IF(I.EQ.1)
1CALL DPWRST('XXX','BUG ')
IF(I.NE.1)
1WRITE(ICOUT,11512)F1ID(I),F1N(I),F1TYP(I),F1EFFE(I)
11512 FORMAT(' --',F11.5,F8.0,2F11.5)
IF(I.NE.1)
1CALL DPWRST('XXX','BUG ')
11510 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.1)GOTO11590
C
DO11520I=1,N2
IF(I.EQ.1)
1WRITE(ICOUT,11521)F2ID(I),F2N(I),F2TYP(I),F2EFFE(I)
11521 FORMAT('FACTOR 2--',F11.5,F8.0,3F11.5)
IF(I.EQ.1)
1CALL DPWRST('XXX','BUG ')
IF(I.NE.1)
1WRITE(ICOUT,11522)F2ID(I),F2N(I),F2TYP(I),F2EFFE(I)
11522 FORMAT(' --',F11.5,F8.0,3F11.5)
IF(I.NE.1)
1CALL DPWRST('XXX','BUG ')
11520 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.2)GOTO11590
C
DO11530I=1,N3
IF(I.EQ.1)
1WRITE(ICOUT,11531)F3ID(I),F3N(I),F3TYP(I),F3EFFE(I)
11531 FORMAT('FACTOR 3--',F11.5,F8.0,3F11.5)
IF(I.EQ.1)
1CALL DPWRST('XXX','BUG ')
IF(I.NE.1)
1WRITE(ICOUT,11532)F3ID(I),F3N(I),F3TYP(I),F3EFFE(I)
11532 FORMAT(' --',F11.5,F8.0,3F11.5)
IF(I.NE.1)
1CALL DPWRST('XXX','BUG ')
11530 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.3)GOTO11590
C
DO11540I=1,N4
IF(I.EQ.1)
1WRITE(ICOUT,11541)F4ID(I),F4N(I),F4TYP(I),F4EFFE(I)
11541 FORMAT('FACTOR 4--',F11.5,F8.0,3F11.5)
IF(I.EQ.1)
1CALL DPWRST('XXX','BUG ')
IF(I.NE.1)
1WRITE(ICOUT,11542)F4ID(I),F4N(I),F4TYP(I),F4EFFE(I)
11542 FORMAT(' --',F11.5,F8.0,3F11.5)
IF(I.NE.1)
1CALL DPWRST('XXX','BUG ')
11540 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.4)GOTO11590
C
DO11550I=1,N5
IF(I.EQ.1)
1WRITE(ICOUT,11551)F5ID(I),F5N(I),F5TYP(I),F5EFFE(I)
11551 FORMAT('FACTOR 5--',F11.5,F8.0,3F11.5)
IF(I.EQ.1)
1CALL DPWRST('XXX','BUG ')
IF(I.NE.1)
1WRITE(ICOUT,11552)F5ID(I),F5N(I),F5TYP(I),F5EFFE(I)
11552 FORMAT(' --',F11.5,F8.0,3F11.5)
IF(I.NE.1)
1CALL DPWRST('XXX','BUG ')
11550 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.5)GOTO11590
C
11590 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12815)
12815 FORMAT(' MODEL RESIDUAL STANDARD ',
1'DEVIATION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12816)
12816 FORMAT('----------------------------------------------',
1'---------')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,12820)GSD
12820 FORMAT('CONSTANT ONLY--',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.0)GOTO12890
WRITE(ICOUT,12821)RSD(1)
12821 FORMAT('CONSTANT & FACTOR 1 ONLY--',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.1)GOTO12890
WRITE(ICOUT,12822)RSD(2)
12822 FORMAT('CONSTANT & FACTOR 2 ONLY--',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.EQ.2)WRITE(ICOUT,12832)RESSD
12832 FORMAT('CONSTANT & BOTH FACTORS --',F20.10)
IF(NUMFAC.EQ.2)CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.2)GOTO12890
WRITE(ICOUT,12823)RSD(3)
12823 FORMAT('CONSTANT & FACTOR 3 ONLY--',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.EQ.3)WRITE(ICOUT,12833)RESSD
12833 FORMAT('CONSTANT & ALL 3 FACTORS --',F20.10)
IF(NUMFAC.EQ.3)CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.3)GOTO12890
WRITE(ICOUT,12824)RSD(4)
12824 FORMAT('CONSTANT & FACTOR 4 ONLY--',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.EQ.4)WRITE(ICOUT,12834)RESSD
12834 FORMAT('CONSTANT & ALL 4 FACTORS --',F20.10)
IF(NUMFAC.EQ.4)CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.4)GOTO12890
WRITE(ICOUT,12825)RSD(5)
12825 FORMAT('CONSTANT & FACTOR 5 ONLY--',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.EQ.5)WRITE(ICOUT,12835)RESSD
12835 FORMAT('CONSTANT & ALL 5 FACTORS --',F20.10)
IF(NUMFAC.EQ.5)CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.5)GOTO12890
C
12890 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11811)
11811 FORMAT(' *************')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11812)
11812 FORMAT(' * TESTING *')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11811)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11815)
11815 FORMAT(' NUM. LEVELS F STAT.',
1' F CDF ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11816)
11816 FORMAT('-----------------------------------',
1'-------------')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11821)N1,FVAL(1),F1CDF2
11821 FORMAT('FACTOR 1--',I8,F20.11,F8.3,'%',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.1)GOTO11890
WRITE(ICOUT,11822)N2,FVAL(2),F2CDF2
11822 FORMAT('FACTOR 2--',I8,F20.11,F8.3,'%',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.2)GOTO11890
WRITE(ICOUT,11823)N3,FVAL(3),F3CDF2
11823 FORMAT('FACTOR 3--',I8,F20.11,F8.3,'%',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.3)GOTO11890
WRITE(ICOUT,11824)N4,FVAL(4),F4CDF2
11824 FORMAT('FACTOR 4--',I8,F20.11,F8.3,'%',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.4)GOTO11890
WRITE(ICOUT,11825)N5,FVAL(5),F5CDF2
11825 FORMAT('FACTOR 5--',I8,F20.11,F8.3,'%',F20.10)
CALL DPWRST('XXX','BUG ')
IF(NUMFAC.LE.5)GOTO11890
C
11890 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,11611)RESSD
11611 FORMAT(' RESIDUAL STANDARD DEVIATION = ',F20.11)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11612)IRESDF
11612 FORMAT(' RESIDUAL DEGREES OF FREEDOM = ',2X,I11)
CALL DPWRST('XXX','BUG ')
C
IF(IREP.EQ.'NO')GOTO11690
WRITE(ICOUT,11621)REPSD
11621 FORMAT(' REPLICATION STANDARD DEVIATION = ',F20.11)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11622)IREPDF
11622 FORMAT(' REPLICATION DEGREES OF FREEDOM = ',2X,I11)
CALL DPWRST('XXX','BUG ')
C
IF(IFITDF.GE.1)GOTO11661
IF(NUMFAC.EQ.1)GOTO11690
WRITE(ICOUT,11636)
11636 FORMAT(' LACK OF FIT F TEST CANNOT BE DONE BECAUSE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11637)
11637 FORMAT(' HAVE ONLY 0 DEGREES OF FREEDOM IN ',
1'NUMERATOR OF F RATIO.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11638)
11638 FORMAT(' THIS HAPPENS WHEN NUMBER OF PARAMETERS ',
1'FITTED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11639)
11639 FORMAT(' IS IDENTICAL TO NUMBER OF DISTINCT ',
1'SUBSETS.')
CALL DPWRST('XXX','BUG ')
GOTO11690
C
11661 CONTINUE
C
WRITE(ICOUT,11640)FITFVA,FITCD2
11640 FORMAT(' LACK OF FIT F RATIO = ',F11.4,' = THE ',
1F9.4,'% POINT OF THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11645)IFITDF,IREPDF
11645 FORMAT(' F DISTRIBUTION WITH ',I6,' AND ',I6,
1' DEGREES OF FREEDOM')
CALL DPWRST('XXX','BUG ')
C
11690 CONTINUE
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMEP2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IERROR
9012 FORMAT('IERROR = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)N,NUMFAC
9013 FORMAT('N,NUMFAC = ',2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)IBUGA3
9014 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9022)IREP
9022 FORMAT('IREP = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9023)REPSS,REPMS,REPSD,REPDF
9023 FORMAT('REPSS,REPMS,REPSD,REPDF = ',4E15.7)
CALL DPWRST('XXX','BUG ')
DO9025I=1,N
WRITE(ICOUT,9026)I,Y(I),F1(I),F2(I),W(I),PRED2(I),RES2(I)
9026 FORMAT('I,Y(I),F1(I),F2(I),W(I),PRED2(I),RES2(I) = ',
1I8,6E11.4)
CALL DPWRST('XXX','BUG ')
9025 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMEPO(IBUGA2,IBUGA3,IBUGQ,IFOUND,IERROR)
C
C PURPOSE--CARRY OUT A MEDIAN POLISH.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C Gaithersburg, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--FEBRUARY 1981.
C UPDATED --SEPTEMBER 1981.
C UPDATED --DECEMBER 1981.
C UPDATED --MAY 1982.
C UPDATED --MARCH 1988. ADD LOFCDF
C UPDATED --JUNE 1990. TEMPORARY ARRAYS TO GARBAGE COMMON
C MOVE DIMENSIONING OF Y2 AND Z
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IBUGA2
CHARACTER*4 IBUGA3
CHARACTER*4 IBUGQ
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHWUSE
CHARACTER*4 MESSAG
CHARACTER*4 ICASEQ
CHARACTER*4 IREPU
CHARACTER*4 IRESU
CHARACTER*4 IHLEFT
CHARACTER*4 IHLEF2
CHARACTER*4 IHFACT
CHARACTER*4 IHFAC2
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
INCLUDE 'DPCOPA.INC'
C
DIMENSION F1(MAXOBV)
DIMENSION F2(MAXOBV)
DIMENSION F3(MAXOBV)
DIMENSION F4(MAXOBV)
DIMENSION F5(MAXOBV)
C
DIMENSION PRED2(MAXOBV)
DIMENSION RES2(MAXOBV)
C
DIMENSION W(MAXOBV)
C
DIMENSION B(100)
DIMENSION SDB(100)
DIMENSION FCUM(100)
C
CCCCC FOLLOWING LINES ADDED JUNE, 1990
INCLUDE 'DPCOZZ.INC'
DIMENSION Y2(MAXOBV)
DIMENSION Z(MAXOBV)
EQUIVALENCE (GARBAG(IGARB1),F1(1))
EQUIVALENCE (GARBAG(IGARB2),F2(1))
EQUIVALENCE (GARBAG(IGARB3),F3(1))
EQUIVALENCE (GARBAG(IGARB4),PRED2(1))
EQUIVALENCE (GARBAG(IGARB5),RES2(1))
EQUIVALENCE (GARBAG(IGARB6),Y2(1))
EQUIVALENCE (GARBAG(IGARB7),Z(1))
EQUIVALENCE (GARBAG(IGARB8),B(1))
EQUIVALENCE (GARBAG(IGARB8+100),SDB(1))
EQUIVALENCE (GARBAG(IGARB8+200),FCUM(1))
CCCCC END CHANGE
DIMENSION ICOLIV(10)
DIMENSION NIV(10)
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOHK.INC'
INCLUDE 'DPCODA.INC'
C
C---------------------------------------------------------------------
C
EQUIVALENCE (W(1),X3D(1))
EQUIVALENCE (F5(1),X(1))
EQUIVALENCE (F4(1),D(1))
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPME'
ISUBN2='PO '
C
MAXCP1=MAXCOL+1
MAXCP2=MAXCOL+2
MAXCP3=MAXCOL+3
MAXCP4=MAXCOL+4
MAXCP5=MAXCOL+5
MAXCP6=MAXCOL+6
C
IERROR='NO'
C
MAXV2=6
MINN2=2
C
MAXFAC=MAXV2-1
C
ICASEQ='UNKN'
C
C ************************************
C ** TREAT THE MEDIAN POLISH CASE **
C ************************************
C
IF(IBUGA2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMEPO--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGA2,IBUGA3
52 FORMAT('IBUGA2,IBUGA3 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)IBUGQ
53 FORMAT('IBUGQ = ',A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C ***************************
C ** STEP 1-- **
C ** EXTRACT THE COMMAND **
C ***************************
C
ISTEPN='1'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.GE.1.AND.ICOM.EQ.'MEDI'.AND.
1IHARG(1).EQ.'POLI')GOTO111
C
IFOUND='NO'
GOTO9000
C
111 CONTINUE
ILASTC=1
CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
GOTO180
C
180 CONTINUE
IFOUND='YES'
GOTO190
C
190 CONTINUE
C
C *******************************************************
C ** STEP 2-- **
C ** CHECK FOR THE PROPER NUMBER OF INPUT ARGUMENTS. **
C *******************************************************
C
ISTEPN='2'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
MINNA=2
MAXNA=100
CALL CHECKA(NUMARG,MINNA,MAXNA,IANS,IWIDTH,ISUBN1,ISUBN2,
1IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ********************************************
C ** STEP 3-- **
C ** CHECK THE VALIDITY OF ARGUMENT 1 **
C ** (THIS WILL BE THE RESPONSE VARIABLE) **
C ********************************************
C
ISTEPN='3'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IHLEFT=IHARG(1)
IHLEF2=IHARG2(1)
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHLEFT,IHLEF2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ICOLL=IVALUE(ILOCV)
NLEFT=IN(ILOCV)
C
C ***********************************************************
C ** STEP 4-- **
C ** CHECK THAT THE INPUT NUMBER OF OBSERVATIONS (NLEFT) **
C ** FOR THE RESPONSE VARIABLE IS 2 OR MORE. **
C ***********************************************************
C
ISTEPN='4'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NLEFT.GE.MINN2)GOTO390
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,311)
311 FORMAT('***** ERROR IN DPMEPO--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,312)
312 FORMAT(' THE INPUT NUMBER OF OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,313)
313 FORMAT(' (FOR WHICH A MEDIAN POLISH ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,314)
314 FORMAT(' WAS TO HAVE BEEN CARRIED OUT)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,315)MINN2
315 FORMAT(' MUST BE ',I8,' OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,316)
316 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,317)NLEFT
317 FORMAT(' NLEFT = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,318)
318 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,319)(IANS(I),I=1,IWIDTH)
319 FORMAT(80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
390 CONTINUE
C
C *****************************************
C ** STEP 5-- **
C ** CHECK TO SEE THE TYPE CASE-- **
C ** 1) UNQUALIFIED (THAT IS, FULL); **
C ** 2) SUBSET/EXCEPT; OR **
C ** 3) FOR. **
C *****************************************
C
ISTEPN='5'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='FULL'
ILOCQ=NUMARG+1
IF(NUMARG.LT.1)GOTO490
DO400J=1,NUMARG
J1=J
IF(IHARG(J).EQ.'SUBS'.AND.IHARG2(J).EQ.'ET ') GOTO410
IF(IHARG(J).EQ.'EXCE'.AND.IHARG2(J).EQ.'PT ') GOTO410
IF(IHARG(J).EQ.'FOR '.AND.IHARG2(J).EQ.' ') GOTO420
400 CONTINUE
GOTO490
410 CONTINUE
ICASEQ='SUBS'
ILOCQ=J1
GOTO490
420 CONTINUE
ICASEQ='FOR'
ILOCQ=J1
GOTO490
490 CONTINUE
IF(IBUGA2.EQ.'OFF')GOTO495
WRITE(ICOUT,491)NUMARG,ILOCQ
491 FORMAT('NUMARG,ILOCQ = ',2I8)
CALL DPWRST('XXX','BUG ')
495 CONTINUE
C
C ******************************************
C ** STEP 6-- **
C ** CHECK FOR A VALID NUMBER **
C ** OF INDEPENDENT VARIABLES (1 TO 5). **
C ** CHECK THE VALIDITY OF EACH **
C ** OF THE INDEPENDENT VARIABLES **
C ** (THAT IS, OF EACH OF THE FACTORS). **
C ** DOES THE NAME EXIST IN THE TABLE? **
C ** DOES THE NUMBER OF ELEMENTS **
C ** AGREE WITH THE NUMBER OF ELEMENTS **
C ** IN THE RESPONSE VARIABLE? **
C ******************************************
C
ISTEPN='6'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMFAC=ILOCQ-2
IF(1.LE.NUMFAC.AND.NUMFAC.LE.MAXFAC)GOTO520
C
WRITE(ICOUT,511)
511 FORMAT('***** ERROR IN DPMEPO--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,512)
512 FORMAT(' FOR A MEDIAN POLISH,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,513)
513 FORMAT(' THE NUMBER OF INDEPENDENT VARIABLES (FACTORS)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,514)MAXFAC
514 FORMAT(' MUST BE AT LEAST 1 AND AT MOST ',I8,' ;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,515)
515 FORMAT(' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,516)
516 FORMAT(' THE SPECIFIED NUMBER')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,517)NUMFAC
517 FORMAT(' OF INDEPENDENT VARIABLES WAS ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,518)
518 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,519)(IANS(I),I=1,IWIDTH)
519 FORMAT(80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
520 CONTINUE
DO530IFAC=1,NUMFAC
J=IFAC+1
IHFACT=IHARG(J)
IHFAC2=IHARG2(J)
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHFACT,IHFAC2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ICOLIV(IFAC)=IVALUE(ILOCV)
NIV(IFAC)=IN(ILOCV)
IF(IBUGA2.EQ.'ON')WRITE(ICOUT,532)IFAC,IHFACT,IHFAC2,ICOLIV(IFAC),
1NIV(IFAC)
532 FORMAT('IFAC,IHFACT,IHFAC2,ICOLIV(IFAC),NIV(IFAC) = ',
1I8,2X,A4,2X,A4,I8,I8)
IF(IBUGA2.EQ.'ON')CALL DPWRST('XXX','BUG ')
530 CONTINUE
C
DO540IFAC=1,NUMFAC
IF(NIV(IFAC).NE.NLEFT)GOTO550
540 CONTINUE
GOTO590
C
550 CONTINUE
WRITE(ICOUT,551)
551 FORMAT('***** ERROR IN DPMEPO--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,552)
552 FORMAT(' FOR A MEDIAN POLISH,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,553)
553 FORMAT(' THE NUMBER OF ELEMENTS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,554)
554 FORMAT(' IN EACH INDEPENDENT VARIABLE (FACTOR)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,555)
555 FORMAT(' SHOULD BE THE SAME AS THE NUMBER OF ELEMENTS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,556)
556 FORMAT(' IN THE DEPENDENT VARIABLE (RESPONSE);')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,557)
557 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,561)
561 FORMAT(' DEPENDENT VARIABLE (RESPONSE)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,562)IHLEFT,IHLEF2,NLEFT
562 FORMAT(' ',A4,A4,' HAS ',I8,' ELEMENTS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,563)
563 FORMAT(' INDEPENDENT VARIABLES (FACTORS)--')
CALL DPWRST('XXX','BUG ')
DO565IFAC=1,NUMFAC
J=IFAC+1
WRITE(ICOUT,566)IHARG(J),IHARG2(J),NIV(IFAC)
566 FORMAT(' ',A4,A4,' HAS ',I8,' ELEMENTS')
CALL DPWRST('XXX','BUG ')
565 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,567)
567 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,568)(IANS(I),I=1,IWIDTH)
568 FORMAT(80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
590 CONTINUE
C
C *****************************************
C ** STEP 7-- **
C ** BRANCH TO THE APPROPRIATE SUBCASE; **
C ** THEN FORM THE RESPONSE VARIABLE **
C ** AND THE FACTORS **
C *****************************************
C
ISTEPN='7'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASEQ.EQ.'FULL')GOTO610
IF(ICASEQ.EQ.'SUBS')GOTO620
IF(ICASEQ.EQ.'FOR')GOTO630
C
610 CONTINUE
DO615I=1,NLEFT
ISUB(I)=1
615 CONTINUE
NQ=NLEFT
GOTO650
C
620 CONTINUE
NIOLD=NLEFT
CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR)
NQ=NIOLD
GOTO650
C
630 CONTINUE
NIOLD=NLEFT
CALL DPFOR(NIOLD,NFOR,IROW1,IROWN,
1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
NQ=NFOR
GOTO650
C
650 CONTINUE
J=0
IMAX=NLEFT
IF(NQ.LT.NLEFT)IMAX=NQ
DO660I=1,IMAX
IF(ISUB(I).EQ.0)GOTO660
J=J+1
C
IJ=MAXN*(ICOLL-1)+I
IF(ICOLL.LE.MAXCOL)Y(J)=V(IJ)
IF(ICOLL.EQ.MAXCP1)Y(J)=PRED(I)
IF(ICOLL.EQ.MAXCP2)Y(J)=RES(I)
IF(ICOLL.EQ.MAXCP3)Y(J)=YPLOT(I)
IF(ICOLL.EQ.MAXCP4)Y(J)=XPLOT(I)
IF(ICOLL.EQ.MAXCP5)Y(J)=X2PLOT(I)
IF(ICOLL.EQ.MAXCP6)Y(J)=TAGPLO(I)
C
IFAC=1
ICOLR=ICOLIV(IFAC)
IJ=MAXN*(ICOLR-1)+I
IF(ICOLR.LE.MAXCOL)F1(J)=V(IJ)
IF(ICOLR.EQ.MAXCP1)F1(J)=PRED(I)
IF(ICOLR.EQ.MAXCP2)F1(J)=RES(I)
IF(ICOLR.EQ.MAXCP3)F1(J)=YPLOT(I)
IF(ICOLR.EQ.MAXCP4)F1(J)=XPLOT(I)
IF(ICOLR.EQ.MAXCP5)F1(J)=X2PLOT(I)
IF(ICOLR.EQ.MAXCP6)F1(J)=TAGPLO(I)
IF(NUMFAC.LE.1)GOTO660
C
IFAC=2
ICOLR=ICOLIV(IFAC)
IJ=MAXN*(ICOLR-1)+I
IF(ICOLR.LE.MAXCOL)F2(J)=V(IJ)
IF(ICOLR.EQ.MAXCP1)F2(J)=PRED(I)
IF(ICOLR.EQ.MAXCP2)F2(J)=RES(I)
IF(ICOLR.EQ.MAXCP3)F2(J)=YPLOT(I)
IF(ICOLR.EQ.MAXCP4)F2(J)=XPLOT(I)
IF(ICOLR.EQ.MAXCP5)F2(J)=X2PLOT(I)
IF(ICOLR.EQ.MAXCP6)F2(J)=TAGPLO(I)
IF(NUMFAC.LE.2)GOTO660
C
IFAC=3
ICOLR=ICOLIV(IFAC)
IJ=MAXN*(ICOLR-1)+I
IF(ICOLR.LE.MAXCOL)F3(J)=V(IJ)
IF(ICOLR.EQ.MAXCP1)F3(J)=PRED(I)
IF(ICOLR.EQ.MAXCP2)F3(J)=RES(I)
IF(ICOLR.EQ.MAXCP3)F3(J)=YPLOT(I)
IF(ICOLR.EQ.MAXCP4)F3(J)=XPLOT(I)
IF(ICOLR.EQ.MAXCP5)F3(J)=X2PLOT(I)
IF(ICOLR.EQ.MAXCP6)F3(J)=TAGPLO(I)
IF(NUMFAC.LE.3)GOTO660
C
IFAC=4
ICOLR=ICOLIV(IFAC)
IJ=MAXN*(ICOLR-1)+I
IF(ICOLR.LE.MAXCOL)F4(J)=V(IJ)
IF(ICOLR.EQ.MAXCP1)F4(J)=PRED(I)
IF(ICOLR.EQ.MAXCP2)F4(J)=RES(I)
IF(ICOLR.EQ.MAXCP3)F4(J)=YPLOT(I)
IF(ICOLR.EQ.MAXCP4)F4(J)=XPLOT(I)
IF(ICOLR.EQ.MAXCP5)F4(J)=X2PLOT(I)
IF(ICOLR.EQ.MAXCP6)F4(J)=TAGPLO(I)
IF(NUMFAC.LE.4)GOTO660
C
IFAC=5
ICOLR=ICOLIV(IFAC)
IJ=MAXN*(ICOLR-1)+I
IF(ICOLR.LE.MAXCOL)F5(J)=V(IJ)
IF(ICOLR.EQ.MAXCP1)F5(J)=PRED(I)
IF(ICOLR.EQ.MAXCP2)F5(J)=RES(I)
IF(ICOLR.EQ.MAXCP3)F5(J)=YPLOT(I)
IF(ICOLR.EQ.MAXCP4)F5(J)=XPLOT(I)
IF(ICOLR.EQ.MAXCP5)F5(J)=X2PLOT(I)
IF(ICOLR.EQ.MAXCP6)F5(J)=TAGPLO(I)
IF(NUMFAC.LE.5)GOTO660
C
660 CONTINUE
NS=J
C
C ****************************************************************
C ** STEP 8--
C ** PREPARE FOR ENTRANCE INTO DPMEP2--
C ** SET THE WEIGHT VECTOR TO UNITY THROUGHOUT.
C ****************************************************************
C
ISTEPN='8'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO680I=1,NS
W(I)=1.0
680 CONTINUE
C
C ***********************************
C ** STEP 9-- **
C ** CARRY OUT THE MEDIAN POLISH **
C ***********************************
C
ISTEPN='9'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IBUGA2.EQ.'OFF')GOTO790
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,711)
711 FORMAT('***** FROM DPMEPO, AS WE ARE ABOUT TO CALL DPMEP2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,712)NLEFT,MAXN,NS,NUMFAC
712 FORMAT('NLEFT,MAXN,NS,NUMFAC = ',4I8)
CALL DPWRST('XXX','BUG ')
DO715I=1,NS
WRITE(ICOUT,716)I,Y(I),F1(I),F2(I),F3(I),F4(I),F5(I),W(I)
716 FORMAT('I,Y(I),F1(I),F2(I),F3(I),F4(I),F5(I),W(I) = ',
1I6,2X,7F10.5)
CALL DPWRST('XXX','BUG ')
715 CONTINUE
CCCCC IBUGA3='ABCD'
WRITE(ICOUT,731)IBUGA3
731 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','BUG ')
790 CONTINUE
C
CCCCC JUNE, 1990. MOVE DIMENSIONING OF Y2 AND Z TO DPMEPO (RATHER THAN
CCCCC DPMEP2).
CALL DPMEP2(Y,F1,F2,F3,F4,F5,W,NS,NUMFAC,
1B,SDB,FCUM,REPSD,REPDF,RESSD,RESDF,PRED2,RES2,ALFCDF,
1Y2,Z,
1IBUGA3,IERROR)
C
C ***************************************
C ** STEP 10-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='10'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICOLPR=MAXCP1
ICOLRE=MAXCP2
IREPU='ON'
IRESU='ON'
CALL UPDAPR(ICOLPR,ICOLRE,PRED2,RES2,PRED,RES,ISUB,NLEFT,
1IREPU,REPSD,REPDF,IRESU,RESSD,RESDF,ALFCDF,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1IANS,IWIDTH,ILOCN,IBUGA3,IERROR)
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMEPO--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGA2,IBUGA3
9012 FORMAT('IBUGA2,IBUGA3 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)IBUGQ
9013 FORMAT('IBUGQ = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)NS,NUMFAC
9014 FORMAT('NS,NUMFAC = ',2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)ICASEQ
9015 FORMAT('ICASEQ = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9016)IFOUND,IERROR
9016 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMESS(IBUGS2,ISUBRO,IFOUND,IERROR)
C
C PURPOSE--GENERATE DATAPLOT MESSAGES
C FOR THE ANALYST'S PERUSAL UPON
C SIGNING ON TO DATAPLOT.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--86/1
C ORIGINAL VERSION--DECEMBER 1977.
C UPDATED --JANUARY 1979.
C UPDATED --NOVEMBER 1980.
C UPDATED --JUNE 1981.
C UPDATED --NOVEMBER 1981.
C UPDATED --MAY 1982.
C UPDATED --DECEMBER 1985.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IBUGS2
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*80 IFILE
CHARACTER*12 ISTAT
CHARACTER*12 IFORM
CHARACTER*12 IACCES
CHARACTER*12 IPROT
CHARACTER*12 ICURST
CHARACTER*4 IENDFI
CHARACTER*4 IREWIN
CHARACTER*4 ISUBN0
CHARACTER*4 IERRFI
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*80 ISTRIN
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOF2.INC'
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPME'
ISUBN2='SS '
C
IFOUND='YES'
IERROR='NO'
C
IF(IBUGS2.EQ.'OFF'.AND.ISUBRO.NE.'MESS')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMESS--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)IBUGS2,ISUBRO,IERROR
53 FORMAT('IBUGS2,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,61)IMESNU
61 FORMAT('IMESNU = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,62)IMESNA
62 FORMAT('IMESNA = ',A80)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,63)IMESST
63 FORMAT('IMESST = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,64)IMESFO
64 FORMAT('IMESFO = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,65)IMESAC
65 FORMAT('IMESAC = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,66)IMESFO
66 FORMAT('IMESFO = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,67)IMESCS
67 FORMAT('IMESCS = ',A12)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************
C ** STEP 11-- **
C ** COPY OVER VARIABLES **
C **************************
C
ISTEPN='11'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'MESS')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IOUNIT=IMESNU
IFILE=IMESNA
ISTAT=IMESST
IFORM=IMESFO
IACCES=IMESAC
IPROT=IMESPR
ICURST=IMESCS
C
ISUBN0='MESS'
IERRFI='NO'
C
IF(IBUGS2.EQ.'OFF'.AND.ISUBRO.NE.'MESS')GOTO1199
WRITE(ICOUT,1193)IOUNIT
1193 FORMAT('IOUNIT = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1194)IFILE
1194 FORMAT('IFILE = ',A80)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1195)ISTAT,IFORM,IACCES,IPROT,ICURST
1195 FORMAT('ISTAT,IFORM,IACCES,IPROT,ICURST = ',
1A12,2X,A12,2X,A12,2X,A12,2X,A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1196)ISUBN0,IERRFI
1196 FORMAT('ISUBN0,IERRFI = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
1199 CONTINUE
C
C *******************************************
C ** STEP 12-- **
C ** CHECK TO SEE IF MESSAGE FILE EXISTS **
C *******************************************
C
ISTEPN='12'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'MESS')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ISTAT.EQ.'NONE')GOTO9000
C
C *********************
C ** STEP 31-- **
C ** OPEN THE FILE **
C *********************
C
ISTEPN='31'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'MESS')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IREWIN='ON'
CALL DPOPFI(IOUNIT,IFILE,ISTAT,IFORM,IACCES,IPROT,ICURST,
1IREWIN,ISUBN0,IERRFI,IBUGS2,ISUBRO,IERROR)
IF(IERRFI.EQ.'YES')GOTO9000
C
C ******************************
C ** STEP 41-- **
C ** READ THE FILE. **
C ** WRITE OUT THE MESSAGES. **
C ******************************
C
ISTEPN='41'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'MESS')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ANUMLI=0.0
READ(IOUNIT,4111,END=4190)ANUMLI
4111 FORMAT(F10.0)
NUMLIN=ANUMLI+0.5
C
IF(NUMLIN.LE.0)GOTO4190
DO4120I=1,NUMLIN
READ(IOUNIT,4121,END=4190)(ISTRIN(J:J),J=1,80)
4121 FORMAT(80A1)
CALL DPDB80(ISTRIN,JMAX,IBUGS2,ISUBRO,IERROR)
IF(JMAX.GE.1)WRITE(ICOUT,4122)(ISTRIN(J:J),J=1,JMAX)
4122 FORMAT(5X,80A1)
IF(JMAX.GE.1)CALL DPWRST('XXX','BUG ')
IF(JMAX.LE.0)WRITE(ICOUT,999)
IF(JMAX.LE.0)CALL DPWRST('XXX','BUG ')
4120 CONTINUE
4190 CONTINUE
C
C ***********************
C ** STEP 51-- **
C ** CLOSE THE FILE. **
C ***********************
C
ISTEPN='51'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'MESS')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IENDFI='OFF'
IREWIN='ON'
CALL DPCLFI(IOUNIT,IFILE,ISTAT,IFORM,IACCES,IPROT,ICURST,
1IENDFI,IREWIN,ISUBN0,IERRFI,IBUGS2,ISUBRO,IERROR)
C
C ****************
C ** STEP 90-- **
C ** EXIT. **
C ****************
C
9000 CONTINUE
IF(IBUGS2.EQ.'OFF'.AND.ISUBRO.NE.'MESS')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMESS--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGS2,ISUBRO,IERROR
9012 FORMAT('IBUGS2,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9021)IOUNIT
9021 FORMAT('IOUNIT = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9022)IFILE
9022 FORMAT('IFILE = ',A80)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9023)ISTAT
9023 FORMAT('ISTAT = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9024)IFORM
9024 FORMAT('IFORM = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9025)IACCES
9025 FORMAT('IACCES = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9026)IPROT
9026 FORMAT('IPROT = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9027)ICURST
9027 FORMAT('ICURST = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9028)IENDFI
9028 FORMAT('IENDFI = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9029)IREWIN
9029 FORMAT('IREWIN = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9031)ISUBN0
9031 FORMAT('ISUBN0 = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9032)IERRFI
9032 FORMAT('IERRFI = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9041)JMAX
9041 FORMAT('JMAX = ',I8)
CALL DPWRST('XXX','BUG ')
IF(JMAX.GE.1)WRITE(ICOUT,9042)(ISTRIN(J:J),J=1,JMAX)
9042 FORMAT('ISTRIN--',80A1)
IF(JMAX.GE.1)CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMFCO(IHARG,NUMARG,IDEMFC,MAXMAR,IMAFCO,
1IBUGP2,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE MARKER FILL COLORS = THE COLORS
C OF THE (BACKGROUND) FILL WITHIN THE MARKERS.
C THESE ARE LOCATED IN THE VECTOR IMAFCO(.).
C INPUT ARGUMENTS--IHARG (A CHARACTER VECTOR)
C --NUMARG
C --IDEMFC
C --MAXMAR
C --IBUGP2 ('ON' OR 'OFF' )
C OUTPUT ARGUMENTS--IMAFCO (A CHARACTER VECTOR)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--DECEMBER 1983.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IHARG
CHARACTER*4 IDEMFC
CHARACTER*4 IMAFCO
C
CHARACTER*4 IBUGP2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHOLD1
CHARACTER*4 IHOLD2
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
DIMENSION IHARG(*)
DIMENSION IMAFCO(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
ISUBN1='DPMF'
ISUBN2='CO '
C
NUMMAR=0
IHOLD1='-999'
IHOLD2='-999'
C
IF(IBUGP2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMFCO--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGP2,IFOUND,IERROR
52 FORMAT('IBUGP2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)MAXMAR,NUMMAR
53 FORMAT('MAXMAR,NUMMAR = ',I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)IHOLD1,IHOLD2
54 FORMAT('IHOLD1,IHOLD2 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)IDEMFC
55 FORMAT('IDEMFC = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,60)NUMARG
60 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO65I=1,NUMARG
WRITE(ICOUT,66)IHARG(I)
66 FORMAT('IHARG(I) = ',A4)
CALL DPWRST('XXX','BUG ')
65 CONTINUE
WRITE(ICOUT,70)IMAFCO(1)
70 FORMAT('IMAFCO(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO75I=1,10
WRITE(ICOUT,76)I,IMAFCO(I)
76 FORMAT('I,IMAFCO(I) = ',I8,2X,A4)
CALL DPWRST('XXX','BUG ')
75 CONTINUE
90 CONTINUE
C
C **************************************
C ** STEP 1-- **
C ** BRANCH TO THE APPROPRIATE CASE **
C **************************************
C
ISTEPN='1'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.1)GOTO9000
IF(NUMARG.EQ.2)GOTO1120
IF(NUMARG.EQ.3)GOTO1130
IF(NUMARG.EQ.4)GOTO1140
GOTO1150
C
1120 CONTINUE
GOTO1200
C
1130 CONTINUE
IF(IHARG(3).EQ.'ALL')IHOLD1=' '
IF(IHARG(3).EQ.'ALL')GOTO1300
GOTO1200
C
1140 CONTINUE
IF(IHARG(3).EQ.'ALL')IHOLD1=IHARG(4)
IF(IHARG(3).EQ.'ALL')GOTO1300
IF(IHARG(4).EQ.'ALL')IHOLD1=IHARG(3)
IF(IHARG(4).EQ.'ALL')GOTO1300
GOTO1200
C
1150 CONTINUE
GOTO1200
C
C *************************************************
C ** STEP 2-- **
C ** TREAT THE SINGLE SPECIFICATION CASE **
C *************************************************
C
1200 CONTINUE
ISTEPN='2'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.2)GOTO1210
GOTO1220
C
1210 CONTINUE
NUMMAR=1
IMAFCO(1)=IDEMFC
GOTO1270
C
1220 CONTINUE
NUMMAR=NUMARG-2
IF(NUMMAR.GT.MAXMAR)NUMMAR=MAXMAR
DO1225I=1,NUMMAR
J=I+2
IHOLD1=IHARG(J)
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2=IDEMFC
IF(IHOLD1.EQ.'OFF')IHOLD2=IDEMFC
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDEMFC
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDEMFC
IMAFCO(I)=IHOLD2
1225 CONTINUE
GOTO1270
C
1270 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1279
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO1278I=1,NUMMAR
WRITE(ICOUT,1276)I,IMAFCO(I)
1276 FORMAT('THE FILL COLOR OF MARKER ',I6,
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1278 CONTINUE
1279 CONTINUE
IFOUND='YES'
GOTO9000
C
C **************************
C ** STEP 3-- **
C ** TREAT THE ALL CASE **
C **************************
C
1300 CONTINUE
ISTEPN='3'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMMAR=MAXMAR
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2=IDEMFC
IF(IHOLD1.EQ.'OFF')IHOLD2=IDEMFC
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDEMFC
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDEMFC
DO1315I=1,NUMMAR
IMAFCO(I)=IHOLD2
1315 CONTINUE
GOTO1370
C
1370 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1319
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
I=1
WRITE(ICOUT,1316)IMAFCO(I)
1316 FORMAT('THE FILL COLOR OF ALL MARKERS',
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
IFOUND='YES'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGP2.EQ.'OFF')GOTO9090
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMFCO--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGP2,IFOUND,IERROR
9012 FORMAT('IBUGP2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)MAXMAR,NUMMAR
9013 FORMAT('MAXMAR,NUMMAR = ',I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)IHOLD1,IHOLD2
9014 FORMAT('IHOLD1,IHOLD2 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)IDEMFC
9015 FORMAT('IDEMFC = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9020)NUMARG
9020 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO9025I=1,NUMARG
WRITE(ICOUT,9026)IHARG(I)
9026 FORMAT('IHARG(I) = ',A4)
CALL DPWRST('XXX','BUG ')
9025 CONTINUE
WRITE(ICOUT,9030)IMAFCO(1)
9030 FORMAT('IMAFCO(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO9035I=1,10
WRITE(ICOUT,9036)I,IMAFCO(I)
9036 FORMAT('I,IMAFCO(I) = ',I8,2X,A4)
CALL DPWRST('XXX','BUG ')
9035 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMFSW(IHARG,NUMARG,IDEMFS,MAXMAR,IMAFSW,
1IBUGP2,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE MARKER FILL SWITCHES = THE ON/OFF SWITCHES
C OF THE (BACKGROUND) FILL WITHIN THE MARKERS.
C THESE ARE LOCATED IN THE VECTOR IMAFSW(.).
C INPUT ARGUMENTS--IHARG (A CHARACTER VECTOR)
C --NUMARG
C --IDEMFS
C --MAXMAR
C --IBUGP2 ('ON' OR 'OFF' )
C OUTPUT ARGUMENTS--IMAFSW (A CHARACTER VECTOR)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--DECEMBER 1983.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IHARG
CHARACTER*4 IDEMFS
CHARACTER*4 IMAFSW
C
CHARACTER*4 IBUGP2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHOLD1
CHARACTER*4 IHOLD2
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
DIMENSION IHARG(*)
DIMENSION IMAFSW(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
ISUBN1='DPMF'
ISUBN2='SW '
C
NUMMAR=0
IHOLD1='-999'
IHOLD2='-999'
C
IF(IBUGP2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMFSW--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGP2,IFOUND,IERROR
52 FORMAT('IBUGP2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)MAXMAR,NUMMAR
53 FORMAT('MAXMAR,NUMMAR = ',I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)IHOLD1,IHOLD2
54 FORMAT('IHOLD1,IHOLD2 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)IDEMFS
55 FORMAT('IDEMFS = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,60)NUMARG
60 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO65I=1,NUMARG
WRITE(ICOUT,66)IHARG(I)
66 FORMAT('IHARG(I) = ',A4)
CALL DPWRST('XXX','BUG ')
65 CONTINUE
WRITE(ICOUT,70)IMAFSW(1)
70 FORMAT('IMAFSW(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO75I=1,10
WRITE(ICOUT,76)I,IMAFSW(I)
76 FORMAT('I,IMAFSW(I) = ',I8,2X,A4)
CALL DPWRST('XXX','BUG ')
75 CONTINUE
90 CONTINUE
C
C **************************************
C ** STEP 1-- **
C ** BRANCH TO THE APPROPRIATE CASE **
C **************************************
C
ISTEPN='1'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.1)GOTO9000
IF(NUMARG.EQ.2)GOTO1120
IF(NUMARG.EQ.3)GOTO1130
IF(NUMARG.EQ.4)GOTO1140
GOTO1150
C
1120 CONTINUE
GOTO1200
C
1130 CONTINUE
IF(IHARG(3).EQ.'ALL')IHOLD1='ON'
IF(IHARG(3).EQ.'ALL')GOTO1300
GOTO1200
C
1140 CONTINUE
IF(IHARG(3).EQ.'ALL')IHOLD1=IHARG(4)
IF(IHARG(3).EQ.'ALL')GOTO1300
IF(IHARG(4).EQ.'ALL')IHOLD1=IHARG(3)
IF(IHARG(4).EQ.'ALL')GOTO1300
GOTO1200
C
1150 CONTINUE
GOTO1200
C
C *************************************************
C ** STEP 2-- **
C ** TREAT THE SINGLE SPECIFICATION CASE **
C *************************************************
C
1200 CONTINUE
ISTEPN='2'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LE.2)GOTO1210
GOTO1220
C
1210 CONTINUE
NUMMAR=1
IMAFSW(1)='ON'
GOTO1270
C
1220 CONTINUE
NUMMAR=NUMARG-2
IF(NUMMAR.GT.MAXMAR)NUMMAR=MAXMAR
DO1225I=1,NUMMAR
J=I+2
IHOLD1=IHARG(J)
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2='ON'
IF(IHOLD1.EQ.'OFF')IHOLD2='OFF'
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDEMFS
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDEMFS
IMAFSW(I)=IHOLD2
1225 CONTINUE
GOTO1270
C
1270 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1279
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO1278I=1,NUMMAR
WRITE(ICOUT,1276)I,IMAFSW(I)
1276 FORMAT('THE FILL SWITCH FOR MARKER ',I6,
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1278 CONTINUE
1279 CONTINUE
IFOUND='YES'
GOTO9000
C
C **************************
C ** STEP 3-- **
C ** TREAT THE ALL CASE **
C **************************
C
1300 CONTINUE
ISTEPN='3'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMMAR=MAXMAR
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2='ON'
IF(IHOLD1.EQ.'OFF')IHOLD2='OFF'
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDEMFS
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDEMFS
DO1315I=1,NUMMAR
IMAFSW(I)=IHOLD2
1315 CONTINUE
GOTO1370
C
1370 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1319
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
I=1
WRITE(ICOUT,1316)IMAFSW(I)
1316 FORMAT('THE FILL SWITCH FOR ALL MARKERS',
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
IFOUND='YES'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGP2.EQ.'OFF')GOTO9090
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMFSW--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGP2,IFOUND,IERROR
9012 FORMAT('IBUGP2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)MAXMAR,NUMMAR
9013 FORMAT('MAXMAR,NUMMAR = ',I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)IHOLD1,IHOLD2
9014 FORMAT('IHOLD1,IHOLD2 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)IDEMFS
9015 FORMAT('IDEMFS = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9020)NUMARG
9020 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
DO9025I=1,NUMARG
WRITE(ICOUT,9026)IHARG(I)
9026 FORMAT('IHARG(I) = ',A4)
CALL DPWRST('XXX','BUG ')
9025 CONTINUE
WRITE(ICOUT,9030)IMAFSW(1)
9030 FORMAT('IMAFSW(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO9035I=1,10
WRITE(ICOUT,9036)I,IMAFSW(I)
9036 FORMAT('I,IMAFSW(I) = ',I8,2X,A4)
CALL DPWRST('XXX','BUG ')
9035 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMGET(Y,X,N,NVAR,
1TEMP1,TEMP2,TEMP3,DTEMP1,
1AMUMOM,BETAMO,AMUFR,BETAFR,AMUML,BETAML,
1ICAPSW,ICAPTY,MAXNXT,
1IGETDF,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE GEETA DISTRIBUTION. ESTIMATES
C ARE GENERATED IN TERMS OF THE MU/BETA
C PARAMETERIZATION.
C
C THE MOMENT ESTIMATES OF MU AND BETA ARE:
C
C MUHAT = XBAR
C BETAHAT = (S**2 - XBAR*(XBAR-1))/
C (S**2 - XBAR**2*(XBAR-1))
C
C THE MEAN AND ONES FREQUENCY ESTIMATE OF MU IS:
C
C MUHAT = XBAR
C
C THE ESTIMATE OF BETA IS THEN THE SOLUTION OF THE
C EQUATION
C
C ((BETA-1)*XBAR/(BETA*XBAR-1))**(BETA-1) - (N1/N) = 0
C
C THE MAXIMUM LIKELIHOOD FREQUENCY ESTIMATE OF MU IS:
C
C MUHAT = XBAR
C
C THE ESTIMATE OF BETA IS THEN THE SOLUTION OF THE
C EQUATION
C
C ((BETA-1)*XBAR/(BETA*XBAR-1))**(BETA-1) -
C (1/(N*XBAR))*
C SUM[X=2 to k][SUM[i=2 to k][X*N(x)/(BETA*X-1)]] = 0
C
C THERE ARE TWO CASES:
C
C 1) ONE VARIABLE CASE: Y IS RAW DATA
C 2) TWO VARIABLE CASE: Y IS FREQUENCY, X IS CLASS
C MID-POINT.
C
C EXAMPLE--GEETA MAXIMUM LIKELIHOOD Y
C --GEETA MAXIMUM LIKELIHOOD Y X
C REFERENCES--CONSUL AND FAMOYE (2006), "LAGRANGIAN PROBABILITY
C DISTRIBUTIONS", BIRKHAUSER, CHAPTER 8.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/7
C ORIGINAL VERSION--JULY 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-----------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 IGETDF
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBN0
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
C-------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
C
DOUBLE PRECISION AE
DOUBLE PRECISION RE
DOUBLE PRECISION XLOW
DOUBLE PRECISION XUP
DOUBLE PRECISION XMID
DOUBLE PRECISION DALPHA
C
DOUBLE PRECISION GETFUN
DOUBLE PRECISION GETFU2
EXTERNAL GETFUN
EXTERNAL GETFU2
DOUBLE PRECISION XBAR
DOUBLE PRECISION S2
DOUBLE PRECISION F1FREQ
COMMON/GETCOM/XBAR,S2,F1FREQ,MAXROW,NTOT2
C
C-------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT---------------------------------------------------
C
ISUBN1='DPMG'
ISUBN2='ET '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGET')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMGET--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NVAR
55 FORMAT('N,NVAR = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I),X(I)
57 FORMAT('I,Y(I),X(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MGET')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GEETA ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IF(NVAR.EQ.1)THEN
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN GEETA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
CALL SORT(Y,N,TEMP2)
DO1160I=1,N
Y(I)=TEMP2(I)
1160 CONTINUE
C
IRELAT='OFF'
IRHSTG='OFF'
XMIN=Y(1)
XMAX=Y(N)
XSTART=XMIN-0.5
XSTOP=XMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 TEMP2,TEMP1,N2,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
IINDX=MAXNXT/2
IF(N2.LE.IINDX)THEN
IML=0
ICNT=0
DO101I=1,N2
CCCCC IF(TEMP2(I).GT.0)THEN
ICNT=ICNT+1
TEMP2(ICNT)=TEMP2(I)
TEMP1(ICNT)=TEMP1(I)
TEMP3(I)=TEMP2(I)
TEMP3(IINDX+I)=TEMP3(I)
CCCCC ENDIF
101 CONTINUE
N2=ICNT
IK=N2
ELSE
IML=1
ENDIF
F1=TEMP2(1)/REAL(N)
C
ELSEIF(NVAR.EQ.2)THEN
CALL SORTC(X,Y,N,TEMP1,TEMP2)
NTOT=0
DO1210I=1,N
X(I)=TEMP1(I)
Y(I)=TEMP2(I)
NTOT=NTOT + Y(I)
1210 CONTINUE
F1=Y(1)/REAL(NTOT)
C
DO1220I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1223)
1223 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1225)I,Y(I)
1225 FORMAT(' ROW ',I8,' (AFTER SORTING) HAS FREQUENCY ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
1220 CONTINUE
ENDIF
C
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGET')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1301)N
1301 FORMAT('AFTER SORT, N = ',I8)
CALL DPWRST('XXX','WRIT')
DO1310I=1,MAX(N,100)
WRITE(ICOUT,1311)I,X(I),Y(I)
1311 FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
1310 CONTINUE
ENDIF
C
C *********************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GEETA MLE **
C ** ESTIMATION **
C *********************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MGET')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
IF(NVAR.EQ.1)THEN
NTOT=N
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
2105 CONTINUE
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
AMIN=Y(1)
AMAX=Y(N)
C
ELSE
AMIN=X(1)
AMAX=X(N)
CALL WEMEAN(X,Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL WESD(X,Y,N,IWRITE,ASD,IBUGA3,IERROR)
IINDX=MAXNXT/2
IF(N.LE.IINDX)THEN
IML=0
DO2210I=1,N
NTOT=NTOT+Y(I)
TEMP3(I)=Y(I)
TEMP3(IINDX+I)=X(I)
2210 CONTINUE
IK=N
ELSE
IML=1
ENDIF
ENDIF
C
AVAR=ASD**2
ACUT=AMEAN**2*(AMEAN-1.0)
IF(AVAR.LE.ACUT)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2223)
2223 FORMAT(' IN ORDER FOR THE GEETA DISTRIBUTION TO BE ',
1 'APPLICABLE,')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2225)
2225 FORMAT(' S**2 > XBAR**2*(XBAR - 1)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2227)
2227 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2228)AMEAN
2228 FORMAT(' SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2229)AVAR
2229 FORMAT(' SAMPLE VARIANCE = ',G15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
ENDIF
C
AMUMOM=AMEAN
BETAMO=(AVAR - AMEAN*(AMEAN-1.0))/(AVAR - AMEAN**2*(AMEAN-1.0))
AMUFR=AMEAN
BETAFR=0.0
AMUML=AMEAN
BETAML=0.0
C
AE=1.D-7
RE=1.D-7
XBAR=DBLE(AMEAN)
S2=DBLE(ASD)**2
F1FREQ=DBLE(F1)
XMID=DBLE(BETAMO)
XLOW=1.000001D0
XUP=XMID + 10.0D0
CALL DFZERO(GETFUN,XLOW,XUP,XMID,RE,AE,IFLAG)
BETAFR=REAL(XLOW)
C
IOPT=2
TOL=1.0D-5
NPAR=1
NPRINT=-1
INFO=0
LWA=MAXNXT
MAXROW=MAXNXT
NTOT2=NTOT
C
XPAR(1)=DBLE(BETAMO)
CALL DNSQE(GETFU2,JAC,IOPT,NPAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,LWA,TEMP3,IK)
C
BETAML=REAL(XPAR(1))
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GEETA MLE **
C ** ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Geeta Parameter Estimation ')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' First Frequency:')
5068 FORMAT(' Estimate of Theta:')
5168 FORMAT(' Estimate of Mu:')
5069 FORMAT(' Estimate of Beta:')
5071 FORMAT(' Method of Moments:')
5072 FORMAT(' Method of Ones Frequency and Mean:')
5073 FORMAT(' Maximum Likelihood:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5056 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)F1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(IGETDF.EQ.'THET')THEN
WRITE(ICOUT,5068)
ELSE
WRITE(ICOUT,5168)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMUMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(IGETDF.EQ.'THET')THEN
WRITE(ICOUT,5068)
ELSE
WRITE(ICOUT,5168)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMUFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(IGETDF.EQ.'THET')THEN
WRITE(ICOUT,5068)
ELSE
WRITE(ICOUT,5168)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMUML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Geeta ',
1 'Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'First Frequency: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Theta: & ',
1 G15.7,2X,A1,A1)
8129 FORMAT(5X,'Estimate of Mu: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of Beta: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Method of Moments: & ',2X,A1,A1)
8032 FORMAT(5X,'Method of Ones Frequency and Mean: & ',
1 2X,A1,A1)
8033 FORMAT(5X,'Method of Maximum Likelihood: & ',
1 2X,A1,A1)
8039 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)F0,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IGETDF.EQ.'THET')THEN
WRITE(ICOUT,8029)AMUMOM,IBASLC,IBASLC
ELSE
WRITE(ICOUT,8129)AMUMOM,IBASLC,IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IGETDF.EQ.'THET')THEN
WRITE(ICOUT,8029)AMUFR,IBASLC,IBASLC
ELSE
WRITE(ICOUT,8129)AMUFR,IBASLC,IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IGETDF.EQ.'THET')THEN
WRITE(ICOUT,8029)AMUML,IBASLC,IBASLC
ELSE
WRITE(ICOUT,8129)AMUML,IBASLC,IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(10X,
1 'GEETA MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)AMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)ASD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)AMIN
4225 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)AMAX
4227 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)F1
4229 FORMAT('FIRST FREQUENCY: = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)
4231 FORMAT('METHOD OF MOMENTS:')
CALL DPWRST('XXX','WRIT')
IF(IGETDF.EQ.'THET')THEN
WRITE(ICOUT,4235)AMUMOM
ELSE
WRITE(ICOUT,4236)AMUMOM
ENDIF
4235 FORMAT('ESTIMATE OF THETA = ',G15.7)
4236 FORMAT('ESTIMATE OF MU = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAMO
4237 FORMAT('ESTIMATE OF BETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4241)
4241 FORMAT('METHOD OF ONES FREQUENCY AND MEAN:')
CALL DPWRST('XXX','WRIT')
IF(IGETDF.EQ.'THET')THEN
WRITE(ICOUT,4235)AMUFR
ELSE
WRITE(ICOUT,4236)AMUFR
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4251)
4251 FORMAT('MAXIMUM LIKELIHOOD:')
CALL DPWRST('XXX','WRIT')
IF(IGETDF.EQ.'THET')THEN
WRITE(ICOUT,4235)AMUML
ELSE
WRITE(ICOUT,4236)AMUML
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4291)
4291 FORMAT('ESTIMATES ARE SAVED IN THE INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4292)
4292 FORMAT('THETAMOM, BETAMOM, THETAFR, BETAFR, THETAML, ',
1 'AND BETAML')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGET')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMGET--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMGNB(Y,X,N,NVAR,
1TEMP1,TEMP2,TEMP3,DTEMP1,
1THETMO,BETAMO,AMMOM,
1THETFR,BETAFR,AMFR,
1THETF2,BETAF2,AMF2,
1THETML,BETAML,AMML,
1ICAPSW,ICAPTY,MAXNXT,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE GENERALIZED NEGATIVE BINOMIAL
C DISTRIBUTION.
C
C THE MOMENT ESTIMATE OF THETA IS THE SOLUTION
C OF THE EQUATION:
C
C THETAHAT = 1 - 0.5*A + (A**2/4 - 1)**(0.5)
C A = -2 + (XBAR*S3 - 3*S2**2)**2/(XBAR*S2**3)
C
C BETAHAT = {1 - SQRT(XBAR*(1-THETAHAT)/S2)}/THETAHAT
C MHAT = XBAR*(1-THETAHAT*BETAHAT)/THETAHAT
C
C S2 = SAMPLE VARIANCE
C S3 = SAMPLE THIRD SAMPLE MOMENT
C (SUM[i=0 to k][N(i)*(i-XBAR)**3/(N-1) =
C SUM[j=1 to n][(X(j) - XBAR)**2]
C
C THE MOMENTS AND ZERO FREQUENCY ESTIMATE OF THETA
C IS THE SOLUTION OF THE EQUATION
C
C S2*(LOG(F0)**2/XBAR**3 -
C (1-THETA)*(LOG(1-THETA))**2/THETA**2 = 0
C
C MHAT = SQRT{(1-THETAHAT)*XBAR**3/S2}/THETAHAT
C BETAHAT = (1/THETAHAT) - MHAT/XBAR
C
C
C THE MOMENTS AND RATIO OF FREQUENCIES ESTIMATE OF
C THETA IS THE SOLUTION OF THE EQUATION
C
C {(2/THETA) - (2/THETA)*SQRT(XBAR*(1-THETA)/S2)-1}*
C LOG(1-THETA) - LOG(S2*F10**2/XBAR**3) = 0
C
C F10 = F1/F0
C
C MHAT = SQRT{(1-THETAHAT)*XBAR**3/S2}/THETA
C BETAHAT = (1/THETAHAT) - MHAT/XBAR
C
C THE MAXIMUM LIKELIHOOD ESTIMATES ARE THE SOLUTIONS
C TO THE EQUATIONS:
C
C (N-N0)*XBAR/M - SUM[X=2 to k][SUM[i=1 to x-1]
C [(X-XBAR)*N(x)/(M+BETA*X-i]] = 0
C
C N*XBAR*LOG(1-XBAR/(M+BETA*XBAR)) +
C SUM[X=2 to k][SUM[i=1 to x-1]
C [X*N(x)/(M+BETA*X-i]] = 0
C
C THETAHAT = XBAR/(MHAT+BETA*XBAR)
C
C THERE ARE TWO CASES:
C
C 1) ONE VARIABLE CASE: Y IS RAW DATA
C 2) TWO VARIABLE CASE: Y IS FREQUENCY, X IS CLASS
C MID-POINT.
C
C EXAMPLE--GENERALIZED NEGATIVE BINOMIAL MAXIMUM LIKELIHOOD Y
C --GENERALIZED NEGATIVE BINOMIAL MAXIMUM LIKELIHOOD Y X
C REFERENCES--CONSUL AND FAMOYE (2006), "LAGRANGIAN PROBABILITY
C DISTRIBUTIONS", BIRKHAUSER, CHAPTER 10.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/7
C ORIGINAL VERSION--JULY 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-----------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBN0
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
C-------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(3)
DOUBLE PRECISION FVEC(3)
C
DOUBLE PRECISION AE
DOUBLE PRECISION RE
DOUBLE PRECISION XLOW
DOUBLE PRECISION XUP
DOUBLE PRECISION XMID
DOUBLE PRECISION DSUM
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DTERM2
DOUBLE PRECISION DA
C
DOUBLE PRECISION GNBFUN
DOUBLE PRECISION GNBFU3
DOUBLE PRECISION GNBFU4
EXTERNAL GNBFUN
EXTERNAL GNBFU2
EXTERNAL GNBFU3
EXTERNAL GNBFU4
DOUBLE PRECISION XBAR
DOUBLE PRECISION S2
DOUBLE PRECISION S3
DOUBLE PRECISION F0FREQ
DOUBLE PRECISION F1FREQ
DOUBLE PRECISION F10FRE
DOUBLE PRECISION DC1
COMMON/GNBCOM/XBAR,S2,S3,F0FREQ,F1FREQ,F10FRE,DC1,
1 MAXROW,NTOT2
C
C-------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT---------------------------------------------------
C
ISUBN1='DPMG'
ISUBN2='NB '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGNB')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMGNB--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NVAR
55 FORMAT('N,NVAR = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I),X(I)
57 FORMAT('I,Y(I),X(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MGNB')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GENERALIZED NEGATIVE BINOMIAL ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IF(NVAR.EQ.1)THEN
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN GENERALIZED NEGATIVE BINOMIAL ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN GENERALIZED NEGATIVE BINOMIAL ',
1 'MAXIMUM LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
CALL SORT(Y,N,TEMP2)
DO1160I=1,N
Y(I)=TEMP2(I)
1160 CONTINUE
C
IRELAT='OFF'
IRHSTG='OFF'
XMIN=Y(1)
XMAX=Y(N)
XSTART=XMIN-0.5
XSTOP=XMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 TEMP2,TEMP1,N2,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
IINDX=MAXNXT/2
IF(N2.LE.IINDX)THEN
IML=0
ICNT=0
DO101I=1,N2
CCCCC IF(TEMP2(I).GT.0)THEN
ICNT=ICNT+1
TEMP2(ICNT)=TEMP2(I)
TEMP1(ICNT)=TEMP1(I)
TEMP3(I)=TEMP2(I)
TEMP3(IINDX+I)=TEMP1(I)
CCCCC ENDIF
101 CONTINUE
N2=ICNT
IK=N2
ELSE
IML=1
ENDIF
F0=TEMP2(1)/REAL(N)
F1=TEMP2(2)/REAL(N)
IF(F0.NE.0.0)THEN
F10=F1/F0
ELSE
F10=CPUMIN
ENDIF
C
ELSEIF(NVAR.EQ.2)THEN
CALL SORTC(X,Y,N,TEMP1,TEMP2)
NTOT=0
DO1210I=1,N
X(I)=TEMP1(I)
Y(I)=TEMP2(I)
NTOT=NTOT + Y(I)
1210 CONTINUE
F0=Y(1)/REAL(NTOT)
F1=Y(2)/REAL(NTOT)
IF(F0.NE.0.0)THEN
F10=F1/F0
ELSE
F10=CPUMIN
ENDIF
C
DO1220I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1221)
1221 FORMAT('***** ERROR IN GENERALIZED NEGATIVE BINOMIAL ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1223)
1223 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1225)I,Y(I)
1225 FORMAT(' ROW ',I8,' (AFTER SORTING) HAS FREQUENCY ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
1220 CONTINUE
ENDIF
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGNB')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1301)N
1301 FORMAT('AFTER SORT, N = ',I8)
CALL DPWRST('XXX','WRIT')
DO1310I=1,MAX(N,100)
WRITE(ICOUT,1311)I,X(I),Y(I)
1311 FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
1310 CONTINUE
ENDIF
C
C *********************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GENERALIZED NEGATIVE BINOMIAL MLE **
C ** ESTIMATION **
C *********************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MGNB')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
IF(NVAR.EQ.1)THEN
NTOT=N
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
2105 CONTINUE
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
AVAR=ASD**2
AMIN=Y(1)
AMAX=Y(N)
DSUM=0.0D0
DO2108I=1,N
DTERM1=DBLE(Y(I)) - DBLE(AMEAN)
DSUM=DSUM + DTERM1**3
2108 CONTINUE
S3=REAL(DSUM/DBLE(N-1))
C
ELSE
AMIN=X(1)
AMAX=X(N)
CALL WEMEAN(X,Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL WESD(X,Y,N,IWRITE,ASD,IBUGA3,IERROR)
AVAR=ASD**2
IINDX=MAXNXT/2
IF(N.LE.IINDX)THEN
IML=0
DO2210I=1,N
NTOT=NTOT+Y(I)
TEMP3(I)=Y(I)
TEMP3(IINDX+I)=X(I)
2210 CONTINUE
IK=N
ELSE
IML=1
ENDIF
DSUM=0.0D0
DO2208I=1,N
DSUM=DSUM + DBLE(Y(I))*(DBLE(I) - DBLE(AMEAN))**3
2208 CONTINUE
S3=REAL(DSUM/DBLE(NTOT-1))
ENDIF
C
THETMO=0.0
BETAMO=0.0
AMMOM=0.0
THETFR=0.0
BETAFR=0.0
AMFR=0.0
THETF2=0.0
BETAF2=0.0
AMF2=0.0
THETML=0.0
BETAML=0.0
AMML=0.0
C
XBAR=DBLE(AMEAN)
S2=DBLE(ASD)**2
DA=-2.0D0 + (XBAR*S3 - 3.0D0*S2**2)**2/(XBAR*S2**3)
THETMO=REAL(1.0D0 - 0.5D0*DA + DSQRT(DA**2/4.0D0 - 1.0D0))
BETAMO=(1.0 - SQRT(XBAR*(1.0-THETMO)/S2))/THETMO
IF(BETAMO.LE.1.0)BETAMO=1.0
AMMOM=XBAR*(1.0-THETMO*BETAMO)/THETMO
C
AE=1.D-7
RE=1.D-7
XLOW=0.000001D0
XUP=0.999999D0
XMID=0.5D0
F0FREQ=DBLE(F0)
F1FREQ=DBLE(F1)
F10FRE=DBLE(F10)
NTOT2=NTOT
C
IFR=0
IF(F0.GT.0.0)THEN
C1=S2*LOG(F0)**2/(XBAR**3)
IF(C1.GE.1.0 .OR. C1.LE.0.0)IFR=1
ELSE
IFR=1
ENDIF
IF(IFR.EQ.0)THEN
DC1=DBLE(C1)
XLOW=0.000001D0
XUP=0.999999D0
XMID=DBLE(THETMO)
CALL DFZERO(GNBFU3,XLOW,XUP,XMID,RE,AE,IFLAG)
THETFR=REAL(XLOW)
AMFR=SQRT((1.0-THETFR)*AMEAN**3/AVAR)/THETFR
BETAFR=(1.0/THETFR) - (AMFR/AMEAN)
IF(BETAFR.LE.1.0)BETAFR=1.0
ENDIF
C
IFR2=0
XLOW=0.000001D0
XUP=0.999999D0
DTERM1=GNBFU4(XLOW)
DTERM2=GNBFU4(XUP)
IF(DTERM1*DTERM2.GT.0.0D0)THEN
IFR2=1
ENDIF
IF(IFR2.EQ.0)THEN
XMID=DBLE(THETMO)
CALL DFZERO(GNBFU4,XLOW,XUP,XMID,RE,AE,IFLAG)
THETF2=REAL(XLOW)
AMF2=SQRT((1.0-THETF2)*AMEAN**3/AVAR)/THETF2
BETAF2=(1.0/THETF2) - (AMF2/AMEAN)
IF(BETAF2.LE.1.0)BETAF2=1.0
ENDIF
C
IF(IML.EQ.0)THEN
IOPT=2
TOL=1.0D-5
NPAR=3
NPRINT=-1
INFO=0
LWA=MAXNXT
MAXROW=MAXNXT
C
IF(IFR2.EQ.0)THEN
XPAR(1)=DBLE(BETAF2)
XPAR(2)=DBLE(AMF2)
XPAR(3)=DBLE(THETF2)
ELSEIF(IFR.EQ.0)THEN
XPAR(1)=DBLE(BETAFR)
XPAR(2)=DBLE(AMFR)
XPAR(3)=DBLE(THETFR)
ELSE
XPAR(1)=DBLE(BETAMO)
XPAR(2)=DBLE(BETAMO)
XPAR(3)=DBLE(THETMO)
ENDIF
CALL DNSQE(GNBFU2,JAC,IOPT,NPAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,LWA,TEMP3,IK)
C
BETAML=REAL(XPAR(1))
AMML=REAL(XPAR(2))
THETML=REAL(XPAR(3))
ENDIF
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GENERALIZED NEGATIVE BINOMIAL MLE **
C ** ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Lagrange-Poisson Parameter Estimation ')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' First Frequency:')
5068 FORMAT(' Estimate of Theta:')
5069 FORMAT(' Estimate of Beta:')
5071 FORMAT(' Method of Moments:')
5072 FORMAT(' Method of Ones Frequency and Mean:')
5073 FORMAT(' Maximum Likelihood:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5056 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)F0
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PWD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Lagrange-Poisson ',
1 'Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'First Frequency: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Theta: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of Beta: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Method of Moments: & ',2X,A1,A1)
8032 FORMAT(5X,'Method of Ones Frequency and Mean: & ',
1 2X,A1,A1)
8033 FORMAT(5X,'Method of Maximum Likelihood: & ',
1 2X,A1,A1)
8039 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)F0,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)THETMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)THETFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)THETML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(10X,
1 'GENERALIZED NEGATIVE BINOMIAL PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)AMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)ASD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)REAL(S3)
4224 FORMAT('SAMPLE CENTRALIZED THIRD MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)AMIN
4225 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)AMAX
4227 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4228)F0
4228 FORMAT('ZERO-CLASS FREQUENCY: = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)F1
4229 FORMAT('ONES-CLASS FREQUENCY: = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4230)F10
4230 FORMAT('RATIO OF ONES- AND ZERO-FREQUENCIES: = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)
4231 FORMAT('METHOD OF MOMENTS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)THETMO
4235 FORMAT('ESTIMATE OF THETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAMO
4237 FORMAT('ESTIMATE OF BETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)AMMOM
4239 FORMAT('ESTIMATE OF M = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(IFR.EQ.0)THEN
WRITE(ICOUT,4241)
4241 FORMAT('METHOD OF ZERO-CLASS FREQUENCY AND MOMENTS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)THETFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)AMFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFR.EQ.0)THEN
WRITE(ICOUT,4251)
4251 FORMAT('METHOD OF MOMENTS AND RATIO OF FREQUENCIES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)THETF2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAF2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)AMF2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,4261)
4261 FORMAT('MAXIMUM LIKELIHOOD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)THETML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)AMML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4291)
4291 FORMAT('ESTIMATES ARE SAVED IN THE INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4292)
4292 FORMAT('THETAMOM, BETAMOM, THETAFR, BETAFR, THETAML, ',
1 'AND BETAML')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGNB')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMGNB--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMGU1(Y,TAG,N,
1XTEMP,DTEMP,MAXNXT,
1SCALML,SCA2ML,SCALSE,SCALMO,SCMOSE,
1UHATML,UHATSE,UHATMO,UMOMSE,COVSE,
1NUMV,ICENTY,TEND,
1ICAPSW,ICAPTY,IGUMBC,MINMAX,
1QP,XQPHAT,XQPSE,XQPLCL,XQPUCL,NPERC,
1XQPHTZ,XQPLCZ,XQPUCZ,
1IOUNI1,IOUNI2,ALPHAP,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR GUMBEL (EXTREME VALUE TYPE 1) DISTRIBUTION
C FOR THE FULL SAMPLE CASE.
C EXAMPLE--GUMBEL MAXIMUM LIKELIHOOD Y
C REFERENCE--KARL BURY, "STATISTICAL DISTRIBUTIONS IN
C ENGINEERING", CAMBRIDGE UNIVERSITY PRESS,
C 1999, CHAPTER 15.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/12
C ORIGINAL VERSION--DECEMBER 2004.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICENTY
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 IGUMBC
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*7 ICASE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWU(NUMALP)
DIMENSION AHIGHU(NUMALP)
DIMENSION ALOWB(NUMALP)
DIMENSION AHIGHB(NUMALP)
DIMENSION A2LOWB(NUMALP)
DIMENSION A2HGHB(NUMALP)
DIMENSION A2LOWU(NUMALP)
DIMENSION A2HGHU(NUMALP)
C
DIMENSION Y(*)
DIMENSION TAG(*)
DIMENSION XTEMP(*)
DIMENSION XQPHTZ(*)
DIMENSION XQPLCZ(*)
DIMENSION XQPUCZ(*)
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPSE(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
C
DOUBLE PRECISION DTEMP(*)
C
DOUBLE PRECISION EV1FU2
DOUBLE PRECISION EV1FU3
DOUBLE PRECISION EV1FU4
DOUBLE PRECISION EV1FU6
EXTERNAL EV1FU2
EXTERNAL EV1FU3
EXTERNAL EV1FU4
EXTERNAL EV1FU6
C
INTEGER IN
DOUBLE PRECISION XBAR
COMMON/EV1CO2/XBAR,MINMX2,IN
DOUBLE PRECISION DK
DOUBLE PRECISION DLLUS
COMMON/EV1CO3/DK, DLLUS
DOUBLE PRECISION SHAT
COMMON/EV1CO4/SHAT
DOUBLE PRECISION DQ
DOUBLE PRECISION SHATML
COMMON/EV1CO6/DQ,SHATML
C
DOUBLE PRECISION DN
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DAE
DOUBLE PRECISION DRE
DOUBLE PRECISION DG
DOUBLE PRECISION DS
DOUBLE PRECISION DT1
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DXSTRT
DOUBLE PRECISION DXLOW
DOUBLE PRECISION DXUP
DOUBLE PRECISION XLOWSV
DOUBLE PRECISION XUPSV
C
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPMG'
ISUBN2='U1 '
C
ICASE='Maximum'
IF(MINMAX.NE.2)ICASE='Minimum'
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGU1')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPPGU1--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NUMV
55 FORMAT('N,NUMV,NPERC = ',3I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),TAG(I)
57 FORMAT('I,Y(I),TAG(I) = ',I8,2E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
WRITE(ICOUT,59)ICENTY
59 FORMAT('ICENTY = ',A4)
CALL DPWRST('XXX','WRIT')
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGU1')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GUMBEL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR VARIABLE 1 ',
1 'IS <= 1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)N
1113 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** WARNING FROM GUMBEL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)HOLD
1132 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
IF(NPERC.GT.0)THEN
DO1145I=1,NPERC
IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)
1141 FORMAT('***** WARNING IN GUMBEL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1143)QP(I)
1143 FORMAT(' REQUESTED PERCENTILE (',G15.7,') IS ',
1 'OUTSIDE THE (0,100) INTERVAL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)
1144 FORMAT(' NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
1 'COMPUTED.')
CALL DPWRST('XXX','WRIT')
NPERC=0
ENDIF
1145 CONTINUE
ENDIF
C
C
C **********************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GUMBEL MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
3100 CONTINUE
C
ISTEPN='31'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGU1')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
AN=REAL(N)
C
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
C
C MOMENT ESTIMATES ARE:
C
C MUHAT = XBAR - 0.45006*SD
C SHAT = 0.77970*SD
C
C THE MAXIMUM LIKELIHOOD ESTIMATES ARE:
C
C
C THE ML ESTIMATE OF THE SCALE PARAMETER IS THE SOLUTION TO
C THE FOLLOWING EQUATION:
C
C FOR THE MAXIMUM CASE:
C
C SHAT - XBAR + SUM[i=1 to N][X(I)*EXP(-X(I)/SHAT)]/
C SUM[i=1 to N][EXP(-X(I)/SHAT)] = 0
C
C FOR THE MINIMUM CASE:
C
C SHAT - XBAR + SUM[i=1 to N][X(I)*EXP(X(I)/SHAT)]/
C SUM[i=1 to N][EXP(X(I)/SHAT)] = 0
C
C WITH
C
C SHAT = CURRENT ESTIMATE OF SCALE PARAMETER
C XBAR = SAMPLE MEAN
C N = SAMPLE SIZE
C MINMAX = SPECIFY WHETHER MAXIMUM OR MINIMUM
C CASE IS BEING ESTIMATED
C
C THE ML ESTIMATE OF LOCATION FOR THE MAXIMUM CASE IS
C
C MUHAT = -SHAT*LOG(SUM[i=1 to N][EXP(-X(I)/SHAT)]/N)
C
C THE ML ESTIMATE OF LOCATION FOR THE MINIMUM CASE IS
C
C MUHAT = -SHAT*LOG(SUM[i=1 to N][EXP(X(I)/SHAT)]/N)
C
C
AN=REAL(N)
DN=DBLE(N)
IF(MINMAX.EQ.2)THEN
UHATMO=XMEAN - 0.45006*XSD
ELSE
UHATMO=XMEAN + 0.45006*XSD
ENDIF
SCALMO=0.77970*XSD
UMOMSE=SQRT(1.16781*SCALMO**2/AN)
SCMOSE=1.10001*XSD**2/AN
C
XBAR=DBLE(XMEAN)
MINMX2=MINMAX
IN=N
C
DXSTRT=DBLE(SCALMO)
DAE=2.0*0.000001D0*DXSTRT
DRE=DAE
IFLAG=0
DXLOW=DXSTRT/2.0D0
DXUP=2.0D0*DXSTRT
ITBRAC=0
DO3104I=1,N
DTEMP(I)=DBLE(Y(I))
3104 CONTINUE
C
3105 CONTINUE
XLOWSV=DXLOW
XUPSV=DXUP
CALL DFZER2(EV1FU2,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
C
IF(IFLAG.EQ.4 .AND. ITBRAC.LE.100)THEN
DXLOW=XLOWSV/2.0D0
DXUP=2.0D0*XUPSV
ITBRAC=ITBRAC+1
GOTO3105
ENDIF
C
IF(IFLAG.EQ.2)THEN
C
C NOTE: SUPPRESS THIS MESSAGE FOR NOW.
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,111)
CC111 FORMAT('***** WARNING FROM GUMBEL MAXIMUM ',
CCCCC1 'LIKELIHOOD--')
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,113)
CC113 FORMAT(' ESTIMATE OF SIGMA MAY NOT BE COMPUTED TO ',
CCCCC1 'DESIRED TOLERANCE.')
CCCCC CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,121)
121 FORMAT('***** WARNING FROM GUMBEL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,123)
123 FORMAT(' ESTIMATE OF SCALE MAY BE NEAR A SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,131)
131 FORMAT('***** ERROR FROM GUMBEL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,133)
133 FORMAT(' APPROPRIATE BRACKETING INTERVAL NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,141)
141 FORMAT('***** WARNING FROM GUMBEL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,143)
143 FORMAT(' MAXIMUM ITERATIONS EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
SCALML=REAL(DXLOW)
BN=(1.0 + 2.2/AN**1.13)
SCA2ML=BN*SCALML
C
DSUM1=0.0D0
IF(MINMAX.EQ.2)THEN
DO3108I=1,N
DX=-DBLE(Y(I))
DSUM1=DSUM1 + DEXP(DX/DBLE(SCALML))
3108 CONTINUE
DTERM1=-DBLE(SCALML)*DLOG(DSUM1/DN)
ELSE
DO3109I=1,N
DX=DBLE(Y(I))
DSUM1=DSUM1 + DEXP(DX/DBLE(SCALML))
3109 CONTINUE
DTERM1=DBLE(SCALML)*DLOG(DSUM1/DN)
ENDIF
UHATML=REAL(DTERM1)
C
SCALSE=0.77970*SCALML/SQRT(AN)
UHATSE=1.05293*SCALML/SQRT(AN)
COVSE=0.50697*SCALML/SQRT(AN)
IF(IGUMBC.EQ.'ON')THEN
SCALSE=SCALSE*BN
COVSE=COVSE*SQRT(BN)
ENDIF
C
IF(IGUMBC.EQ.'ON')THEN
SCTEMP=SCA2ML
ELSE
SCTEMP=SCALML
ENDIF
C
DSUM1=0.0D0
IF(MINMAX.EQ.2)THEN
DO3110I=1,N
DSUM1=DSUM1 + DEXP(-(Y(I) - DBLE(UHATML))/DBLE(SCALML))
3110 CONTINUE
DLLUS=-DN*DLOG(DBLE(SCALML)) - DN*XBAR/DBLE(SCALML) +
1 DN*DBLE(UHATML)/DBLE(SCALML) - DSUM1
ELSE
DO3115I=1,N
DSUM1=DSUM1 + DEXP((Y(I) + DBLE(UHATML))/DBLE(SCALML))
3115 CONTINUE
DLLUS=-DN*DLOG(DBLE(SCALML)) - DN*XBAR/DBLE(SCALML) +
1 DN*DBLE(UHATML)/DBLE(SCALML) - DSUM1
ENDIF
SHAT=DBLE(SCALML)
C
DAE=1.D-7
DRE=1.D-7
NUTEMP=1
C
DO3120I=1,NUMALP
C
ALP=ALPHA(I)
P=1.0-(ALP/2.0)
CALL NORPPF(P,APPF)
ALOWB(I)=SCTEMP - APPF*SCALSE
AHIGHB(I)=SCTEMP + APPF*SCALSE
ALOWU(I)=UHATML - APPF*UHATSE
AHIGHU(I)=UHATML + APPF*UHATSE
C
CALL CHSPPF(1.0-ALP,NUTEMP,APPF)
DK=DBLE(APPF)
C
DXSTRT=DBLE(ALOWB(I))
DXLOW=DXSTRT/5.0D0
DXUP=DBLE(SCTEMP)
CALL DFZER2(EV1FU3,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
A2LOWB(I)=REAL(DXLOW)
C
DXSTRT=DBLE(AHIGHB(I))
DXUP=DXSTRT*5.0D0
DXLOW=DBLE(SCTEMP)
CALL DFZER2(EV1FU3,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
A2HGHB(I)=REAL(DXLOW)
C
DXSTRT=DBLE(ALOWU(I))
DXLOW=DXSTRT/2.0D0
DXUP=DBLE(UHATML)
CALL DFZER2(EV1FU4,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
A2LOWU(I)=REAL(DXLOW)
C
DXSTRT=DBLE(AHIGHU(I))
DXUP=DXSTRT*2.0D0
DXLOW=DBLE(UHATML)
CALL DFZER2(EV1FU4,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
A2HGHU(I)=REAL(DXLOW)
C
3120 CONTINUE
C
C **********************************************
C ** STEP 41B-- **
C ** ESTIMATE CONFIDENCE LIMITS FOR SELECTED **
C ** PERCENTILES. THE CONFIDENCE LIMITS ON **
C ** SIGMA ARE (SL,SU) ARE: **
C ** (2*N*SIGMAHAT/CHSPPF(2N,1-ALPHA/2), **
C ** 2*N*SIGMAHAT/CHSPPF(2N,1-ALPHA/2)) **
C ** THEN (XpLCL,XpUCL) IS: **
C ** ((-LN(1 - Xp))*SL,(-LN(1 - Xp))*SU) **
C **********************************************
C
ISTEPN='41B'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C NOTE: COMMENTED OUT CODE IS 1-PARAMETER MODEL PLUS ESTIMATE
C OF LOCATION. FOR 2-PARAMETER MODEL, USE APPROXIMATION
C FOR LOWER LIMIT GIVEN ON PP. 190-191 OF BURY.
C
IF(NPERC.GE.1)THEN
C
ALP=ALPHAP
P=1.0-(ALP/2.0)
CALL NORPPF(P,ANOR)
CALL CHSPPF(1.0-ALP,NUTEMP,APPF)
DK=DBLE(APPF)
SHATML=DBLE(SCALML)
C
DAE=1.D-7
DRE=1.D-7
NUTEMP=1
C
WRITE(IOUNI2,3131)
3131 FORMAT(15X,' POINT ',' STANDARD ',
1 ' LOWER ',' UPPER')
WRITE(IOUNI2,3132)
3132 FORMAT(' PERCENTILE ',' ESTIMATE ',' ERROR ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
DO3130I=1,NPERC
C
QPTEMP=QP(I)/100.0
CALL EV1PPF(QPTEMP,MINMAX,APPF)
C
XQPHAT(I)=UHATML + SCTEMP*APPF
SEXQP=UHATSE**2 + (APPF*SCALSE)**2 + 2.0*APPF*COVSE**2
XQPSE(I)=SQRT(SEXQP)
XQPLCL(I)=XQPHAT(I) - ANOR*XQPSE(I)
XQPUCL(I)=XQPHAT(I) + ANOR*XQPSE(I)
WRITE(IOUNI2,'(6E15.7)')
1 QP(I),XQPHAT(I),SEXQP,XQPLCL(I),XQPUCL(I)
C
DQ=DBLE(QPTEMP)
DPPF=DBLE(XQPHAT(I))
DXSTRT=DBLE(XQPLCL(I))
DXLOW=DPPF/2.0D0
DXUP=DBLE(XQPHAT(I))
CALL DFZER2(EV1FU6,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
XQPLCZ(I)=REAL(DXLOW)
C
DXSTRT=DBLE(XQPUCL(I))
DXUP=DPPF*2.0D0
DXLOW=DBLE(XQPHAT(I))
CALL DFZER2(EV1FU6,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
XQPUCZ(I)=REAL(DXLOW)
C
CCCCC IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MGU1')THEN
CCCCC WRITE(ICOUT,3133)I,QP(I),XQPHAT(I),SEXQP,APPF
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,3135)ACHSUL,ACHSLL,ATEMP1,ATEMP2
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,3137)XQPLCL(I),XQPUCL(I)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC ENDIF
3130 CONTINUE
C
ENDIF
C
C *************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GUMBEL MLE ESTIMATE **
C *************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGU1')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('GUMBEL MAXIMUM LIKELIHOOD ESTIMATION:')
5003 FORMAT(' Full Sample ',A7,' Extreme Values Case')
5004 FORMAT('
f(x) = (1/s)e-(x-u)/se-e',
1 '-(x-u)/s')
5005 FORMAT('
f(x) = (1/s)e(x-u)/se-e',
1 '(x-u)/s')
5006 FORMAT(' u and s denote the location and scale ',
1 'parameters, respectively')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5003)ICASE
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5005)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5006)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5016 FORMAT(' Standard Errors and Confidence Intervals')
5017 FORMAT(' Based on No Bias Correction Scale ',
1 'Parameter')
5018 FORMAT(' Based on Bias Corrected Scale Parameter')
5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5016)
CALL DPWRST('XXX','WRIT')
IF(IGUMBC.EQ.'OFF')THEN
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5018)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5018)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Minimum:')
5063 FORMAT(' Sample Maximum:')
5064 FORMAT(' Sample Mean:')
5065 FORMAT(' Sample Standard Deviation:')
5066 FORMAT(' Moment Estimate of Location:')
5067 FORMAT(' Standard Error of Moment Estimate of ',
1 'Location:')
5068 FORMAT(' Moment Estimate of Scale:')
5069 FORMAT(' Standard Error of Moment Estimate of Scale:')
5070 FORMAT(' Maximum Likelihood Estimate of Location:')
5071 FORMAT(' Standard Error of Maximum Likelihood ',
1 'Estimate of Location:')
5072 FORMAT(' Maximum Likelihood Estimate of Scale:')
5073 FORMAT(' Bias Corrected Maximum Likelihood Estimate ',
1 'of Scale:')
5074 FORMAT(' Standard Error of Maximum Likelihood ',
1 'Estimate of Scale:')
5075 FORMAT(' Standard Error of Covariance ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)UHATMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)UMOMSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCMOSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)UHATML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)UHATSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCA2ML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5074)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5075)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Scale ',
1 'Parameter')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5137 FORMAT(' Normal Approximation')
5138 FORMAT(' Likelihood Ratio')
5139 FORMAT(' | ')
5161 FORMAT(' ')
55161 FORMAT(' | ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5161)
ELSE
WRITE(ICOUT,55161)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5150I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWB(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AHIGHB(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)A2LOWB(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)A2HGHB(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5150 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5217 FORMAT(' Confidence Limits for the Location ',
1 'Parameter')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5161)
ELSE
WRITE(ICOUT,55161)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWU(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AHIGHU(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)A2LOWU(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)A2HGHU(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
5801 FORMAT('')
5811 FORMAT('')
5813 FORMAT('')
5815 FORMAT(' ')
5816 FORMAT(' Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits for Selected ',
1 'Percentiles (Based on Normal Approximation)')
5818 FORMAT(' Confidence Limits for Selected ',
1 'Percentiles (Based on Likelihood Ratio)')
5819 FORMAT(' ')
C
C START THE TABLE
C
WRITE(ICOUT,5801)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5817)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' | ')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point Estimate')
5863 FORMAT(' Standard Error')
5864 FORMAT(' Lower Confidence Limit')
5865 FORMAT(' Upper Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5863)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5865)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5870)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5872)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO55880I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPSE(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
55880 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C START THE TABLE
C
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5801)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5818)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5970 FORMAT(' | ')
5972 FORMAT(' ')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5865)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5970)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5972)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO55980I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCZ(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCZ(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
55980 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
5899 FORMAT('')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5899)
CALL DPWRST('XXX','WRIT')
C
CCCCC WRITE OUTPUT IN LATEX FORMAT
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8004 FORMAT(A1,'end{table}')
8005 FORMAT('{',A1,'bf Gumbel Maximum Likelihood ',
1 'Estimation:}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8010 FORMAT('{',A1,'bf Full Sample ',A7,' Extreme Values Case}')
88010 FORMAT('{',A1,'bf u and s denote the location and ',
1 'scale parameters, respectively}')
8011 FORMAT('{',A1,'bf f(x) = (1/s)*EXP(-(x-u)/s)*',
1 'EXP(-EXP(-(x-u)/s))}')
88011 FORMAT('{',A1,'bf f(X) = (1/s)*EXP((x-u)/s)*',
1 'EXP(-EXP((x-u)/s))}')
8012 FORMAT('{',A1,'bf Standard Errors and Confidence Intervals ',
1 'Based on Bias Corrected Scale Parameter}')
88012 FORMAT('{',A1,'bf Standard Errors and Confidence Intervals ',
1 'Based on No Bias Correction Scale Parameter}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8010)IBASLC,ICASE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,88011)IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,88010)IBASLC,ICASE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
IF(IGUMBC.EQ.'ON')THEN
WRITE(ICOUT,8012)IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,88012)IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Moment Estimate of Location: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Standard Error of Moment Estimate of Location: & ',
1 G15.7,2X,A1,A1)
8028 FORMAT(5X,'Moment Estimate of Scale: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Standard Error of Moment Estimate of Scale: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Maximum Likelihood Estimate of Location: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Standard Error of ML Estimate of Location: & ',
1 G15.7,2X,A1,A1)
8032 FORMAT(5X,'Maximum Likelihood Estimate of Scale: & ',
1 G15.7,2X,A1,A1)
8033 FORMAT(5X,'Bias Corrected Maximum Likelihood Estimate of ',
1 'Scale: & ',G15.7,2X,A1,A1)
8034 FORMAT(5X,'Standard Error of ML Estimate of Scale: & ',
1 G15.7,2X,A1,A1)
8035 FORMAT(5X,'Standard Error of Maximum Likelihood ',
1 'Covariance: & ',G15.7,2X,A1,A1)
8039 FORMAT(5X,' & ',2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)UHATMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)UMOMSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)SCALMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)SCMOSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)UHATML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)UHATSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)SCALML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)SCA2ML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8034)SCALSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)COVSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit & Limit & Limit',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,' & ',G15.7,' & ',
1 G15.7,2X,A1,A1)
8126 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Normal Approximation}',
1 ' & ',A1,'multicolumn{2}{c}{Likelihood Ratio}',
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWB(I),AHIGHB(I),A2LOWB(I),
1 A2HGHB(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8211 FORMAT(5X,'{',A1,'bf Confidence Limits for Location Parameter}')
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8211)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8230I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWU(I),AHIGHU(I),A2LOWU(I),
1 A2HGHU(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8230 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C WRITE SELECTED PERCENTILES (IF ANY)
C
IF(NPERC.GT.0)THEN
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,
1 IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),
1 XQPUCL(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits (Normal Approximation)',
1 'for Selected Percentiles}')
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
8820 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,'bf Standard} & {',
1 A1,'bf Lower} & {',A1,'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Error} & {',A1,'bf Confidence Limit} & {',
1 A1,'bf Confidence Limit}',
1 2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,' & ',G15.7,
1 ' & ',G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8910)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8920)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8921)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8922)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8930I=1,NPERC
WRITE(ICOUT,8923)QP(I),XQPHAT(I),XQPLCZ(I),
1 XQPUCZ(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8930 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
8910 FORMAT(5X,'{',A1,'bf Confidence Limits (Likelihood Ratio)',
1 'for Selected Percentiles}')
8920 FORMAT(5X,A1,'begin{tabular} {cccc}')
8921 FORMAT(5X,' & {',A1,'bf Point} & {',
1 A1,'bf Lower} & {',A1,'bf Upper}',2X,A1,A1)
8922 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Confidence Limit} & {',
1 A1,'bf Confidence Limit}',
1 2X,A1,A1)
8923 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,
1 ' & ',G15.7,2X,A1,A1)
C
C
8899 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8899)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4201)
4201 FORMAT(6X,'GUMBEL MAXIMUM LIKELIHOOD ESTIMATION: ')
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,4205)
4205 FORMAT(6X,'FULL SAMPLE, MAXIMUM EXTREME VALUES CASE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4206)
4206 FORMAT(6X,'f(X) = (1/s)*EXP(-(X-U)/S)*EXP(-EXP(-(X-U)/S))')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4208)
4208 FORMAT(6X,'FULL SAMPLE, MINIMUM EXTREME VALUES CASE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4209)
4209 FORMAT(6X,'F(X) = (1/s)*EXP((X-U)/S)*EXP(-EXP((X-U)/S))')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4210)
4210 FORMAT(6X,'U AND S DENOTE THE LOCATION AND SCALE ',
1 'PARAMETERS, RESPECTIVELY')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(IGUMBC.EQ.'ON')THEN
WRITE(ICOUT,4211)
4211 FORMAT(6X,'STANDARD ERRORS AND CONFIDENCE INTERVALS ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44211)
44211 FORMAT(6X,'BASED ON BIAS CORRECTED SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4212)
4212 FORMAT(6X,'STANDARD ERRORS AND CONFIDENCE INTERVALS ',
1 'BASED ON NO BIAS CORRECTION SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)N
4213 FORMAT('NUMBER OF OBSERVATIONS = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4214)XMIN
4214 FORMAT('SAMPLE MINIMUM = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)XMAX
4215 FORMAT('SAMPLE MAXIMUM = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)XMEAN
4217 FORMAT('SAMPLE MEAN = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4219)XSD
4219 FORMAT('SAMPLE STANDARD DEVIATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4220)UHATMO
4220 FORMAT('MOMENT ESTIMATE OF LOCATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)UMOMSE
4221 FORMAT('STANDARD ERROR OF MOMENT ESTIMATE OF LOCATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)SCALMO
4222 FORMAT('MOMENT ESTIMATE OF SCALE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)SCMOSE
4223 FORMAT('STANDARD ERROR OF MOMENT ESTIMATE OF SCALE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4226)UHATML
4226 FORMAT('MAXIMUM LIKELIHOOD ESTIMATE OF LOCATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)UHATSE
4227 FORMAT('STANDARD ERROR OF LOCATION ESTIMATE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4228)SCALML
4228 FORMAT('MAXIMUM LIKELIHOOD ESTIMATE OF SCALE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)SCA2ML
4229 FORMAT('BIAS CORRECTED ML ESTIMATE OF SCALE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4230)SCALSE
4230 FORMAT('STANDARD ERROR OF SCALE ESTIMATE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)COVSE
4231 FORMAT('STANDARD ERROR OF COVARIANCE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4241)
4241 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,4242)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
CALL DPWRST('XXX','WRIT')
DO4249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWB(I),AHIGHB(I),A2LOWB(I),
1 A2HGHB(I)
4247 FORMAT(' ',F8.3,10X,4(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4249 CONTINUE
ELSE
WRITE(ICOUT,44242)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44246)
CALL DPWRST('XXX','WRIT')
DO44249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,44247)ATEMP,ALOWB(I),AHIGHB(I)
44247 FORMAT(' ',F8.3,10X,2(G12.6,2X))
CALL DPWRST('XXX','WRIT')
44249 CONTINUE
ENDIF
4242 FORMAT(' NORMAL APPROXIMATION',
1 ' LIKELIHOOD RATIO')
44242 FORMAT(' NORMAL APPROXIMATION')
4243 FORMAT(' CONFIDENCE LOWER UPPER ',
1 ' LOWER UPPER')
44243 FORMAT(' CONFIDENCE LOWER UPPER ')
4245 FORMAT(' VALUE (%) LIMIT LIMIT ',
1 ' LIMIT LIMIT')
44245 FORMAT(' VALUE (%) LIMIT LIMIT ')
4246 FORMAT('-------------------------------------------',
1 '----------------------------')
44246 FORMAT('-------------------------------------------')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4252)
4252 FORMAT('CONFIDENCE INTERVAL FOR LOCATION PARAMETER')
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,4242)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
CALL DPWRST('XXX','WRIT')
DO4259I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWU(I),AHIGHU(I),A2LOWU(I),
1 A2HGHU(I)
CALL DPWRST('XXX','WRIT')
4259 CONTINUE
ELSE
WRITE(ICOUT,44242)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44246)
CALL DPWRST('XXX','WRIT')
DO44259I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,44247)ATEMP,ALOWU(I),AHIGHU(I)
CALL DPWRST('XXX','WRIT')
44259 CONTINUE
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
4911 FORMAT('CONFIDENCE LIMITS FOR SELECTED PERCENTILES')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4912)
4912 FORMAT('(BASED ON NORMAL APPROXIMATION):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
4915 FORMAT('ALPHA = ',F7.4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
4921 FORMAT(10X,' POINT ',' STANDARD ',
1 ' LOWER ',' UPPER ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
4922 FORMAT('PERCENTILE',' ESTIMATE ',' ERROR ',
1 ' CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44916)
44916 FORMAT('---------------',
1 '-----------------------------------',
1 '------------------------')
CALL DPWRST('XXX','WRIT')
C
DO4931I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPSE(I),
1 XQPLCL(I),XQPUCL(I)
4932 FORMAT(F10.4,2G15.7,2G17.7)
CALL DPWRST('XXX','WRIT')
4931 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4962)
4962 FORMAT('(BASED ON LIKELIHOOD RATIO):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4971)
4971 FORMAT(10X,' POINT ',
1 ' LOWER ',' UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4972)
4972 FORMAT('PERCENTILE',' ESTIMATE ',
1 ' CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44976)
44976 FORMAT('---------------',
1 '--------------------',
1 '------------------------')
CALL DPWRST('XXX','WRIT')
C
DO4981I=1,NPERC
WRITE(ICOUT,4982)QP(I),XQPHAT(I),XQPLCZ(I),XQPUCZ(I)
4982 FORMAT(F10.4,G15.7,2G17.7)
CALL DPWRST('XXX','WRIT')
4981 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
ENDIF
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,4251)
4251 FORMAT('THE FOLLOWING INTERNAL PARAMETERS WILL BE SAVED:')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4253)
4253 FORMAT('UHATML, UHATSE, UHATMOM, UMOMSE, SCALEML, SCAEMLBC, ',
1 'SCALEMOM,SCMOSE, COVSE')
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(IFEEDB.EQ.'ON')THEN
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4943)
4943 FORMAT('PERCENTILE CONFIDENCE LIMITS BASED ON NORMAL ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4945)
4945 FORMAT('APPROXIMATION WRITTEN TO FILE dpst1f.dat')
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MGU1')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPPGU1--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMIN(ICOM,IHARG,IARGT,ARG,NUMARG,
1GX1MIN,GY1MIN,
1GX2MIN,GY2MIN,
1IX1MIN,IY1MIN,
1IX2MIN,IY2MIN,
1IFOUND,IERROR)
C
C PURPOSE--DEFINE AXIS MINIMA
C (HORIZONTAL AXIS OR VERTICAL AXIS OR BOTH)
C WHICH IN TURN WILL DEFINE THE LOWER EXTREME
C WHICH WILL APPEAR ON THE PLOT.
C THE MINIMA WILL BE PLACED IN THE 4 VARIABLES
C GX1MIN,GY1MIN,
C GX2MIN,GY2MIN,
C THE STATUS (FIXED OR FLOAT) WILL BE PLACED
C IN THE 4 VARIABLES
C IX1MIN,IY1MIN,
C IX2MIN,IY2MIN,
C INPUT ARGUMENTS--ICOM (A HOLLERITH VARIABLE)
C --IHARG (A HOLLERITH VECTOR)
C --IARGT (A HOLLERITH VECTOR)
C --ARG (A FLOATING POINT VECTOR)
C --NUMARG
C OUTPUT ARGUMENTS--
C --GX1MIN = MINIMUM FOR BOTTOM HORIZONTAL AXIS
C --GY1MIN = MINIMUM FOR LEFT VERTICAL AXIS
C --GX2MIN = MINIMUM FOR TOP HORIZONTAL AXIS
C --GX2MIN = MINIMUM FOR RIGHT VERTICAL AXIS
C --IX1MIN = STATUS FOR MINIMUM FOR BOTTOM HORIZONTAL AXIS
C --IY1MIN = STATUS FOR MINIMUM FOR LEFT VERTICAL AXIS
C --IX2MIN = STATUS FOR MINIMUM FOR TOP HORIZONTAL AXIS
C --IX2MIN = STATUS FOR MINIMUM FOR RIGHT VERTICAL AXIS
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--NOVEMBER 1978.
C UPDATED --SEPTEMBER 1980.
C UPDATED --OCTOBER 1981.
C UPDATED --NOVEMBER 1981.
C UPDATED --MAY 1982.
C UPDATED --FEBRUARY 1992. FIX YMIN WITH NO ARG BOMB
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICOM
CHARACTER*4 IHARG
CHARACTER*4 IARGT
C
CHARACTER*4 IX1MIN
CHARACTER*4 IY1MIN
CHARACTER*4 IX2MIN
CHARACTER*4 IY2MIN
C
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IHARG(*)
DIMENSION IARGT(*)
DIMENSION ARG(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
CCCCC THE FOLLOWING LINE WAS FIXED FEBRUARY 1992
CCCCC IF(IHARG(NUMARG).EQ.'?')GOTO8100
IF(NUMARG.LE.0)GOTO1090
IF(IHARG(NUMARG).EQ.'?')GOTO8100
1090 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN **
C ** BOTH HORIZONTAL AXIS MINIMA ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'XMIN')GOTO1100
GOTO1199
C
1100 CONTINUE
IF(NUMARG.LE.0)GOTO1110
IF(IARGT(1).EQ.'NUMB')GOTO1120
GOTO1110
C
1110 CONTINUE
IFOUND='YES'
GX1MIN=CPUMIN
GX2MIN=CPUMIN
IX1MIN='FLOA'
IX2MIN='FLOA'
1113 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1119
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1115)
1115 FORMAT('THE X AXIS MINIMUM (FOR BOTH HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1116)
1116 FORMAT('FRAME LINES) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1117)
1117 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1119 CONTINUE
GOTO9000
C
1120 CONTINUE
IFOUND='YES'
A1=ARG(1)
GX1MIN=A1
GX2MIN=A1
IX1MIN='FIXE'
IX2MIN='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1129
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1125)
1125 FORMAT('THE X AXIS MINIMUM (FOR BOTH HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1126)GX1MIN
1126 FORMAT('FRAME LINES) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1129 CONTINUE
GOTO9000
C
1199 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN THE **
C ** BOTTOM HORIZONTAL AXIS MINIMUM ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'X1MI')GOTO1200
GOTO1299
C
1200 CONTINUE
IF(NUMARG.LE.0)GOTO1210
IF(IARGT(1).EQ.'NUMB')GOTO1220
GOTO1210
C
1210 CONTINUE
IFOUND='YES'
GX1MIN=CPUMIN
IX1MIN='FLOA'
1213 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1219
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1215)
1215 FORMAT('THE X AXIS MINIMUM (FOR THE BOTTOM HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1216)
1216 FORMAT('FRAME LINE) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1217)
1217 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1219 CONTINUE
GOTO9000
C
1220 CONTINUE
IFOUND='YES'
A1=ARG(1)
GX1MIN=A1
IX1MIN='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1229
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1225)
1225 FORMAT('THE X AXIS MINIMUM (FOR THE BOTTOM HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1226)GX1MIN
1226 FORMAT('FRAME LINE) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1229 CONTINUE
GOTO9000
C
1299 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN THE **
C ** TOP HORIZONTAL AXIS MINIMUM ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'X2MI')GOTO1300
GOTO1399
C
1300 CONTINUE
IF(NUMARG.LE.0)GOTO1310
IF(IARGT(1).EQ.'NUMB')GOTO1320
GOTO1310
C
1310 CONTINUE
IFOUND='YES'
GX2MIN=CPUMIN
IX2MIN='FLOA'
1313 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1319
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1315)
1315 FORMAT('THE X AXIS MINIMUM (FOR THE TOP HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1316)
1316 FORMAT('FRAME LINE) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1317)
1317 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
GOTO9000
C
1320 CONTINUE
IFOUND='YES'
A1=ARG(1)
GX2MIN=A1
IX2MIN='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1329
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1325)
1325 FORMAT('THE X AXIS MINIMUM (FOR THE TOP HORIZONTAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1326)GX2MIN
1326 FORMAT('FRAME LINE) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1329 CONTINUE
GOTO9000
C
1399 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN **
C ** BOTH VERTICAL AXIS MINIMUM ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'YMIN')GOTO1400
GOTO1499
C
1400 CONTINUE
IF(NUMARG.LE.0)GOTO1410
IF(IARGT(1).EQ.'NUMB')GOTO1420
GOTO1410
C
1410 CONTINUE
IFOUND='YES'
GY1MIN=CPUMIN
GY2MIN=CPUMIN
IY1MIN='FLOA'
IY2MIN='FLOA'
1413 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1419
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1415)
1415 FORMAT('THE Y AXIS MINIMUM (FOR BOTH VERTICAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1416)
1416 FORMAT('FRAME LINES) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1417)
1417 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1419 CONTINUE
GOTO9000
C
1420 CONTINUE
IFOUND='YES'
A1=ARG(1)
GY1MIN=A1
GY2MIN=A1
IY1MIN='FIXE'
IY2MIN='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1429
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1425)
1425 FORMAT('THE Y AXIS MINIMUM (FOR BOTH VERTICAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1426)GY1MIN
1426 FORMAT('FRAME LINES) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1429 CONTINUE
GOTO9000
C
1499 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN THE **
C ** LEFT VERTICAL AXIS MINIMUM ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'Y1MI')GOTO1500
GOTO1599
C
1500 CONTINUE
IF(NUMARG.LE.0)GOTO1510
IF(IARGT(1).EQ.'NUMB')GOTO1520
GOTO1510
C
1510 CONTINUE
IFOUND='YES'
GY1MIN=CPUMIN
IY1MIN='FLOA'
1513 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1519
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1515)
1515 FORMAT('THE Y AXIS MINIMUM (FOR THE LEFT VERTICAL ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1516)
1516 FORMAT('FRAME LINE) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1517)
1517 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1519 CONTINUE
GOTO9000
C
1520 CONTINUE
IFOUND='YES'
A1=ARG(1)
GY1MIN=A1
IY1MIN='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1529
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1525)
1525 FORMAT('THE Y AXIS MINIMUM (FOR THE LEFT VERTICAL ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1526)GY1MIN
1526 FORMAT('FRAME LINE) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1529 CONTINUE
GOTO9000
C
1599 CONTINUE
C
C *****************************************************
C ** TREAT THE CASE WHEN THE **
C ** RIGHT VERTICAL AXIS MINIMUM ARE TO BE FIXED **
C *****************************************************
C
IF(ICOM.EQ.'Y2MI')GOTO1600
GOTO1699
C
1600 CONTINUE
IF(NUMARG.LE.0)GOTO1610
IF(IARGT(1).EQ.'NUMB')GOTO1620
GOTO1610
C
1610 CONTINUE
IFOUND='YES'
GY2MIN=CPUMIN
IY2MIN='FLOA'
1613 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1619
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1615)
1615 FORMAT('THE Y AXIS MINIMUM (FOR THE RIGHT VERTICAL ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1616)
1616 FORMAT('FRAME LINE) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1617)
1617 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1619 CONTINUE
GOTO9000
C
1620 CONTINUE
IFOUND='YES'
A1=ARG(1)
GY2MIN=A1
IY2MIN='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1629
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1625)
1625 FORMAT('THE Y AXIS MINIMUM (FOR THE RIGHT VERTICAL ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1626)GY2MIN
1626 FORMAT('FRAME LINE) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1629 CONTINUE
GOTO9000
C
1699 CONTINUE
C
C ******************************************
C ** TREAT THE CASE WHEN **
C ** BOTH AXIS MINIMUM ARE TO BE FIXED **
C ******************************************
C
C
IF(ICOM.EQ.'XYMI')GOTO1700
IF(ICOM.EQ.'YXMI')GOTO1700
IF(ICOM.EQ.'MINI')GOTO1700
IF(ICOM.EQ.'MIN ')GOTO1700
GOTO1799
C
1700 CONTINUE
IF(NUMARG.LE.0)GOTO1710
IF(IARGT(1).EQ.'NUMB')GOTO1720
GOTO1710
C
1710 CONTINUE
IFOUND='YES'
GX1MIN=CPUMIN
GY1MIN=CPUMIN
GX2MIN=CPUMIN
GY2MIN=CPUMIN
IX1MIN='FLOA'
IY1MIN='FLOA'
IX2MIN='FLOA'
IY2MIN='FLOA'
1713 CONTINUE
C
IF(IFEEDB.EQ.'OFF')GOTO1719
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1715)
1715 FORMAT('THE X AXIS MINIMUM (FOR ALL 4')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1716)
1716 FORMAT('FRAME LINES) HAS JUST BEEN SET')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1717)
1717 FORMAT('SO THAT IT WILL FLOAT WITH THE PLOTTED DATA')
CALL DPWRST('XXX','BUG ')
1719 CONTINUE
GOTO9000
C
1720 CONTINUE
IFOUND='YES'
A1=ARG(1)
GX1MIN=A1
GY1MIN=A1
GX2MIN=A1
GY2MIN=A1
IX1MIN='FIXE'
IY1MIN='FIXE'
IX2MIN='FIXE'
IY2MIN='FIXE'
C
IF(IFEEDB.EQ.'OFF')GOTO1729
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1725)
1725 FORMAT('THE AXIS MINIMUM (FOR ALL 4')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1726)GX1MIN
1726 FORMAT('FRAME LINES) HAS JUST BEEN SET TO ',
1E15.7)
CALL DPWRST('XXX','BUG ')
1729 CONTINUE
GOTO9000
C
1799 CONTINUE
GOTO9000
C
C ********************************************
C ** STEP 81-- **
C ** TREAT THE ? CASE-- **
C ** DUMP OUT CURRENT AND DEFAULT VALUES. **
C ********************************************
C
8100 CONTINUE
IFOUND='YES'
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8111)
8111 FORMAT('THE CURRENT AXIS MINIMA ARE ')
CALL DPWRST('XXX','BUG ')
IF(IX1MIN.NE.'FLOA')WRITE(ICOUT,8112)GX1MIN
8112 FORMAT(' --X1 (BOTTOM HORIZONTAL) = ',E15.7)
IF(IX1MIN.NE.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IX1MIN.EQ.'FLOA')WRITE(ICOUT,8113)
8113 FORMAT(' --X1 (BOTTOM HORIZONTAL) = FLOAT & NEAT')
IF(IX1MIN.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IX2MIN.NE.'FLOA')WRITE(ICOUT,8114)GX2MIN
8114 FORMAT(' --X2 (TOP HORIZONTAL) = ',E15.7)
IF(IX2MIN.NE.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IX2MIN.EQ.'FLOA')WRITE(ICOUT,8115)
8115 FORMAT(' --X2 (TOP HORIZONTAL) = FLOAT & NEAT')
IF(IX2MIN.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IY1MIN.NE.'FLOA')WRITE(ICOUT,8116)GY1MIN
8116 FORMAT(' --Y1 (LEFT VERTICAL ) = ',E15.7)
IF(IY1MIN.NE.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IY1MIN.EQ.'FLOA')WRITE(ICOUT,8117)
8117 FORMAT(' --Y1 (LEFT VERTICAL ) = FLOAT & NEAT')
IF(IY1MIN.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IY2MIN.NE.'FLOA')WRITE(ICOUT,8118)GY2MIN
8118 FORMAT(' --Y2 (RIGHT VERTICAL ) = ',E15.7)
IF(IY2MIN.NE.'FLOA')CALL DPWRST('XXX','BUG ')
IF(IY2MIN.EQ.'FLOA')WRITE(ICOUT,8119)
8119 FORMAT(' --Y2 (RIGHT VERTICAL ) = FLOAT & NEAT')
IF(IY2MIN.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8121)
8121 FORMAT('THE DEFAULT AXIS MINIMA ARE ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8122)
8122 FORMAT(' --X1 (BOTTOM HORIZONTAL) = FLOAT & NEAT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8123)
8123 FORMAT(' --X2 (TOP HORIZONTAL) = FLOAT & NEAT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8124)
8124 FORMAT(' --Y1 (LEFT VERTICAL ) = FLOAT & NEAT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8125)
8125 FORMAT(' --Y2 (BOTTOM VERTICAL ) = FLOAT & NEAT')
CALL DPWRST('XXX','BUG ')
GOTO9000
C
C ******************
C ** STEP 90-- **
C ** EXIT **
C ******************
C
9000 CONTINUE
RETURN
END
SUBROUTINE DPMITN(IHARG,IARGT,IARG,NUMARG,
1IX1NSW,IX2NSW,IY1NSW,IY2NSW,
1NMNX1T,NMNX2T,NMNY1T,NMNY2T,
1IFOUND,IERROR)
C
C PURPOSE--DEFINE THE NUMBER OF MINOR TIC MARKS
C FOR HORIZONTAL FRAME LINES OR VERTICAL FRAME LINES OR BOTH.
C INPUT ARGUMENTS--IHARG (A CHARACTER VECTOR)
C --IARG (AN INTEGER VECTOR)
C --NUMARG
C OUTPUT ARGUMENTS--
C --IX1NSW (A CHARACTER VARIABLE)
C --IX2NSW (A CHARACTER VARIABLE)
C --IY1NSW (A CHARACTER VARIABLE)
C --IY2NSW (A CHARACTER VARIABLE)
C --NMNX1T (AN INTEGER VARIABLE)
C --NMNX2T (AN INTEGER VARIABLE)
C --NMNY1T (AN INTEGER VARIABLE)
C --NMNY2T (AN INTEGER VARIABLE)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--DECEMBER 1982.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IHARG
CHARACTER*4 IARGT
C
CHARACTER*4 IX1NSW
CHARACTER*4 IX2NSW
CHARACTER*4 IY1NSW
CHARACTER*4 IY2NSW
C
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHHOLD
C
C---------------------------------------------------------------------
C
DIMENSION IHARG(*)
DIMENSION IARGT(*)
DIMENSION IARG(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'XTIC')GOTO1100
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'X1TI')GOTO1200
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'X2TI')GOTO1300
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'YTIC')GOTO1400
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'Y1TI')GOTO1500
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'Y2TI')GOTO1600
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'TIC')GOTO1700
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'TICS')GOTO1700
GOTO9000
C
C ********************************************************
C ** STEP 1--
C ** TREAT THE CASE WHEN
C ** ONLY THE HORIZONTAL MINOR TICS ARE TO BE CHANGED
C ********************************************************
C
1100 CONTINUE
IF(NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1110
IF(NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1110
C
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1101)
1101 FORMAT('***** ERROR IN DPMITN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1102)
1102 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1103)
1103 FORMAT(' NUMBER OF MINOR (HORIZONTAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1104)
1104 FORMAT(' EXAMPLE TO SPECIFY 3 MINOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1105)
1105 FORMAT(' (ON THE HORIZONTAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1106)
1106 FORMAT(' MINOR XTIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1107)
1107 FORMAT(' MINOR XTICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1110 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1150
IF(IHARG(NUMARG).EQ.'OFF')GOTO1150
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1150
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1150
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1150
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1160
IERROR='YES'
GOTO9000
C
1150 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1180
C
1160 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1180
C
1180 CONTINUE
IFOUND='YES'
IX1NSW=IHHOLD
IX2NSW=IHHOLD
NMNX1T=IHOLD
NMNX2T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1189
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1181)
1181 FORMAT('THE NUMBER OF MINOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1182)
1182 FORMAT('(FOR BOTH HORIZONTAL FRAME LINES')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1183)IHOLD
1183 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1184)
1184 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1189 CONTINUE
GOTO9000
1190 CONTINUE
C
C ********************************************************
C ** STEP 2--
C ** TREAT THE CASE WHEN
C ** ONLY THE BOTTOM HORIZONTAL MINOR TICS ARE TO BE CHANGED
C ********************************************************
C
1200 CONTINUE
IF(NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1210
IF(NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1210
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1201)
1201 FORMAT('***** ERROR IN DPMITN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1202)
1202 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1203)
1203 FORMAT(' NUMBER OF MINOR (HORIZONTAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1204)
1204 FORMAT(' EXAMPLE TO SPECIFY 3 MINOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1205)
1205 FORMAT(' (ON THE BOTTOM HORIZONTAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1206)
1206 FORMAT(' MINOR X1TIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1207)
1207 FORMAT(' MINOR X1TICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1210 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1250
IF(IHARG(NUMARG).EQ.'OFF')GOTO1250
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1250
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1250
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1250
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1260
IERROR='YES'
GOTO9000
C
1250 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1280
C
1260 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1280
C
1280 CONTINUE
IFOUND='YES'
IX1NSW=IHHOLD
NMNX1T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1289
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1281)
1281 FORMAT('THE NUMBER OF MINOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1282)
1282 FORMAT('(FOR THE BOTTOM HORIZONTAL FRAME LINE')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1283)IHOLD
1283 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1284)
1284 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1289 CONTINUE
GOTO9000
1290 CONTINUE
C
C ********************************************************
C ** STEP 3--
C ** TREAT THE CASE WHEN
C ** ONLY THE TOP HORIZONTAL MINOR TICS ARE TO BE CHANGED
C ********************************************************
C
1300 CONTINUE
IF(NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1310
IF(NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1310
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1301)
1301 FORMAT('***** ERROR IN DPMITN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1302)
1302 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1303)
1303 FORMAT(' NUMBER OF MINOR (HORIZONTAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1304)
1304 FORMAT(' EXAMPLE TO SPECIFY 3 MINOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1305)
1305 FORMAT(' (ON THE TOP HORIZONTAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1306)
1306 FORMAT(' MINOR X2TIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1307)
1307 FORMAT(' MINOR X2TICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1310 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1350
IF(IHARG(NUMARG).EQ.'OFF')GOTO1350
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1350
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1350
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1350
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1360
IERROR='YES'
GOTO9000
C
1350 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1380
C
1360 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1380
C
1380 CONTINUE
IFOUND='YES'
IX2NSW=IHHOLD
NMNX2T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1389
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1381)
1381 FORMAT('THE NUMBER OF MINOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1382)
1382 FORMAT('(FOR THE TOP HORIZONTAL FRAME LINE')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1383)IHOLD
1383 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1384)
1384 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1389 CONTINUE
GOTO9000
1390 CONTINUE
C
C ********************************************************
C ** STEP 4--
C ** TREAT THE CASE WHEN
C ** ONLY THE VERTICAL MINOR TICS ARE TO BE CHANGED
C ********************************************************
C
1400 CONTINUE
IF(NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1410
IF(NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1410
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1401)
1401 FORMAT('***** ERROR IN DPMITN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1402)
1402 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1403)
1403 FORMAT(' NUMBER OF MINOR (VERTICAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1404)
1404 FORMAT(' EXAMPLE TO SPECIFY 3 MINOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1405)
1405 FORMAT(' (ON THE VERTICAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1406)
1406 FORMAT(' MINOR YTIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1407)
1407 FORMAT(' MINOR YTICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1410 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1450
IF(IHARG(NUMARG).EQ.'OFF')GOTO1450
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1450
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1450
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1450
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1460
IERROR='YES'
GOTO9000
C
1450 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1480
C
1460 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1480
C
1480 CONTINUE
IFOUND='YES'
IY1NSW=IHHOLD
IY2NSW=IHHOLD
NMNY1T=IHOLD
NMNY2T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1489
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1481)
1481 FORMAT('THE NUMBER OF MINOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1482)
1482 FORMAT('(FOR BOTH VERTICAL FRAME LINES')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1483)IHOLD
1483 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1484)
1484 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1489 CONTINUE
GOTO9000
1490 CONTINUE
C
C ********************************************************
C ** STEP 5--
C ** TREAT THE CASE WHEN
C ** ONLY THE LEFT VERTICAL MINOR TICS ARE TO BE CHANGED
C ********************************************************
C
1500 CONTINUE
IF(NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1510
IF(NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1510
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1501)
1501 FORMAT('***** ERROR IN DPMITN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1502)
1502 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1503)
1503 FORMAT(' NUMBER OF MINOR (VERTICAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1504)
1504 FORMAT(' EXAMPLE TO SPECIFY 3 MINOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1505)
1505 FORMAT(' (ON THE LEFT VERTICAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1506)
1506 FORMAT(' MINOR Y1TIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1507)
1507 FORMAT(' MINOR Y1TICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1510 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1550
IF(IHARG(NUMARG).EQ.'OFF')GOTO1550
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1550
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1550
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1550
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1560
IERROR='YES'
GOTO9000
C
1550 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1580
C
1560 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1580
C
1580 CONTINUE
IFOUND='YES'
IY1NSW=IHHOLD
NMNY1T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1589
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1581)
1581 FORMAT('THE NUMBER OF MINOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1582)
1582 FORMAT('(FOR THE LEFT VERTICAL FRAME LINE')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1583)IHOLD
1583 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1584)
1584 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1589 CONTINUE
GOTO9000
1590 CONTINUE
C
C ********************************************************
C ** STEP 6--
C ** TREAT THE CASE WHEN
C ** ONLY THE RIGHT VERTICAL MINOR TICS ARE TO BE CHANGED
C ********************************************************
C
1600 CONTINUE
IF(NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1610
IF(NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1610
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1601)
1601 FORMAT('***** ERROR IN DPMITN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1602)
1602 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1603)
1603 FORMAT(' NUMBER OF MINOR (VERTICAL) TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1604)
1604 FORMAT(' EXAMPLE TO SPECIFY 3 MINOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1605)
1605 FORMAT(' (ON THE RIGHT VERTICAL FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1606)
1606 FORMAT(' MINOR Y2TIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1607)
1607 FORMAT(' MINOR Y2TICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1610 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1650
IF(IHARG(NUMARG).EQ.'OFF')GOTO1650
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1650
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1650
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1650
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1660
IERROR='YES'
GOTO9000
C
1650 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1680
C
1660 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1680
C
1680 CONTINUE
IFOUND='YES'
IY2NSW=IHHOLD
NMNY2T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1689
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1681)
1681 FORMAT('THE NUMBER OF MINOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1682)
1682 FORMAT('(FOR THE RIGHT VERTICAL FRAME LINE')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1683)IHOLD
1683 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1684)
1684 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1689 CONTINUE
GOTO9000
1690 CONTINUE
C
C ********************************************************
C ** STEP 7--
C ** TREAT THE CASE WHEN
C ** BOTH HORIZONTAL AND VERTICAL MINOR TICS ARE TO BE
C ********************************************************
C
1700 CONTINUE
IF(NUMARG.GE.2.AND.IHARG(2).EQ.'NUMB')GOTO1710
IF(NUMARG.GE.3.AND.IHARG(3).EQ.'NUMB')GOTO1710
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1701)
1701 FORMAT('***** ERROR IN DPMITN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1702)
1702 FORMAT(' IMPROPER FORM FOR SPECIFYING THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1703)
1703 FORMAT(' NUMBER OF MINOR TIC MARKS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1704)
1704 FORMAT(' EXAMPLE TO SPECIFY 3 MINOR TIC MARKS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1705)
1705 FORMAT(' (ON ALL 4 FRAME LINES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1706)
1706 FORMAT(' MINOR TIC MARK NUMBER 3')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1707)
1707 FORMAT(' MINOR TICS NUMBER 3')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1710 CONTINUE
IF(IHARG(NUMARG).EQ.'ON')GOTO1750
IF(IHARG(NUMARG).EQ.'OFF')GOTO1750
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1750
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1750
IF(IHARG(NUMARG).EQ.'NUMB')GOTO1750
IF(IARGT(NUMARG).EQ.'NUMB')GOTO1760
IERROR='YES'
GOTO9000
C
1750 CONTINUE
IHHOLD='FLOA'
IHOLD=(-1)
GOTO1780
C
1760 CONTINUE
IHHOLD='FIXE'
IHOLD=IARG(NUMARG)
GOTO1780
C
1780 CONTINUE
IFOUND='YES'
IX1NSW=IHHOLD
IX2NSW=IHHOLD
IY1NSW=IHHOLD
IY2NSW=IHHOLD
NMNX1T=IHOLD
NMNX2T=IHOLD
NMNY1T=IHOLD
NMNY2T=IHOLD
C
IF(IFEEDB.EQ.'OFF')GOTO1789
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1781)
1781 FORMAT('THE NUMBER OF MINOR TIC MARKS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1782)
1782 FORMAT('(FOR EACH FRAME LINES')
CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FIXE')WRITE(ICOUT,1783)IHOLD
1783 FORMAT('HAS JUST BEEN SET TO ',I8)
IF(IHHOLD.EQ.'FIXE')CALL DPWRST('XXX','BUG ')
IF(IHHOLD.EQ.'FLOA')WRITE(ICOUT,1784)
1784 FORMAT('HAS JUST BEEN SET TO AUTOMATIC.')
IF(IHHOLD.EQ.'FLOA')CALL DPWRST('XXX','BUG ')
1789 CONTINUE
GOTO9000
1790 CONTINUE
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
RETURN
END
SUBROUTINE DPMJTC(ICOM,IHARG,IARGT,ARG,NUMARG,
1IX1TSW,IX2TSW,IY1TSW,IY2TSW,
1X1COOR,X2COOR,Y1COOR,Y2COOR,
1NX1COO,NX2COO,NY1COO,NY2COO,
1MAXTIC,
1IFOUND,IERROR)
C
C PURPOSE--DEFINE THE MAJOR TIC MARK COORDINATES
C FOR ANY OF THE 4 FRAME LINES.
C THE MAJOR TIC MARK COORDINATES ARE GIVEN IN UNITS
C OF THE PLOTTED DATA.
C ALSO, A SECONDARY PURPOSE IS TO ADJUST ACCORDINGLY
C THE TIC MARK SWITCHES
C FOR ANY OF THE 4 FRAME LINES.
C SUCH TIC MARK SWITCHES TURN ON OR OFF
C THE TIC MARKS ON THE 4 FRAME LINES OF A PLOT.
C THE CONTENTS OF A TIC MARK SWITCH ARE
C ON OR OFF
C THE TIC MARK SWITCHES DEFINE WHETHER
C THE TIC MARKS FOR A GIVEN FRAME SHOULD
C BE ON (THAT IS, APPEAR), OR BE OFF (THAT IS,
C BE SUPPRESSED.
C THE TIC MARK SWITCHES FOR THE 4 FRAME LINES
C ARE CONTAINED IN THE 4 VARIABLES
C IX1TSW,IX2TSW,IY1TSW,IY2TSW,
C INPUT ARGUMENTS--ICOM
C --IHARG (A HOLLERITH VECTOR)
C --IARGT (A HOLLERITH VECTOR)
C --ARG (A FLOATING POINT VECTOR)
C --NUMARG
C --MAXTIC
C OUTPUT ARGUMENTS--
C --IX1TSW,IX2TSW,IY1TSW,IY2TSW,
C --X1COOR,X2COOR,Y1COOR,Y2COOR,
C --NX1COO,NX2COO,NY1COO,NY2COO,
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--SEPTEMBER 1980.
C UPDATED --MAY 1982.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICOM
CHARACTER*4 IHARG
CHARACTER*4 IARGT
C
CHARACTER*4 IX1TSW
CHARACTER*4 IX2TSW
CHARACTER*4 IY1TSW
CHARACTER*4 IY2TSW
C
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IHARG(*)
DIMENSION IARGT(*)
DIMENSION ARG(*)
C
DIMENSION X1COOR(*)
DIMENSION X2COOR(*)
DIMENSION Y1COOR(*)
DIMENSION Y2COOR(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
ILOCC=0
IF(NUMARG.LE.0)GOTO1900
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'COOR')ILOCC=1
IF(NUMARG.GE.2.AND.IHARG(2).EQ.'COOR')ILOCC=2
IF(NUMARG.GE.3.AND.IHARG(2).EQ.'COOR')ILOCC=3
ILOCCP=ILOCC+1
IF(ILOCC.EQ.0)GOTO1900
C
C *****************************************************
C ** TREAT THE CASE WHEN MAJOR TIC MARK COORDINATES ON **
C ** BOTH HORIZONTAL FRAME LINES ARE TO BE DEFINED **
C *****************************************************
C
IF(ICOM.EQ.'XTIC')GOTO1100
GOTO1199
C
1100 CONTINUE
IF(ILOCC.EQ.NUMARG)GOTO1110
IF(IHARG(ILOCCP).EQ.'ON')GOTO1110
IF(IHARG(ILOCCP).EQ.'OFF')GOTO1120
IF(IHARG(ILOCCP).EQ.'AUTO')GOTO1110
IF(IHARG(ILOCCP).EQ.'DEFA')GOTO1110
GOTO1130
C
1110 CONTINUE
IFOUND='YES'
IX1TSW='ON'
IX2TSW='ON'
NX1COO=-1
NX2COO=-1
C
IF(IFEEDB.EQ.'OFF')GOTO1119
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1115)
1115 FORMAT('THE MAJOR TIC MARK COORDINATES (FOR BOTH HORIZONTAL ',
1'FRAME LINES)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1116)
1116 FORMAT('HAVE JUST BEEN SET TO AUTOMATIC')
CALL DPWRST('XXX','BUG ')
1119 CONTINUE
GOTO1900
C
1120 CONTINUE
IFOUND='YES'
IX1TSW='OFF'
IX2TSW='OFF'
C
IF(IFEEDB.EQ.'OFF')GOTO1129
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1125)
1125 FORMAT('THE MAJOR TIC MARK COORDINATES (FOR BOTH HORIZONTAL ',
1'FRAME LINES)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1126)
1126 FORMAT('HAVE JUST BEEN TURNED OFF ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1127)
1127 FORMAT('(THUS NO MAJOR TIC MARKS WILL APPEAR ON THEM')
CALL DPWRST('XXX','BUG ')
1129 CONTINUE
GOTO1900
C
1130 CONTINUE
IX1TSW='ON'
IX2TSW='ON'
C
J=0
DO1131I=ILOCCP,NUMARG
J=J+1
IF(J.GT.MAXTIC)GOTO1800
IF(IARGT(I).NE.'NUMB')GOTO1850
X1COOR(J)=ARG(I)
X2COOR(J)=ARG(I)
1131 CONTINUE
IFOUND='YES'
NX1COO=J
NX2COO=J
C
IF(IFEEDB.EQ.'OFF')GOTO1139
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1135)
1135 FORMAT('THE MAJOR TIC MARK COORDINATES (FOR BOTH HORIZONTAL ',
1'FRAME LINES)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1136)
1136 FORMAT('HAVE JUST BEEN MANUALLY SPECIFIED')
CALL DPWRST('XXX','BUG ')
1139 CONTINUE
GOTO1900
C
1199 CONTINUE
C
C **************************************************************
C ** TREAT THE CASE WHEN MAJOR TIC MARK COORDINATES ON
C ** ONLY THE BOTTOM HORIZONTAL FRAME LINE ARE TO BE DEFINED **
C **************************************************************
C
IF(ICOM.EQ.'X1TI')GOTO1200
GOTO1299
C
C
1200 CONTINUE
IF(ILOCC.EQ.NUMARG)GOTO1210
IF(IHARG(ILOCCP).EQ.'ON')GOTO1210
IF(IHARG(ILOCCP).EQ.'OFF')GOTO1220
IF(IHARG(ILOCCP).EQ.'AUTO')GOTO1210
IF(IHARG(ILOCCP).EQ.'DEFA')GOTO1210
GOTO1230
C
1210 CONTINUE
IFOUND='YES'
IX1TSW='ON'
NX1COO=-1
C
IF(IFEEDB.EQ.'OFF')GOTO1219
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1215)
1215 FORMAT('THE TIC COORDINATES (FOR THE BOTTOM HORIZONTAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1216)
1216 FORMAT('HAVE JUST BEEN SET TO AUTOMATIC')
CALL DPWRST('XXX','BUG ')
1219 CONTINUE
GOTO1900
C
1220 CONTINUE
IFOUND='YES'
IX1TSW='OFF'
C
IF(IFEEDB.EQ.'OFF')GOTO1229
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1225)
1225 FORMAT('THE TIC COORDINATES (FOR THE BOTTOM HORIZONTAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1226)
1226 FORMAT('HAVE JUST BEEN TURNED OFF ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1227)
1227 FORMAT('(THUS NO MAJOR TIC MARKS WILL APPEAR ON IT)')
CALL DPWRST('XXX','BUG ')
1229 CONTINUE
GOTO1900
C
1230 CONTINUE
IX1TSW='ON'
C
J=0
DO1231I=ILOCCP,NUMARG
J=J+1
IF(J.GT.MAXTIC)GOTO1800
IF(IARGT(I).NE.'NUMB')GOTO1850
X1COOR(J)=ARG(I)
1231 CONTINUE
IFOUND='YES'
NX1COO=J
C
IF(IFEEDB.EQ.'OFF')GOTO1239
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1235)
1235 FORMAT('THE TIC COORDINATES (FOR THE BOTTOM HORIZONTAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1236)
1236 FORMAT('HAVE JUST BEEN MANUALLY SPECIFIED')
CALL DPWRST('XXX','BUG ')
1239 CONTINUE
GOTO1900
C
1299 CONTINUE
C
C **************************************************************
C ** TREAT THE CASE WHEN MAJOR TIC MARK COORDINATES ON
C ** ONLY THE TOP HORIZONTAL FRAME LINE ARE TO BE DEFINED **
C **************************************************************
C
IF(ICOM.EQ.'X2TI')GOTO1300
GOTO1399
C
1300 CONTINUE
IF(ILOCC.EQ.NUMARG)GOTO1310
IF(IHARG(ILOCCP).EQ.'ON')GOTO1310
IF(IHARG(ILOCCP).EQ.'OFF')GOTO1320
IF(IHARG(ILOCCP).EQ.'AUTO')GOTO1310
IF(IHARG(ILOCCP).EQ.'DEFA')GOTO1310
GOTO1330
C
1310 CONTINUE
IFOUND='YES'
IX2TSW='ON'
NX2COO=-1
C
IF(IFEEDB.EQ.'OFF')GOTO1319
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1315)
1315 FORMAT('THE TIC COORDINATES (FOR THE TOP HORIZONTAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1316)
1316 FORMAT('HAVE JUST BEEN SET TO AUTOMATIC')
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
GOTO1900
C
1320 CONTINUE
IFOUND='YES'
IX2TSW='OFF'
C
IF(IFEEDB.EQ.'OFF')GOTO1329
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1325)
1325 FORMAT('THE TIC COORDINATES (FOR THE TOP HORIZONTAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1326)
1326 FORMAT('HAVE JUST BEEN TURNED OFF ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1327)
1327 FORMAT('(THUS NO MAJOR TIC MARKS WILL APPEAR ON IT)')
CALL DPWRST('XXX','BUG ')
1329 CONTINUE
GOTO1900
C
1330 CONTINUE
IX2TSW='ON'
C
J=0
DO1331I=ILOCCP,NUMARG
J=J+1
IF(J.GT.MAXTIC)GOTO1800
IF(IARGT(I).NE.'NUMB')GOTO1850
X2COOR(J)=ARG(I)
1331 CONTINUE
IFOUND='YES'
NX2COO=J
C
IF(IFEEDB.EQ.'OFF')GOTO1339
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1335)
1335 FORMAT('THE TIC COORDINATES (FOR THE TOP HORIZONTAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1336)
1336 FORMAT('HAVE JUST BEEN MANUALLY SPECIFIED')
CALL DPWRST('XXX','BUG ')
1339 CONTINUE
GOTO1900
C
1399 CONTINUE
C
C ***************************************************
C ** TREAT THE CASE WHEN MAJOR TIC MARK COORDINATES ON **
C ** BOTH VERTICAL FRAME LINES ARE TO BE DEFINED **
C ***************************************************
C
IF(ICOM.EQ.'YTIC')GOTO1400
GOTO1499
C
1400 CONTINUE
IF(ILOCC.EQ.NUMARG)GOTO1410
IF(IHARG(ILOCCP).EQ.'ON')GOTO1410
IF(IHARG(ILOCCP).EQ.'OFF')GOTO1420
IF(IHARG(ILOCCP).EQ.'AUTO')GOTO1410
IF(IHARG(ILOCCP).EQ.'DEFA')GOTO1410
GOTO1430
C
1410 CONTINUE
IFOUND='YES'
IY1TSW='ON'
IY2TSW='ON'
NY1COO=-1
NY2COO=-1
C
IF(IFEEDB.EQ.'OFF')GOTO1419
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1415)
1415 FORMAT('THE MAJOR TIC MARK COORDINATES (FOR BOTH VERTICAL ',
1'FRAME LINES)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1416)
1416 FORMAT('HAVE JUST BEEN SET TO AUTOMATIC')
CALL DPWRST('XXX','BUG ')
1419 CONTINUE
GOTO1900
C
1420 CONTINUE
IFOUND='YES'
IY1TSW='OFF'
IY2TSW='OFF'
C
IF(IFEEDB.EQ.'OFF')GOTO1429
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1425)
1425 FORMAT('THE MAJOR TIC MARK COORDINATES (FOR BOTH VERTICAL ',
1'FRAME LINES)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1426)
1426 FORMAT('HAVE JUST BEEN TURNED OFF ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1427)
1427 FORMAT('(THUS NO MAJOR TIC MARKS WILL APPEAR ON THEM')
CALL DPWRST('XXX','BUG ')
1429 CONTINUE
GOTO1900
C
1430 CONTINUE
IY1TSW='ON'
IY2TSW='ON'
C
J=0
DO1431I=ILOCCP,NUMARG
J=J+1
IF(J.GT.MAXTIC)GOTO1800
IF(IARGT(I).NE.'NUMB')GOTO1850
Y1COOR(J)=ARG(I)
Y2COOR(J)=ARG(I)
1431 CONTINUE
IFOUND='YES'
NY1COO=J
NY2COO=J
C
IF(IFEEDB.EQ.'OFF')GOTO1439
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1435)
1435 FORMAT('THE MAJOR TIC MARK COORDINATES (FOR BOTH VERTICAL ',
1'FRAME LINES)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1436)
1436 FORMAT('HAVE JUST BEEN MANUALLY SPECIFIED')
CALL DPWRST('XXX','BUG ')
1439 CONTINUE
GOTO1900
C
1499 CONTINUE
C
C **************************************************************
C ** TREAT THE CASE WHEN MAJOR TIC MARK COORDINATES ON
C ** ONLY THE LEFT VERTICAL FRAME LINE ARE TO BE DEFINED **
C **************************************************************
C
IF(ICOM.EQ.'Y1TI')GOTO1500
GOTO1599
C
1500 CONTINUE
IF(ILOCC.EQ.NUMARG)GOTO1510
IF(IHARG(ILOCCP).EQ.'ON')GOTO1510
IF(IHARG(ILOCCP).EQ.'OFF')GOTO1520
IF(IHARG(ILOCCP).EQ.'AUTO')GOTO1510
IF(IHARG(ILOCCP).EQ.'DEFA')GOTO1510
GOTO1530
C
1510 CONTINUE
IFOUND='YES'
IY1TSW='ON'
NY1COO=-1
C
IF(IFEEDB.EQ.'OFF')GOTO1519
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1515)
1515 FORMAT('THE TIC COORDINATES (FOR THE LEFT VERTICAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1516)
1516 FORMAT('HAVE JUST BEEN SET TO AUTOMATIC')
CALL DPWRST('XXX','BUG ')
1519 CONTINUE
GOTO1900
C
1520 CONTINUE
IFOUND='YES'
IY1TSW='OFF'
C
IF(IFEEDB.EQ.'OFF')GOTO1529
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1525)
1525 FORMAT('THE TIC COORDINATES (FOR THE LEFT VERTICAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1526)
1526 FORMAT('HAVE JUST BEEN TURNED OFF ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1527)
1527 FORMAT('(THUS NO MAJOR TIC MARKS WILL APPEAR ON IT)')
CALL DPWRST('XXX','BUG ')
1529 CONTINUE
GOTO1900
C
1530 CONTINUE
IY1TSW='ON'
C
J=0
DO1531I=ILOCCP,NUMARG
J=J+1
IF(J.GT.MAXTIC)GOTO1800
IF(IARGT(I).NE.'NUMB')GOTO1850
Y1COOR(J)=ARG(I)
1531 CONTINUE
IFOUND='YES'
NY1COO=J
C
IF(IFEEDB.EQ.'OFF')GOTO1539
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1535)
1535 FORMAT('THE TIC COORDINATES (FOR THE LEFT VERTICAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1536)
1536 FORMAT('HAVE JUST BEEN MANUALLY SPECIFIED')
CALL DPWRST('XXX','BUG ')
1539 CONTINUE
GOTO1900
C
1599 CONTINUE
C
C **************************************************************
C ** TREAT THE CASE WHEN MAJOR TIC MARK COORDINATES ON
C ** ONLY THE RIGHT VERTCIAL FRAME LINE ARE TO BE DEFINED **
C **************************************************************
C
IF(ICOM.EQ.'Y2TI')GOTO1600
GOTO1699
C
1600 CONTINUE
IF(ILOCC.EQ.NUMARG)GOTO1610
IF(IHARG(ILOCCP).EQ.'ON')GOTO1610
IF(IHARG(ILOCCP).EQ.'OFF')GOTO1620
IF(IHARG(ILOCCP).EQ.'AUTO')GOTO1610
IF(IHARG(ILOCCP).EQ.'DEFA')GOTO1610
GOTO1630
C
1610 CONTINUE
IFOUND='YES'
IY2TSW='ON'
NY2COO=-1
C
IF(IFEEDB.EQ.'OFF')GOTO1619
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1615)
1615 FORMAT('THE TIC COORDINATES (FOR THE RIGHT VERTICAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1616)
1616 FORMAT('HAVE JUST BEEN SET TO AUTOMATIC')
CALL DPWRST('XXX','BUG ')
1619 CONTINUE
GOTO1900
C
1620 CONTINUE
IFOUND='YES'
IY2TSW='OFF'
C
IF(IFEEDB.EQ.'OFF')GOTO1629
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1625)
1625 FORMAT('THE TIC COORDINATES (FOR THE RIGHT VERTICAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1626)
1626 FORMAT('HAVE JUST BEEN TURNED OFF ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1627)
1627 FORMAT('(THUS NO MAJOR TIC MARKS WILL APPEAR ON IT)')
CALL DPWRST('XXX','BUG ')
1629 CONTINUE
GOTO1900
C
1630 CONTINUE
IY2TSW='ON'
C
J=0
DO1631I=ILOCCP,NUMARG
J=J+1
IF(J.GT.MAXTIC)GOTO1800
IF(IARGT(I).NE.'NUMB')GOTO1850
Y1COOR(J)=ARG(I)
1631 CONTINUE
IFOUND='YES'
NY2COO=J
C
IF(IFEEDB.EQ.'OFF')GOTO1639
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1635)
1635 FORMAT('THE TIC COORDINATES (FOR THE RIGHT VERTICAL ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1636)
1636 FORMAT('HAVE JUST BEEN MANUALLY SPECIFIED')
CALL DPWRST('XXX','BUG ')
1639 CONTINUE
GOTO1900
C
1699 CONTINUE
C
C **************************************************
C ** TREAT THE CASE WHEN MAJOR TIC MARK COORDINATES ON **
C ** THE ENTIRE 4-SIDED FRAME ARE TO BE DEFINED **
C **************************************************
C
IF(ICOM.EQ.'XYTI')GOTO1700
IF(ICOM.EQ.'YXTI')GOTO1700
IF(ICOM.EQ.'TICS')GOTO1700
IF(ICOM.EQ.'TIC ')GOTO1700
GOTO1799
C
1700 CONTINUE
IF(ILOCC.EQ.NUMARG)GOTO1710
IF(IHARG(ILOCCP).EQ.'ON')GOTO1710
IF(IHARG(ILOCCP).EQ.'OFF')GOTO1720
IF(IHARG(ILOCCP).EQ.'AUTO')GOTO1710
IF(IHARG(ILOCCP).EQ.'DEFA')GOTO1710
GOTO1730
C
1710 CONTINUE
IFOUND='YES'
IX1TSW='ON'
IX2TSW='ON'
IY1TSW='ON'
IY2TSW='ON'
NX1COO=-1
NX2COO=-1
NY1COO=-1
NY2COO=-1
C
IF(IFEEDB.EQ.'OFF')GOTO1719
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1715)
1715 FORMAT('THE TIC COORDINATES (FOR ALL 4 ',
1'FRAME LINES)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1716)
1716 FORMAT('HAVE JUST BEEN SET TO AUTOMATIC')
CALL DPWRST('XXX','BUG ')
1719 CONTINUE
GOTO1900
C
1720 CONTINUE
IFOUND='YES'
IX1TSW='OFF'
IX2TSW='OFF'
IY1TSW='OFF'
IY2TSW='OFF'
C
IF(IFEEDB.EQ.'OFF')GOTO1729
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1725)
1725 FORMAT('THE TIC COORDINATES (FOR ALL 4 ',
1'FRAME LINES)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1726)
1726 FORMAT('HAVE JUST BEEN TURNED OFF ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1727)
1727 FORMAT('(THUS NO MAJOR TIC MARKS WILL APPEAR ON ANY ',
1'FRAME LINE)')
CALL DPWRST('XXX','BUG ')
1729 CONTINUE
GOTO1900
C
1730 CONTINUE
IX1TSW='ON'
IX2TSW='ON'
IY1TSW='ON'
IY2TSW='ON'
C
J=0
DO1731I=ILOCCP,NUMARG
J=J+1
IF(J.GT.MAXTIC)GOTO1800
IF(IARGT(I).NE.'NUMB')GOTO1850
X1COOR(J)=ARG(I)
X2COOR(J)=ARG(I)
Y1COOR(J)=ARG(I)
Y2COOR(J)=ARG(I)
1731 CONTINUE
IFOUND='YES'
NX1COO=J
NX2COO=J
NY1COO=J
NY2COO=J
C
IF(IFEEDB.EQ.'OFF')GOTO1739
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1735)
1735 FORMAT('THE TIC COORDINATES (FOR ALL 4 FRAMES)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1736)
1736 FORMAT('HAVE JUST BEEN MANUALLY SPECIFIED')
CALL DPWRST('XXX','BUG ')
1739 CONTINUE
GOTO1900
C
1799 CONTINUE
GOTO1900
C
1800 CONTINUE
IERROR='YES'
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1801)
1801 FORMAT('***** ERROR IN DPMJTC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1802)
1802 FORMAT(' THE NUMBER OF SPECIFIED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1803)
1803 FORMAT(' TIC COORDINATES HAS JUST EXCEEDED ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1804)MAXTIC
1804 FORMAT(' THE ALLOWABLE MAXIMUM OF ',I8)
CALL DPWRST('XXX','BUG ')
GOTO1900
C
1850 CONTINUE
IERROR='YES'
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1851)
1851 FORMAT('***** ERROR IN DPMJTC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1852)
1852 FORMAT(' A SPECIFICATION IN THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1853)
1853 FORMAT(' TIC COORDINATES COMMAND HAS JUST ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1854)
1854 FORMAT(' BEEN ENCOUNTERED WHICH IS NON-NUMERIC')
CALL DPWRST('XXX','BUG ')
GOTO1900
C
1900 CONTINUE
RETURN
END
| | |