SUBROUTINE DPTISC(ICOM,IHARG,NUMARG, 1IX1TSC,IX2TSC,IY1TSC,IY2TSC, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC SCALES CONTAINED IN THE C 4 VARIABLES IX1TSC,IX2TSC,IY1TSC,IY2TSC . C SUCH TIC SCALE SWITCHES DEFINE THE SCALES C (LINEAR OR WEIBULL OR NORMAL) C FOR THE TICS ON THE 4 FRAME LINES OF A PLOT. C FOCUS OF SUBROUTINE DPTISC--LOG C DPTIS2--WEIBULL C DPTIS3--NORMAL C C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C OUTPUT ARGUMENTS-- C --IX1TSC = LOWER HORIZONTAL TIC SCALE C --IX2TSC = UPPER HORIZONTAL TIC SCALE C --IY1TSC = LEFT VERTICAL TIC SCALE C --IY2TSC = RIGHT VERTICAL TIC SCALE 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 --MARCH 1981. C UPDATED --MAY 1982. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IX1TSC CHARACTER*4 IX2TSC CHARACTER*4 IY1TSC CHARACTER*4 IY2TSC C CHARACTER*4 IFOUND CHARACTER*4 IERROR C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.'COLO')GOTO1900 IF(NUMARG.GE.1.AND.IHARG(1).EQ.'CORN')GOTO1900 C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL LOG SCALES ARE TO BE LOG ** C ***************************************************** C IF(ICOM.EQ.'XLOG')GOTO1100 GOTO1199 C 1100 CONTINUE IF(NUMARG.LE.0)GOTO1110 IF(IHARG(NUMARG).EQ.'ON')GOTO1110 IF(IHARG(NUMARG).EQ.'OFF')GOTO1120 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1110 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1110 IERROR='YES' GOTO1900 C 1110 CONTINUE IFOUND='YES' IX1TSC='LOG' IX2TSC='LOG' C IF(IFEEDB.EQ.'OFF')GOTO1119 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1115) 1115 FORMAT('THE XLOG SWITCH (FOR BOTH HORIZONTAL LOG SCALES ) ', 1'HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1119 CONTINUE GOTO1900 C 1120 CONTINUE IFOUND='YES' IX1TSC='LINE' IX2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1129 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1125) 1125 FORMAT('THE XLOG SWITCH (FOR BOTH HORIZONTAL LOG SCALES ) ', 1'HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1129 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL FRAME LINE IS TO BE LOG ** C ************************************************************** C IF(ICOM.EQ.'X1LO')GOTO1200 GOTO1299 C 1200 CONTINUE IF(NUMARG.LE.0)GOTO1210 IF(IHARG(NUMARG).EQ.'ON')GOTO1210 IF(IHARG(NUMARG).EQ.'OFF')GOTO1220 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1210 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1210 IERROR='YES' GOTO1900 C 1210 CONTINUE IFOUND='YES' IX1TSC='LOG' C IF(IFEEDB.EQ.'OFF')GOTO1219 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1215) 1215 FORMAT('THE X1LOG SWITCH (FOR THE BOTTOM HORIZONTAL ', 1'FRAME LOG SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1219 CONTINUE GOTO1900 C 1220 CONTINUE IFOUND='YES' IX1TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1229 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1225) 1225 FORMAT('THE X1LOG SWITCH (FOR THE BOTTOM HORIZONTAL ', 1'FRAME LOG SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1229 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL FRAME LINE IS TO BE LOG ** C ************************************************************** C IF(ICOM.EQ.'X2LO')GOTO1300 GOTO1399 C 1300 CONTINUE IF(NUMARG.LE.0)GOTO1310 IF(IHARG(NUMARG).EQ.'ON')GOTO1310 IF(IHARG(NUMARG).EQ.'OFF')GOTO1320 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1310 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1310 IERROR='YES' GOTO1900 C 1310 CONTINUE IFOUND='YES' IX2TSC='LOG' C IF(IFEEDB.EQ.'OFF')GOTO1319 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1315) 1315 FORMAT('THE X2LOG SWITCH (FOR THE TOP HORIZONTAL ', 1'FRAME LOG SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1319 CONTINUE GOTO1900 C 1320 CONTINUE IFOUND='YES' IX2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1329 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1325) 1325 FORMAT('THE X2LOG SWITCH (FOR THE TOP HORIZONTAL ', 1'FRAME LOG SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1329 CONTINUE GOTO1900 C 1399 CONTINUE C C *************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL LOG SCALES ARE TO BE LOG ** C *************************************************** C IF(ICOM.EQ.'YLOG')GOTO1400 GOTO1499 C 1400 CONTINUE IF(NUMARG.LE.0)GOTO1410 IF(IHARG(NUMARG).EQ.'ON')GOTO1410 IF(IHARG(NUMARG).EQ.'OFF')GOTO1420 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1410 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1410 IERROR='YES' GOTO1900 C 1410 CONTINUE IFOUND='YES' IY1TSC='LOG' IY2TSC='LOG' C IF(IFEEDB.EQ.'OFF')GOTO1419 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1415) 1415 FORMAT('THE YLOG SWITCH (FOR BOTH VERTICAL LOG SCALES ) ', 1'HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1419 CONTINUE GOTO1900 C 1420 CONTINUE IFOUND='YES' IY1TSC='LINE' IY2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1429 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1425) 1425 FORMAT('THE YLOG SWITCH (FOR BOTH VERTICAL LOG SCALES ) ', 1'HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1429 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL FRAME LINE IS TO BE LOG ** C ************************************************************** C IF(ICOM.EQ.'Y1LO')GOTO1500 GOTO1599 C 1500 CONTINUE IF(NUMARG.LE.0)GOTO1510 IF(IHARG(NUMARG).EQ.'ON')GOTO1510 IF(IHARG(NUMARG).EQ.'OFF')GOTO1520 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1510 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1510 IERROR='YES' GOTO1900 C 1510 CONTINUE IFOUND='YES' IY1TSC='LOG' C IF(IFEEDB.EQ.'OFF')GOTO1519 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1515) 1515 FORMAT('THE Y1LOG SWITCH (FOR THE LEFT VERTICAL ', 1'FRAME LOG SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1519 CONTINUE GOTO1900 C 1520 CONTINUE IFOUND='YES' IY1TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1529 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1525) 1525 FORMAT('THE Y1LOG SWITCH (FOR THE LEFT VERTICAL ', 1'FRAME LOG SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1529 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTCIAL FRAME LINE IS TO BE LOG ** C ************************************************************** C IF(ICOM.EQ.'Y2LO')GOTO1600 GOTO1699 C 1600 CONTINUE IF(NUMARG.LE.0)GOTO1610 IF(IHARG(NUMARG).EQ.'ON')GOTO1610 IF(IHARG(NUMARG).EQ.'OFF')GOTO1620 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1610 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1610 IERROR='YES' GOTO1900 C 1610 CONTINUE IFOUND='YES' IY2TSC='LOG' C IF(IFEEDB.EQ.'OFF')GOTO1619 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1615) 1615 FORMAT('THE Y2LOG SWITCH (FOR THE RIGHT VERTICAL ', 1'FRAME LOG SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1619 CONTINUE GOTO1900 C 1620 CONTINUE IFOUND='YES' IY2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1629 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1625) 1625 FORMAT('THE Y2LOG SWITCH (FOR THE RIGHT VERTICAL ', 1'FRAME LOG SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1629 CONTINUE GOTO1900 C 1699 CONTINUE C C ************************************************** C ** TREAT THE CASE WHEN ** C ** THE ENTIRE 4-SIDED FRAME IS TO BE LOG ** C ************************************************** C IF(ICOM.EQ.'XYLO')GOTO1700 IF(ICOM.EQ.'YXLO')GOTO1700 IF(ICOM.EQ.'LOG ')GOTO1700 IF(ICOM.EQ.'LOGL')GOTO1700 GOTO1799 C 1700 CONTINUE IF(NUMARG.LE.0)GOTO1710 IF(IHARG(NUMARG).EQ.'ON')GOTO1710 IF(IHARG(NUMARG).EQ.'OFF')GOTO1720 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1710 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1710 IERROR='YES' GOTO1900 C 1710 CONTINUE IFOUND='YES' IX1TSC='LOG' IX2TSC='LOG' IY1TSC='LOG' IY2TSC='LOG' C IF(IFEEDB.EQ.'OFF')GOTO1719 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1715) 1715 FORMAT('THE LOG SWITCH (FOR THE ENTIRE 4-SIDED FRAME) ', 1'HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1719 CONTINUE GOTO1900 C 1720 CONTINUE IFOUND='YES' IX1TSC='LINE' IX2TSC='LINE' IY1TSC='LINE' IY2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1729 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1725) 1725 FORMAT('THE LOG SWITCH (FOR THE ENTIRE 4-SIDED FRAME) ', 1'HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1729 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTIS2(ICOM,IHARG,NUMARG, 1IX1TSC,IX2TSC,IY1TSC,IY2TSC, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC SCALES CONTAINED IN THE C 4 VARIABLES IX1TSC,IX2TSC,IY1TSC,IY2TSC . C SUCH TIC SCALE SWITCHES DEFINE THE SCALES C (LINEAR OR WEIBULL OR NORMAL) C FOR THE TICS ON THE 4 FRAME LINES OF A PLOT. C FOCUS OF SUBROUTINE DPTISC--LOG C DPTIS2--WEIBULL C DPTIS3--NORMAL C C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C OUTPUT ARGUMENTS-- C --IX1TSC = LOWER HORIZONTAL TIC SCALE C --IX2TSC = UPPER HORIZONTAL TIC SCALE C --IY1TSC = LEFT VERTICAL TIC SCALE C --IY2TSC = RIGHT VERTICAL TIC SCALE 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 --MARCH 1981. C UPDATED --MAY 1982. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IX1TSC CHARACTER*4 IX2TSC CHARACTER*4 IY1TSC CHARACTER*4 IY2TSC C CHARACTER*4 IFOUND CHARACTER*4 IERROR C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.'COLO')GOTO1900 IF(NUMARG.GE.1.AND.IHARG(1).EQ.'CORN')GOTO1900 C C ******************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL FRAME LINES ARE TO BE WEIBULL ** C ******************************************************** C IF(ICOM.EQ.'XWEI')GOTO1100 GOTO1199 C 1100 CONTINUE IF(NUMARG.LE.0)GOTO1110 IF(IHARG(NUMARG).EQ.'ON')GOTO1110 IF(IHARG(NUMARG).EQ.'OFF')GOTO1120 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1110 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1110 IERROR='YES' GOTO1900 C 1110 CONTINUE IFOUND='YES' IX1TSC='WEIB' IX2TSC='WEIB' C IF(IFEEDB.EQ.'OFF')GOTO1119 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1115) 1115 FORMAT('THE XWEIB SWITCH (FOR BOTH HORIZ. WEIBULL SCALES)', 1'HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1119 CONTINUE GOTO1900 C 1120 CONTINUE IFOUND='YES' IX1TSC='LINE' IX2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1129 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1125) 1125 FORMAT('THE XWEIB SWITCH (FOR BOTH HORIZ. WEIBULL SCALES)', 1'HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1129 CONTINUE GOTO1900 C 1199 CONTINUE C C ******************************************************** C ** TREAT THE CASE WHEN C ** ONLY THE BOTTOM HORIZONTAL FRAME LINE IS TO BE WEIBU C ******************************************************** C IF(ICOM.EQ.'X1WE')GOTO1200 GOTO1299 C 1200 CONTINUE IF(NUMARG.LE.0)GOTO1210 IF(IHARG(NUMARG).EQ.'ON')GOTO1210 IF(IHARG(NUMARG).EQ.'OFF')GOTO1220 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1210 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1210 IERROR='YES' GOTO1900 C 1210 CONTINUE IFOUND='YES' IX1TSC='WEIB' C IF(IFEEDB.EQ.'OFF')GOTO1219 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1215) 1215 FORMAT('THE X1WEIB SWITCH (FOR THE BOTTOM HORIZONTAL ', 1'FRAME WEIBULL SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1219 CONTINUE GOTO1900 C 1220 CONTINUE IFOUND='YES' IX1TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1229 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1225) 1225 FORMAT('THE X1WEIB SWITCH (FOR THE BOTTOM HORIZONTAL ', 1'FRAME WEIBULL SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1229 CONTINUE GOTO1900 C 1299 CONTINUE C C ******************************************************** C ** TREAT THE CASE WHEN C ** ONLY THE TOP HORIZONTAL FRAME LINE IS TO BE WEIBU C ******************************************************** C IF(ICOM.EQ.'X2WE')GOTO1300 GOTO1399 C 1300 CONTINUE IF(NUMARG.LE.0)GOTO1310 IF(IHARG(NUMARG).EQ.'ON')GOTO1310 IF(IHARG(NUMARG).EQ.'OFF')GOTO1320 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1310 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1310 IERROR='YES' GOTO1900 C 1310 CONTINUE IFOUND='YES' IX2TSC='WEIB' C IF(IFEEDB.EQ.'OFF')GOTO1319 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1315) 1315 FORMAT('THE X2WEIB SWITCH (FOR THE TOP HORIZONTAL ', 1'FRAME WEIBULL SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1319 CONTINUE GOTO1900 C 1320 CONTINUE IFOUND='YES' IX2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1329 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1325) 1325 FORMAT('THE X2WEIB SWITCH (FOR THE TOP HORIZONTAL ', 1'FRAME WEIBULL SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1329 CONTINUE GOTO1900 C 1399 CONTINUE C C ****************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL FRAME LINES ARE TO BE WEIBULL ** C ****************************************************** C IF(ICOM.EQ.'YWEI')GOTO1400 GOTO1499 C 1400 CONTINUE IF(NUMARG.LE.0)GOTO1410 IF(IHARG(NUMARG).EQ.'ON')GOTO1410 IF(IHARG(NUMARG).EQ.'OFF')GOTO1420 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1410 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1410 IERROR='YES' GOTO1900 C 1410 CONTINUE IFOUND='YES' IY1TSC='WEIB' IY2TSC='WEIB' C IF(IFEEDB.EQ.'OFF')GOTO1419 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1415) 1415 FORMAT('THE YWEIB SWITCH (FOR BOTH VERT. WEIBULL SCALES)', 1'HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1419 CONTINUE GOTO1900 C 1420 CONTINUE IFOUND='YES' IY1TSC='LINE' IY2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1429 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1425) 1425 FORMAT('THE YWEIB SWITCH (FOR BOTH VERT. WEIBULL SCALES)', 1'HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1429 CONTINUE GOTO1900 C 1499 CONTINUE C C ******************************************************** C ** TREAT THE CASE WHEN C ** ONLY THE LEFT VERTICAL FRAME LINE IS TO BE WEIBU C ******************************************************** C IF(ICOM.EQ.'Y1WE')GOTO1500 GOTO1599 C 1500 CONTINUE IF(NUMARG.LE.0)GOTO1510 IF(IHARG(NUMARG).EQ.'ON')GOTO1510 IF(IHARG(NUMARG).EQ.'OFF')GOTO1520 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1510 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1510 IERROR='YES' GOTO1900 C 1510 CONTINUE IFOUND='YES' IY1TSC='WEIB' C IF(IFEEDB.EQ.'OFF')GOTO1519 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1515) 1515 FORMAT('THE Y1WEIB SWITCH (FOR THE LEFT VERTICAL ', 1'FRAME WEIBULL SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1519 CONTINUE GOTO1900 C 1520 CONTINUE IFOUND='YES' IY1TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1529 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1525) 1525 FORMAT('THE Y1WEIB SWITCH (FOR THE LEFT VERTICAL ', 1'FRAME WEIBULL SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1529 CONTINUE GOTO1900 C 1599 CONTINUE C C ******************************************************** C ** TREAT THE CASE WHEN C ** ONLY THE RIGHT VERTCIAL FRAME LINE IS TO BE WEIBU C ******************************************************** C IF(ICOM.EQ.'Y2WE')GOTO1600 GOTO1699 C 1600 CONTINUE IF(NUMARG.LE.0)GOTO1610 IF(IHARG(NUMARG).EQ.'ON')GOTO1610 IF(IHARG(NUMARG).EQ.'OFF')GOTO1620 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1610 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1610 IERROR='YES' GOTO1900 C 1610 CONTINUE IFOUND='YES' IY2TSC='WEIB' C IF(IFEEDB.EQ.'OFF')GOTO1619 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1615) 1615 FORMAT('THE Y2WEIB SWITCH (FOR THE RIGHT VERTICAL ', 1'FRAME WEIBULL SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1619 CONTINUE GOTO1900 C 1620 CONTINUE IFOUND='YES' IY2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1629 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1625) 1625 FORMAT('THE Y2WEIB SWITCH (FOR THE RIGHT VERTICAL ', 1'FRAME WEIBULL SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1629 CONTINUE GOTO1900 C 1699 CONTINUE C C ************************************************** C ** TREAT THE CASE WHEN ** C ** THE ENTIRE 4-SIDED FRAME IS TO BE WEIBULL ** C ************************************************** C IF(ICOM.EQ.'XYWE')GOTO1700 IF(ICOM.EQ.'YXWE')GOTO1700 IF(ICOM.EQ.'WEIB')GOTO1700 CCCCC IF(ICOM.EQ.'WEIW'GOTO1700 GOTO1799 C 1700 CONTINUE IF(NUMARG.LE.0)GOTO1710 IF(IHARG(NUMARG).EQ.'ON')GOTO1710 IF(IHARG(NUMARG).EQ.'OFF')GOTO1720 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1710 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1710 IERROR='YES' GOTO1900 C 1710 CONTINUE IFOUND='YES' IX1TSC='WEIB' IX2TSC='WEIB' IY1TSC='WEIB' IY2TSC='WEIB' C IF(IFEEDB.EQ.'OFF')GOTO1719 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1715) 1715 FORMAT('THE WEIBULL SWITCH (FOR THE ENTIRE 4-SIDED FRAME) ', 1'HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1719 CONTINUE GOTO1900 C 1720 CONTINUE IFOUND='YES' IX1TSC='LINE' IX2TSC='LINE' IY1TSC='LINE' IY2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1729 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1725) 1725 FORMAT('THE WEIBULL SWITCH (FOR THE ENTIRE 4-SIDED FRAME) ', 1'HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1729 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTIS3(ICOM,IHARG,NUMARG, 1IX1TSC,IX2TSC,IY1TSC,IY2TSC, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC SCALES CONTAINED IN THE C 4 VARIABLES IX1TSC,IX2TSC,IY1TSC,IY2TSC . C SUCH TIC SCALE SWITCHES DEFINE THE SCALES C (LINEAR OR WEIBULL OR NORMAL) C FOR THE TICS ON THE 4 FRAME LINES OF A PLOT. C FOCUS OF SUBROUTINE DPTISC--LOG C DPTIS2--WEIBULL C DPTIS3--NORMAL C C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C OUTPUT ARGUMENTS-- C --IX1TSC = LOWER HORIZONTAL TIC SCALE C --IX2TSC = UPPER HORIZONTAL TIC SCALE C --IY1TSC = LEFT VERTICAL TIC SCALE C --IY2TSC = RIGHT VERTICAL TIC SCALE 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 --MARCH 1981. C UPDATED --MAY 1982. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IX1TSC CHARACTER*4 IX2TSC CHARACTER*4 IY1TSC CHARACTER*4 IY2TSC C CHARACTER*4 IFOUND CHARACTER*4 IERROR C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.'COLO')GOTO1900 IF(NUMARG.GE.1.AND.IHARG(1).EQ.'CORN')GOTO1900 C C ******************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL FRAME LINES ARE TO BE NORMAL ** C ******************************************************** C IF(ICOM.EQ.'XNOR')GOTO1100 GOTO1199 C 1100 CONTINUE IF(NUMARG.LE.0)GOTO1110 IF(IHARG(NUMARG).EQ.'ON')GOTO1110 IF(IHARG(NUMARG).EQ.'OFF')GOTO1120 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1110 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1110 IERROR='YES' GOTO1900 C 1110 CONTINUE IFOUND='YES' IX1TSC='NORM' IX2TSC='NORM' C IF(IFEEDB.EQ.'OFF')GOTO1119 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1115) 1115 FORMAT('THE XNORM SWITCH (FOR BOTH HORIZ. NORMAL SCALES)', 1'HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1119 CONTINUE GOTO1900 C 1120 CONTINUE IFOUND='YES' IX1TSC='LINE' IX2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1129 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1125) 1125 FORMAT('THE XNORM SWITCH (FOR BOTH HORIZ. NORMAL SCALES)', 1'HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1129 CONTINUE GOTO1900 C 1199 CONTINUE C C ******************************************************** C ** TREAT THE CASE WHEN C ** ONLY THE BOTTOM HORIZONTAL FRAME LINE IS TO BE NOR C ******************************************************** C IF(ICOM.EQ.'X1NO')GOTO1200 GOTO1299 C 1200 CONTINUE IF(NUMARG.LE.0)GOTO1210 IF(IHARG(NUMARG).EQ.'ON')GOTO1210 IF(IHARG(NUMARG).EQ.'OFF')GOTO1220 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1210 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1210 IERROR='YES' GOTO1900 C 1210 CONTINUE IFOUND='YES' IX1TSC='NORM' C IF(IFEEDB.EQ.'OFF')GOTO1219 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1215) 1215 FORMAT('THE X1NORMAL SWITCH (FOR THE BOTTOM HORIZONTAL ', 1'FRAME NORMAL SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1219 CONTINUE GOTO1900 C 1220 CONTINUE IFOUND='YES' IX1TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1229 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1225) 1225 FORMAT('THE X1NORMAL SWITCH (FOR THE BOTTOM HORIZONTAL ', 1'FRAME NORMAL SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1229 CONTINUE GOTO1900 C 1299 CONTINUE C C ******************************************************** C ** TREAT THE CASE WHEN C ** ONLY THE TOP HORIZONTAL FRAME LINE IS TO BE NORM C ******************************************************** C IF(ICOM.EQ.'X2NO')GOTO1300 GOTO1399 C 1300 CONTINUE IF(NUMARG.LE.0)GOTO1310 IF(IHARG(NUMARG).EQ.'ON')GOTO1310 IF(IHARG(NUMARG).EQ.'OFF')GOTO1320 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1310 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1310 IERROR='YES' GOTO1900 C 1310 CONTINUE IFOUND='YES' IX2TSC='NORM' C IF(IFEEDB.EQ.'OFF')GOTO1319 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1315) 1315 FORMAT('THE X2NORMAL SWITCH (FOR THE TOP HORIZONTAL ', 1'FRAME NORMAL SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1319 CONTINUE GOTO1900 C 1320 CONTINUE IFOUND='YES' IX2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1329 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1325) 1325 FORMAT('THE X2NORMAL SWITCH (FOR THE TOP HORIZONTAL ', 1'FRAME NORMAL SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1329 CONTINUE GOTO1900 C 1399 CONTINUE C C ****************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL FRAME LINES ARE TO BE NORMAL ** C ****************************************************** C IF(ICOM.EQ.'YNOR')GOTO1400 GOTO1499 C 1400 CONTINUE IF(NUMARG.LE.0)GOTO1410 IF(IHARG(NUMARG).EQ.'ON')GOTO1410 IF(IHARG(NUMARG).EQ.'OFF')GOTO1420 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1410 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1410 IERROR='YES' GOTO1900 C 1410 CONTINUE IFOUND='YES' IY1TSC='NORM' IY2TSC='NORM' C IF(IFEEDB.EQ.'OFF')GOTO1419 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1415) 1415 FORMAT('THE YNORM SWITCH (FOR BOTH VERT. NORMAL SCALES)', 1'HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1419 CONTINUE GOTO1900 C 1420 CONTINUE IFOUND='YES' IY1TSC='LINE' IY2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1429 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1425) 1425 FORMAT('THE YNORM SWITCH (FOR BOTH VERT. NORMAL SCALES)', 1'HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1429 CONTINUE GOTO1900 C 1499 CONTINUE C C ******************************************************** C ** TREAT THE CASE WHEN C ** ONLY THE LEFT VERTICAL FRAME LINE IS TO BE NORM C ******************************************************** C IF(ICOM.EQ.'Y1NO')GOTO1500 GOTO1599 C 1500 CONTINUE IF(NUMARG.LE.0)GOTO1510 IF(IHARG(NUMARG).EQ.'ON')GOTO1510 IF(IHARG(NUMARG).EQ.'OFF')GOTO1520 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1510 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1510 IERROR='YES' GOTO1900 C 1510 CONTINUE IFOUND='YES' IY1TSC='NORM' C IF(IFEEDB.EQ.'OFF')GOTO1519 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1515) 1515 FORMAT('THE Y1NORMAL SWITCH (FOR THE LEFT VERTICAL ', 1'FRAME NORMAL SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1519 CONTINUE GOTO1900 C 1520 CONTINUE IFOUND='YES' IY1TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1529 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1525) 1525 FORMAT('THE Y1NORMAL SWITCH (FOR THE LEFT VERTICAL ', 1'FRAME NORMAL SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1529 CONTINUE GOTO1900 C 1599 CONTINUE C C ******************************************************** C ** TREAT THE CASE WHEN C ** ONLY THE RIGHT VERTCIAL FRAME LINE IS TO BE NORM C ******************************************************** C IF(ICOM.EQ.'Y2NO')GOTO1600 GOTO1699 C 1600 CONTINUE IF(NUMARG.LE.0)GOTO1610 IF(IHARG(NUMARG).EQ.'ON')GOTO1610 IF(IHARG(NUMARG).EQ.'OFF')GOTO1620 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1610 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1610 IERROR='YES' GOTO1900 C 1610 CONTINUE IFOUND='YES' IY2TSC='NORM' C IF(IFEEDB.EQ.'OFF')GOTO1619 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1615) 1615 FORMAT('THE Y2NORMAL SWITCH (FOR THE RIGHT VERTICAL ', 1'FRAME NORMAL SCALE ONLY) HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1619 CONTINUE GOTO1900 C 1620 CONTINUE IFOUND='YES' IY2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1629 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1625) 1625 FORMAT('THE Y2NORMAL SWITCH (FOR THE RIGHT VERTICAL ', 1'FRAME NORMAL SCALE ONLY) HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1629 CONTINUE GOTO1900 C 1699 CONTINUE C C ************************************************** C ** TREAT THE CASE WHEN ** C ** THE ENTIRE 4-SIDED FRAME IS TO BE NORMAL ** C ************************************************** C IF(ICOM.EQ.'XYNO')GOTO1700 IF(ICOM.EQ.'YXNO')GOTO1700 CCCCC IF(ICOM.EQ.'NORM')GOTO1700 GOTO1799 C 1700 CONTINUE IF(NUMARG.LE.0)GOTO1710 IF(IHARG(NUMARG).EQ.'ON')GOTO1710 IF(IHARG(NUMARG).EQ.'OFF')GOTO1720 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1710 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1710 IERROR='YES' GOTO1900 C 1710 CONTINUE IFOUND='YES' IX1TSC='NORM' IX2TSC='NORM' IY1TSC='NORM' IY2TSC='NORM' C IF(IFEEDB.EQ.'OFF')GOTO1719 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1715) 1715 FORMAT('THE NORMAL SWITCH (FOR THE ENTIRE 4-SIDED FRAME) ', 1'HAS JUST BEEN TURNED ON') CALL DPWRST('XXX','BUG ') 1719 CONTINUE GOTO1900 C 1720 CONTINUE IFOUND='YES' IX1TSC='LINE' IX2TSC='LINE' IY1TSC='LINE' IY2TSC='LINE' C IF(IFEEDB.EQ.'OFF')GOTO1729 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1725) 1725 FORMAT('THE NORMAL SWITCH (FOR THE ENTIRE 4-SIDED FRAME) ', 1'HAS JUST BEEN TURNED OFF') CALL DPWRST('XXX','BUG ') 1729 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTISZ(IHARG,IARGT,ARG,NUMARG, 1PDEFHE,PDEFWI, 1PTITHE,PTITWI,PTITVG,PTITHG, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE SIZE FOR THE TITLE C (THE HORIZONTAL STRING ABOVE THE UPPER HORIZONTAL FRAME). C THE SIZE FOR THE TITLE WILL BE PLACED C IN THE FLOATING POINT VARIABLE PTITHE. C INPUT ARGUMENTS--IHARG (A HOLLERITH VECTOR) C --NUMARG C --PDEFHE C --PDEFWI C OUTPUT ARGUMENTS--PTITHE = TITLE HEIGHT C --PTITWI = TITLE WIDTH C --PTITVG = TITLE VERTICAL GAP C --PTITHG = TITLE HORIZONTAL GAP 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 UPDATED --DECEMBER 1988. DEFAULT WIDTH C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 IHARG CHARACTER*4 IARGT 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(NUMARG.LE.0)GOTO1199 IF(IHARG(1).NE.'SIZE')GOTO1199 IF(NUMARG.EQ.1)GOTO1150 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1160 GOTO1110 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 C 1120 CONTINUE IERROR='YES' WRITE(ICOUT,1121) 1121 FORMAT('***** ERROR IN DPTISZ--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1122) 1122 FORMAT(' ILLEGAL FORM FOR TITLE SIZE ', 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 TO HAVE ') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1126) 1126 FORMAT(' THE TITLE ONE AND ONE HALF TIMES AS BIG ') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1127) 1127 FORMAT(' AS THE DEFAULT SIZE (WHICH IS SIZE 1), ') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1128) 1128 FORMAT(' THEN THE ALLOWABLE FORM IS--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1131) 1131 FORMAT(' TITLE SIZE 1.5 ') CALL DPWRST('XXX','BUG ') GOTO9000 C 1150 CONTINUE PTITHE=PDEFHE PTITWI=PDEFWI GOTO1180 C 1160 CONTINUE PTITHE=ARG(NUMARG) PTITWI=PTITHE*0.5 PTITVG=PTITHE*0.375 PTITHG=PTITHE*0.125 GOTO1180 C 1180 CONTINUE IFOUND='YES' C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181)PTITHE 1181 FORMAT('THE TITLE SIZE HAS JUST BEEN SET TO ', 1E15.7) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1199 C 1199 CONTINUE GOTO9000 C 9000 CONTINUE RETURN END SUBROUTINE DPTIT(IANS,IANSLC,IWIDTH,IHARG,IHARG2,NUMARG, CCCCC SUBROUTINE DPTIT(IANS,IWIDTH,IHARG,IHARG2,NUMARG, CCCCC THE ABOVE LINE WAS CHANGED SEPTEMBER 1993 CCCCC SO AS TO ALLOW FOR LOWER CASE SEPTEMBER 1993 CCCCC SUBROUTINE DPTIT(IANS,IWIDTH,IHARG,NUMARG, CCCCC THE ABOVE LINE WAS AUGMENTED AUGUST 1992 CCCCC THE FOLLOWING LINE WAS AUGMENTED AUGUST 1992 CCCCC1ITITTE,NCTITL,IBUGP2,IFOUND,IERROR) 1ITITTE,NCTITL,ITIAUT,IBUGP2,IFOUND,IERROR) C C PURPOSE--EXTRACT THE STRING TO BE USED AS A TITLE; C SAVE THIS STRING FOR USE ON PRINTER PLOTS; C ALSO, CONVERT THIS STRING INTO PROPER FORM C (ASCII INTEGER REPRESENTATION) FOR USE C WITH TEKTRONIX (OR EQUIVALENT) SOFTWARE. C INPUT ARGUMENTS--IANS (A CHARACTER VECTOR) C --IWIDTH C --IHARG (A CHARACTER VECTOR) C --IHARG2 (A CHARACTER VECTOR) C --NUMARG C OUTPUT ARGUMENTS--ITITTE (A CHARACTER VECTOR C CONTAINING THE STRING FOR THE TITLE). C --NCTITL (AN INTEGER VARIABLE C CONTAINING THE C NUMBER OF CHARACTERS IN THE TITLE). 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--JANUARY 1978. C UPDATED --JUNE 1978. C UPDATED --JUNE 1979. C UPDATED --SEPTEMBER 1980. C UPDATED --MARCH 1981. C UPDATED --DECEMBER 1981. C UPDATED --MAY 1982. C UPDATED --AUGUST 1992. ADD TITLE SWITCH C FOR AUTOMATIC C UPDATED --SEPTEMBER 1993. ALLOW LOWER CASE C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 IANS CCCCC THE FOLLOWING LINE WAS ADDED SEPTEMBER 1993 CCCCC TO ALLOW FOR LOWER CASE SEPTEMBER 1993 CHARACTER*4 IANSLC CHARACTER*4 IHARG CCCCC THE FOLLOWING LINE WAS ADDED AUGUST 1992 CHARACTER*4 IHARG2 C CHARACTER*4 ITITTE C CCCCC THE FOLLOWING LINE WAS ADDED AUGUST 1992 CHARACTER*4 ITIAUT C CHARACTER*4 IBUGP2 CHARACTER*4 IFOUND CHARACTER*4 IERROR C C--------------------------------------------------------------------- C DIMENSION IANS(*) CCCCC THE FOLLOWING LINE WAS ADDED SEPTEMBER 1993 CCCCC TO ALLOW FOR LOWER CASE SEPTEMBER 1993 DIMENSION IANSLC(*) DIMENSION IHARG(*) CCCCC THE FOLLOWING LINE WAS ADDED AUGUST 1992 DIMENSION IHARG2(*) C DIMENSION ITITTE(*) 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(IBUGP2.NE.'ON')GOTO90 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,51) 51 FORMAT('AT THE BEGINNING OF DPTIT--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,53)NCTITL 53 FORMAT('NCTITL = ',I5) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') ILENT=NCTITL WRITE(ICOUT,41)(ITITTE(I),I=1,ILENT) 41 FORMAT('CHARACTER ITITTE(.) --',100A1) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') 90 CONTINUE C C ***************************************** C ** STEP 1-- ** C ** DETERMINE THE COMMAND ** C ** (TITLE) AND ITS LOCATION ** C ** ON THE LINE. ** C ***************************************** C IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'COLO')GOTO9000 IF(NUMARG.EQ.2.AND.IHARG(1).EQ.'COLO')GOTO9000 IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'SIZE')GOTO9000 IF(NUMARG.EQ.2.AND.IHARG(1).EQ.'SIZE')GOTO9000 C DO1000I=1,IWIDTH I2=I IP1=I+1 IP2=I+2 IP3=I+3 IP4=I+4 IP5=I+5 IP6=I+6 IF(IANS(I).EQ.'T'.AND.IANS(IP1).EQ.'I' 1.AND.IANS(IP2).EQ.'T'.AND.IANS(IP3).EQ.'L' 1.AND.IANS(IP4).EQ.'E') 1GOTO100 C 1000 CONTINUE WRITE(ICOUT,1001) 1001 FORMAT('***** ERROR IN DPTIT--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1002) 1002 FORMAT(' NO MATCH FOR COMMAND.') CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO800 C C ********************************************************** C ** STEP 2-- ** C ** DEFINE THE START POSITION (ISTART) FOR THE STRING. ** C ********************************************************** C 100 CONTINUE ISTART=I2+6 GOTO300 C C ******************************************************** C ** STEP 3-- ** C ** DEFINE THE STOP POSITION (ISTOP) FOR THE STRING. ** C ******************************************************** C 300 CONTINUE IFOUND='YES' ISTOP=0 IF(ISTART.GT.IWIDTH)GOTO329 DO320I=ISTART,IWIDTH IREV=IWIDTH-I+ISTART IF(IANS(IREV).NE.' ')GOTO325 320 CONTINUE GOTO329 325 CONTINUE ISTOP=IREV 329 CONTINUE C C ***************************************** C ** STEP 4-- ** C ** COPY OVER THE STRING OF INTEREST. ** C ***************************************** C IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'ON')GOTO359 IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'OFF')GOTO359 CCCCC IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'AUTO')GOTO359 IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'DEFA')GOTO359 IF(NUMARG.EQ.0)GOTO359 C IF(ISTART.GT.ISTOP)GOTO359 IF(ISTOP.EQ.0)GOTO359 J=0 DO350I=ISTART,ISTOP J=J+1 CCCCC THE FOLLOWING LINE WAS CHANGED SEPTEMBER 1993 CCCCC TO ALLOW FOR LOWER CASE SEPTEMBER 1993 CCCCC ITITTE(J)=IANS(I) ITITTE(J)=IANSLC(I) 350 CONTINUE NCTITL=J GOTO800 359 CONTINUE C C ************************************ C ** STEP 5-- ** C ** TREAT THE EMPTY-STRING CASE. ** C ************************************ C NCTITL=0 GOTO800 C C *************************** C ** STEP 6-- ** C ** PRINT OUT A MESSAGE ** C *************************** C 800 CONTINUE ILENT=NCTITL C CCCCC THE FOLLOWING 6 LINES WERE ADDED AUGUST 1992 IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'AUTO'.AND. 1IHARG2(1).EQ.'MATI')THEN ITIAUT='ON' ELSE ITIAUT='OFF' ENDIF IF(IFEEDB.EQ.'OFF')GOTO889 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,811) 811 FORMAT('THE TITLE HAS JUST BEEN SET TO') CALL DPWRST('XXX','BUG ') IF(ILENT.EQ.0)WRITE(ICOUT,999) IF(ILENT.EQ.0)CALL DPWRST('XXX','BUG ') IF(ILENT.GE.1)WRITE(ICOUT,812)(ITITTE(I),I=1,ILENT) 812 FORMAT(10X,120A1) IF(ILENT.GE.1)CALL DPWRST('XXX','BUG ') 889 CONTINUE GOTO9000 C C **************** C ** STEP 90-- ** C ** EXIT ** C **************** C 9000 CONTINUE IF(IBUGP2.NE.'ON')GOTO9090 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9011) 9011 FORMAT('AT THE END OF DPTIT--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9012)NCTITL 9012 FORMAT('NCTITL = ',I5) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') ILENT=NCTITL WRITE(ICOUT,9021)(ITITTE(I),I=1,ILENT) 9021 FORMAT('CHARACTER ITITTE(.) --',100A1) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') 9090 CONTINUE C RETURN END SUBROUTINE DPTIDS(IHARG,ARG,NUMARG,PDEFDS,PTITDS,IFOUND,IERROR) C C PURPOSE--DEFINE THE DISPLACEMENT FOR THE TITLE C (THE HORIZONTAL STRING ABOVE THE UPPER HORIZONTAL FRAME). C THE DISPLACEMENT FOR THE TITLE WILL BE PLACED C IN THE REAL VARIABLE PTITDS. C INPUT ARGUMENTS--IHARG (A HOLLERITH VECTOR) C --ARG (A REAL VECTOR) C --NUMARG C --PDEFDS C OUTPUT ARGUMENTS--PTITDS 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--89/8 C ORIGINAL VERSION--JULY 1989. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 IHARG CHARACTER*4 IFOUND CHARACTER*4 IERROR C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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(NUMARG.LE.0)GOTO1199 IF(IHARG(1).EQ.'DISP')GOTO1110 IF(IHARG(1).EQ.'OFFS')GOTO1110 IF(IHARG(1).EQ.'GAP')GOTO1110 GOTO1199 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(NUMARG.EQ.1)GOTO1150 GOTO1160 C 1150 CONTINUE PTITDS=PDEFDS GOTO1180 C 1160 CONTINUE PTITDS=ARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181)PTITDS 1181 FORMAT('THE TITLE DISPLACEMENT HAS JUST BEEN ', 1'SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1199 C 1199 CONTINUE RETURN END SUBROUTINE DPTITH(IHARG,ARG,NUMARG,PDEFTH,PTITTH,IFOUND,IERROR) C C PURPOSE--DEFINE THE THICKNESS FOR THE TITLE C (THE HORIZONTAL STRING ABOVE THE UPPER HORIZONTAL FRAME). C THE THICKNESS FOR THE TITLE WILL BE PLACED C IN THE REAL VARIABLE PTITTH. C INPUT ARGUMENTS--IHARG (A HOLLERITH VECTOR) C --ARG (A REAL VECTOR) C --NUMARG C --PDEFTH C OUTPUT ARGUMENTS--PTITTH C --IFOUND ('YES' OR 'NO' ) C --IERROR ('YES' OR 'NO' ) C WRITTEN BY--ALAN HECKERT C COMPUTER SERVICES 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--89/2 C ORIGINAL VERSION--JANUARY 1989. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 IHARG CHARACTER*4 IFOUND CHARACTER*4 IERROR C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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(NUMARG.LE.0)GOTO1199 IF(IHARG(1).EQ.'THIC')GOTO1110 GOTO1199 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(NUMARG.EQ.1)GOTO1150 GOTO1160 C 1150 CONTINUE PTITTH=PDEFTH GOTO1180 C 1160 CONTINUE PTITTH=ARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181)PTITTH 1181 FORMAT('THE TITLE THICKNESS HAS JUST BEEN SET TO ', 1E15.7) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1199 C 1199 CONTINUE RETURN END SUBROUTINE DPTL(ICOM,IHARG,NUMARG, 1IX1ZSW,IX2ZSW,IY1ZSW,IY2ZSW, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL SWITCHES CONTAINED IN THE C 4 VARIABLES IX1ZSW,IX2ZSW,IY1ZSW,IY2ZSW C SUCH TIC LABEL SWITCHES TURN ON OR OFF C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C OUTPUT ARGUMENTS-- C --IX1ZSW = LOWER HORIZONTAL TIC LABELS C --IX2ZSW = UPPER HORIZONTAL TIC LABELS C --IY1ZSW = LEFT VERTICAL TIC LABELS C --IY2ZSW = RIGHT VERTICAL TIC LABELS 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 --MARCH 1981. C UPDATED --MAY 1982. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IX1ZSW CHARACTER*4 IX2ZSW CHARACTER*4 IY1ZSW CHARACTER*4 IY2ZSW C CHARACTER*4 IFOUND CHARACTER*4 IERROR C CHARACTER*4 IHOLD C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.LE.0)GOTO1900 C IF(NUMARG.GE.1.AND.IHARG(1).EQ.'NUMB')GOTO1900 C IF(NUMARG.GE.2.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'NUMB')GOTO1900 C FOLLOWING 4 LINES ADDED MAY, 1990. IF(NUMARG.GE.1.AND.IHARG(1).EQ.'OFFS')GOTO1900 C IF(NUMARG.GE.2.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'OFFS')GOTO1900 C IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'COLO')GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'SIZE')GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'HW')GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'FORM')GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'CONT')GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'NUMB')GOTO1900 C IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'COLO')GOTO1900 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'SIZE')GOTO1900 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'HW')GOTO1900 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'FORM')GOTO1900 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'CONT')GOTO1900 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'NUMB')GOTO1900 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 CONTINUE IF(IHARG(NUMARG).EQ.'ON')GOTO1150 IF(IHARG(NUMARG).EQ.'OFF')GOTO1160 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1150 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1150 IF(IHARG(NUMARG).EQ.'LABE')GOTO1160 GOTO1150 C 1150 CONTINUE IHOLD='ON' GOTO1180 C 1160 CONTINUE IHOLD='OFF' GOTO1180 C 1180 CONTINUE IFOUND='YES' IX1ZSW=IHOLD IX2ZSW=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL (FOR BOTH HORIZONTAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)IHOLD 1182 FORMAT('HAS JUST BEEN TURNED ',A4) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 CONTINUE IF(IHARG(NUMARG).EQ.'ON')GOTO1250 IF(IHARG(NUMARG).EQ.'OFF')GOTO1260 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1250 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1250 IF(IHARG(NUMARG).EQ.'LABE')GOTO1260 GOTO1250 C 1250 CONTINUE IHOLD='ON' GOTO1280 C 1260 CONTINUE IHOLD='OFF' GOTO1280 C 1280 CONTINUE IFOUND='YES' IX1ZSW=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL (FOR THE BOTTOM ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)IHOLD 1282 FORMAT('HAS JUST BEEN TURNED ',A4) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 CONTINUE IF(IHARG(NUMARG).EQ.'ON')GOTO1350 IF(IHARG(NUMARG).EQ.'OFF')GOTO1360 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1350 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1350 IF(IHARG(NUMARG).EQ.'LABE')GOTO1360 GOTO1350 C 1350 CONTINUE IHOLD='ON' GOTO1380 C 1360 CONTINUE IHOLD='OFF' GOTO1380 C 1380 CONTINUE IFOUND='YES' IX2ZSW=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL (FOR THE TOP HORIZONTAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)IHOLD 1382 FORMAT('HAS JUST BEEN TURNED ',A4) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 CONTINUE IF(IHARG(NUMARG).EQ.'ON')GOTO1450 IF(IHARG(NUMARG).EQ.'OFF')GOTO1460 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1450 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1450 IF(IHARG(NUMARG).EQ.'LABE')GOTO1460 GOTO1450 C 1450 CONTINUE IHOLD='ON' GOTO1480 C 1460 CONTINUE IHOLD='OFF' GOTO1480 C 1480 CONTINUE IFOUND='YES' IY1ZSW=IHOLD IY2ZSW=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL (FOR BOTH VERTICAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)IHOLD 1482 FORMAT('HAS JUST BEEN TURNED ',A4) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 CONTINUE IF(IHARG(NUMARG).EQ.'ON')GOTO1550 IF(IHARG(NUMARG).EQ.'OFF')GOTO1560 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1550 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1550 IF(IHARG(NUMARG).EQ.'LABE')GOTO1560 GOTO1550 C 1550 CONTINUE IHOLD='ON' GOTO1580 C 1560 CONTINUE IHOLD='OFF' GOTO1580 C 1580 CONTINUE IFOUND='YES' IY1ZSW=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL (FOR THE LEFT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)IHOLD 1582 FORMAT('HAS JUST BEEN TURNED ',A4) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 CONTINUE IF(IHARG(NUMARG).EQ.'ON')GOTO1650 IF(IHARG(NUMARG).EQ.'OFF')GOTO1660 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1650 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1650 IF(IHARG(NUMARG).EQ.'LABE')GOTO1660 GOTO1650 C 1650 CONTINUE IHOLD='ON' GOTO1680 C 1660 CONTINUE IHOLD='OFF' GOTO1680 C 1680 CONTINUE IFOUND='YES' IY2ZSW=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL (FOR THE RIGHT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)IHOLD 1682 FORMAT('HAS JUST BEEN TURNED ',A4) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 CONTINUE IF(IHARG(NUMARG).EQ.'ON')GOTO1750 IF(IHARG(NUMARG).EQ.'OFF')GOTO1760 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1750 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1750 IF(IHARG(NUMARG).EQ.'LABE')GOTO1760 GOTO1750 C 1750 CONTINUE IHOLD='ON' GOTO1780 C 1760 CONTINUE IHOLD='OFF' GOTO1780 C 1780 CONTINUE IFOUND='YES' IX1ZSW=IHOLD IX2ZSW=IHOLD IY1ZSW=IHOLD IY2ZSW=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)IHOLD 1782 FORMAT('HAS JUST BEEN TURNED ',A4) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTLAN(ICOM,IHARG,ARG,NUMARG, 1PDEFAN, 1PX1ZAN,PX2ZAN,PY1ZAN,PY2ZAN, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL ANGLES CONTAINED IN THE C 4 VARIABLES PX1ZAN,PX2ZAN,PY1ZAN,PY2ZAN C SUCH TIC LABEL ANGLES DEFINE THE ANGLES FOR C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --ARG (A REAL VECTOR) C --NUMARG C --PDEFAN C OUTPUT ARGUMENTS-- C --PX1ZAN = LOWER HORIZONTAL TIC LABEL ANGLE C --PX2ZAN = UPPER HORIZONTAL TIC LABEL ANGLE C --PY1ZAN = LEFT VERTICAL TIC LABEL ANGLE C --PY2ZAN = RIGHT VERTICAL TIC LABEL ANGLE C --IFOUND ('YES' OR 'NO' ) C --IERROR ('YES' OR 'NO' ) C WRITTEN BY--ALAN HECKERT C COMPUTER SERVICES 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--89/2 C ORIGINAL VERSION--JANUARY 1989. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C C CHARACTER*4 IFOUND CHARACTER*4 IERROR C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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(NUMARG.LE.1)GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'ANGL')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'ANGL')GOTO1090 GOTO1900 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'ANGL')GOTO1150 GOTO1160 C 1150 CONTINUE PHOLD=PDEFAN GOTO1180 C 1160 CONTINUE PHOLD=ARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' PX1ZAN=PHOLD PX2ZAN=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL ANGLE (FOR BOTH HORIZONTAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)PHOLD 1182 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'ANGL')GOTO1250 GOTO1260 C 1250 CONTINUE PHOLD=PDEFAN GOTO1280 C 1260 CONTINUE PHOLD=ARG(NUMARG) GOTO1280 C 1280 CONTINUE IFOUND='YES' PX1ZAN=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL ANGLE (FOR THE BOTTOM ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)PHOLD 1282 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'ANGL')GOTO1350 GOTO1360 C 1350 CONTINUE PHOLD=PDEFAN GOTO1380 C 1360 CONTINUE PHOLD=ARG(NUMARG) GOTO1380 C 1380 CONTINUE IFOUND='YES' PX2ZAN=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL ANGLE (FOR THE TOP HORIZONTAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)PHOLD 1382 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'ANGL')GOTO1450 GOTO1460 C 1450 CONTINUE PHOLD=PDEFAN GOTO1480 C 1460 CONTINUE PHOLD=ARG(NUMARG) GOTO1480 C 1480 CONTINUE IFOUND='YES' PY1ZAN=PHOLD PY2ZAN=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL ANGLE (FOR BOTH VERTICAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)PHOLD 1482 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'ANGL')GOTO1550 GOTO1560 C 1550 CONTINUE PHOLD=PDEFAN GOTO1580 C 1560 CONTINUE PHOLD=ARG(NUMARG) GOTO1580 C 1580 CONTINUE IFOUND='YES' PY1ZAN=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL ANGLE (FOR THE LEFT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)PHOLD 1582 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'ANGL')GOTO1650 GOTO1660 C 1650 CONTINUE PHOLD=PDEFAN GOTO1680 C 1660 CONTINUE PHOLD=ARG(NUMARG) GOTO1680 C 1680 CONTINUE IFOUND='YES' PY2ZAN=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL ANGLE (FOR THE RIGHT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)PHOLD 1682 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'ANGL')GOTO1750 GOTO1760 C 1750 CONTINUE PHOLD=PDEFAN GOTO1780 C 1760 CONTINUE PHOLD=ARG(NUMARG) GOTO1780 C 1780 CONTINUE IFOUND='YES' PX1ZAN=PHOLD PX2ZAN=PHOLD PY1ZAN=PHOLD PY2ZAN=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL ANGLE (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)PHOLD 1782 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTLCA(ICOM,IHARG,NUMARG, 1IDEFCA, 1IX1ZCA,IX2ZCA,IY1ZCA,IY2ZCA, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL CASES CONTAINED IN THE C 4 VARIABLES IX1ZCA,IX2ZCA,IY1ZCA,IY2ZCA C SUCH TIC LABEL CASES DEFINE THE CASES FOR C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C --IDEFCA C OUTPUT ARGUMENTS-- C --IX1ZCA = LOWER HORIZONTAL TIC LABEL CASE C --IX2ZCA = UPPER HORIZONTAL TIC LABEL CASE C --IY1ZCA = LEFT VERTICAL TIC LABEL CASE C --IY2ZCA = RIGHT VERTICAL TIC LABEL CASE C --IFOUND ('YES' OR 'NO' ) C --IERROR ('YES' OR 'NO' ) C WRITTEN BY--ALAN HECKERT C COMPUTER SERVICES 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--89/2 C ORIGINAL VERSION--JANUARY 1989. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IDEFCA C CHARACTER*4 IX1ZCA CHARACTER*4 IX2ZCA CHARACTER*4 IY1ZCA CHARACTER*4 IY2ZCA C CHARACTER*4 IFOUND CHARACTER*4 IERROR C CHARACTER*4 IHOLD C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.LE.1)GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'CASE')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'CASE')GOTO1090 GOTO1900 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'CASE')GOTO1150 GOTO1160 C 1150 CONTINUE IHOLD=IDEFCA GOTO1180 C 1160 CONTINUE IHOLD=IHARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' IX1ZCA=IHOLD IX2ZCA=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL CASE (FOR BOTH HORIZONTAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)IHOLD 1182 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'CASE')GOTO1250 GOTO1260 C 1250 CONTINUE IHOLD=IDEFCA GOTO1280 C 1260 CONTINUE IHOLD=IHARG(NUMARG) GOTO1280 C 1280 CONTINUE IFOUND='YES' IX1ZCA=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL CASE (FOR THE BOTTOM ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)IHOLD 1282 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'CASE')GOTO1350 GOTO1360 C 1350 CONTINUE IHOLD=IDEFCA GOTO1380 C 1360 CONTINUE IHOLD=IHARG(NUMARG) GOTO1380 C 1380 CONTINUE IFOUND='YES' IX2ZCA=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL CASE (FOR THE TOP HORIZONTAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)IHOLD 1382 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'CASE')GOTO1450 GOTO1460 C 1450 CONTINUE IHOLD=IDEFCA GOTO1480 C 1460 CONTINUE IHOLD=IHARG(NUMARG) GOTO1480 C 1480 CONTINUE IFOUND='YES' IY1ZCA=IHOLD IY2ZCA=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL CASE (FOR BOTH VERTICAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)IHOLD 1482 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'CASE')GOTO1550 GOTO1560 C 1550 CONTINUE IHOLD=IDEFCA GOTO1580 C 1560 CONTINUE IHOLD=IHARG(NUMARG) GOTO1580 C 1580 CONTINUE IFOUND='YES' IY1ZCA=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL CASE (FOR THE LEFT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)IHOLD 1582 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'CASE')GOTO1650 GOTO1660 C 1650 CONTINUE IHOLD=IDEFCA GOTO1680 C 1660 CONTINUE IHOLD=IHARG(NUMARG) GOTO1680 C 1680 CONTINUE IFOUND='YES' IY2ZCA=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL CASE (FOR THE RIGHT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)IHOLD 1682 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'CASE')GOTO1750 GOTO1760 C 1750 CONTINUE IHOLD=IDEFCA GOTO1780 C 1760 CONTINUE IHOLD=IHARG(NUMARG) GOTO1780 C 1780 CONTINUE IFOUND='YES' IX1ZCA=IHOLD IX2ZCA=IHOLD IY1ZCA=IHOLD IY2ZCA=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL CASE (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)IHOLD 1782 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTLCL(ICOM,IHARG,NUMARG, 1IDEFCO, 1IX1ZCO,IX2ZCO,IY1ZCO,IY2ZCO, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL COLORS CONTAINED IN THE C 4 VARIABLES IX1ZCO,IX2ZCO,IY1ZCO,IY2ZCO C SUCH TIC LABEL COLORS DEFINE THE COLORS FOR C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C --IDEFCO C OUTPUT ARGUMENTS-- C --IX1ZCO = LOWER HORIZONTAL TIC LABEL COLOR C --IX2ZCO = UPPER HORIZONTAL TIC LABEL COLOR C --IY1ZCO = LEFT VERTICAL TIC LABEL COLOR C --IY2ZCO = RIGHT VERTICAL TIC LABEL COLOR 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 --MARCH 1981. C UPDATED --MAY 1982. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IDEFCO C CHARACTER*4 IX1ZCO CHARACTER*4 IX2ZCO CHARACTER*4 IY1ZCO CHARACTER*4 IY2ZCO C CHARACTER*4 IFOUND CHARACTER*4 IERROR C CHARACTER*4 IHOLD C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.LE.1)GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'COLO')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'COLO')GOTO1090 GOTO1900 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'COLO')GOTO1150 GOTO1160 C 1150 CONTINUE IHOLD=IDEFCO GOTO1180 C 1160 CONTINUE IHOLD=IHARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' IX1ZCO=IHOLD IX2ZCO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL COLOR (FOR BOTH HORIZONTAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)IHOLD 1182 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'COLO')GOTO1250 GOTO1260 C 1250 CONTINUE IHOLD=IDEFCO GOTO1280 C 1260 CONTINUE IHOLD=IHARG(NUMARG) GOTO1280 C 1280 CONTINUE IFOUND='YES' IX1ZCO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL COLOR (FOR THE BOTTOM ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)IHOLD 1282 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'COLO')GOTO1350 GOTO1360 C 1350 CONTINUE IHOLD=IDEFCO GOTO1380 C 1360 CONTINUE IHOLD=IHARG(NUMARG) GOTO1380 C 1380 CONTINUE IFOUND='YES' IX2ZCO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL COLOR (FOR THE TOP HORIZONTAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)IHOLD 1382 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'COLO')GOTO1450 GOTO1460 C 1450 CONTINUE IHOLD=IDEFCO GOTO1480 C 1460 CONTINUE IHOLD=IHARG(NUMARG) GOTO1480 C 1480 CONTINUE IFOUND='YES' IY1ZCO=IHOLD IY2ZCO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL COLOR (FOR BOTH VERTICAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)IHOLD 1482 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'COLO')GOTO1550 GOTO1560 C 1550 CONTINUE IHOLD=IDEFCO GOTO1580 C 1560 CONTINUE IHOLD=IHARG(NUMARG) GOTO1580 C 1580 CONTINUE IFOUND='YES' IY1ZCO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL COLOR (FOR THE LEFT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)IHOLD 1582 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'COLO')GOTO1650 GOTO1660 C 1650 CONTINUE IHOLD=IDEFCO GOTO1680 C 1660 CONTINUE IHOLD=IHARG(NUMARG) GOTO1680 C 1680 CONTINUE IFOUND='YES' IY2ZCO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL COLOR (FOR THE RIGHT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)IHOLD 1682 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'COLO')GOTO1750 GOTO1760 C 1750 CONTINUE IHOLD=IDEFCO GOTO1780 C 1760 CONTINUE IHOLD=IHARG(NUMARG) GOTO1780 C 1780 CONTINUE IFOUND='YES' IX1ZCO=IHOLD IX2ZCO=IHOLD IY1ZCO=IHOLD IY2ZCO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL COLOR (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)IHOLD 1782 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTLCN(ICOM,IHARG,NUMARG, CCCCC THE FOLLOWING LINE WAS CHANGED SEPTEMBER 1993 CCCCC TO ALLOW FOR LOWER CASE SEPTEMBER 1993 CCCCC1IANS,IWIDTH, 1IANS,IANSLC,IWIDTH, 1IX1ZCN,IX2ZCN,IY1ZCN,IY2ZCN, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL CONTENTS CONTAINED IN THE C 4 VARIABLES IX1ZCN,IX2ZCN,IY1ZCN,IY2ZCN C SUCH TIC LABEL CONTENTS DEFINE THE CONTENTS FOR C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C OUTPUT ARGUMENTS-- C --IX1ZCN = LOWER HORIZONTAL TIC LABEL CONTENTS C --IX2ZCN = UPPER HORIZONTAL TIC LABEL CONTENTS C --IY1ZCN = LEFT VERTICAL TIC LABEL CONTENTS C --IY2ZCN = RIGHT VERTICAL TIC LABEL CONTENTS 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--88/2 C ORIGINAL VERSION--JANUARY 1988. C UPDATED --AUGUST 2001. UPDATE DIMENSIONS FROM 130 C TO 160 C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 IANS CCCCC THE FOLLOWING LINE WAS ADDED SEPTEMBER 1993 CCCCC TO ALLOW FOR LOWER CASE SEPTEMBER 1993 CHARACTER*4 IANSLC C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*160 IHOLCN CHARACTER*160 ICJUNK C CHARACTER*160 IX1ZCN CHARACTER*160 IX2ZCN CHARACTER*160 IY1ZCN CHARACTER*160 IY2ZCN C CHARACTER*4 IFOUND CHARACTER*4 IERROR C C--------------------------------------------------------------------- C DIMENSION IHARG(*) C DIMENSION IANS(*) CCCCC THE FOLLOWING LINE WAS ADDED SEPTEMBER 1993 CCCCC TO ALLOW FOR LOWER CASE SEPTEMBER 1993 DIMENSION IANSLC(*) 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.LE.1)GOTO9000 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'CONT')GOTO1009 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'CONT')GOTO1009 GOTO9000 1009 CONTINUE C C ************************************ C ** EXTRACT THE FULL STRING ** C ************************************ C DO1010I=1,IWIDTH I2=I IP1=I+1 IP2=I+2 IP3=I+3 IP4=I+4 IP5=I+5 IP6=I+6 IP7=I+7 IF(IANS(I).EQ.'C'.AND.IANS(IP1).EQ.'O' 1.AND.IANS(IP2).EQ.'N'.AND.IANS(IP3).EQ.'T' 1.AND.IANS(IP4).EQ.'E'.AND.IANS(IP5).EQ.'N' 1.AND.IANS(IP6).EQ.'T') 1GOTO1019 1010 CONTINUE C WRITE(ICOUT,1011) 1011 FORMAT('***** ERROR IN DPTLCN--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1012) 1012 FORMAT(' NO MATCH FOR COMMAND.') CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO9000 1019 CONTINUE IFOUND='YES' ISTART=I2+8 IF(IANS(IP7).EQ.'S')ISTART=I2+9 C ISTOP=0 IF(ISTART.GT.IWIDTH)GOTO1039 DO1030I=ISTART,IWIDTH IREV=IWIDTH-I+ISTART IF(IANS(IREV).NE.' ')GOTO1035 1030 CONTINUE GOTO1039 1035 CONTINUE ISTOP=IREV 1039 CONTINUE C ICJUNK(1:40)=' ' ICJUNK(41:80)=' ' ICJUNK(81:120)=' ' ICJUNK(121:160)=' ' IF(ISTART.GT.ISTOP)GOTO1049 IF(ISTOP.EQ.0)GOTO1049 J=0 DO1040I=ISTART,ISTOP J=J+1 CCCCC THE FOLLOWING LINE WAS CHANGED SEPTEMBER 1993 CCCCC TO ALLOW FOR LOWER CASE SEPTEMBER 1993 CCCCC ICJUNK(J:J)=IANS(I) ICJUNK(J:J)=IANSLC(I) 1040 CONTINUE NCJUNK=J GOTO1090 1049 CONTINUE NCJUNK=0 GOTO1090 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'CONT')GOTO1150 GOTO1160 C 1150 CONTINUE IHOLCN='DEFAULT' GOTO1180 C 1160 CONTINUE IHOLCN=ICJUNK GOTO1180 C 1180 CONTINUE IFOUND='YES' IX1ZCN=IHOLCN IX2ZCN=IHOLCN C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL CONTENTS') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182) 1182 FORMAT('(FOR BOTH HORIZONTAL FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1183) 1183 FORMAT('HAS JUST BEEN SET TO') CALL DPWRST('XXX','BUG ') IF(NCJUNK.GE.1.AND.NCJUNK.LE.80)THEN WRITE(ICOUT,1184)(IHOLCN(I:I),I=1,NCJUNK) 1184 FORMAT(80A1) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.GE.81.AND.NCJUNK.LE.160)THEN WRITE(ICOUT,1184)(IHOLCN(I:I),I=1,80) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1184)(IHOLCN(I:I),I=81,NCJUNK) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.LE.0)THEN WRITE(ICOUT,1185) 1185 FORMAT('FLOAT WITH THE DATA.') CALL DPWRST('XXX','BUG ') ENDIF 1189 CONTINUE GOTO9000 C 1199 CONTINUE C C ****************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE ** C ** CHANGED ** C ****************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'CONT')GOTO1250 GOTO1260 C 1250 CONTINUE IHOLCN='DEFAULT' GOTO1280 C 1260 CONTINUE IHOLCN=ICJUNK GOTO1280 C 1280 CONTINUE IFOUND='YES' IX1ZCN=IHOLCN C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL CONTENTS') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282) 1282 FORMAT('(FOR THE BOTTOM HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1283) 1283 FORMAT('HAS JUST BEEN SET TO') CALL DPWRST('XXX','BUG ') IF(NCJUNK.GE.1.AND.NCJUNK.LE.80)THEN WRITE(ICOUT,1284)(IHOLCN(I:I),I=1,NCJUNK) 1284 FORMAT(80A1) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.GE.81.AND.NCJUNK.LE.160)THEN WRITE(ICOUT,1284)(IHOLCN(I:I),I=1,80) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1284)(IHOLCN(I:I),I=81,NCJUNK) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.LE.0)THEN WRITE(ICOUT,1285) 1285 FORMAT('FLOAT WITH THE DATA.') CALL DPWRST('XXX','BUG ') ENDIF 1289 CONTINUE GOTO9000 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'CONT')GOTO1350 GOTO1360 C 1350 CONTINUE IHOLCN='DEFAULT' GOTO1380 C 1360 CONTINUE IHOLCN=ICJUNK GOTO1380 C 1380 CONTINUE IFOUND='YES' IX2ZCN=IHOLCN C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL CONTENTS') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382) 1382 FORMAT('(FOR THE TOP HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1383) 1383 FORMAT('HAS JUST BEEN SET TO') CALL DPWRST('XXX','BUG ') IF(NCJUNK.GE.1.AND.NCJUNK.LE.80)THEN WRITE(ICOUT,1384)(IHOLCN(I:I),I=1,NCJUNK) 1384 FORMAT(80A1) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.GE.81.AND.NCJUNK.LE.160)THEN WRITE(ICOUT,1384)(IHOLCN(I:I),I=1,80) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1384)(IHOLCN(I:I),I=81,NCJUNK) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.LE.0)THEN WRITE(ICOUT,1385) 1385 FORMAT('FLOAT WITH THE DATA.') CALL DPWRST('XXX','BUG ') ENDIF 1389 CONTINUE GOTO9000 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'CONT')GOTO1450 GOTO1460 C 1450 CONTINUE IHOLCN='DEFAULT' GOTO1480 C 1460 CONTINUE IHOLCN=ICJUNK GOTO1480 C 1480 CONTINUE IFOUND='YES' IY1ZCN=IHOLCN IY2ZCN=IHOLCN C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL CONTENTS') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482) 1482 FORMAT('(FOR BOTH VERTICAL FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1483) 1483 FORMAT('HAS JUST BEEN SET TO') CALL DPWRST('XXX','BUG ') IF(NCJUNK.GE.1.AND.NCJUNK.LE.80)THEN WRITE(ICOUT,1484)(IHOLCN(I:I),I=1,NCJUNK) 1484 FORMAT(80A1) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.GE.81.AND.NCJUNK.LE.160)THEN WRITE(ICOUT,1484)(IHOLCN(I:I),I=1,80) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1484)(IHOLCN(I:I),I=81,NCJUNK) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.LE.0)THEN WRITE(ICOUT,1485) 1485 FORMAT('FLOAT WITH THE DATA.') CALL DPWRST('XXX','BUG ') ENDIF 1489 CONTINUE GOTO9000 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'CONT')GOTO1550 GOTO1560 C 1550 CONTINUE IHOLCN='DEFAULT' GOTO1580 C 1560 CONTINUE IHOLCN=ICJUNK GOTO1580 C 1580 CONTINUE IFOUND='YES' IY1ZCN=IHOLCN C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL CONTENTS') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582) 1582 FORMAT('(FOR THE LEFT VERTICAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1583) 1583 FORMAT('HAS JUST BEEN SET TO') CALL DPWRST('XXX','BUG ') IF(NCJUNK.GE.1.AND.NCJUNK.LE.80)THEN WRITE(ICOUT,1584)(IHOLCN(I:I),I=1,NCJUNK) 1584 FORMAT(80A1) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.GE.81.AND.NCJUNK.LE.160)THEN WRITE(ICOUT,1584)(IHOLCN(I:I),I=1,80) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1584)(IHOLCN(I:I),I=81,NCJUNK) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.LE.0)THEN WRITE(ICOUT,1585) 1585 FORMAT('FLOAT WITH THE DATA.') CALL DPWRST('XXX','BUG ') ENDIF 1589 CONTINUE GOTO9000 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'CONT')GOTO1650 GOTO1660 C 1650 CONTINUE IHOLCN='DEFAULT' GOTO1680 C 1660 CONTINUE IHOLCN=ICJUNK GOTO1680 C 1680 CONTINUE IFOUND='YES' IY2ZCN=IHOLCN C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL CONTENTS') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682) 1682 FORMAT('(FOR THE RIGHT VERTICAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1683) 1683 FORMAT('HAS JUST BEEN SET TO') CALL DPWRST('XXX','BUG ') IF(NCJUNK.GE.1.AND.NCJUNK.LE.80)THEN WRITE(ICOUT,1684)(IHOLCN(I:I),I=1,NCJUNK) 1684 FORMAT(80A1) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.GE.81.AND.NCJUNK.LE.160)THEN WRITE(ICOUT,1684)(IHOLCN(I:I),I=1,80) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1684)(IHOLCN(I:I),I=81,NCJUNK) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.LE.0)THEN WRITE(ICOUT,1685) 1685 FORMAT('FLOAT WITH THE DATA.') CALL DPWRST('XXX','BUG ') ENDIF 1689 CONTINUE GOTO9000 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'CONT')GOTO1750 GOTO1760 C 1750 CONTINUE IHOLCN='DEFAULT' GOTO1780 C 1760 CONTINUE IHOLCN=ICJUNK GOTO1780 C 1780 CONTINUE IFOUND='YES' IX1ZCN=IHOLCN IX2ZCN=IHOLCN IY1ZCN=IHOLCN IY2ZCN=IHOLCN C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL CONTENTS') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782) 1782 FORMAT('(FOR ALL 4 FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1783) 1783 FORMAT('HAS JUST BEEN SET TO') CALL DPWRST('XXX','BUG ') IF(NCJUNK.GE.1.AND.NCJUNK.LE.80)THEN WRITE(ICOUT,1784)(IHOLCN(I:I),I=1,NCJUNK) 1784 FORMAT(80A1) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.GE.81.AND.NCJUNK.LE.160)THEN WRITE(ICOUT,1784)(IHOLCN(I:I),I=1,80) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1784)(IHOLCN(I:I),I=81,NCJUNK) CALL DPWRST('XXX','BUG ') ELSEIF(NCJUNK.LE.0)THEN WRITE(ICOUT,1785) 1785 FORMAT('FLOAT WITH THE DATA.') CALL DPWRST('XXX','BUG ') ENDIF 1789 CONTINUE GOTO9000 C 1799 CONTINUE C 9000 CONTINUE RETURN END SUBROUTINE DPTLDI(ICOM,IHARG,NUMARG, 1IDEFDI, 1IX1ZDI,IX2ZDI,IY1ZDI,IY2ZDI, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL DIRECTIONS CONTAINED IN THE C 4 VARIABLES IX1ZDI,IX2ZDI,IY1ZDI,IY2ZDI C SUCH TIC LABEL DIRECTIONS DEFINE THE DIRECTIONS FOR C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C --IDEFDI C OUTPUT ARGUMENTS-- C --IX1ZDI = LOWER HORIZONTAL TIC LABEL DIRECTION C --IX2ZDI = UPPER HORIZONTAL TIC LABEL DIRECTION C --IY1ZDI = LEFT VERTICAL TIC LABEL DIRECTION C --IY2ZDI = RIGHT VERTICAL TIC LABEL DIRECTION C --IFOUND ('YES' OR 'NO' ) C --IERROR ('YES' OR 'NO' ) C WRITTEN BY--ALAN HECKERT C COMPUTER SERVICES 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--89/2 C ORIGINAL VERSION--JANUARY 1989. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IDEFDI C CHARACTER*4 IX1ZDI CHARACTER*4 IX2ZDI CHARACTER*4 IY1ZDI CHARACTER*4 IY2ZDI C CHARACTER*4 IFOUND CHARACTER*4 IERROR C CHARACTER*4 IHOLD C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.LE.1)GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'DIRE')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'DIRE')GOTO1090 GOTO1900 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'DIRE')GOTO1150 GOTO1160 C 1150 CONTINUE IHOLD=IDEFDI GOTO1180 C 1160 CONTINUE IHOLD=IHARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' IX1ZDI=IHOLD IX2ZDI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL DIRECTION (FOR BOTH HORIZONTAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)IHOLD 1182 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'DIRE')GOTO1250 GOTO1260 C 1250 CONTINUE IHOLD=IDEFDI GOTO1280 C 1260 CONTINUE IHOLD=IHARG(NUMARG) GOTO1280 C 1280 CONTINUE IFOUND='YES' IX1ZDI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL DIRECTION (FOR THE BOTTOM ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)IHOLD 1282 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'DIRE')GOTO1350 GOTO1360 C 1350 CONTINUE IHOLD=IDEFDI GOTO1380 C 1360 CONTINUE IHOLD=IHARG(NUMARG) GOTO1380 C 1380 CONTINUE IFOUND='YES' IX2ZDI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL DIRECTION (FOR THE TOP HORIZONTAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)IHOLD 1382 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'DIRE')GOTO1450 GOTO1460 C 1450 CONTINUE IHOLD=IDEFDI GOTO1480 C 1460 CONTINUE IHOLD=IHARG(NUMARG) GOTO1480 C 1480 CONTINUE IFOUND='YES' IY1ZDI=IHOLD IY2ZDI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL DIRECTION (FOR BOTH VERTICAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)IHOLD 1482 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'DIRE')GOTO1550 GOTO1560 C 1550 CONTINUE IHOLD=IDEFDI GOTO1580 C 1560 CONTINUE IHOLD=IHARG(NUMARG) GOTO1580 C 1580 CONTINUE IFOUND='YES' IY1ZDI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL DIRECTION (FOR THE LEFT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)IHOLD 1582 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'DIRE')GOTO1650 GOTO1660 C 1650 CONTINUE IHOLD=IDEFDI GOTO1680 C 1660 CONTINUE IHOLD=IHARG(NUMARG) GOTO1680 C 1680 CONTINUE IFOUND='YES' IY2ZDI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL DIRECTION (FOR THE RIGHT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)IHOLD 1682 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'DIRE')GOTO1750 GOTO1760 C 1750 CONTINUE IHOLD=IDEFDI GOTO1780 C 1760 CONTINUE IHOLD=IHARG(NUMARG) GOTO1780 C 1780 CONTINUE IFOUND='YES' IX1ZDI=IHOLD IX2ZDI=IHOLD IY1ZDI=IHOLD IY2ZDI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL DIRECTION (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)IHOLD 1782 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTLDS(ICOM,IHARG,IARGT,ARG,NUMARG, 1PDEFHG,PDEFVG, 1PX1ZDS,PX2ZDS,PY1ZDS,PY2ZDS, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE TIC MARK LABEL DISPLACEMENT SWITCHES C FOR ANY OF THE 4 FRAME LINES. C SUCH TIC MARK SWITCHES DEFINE THE DISPLACEMENT C OF THE TIC MARK LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --IARGT (A HOLLERITH VECTOR) C --ARG (A FLOATING POINT VECTOR) C --NUMARG C --PDEFHG C --PDEFVG C OUTPUT ARGUMENTS-- C --PX1ZDS, C --PX2ZDS, C --PY1ZDS, C --PY2ZDS, 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--91/9 C ORIGINAL VERSION--AUGUST 1991. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG CHARACTER*4 IARGT 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 IF(NUMARG.LE.1)GOTO1900 IF(NUMARG.LE.1)GOTO9000 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'DISP')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'DISP')GOTO1090 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'OFFS')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'OFFS')GOTO1090 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'GAP')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'GAP')GOTO1090 CCCCC GOTO1900 GOTO9000 1090 CONTINUE HOLD1=(-999.9) HOLD2=(-999.9) C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'DISP')GOTO1150 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1160 IERROR='YES' GOTO9000 C 1150 CONTINUE HOLD1=PDEFHG GOTO1180 C 1160 CONTINUE HOLD1=ARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' PX1ZDS=HOLD1 PX2ZDS=HOLD1 C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL DISPLACEMENT') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182) 1182 FORMAT('(FOR BOTH HORIZONTAL FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1183)HOLD1 1183 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'DISP')GOTO1250 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1260 IERROR='YES' GOTO9000 C 1250 CONTINUE HOLD1=PDEFHG GOTO1280 C 1260 CONTINUE HOLD1=ARG(NUMARG) GOTO1280 C 1280 CONTINUE IFOUND='YES' PX1ZDS=HOLD1 C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282) 1282 FORMAT('(FOR THE BOTTOM HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1183)HOLD1 CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'DISP')GOTO1350 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1360 IERROR='YES' GOTO9000 C 1350 CONTINUE HOLD1=PDEFHG GOTO1380 C 1360 CONTINUE HOLD1=ARG(NUMARG) GOTO1380 C 1380 CONTINUE IFOUND='YES' PX2ZDS=HOLD1 C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382) 1382 FORMAT('(FOR THE TOP HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1183)HOLD1 CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'DISP')GOTO1450 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1460 IERROR='YES' GOTO9000 C 1450 CONTINUE HOLD1=PDEFVG GOTO1480 C 1460 CONTINUE HOLD1=ARG(NUMARG) GOTO1480 C 1480 CONTINUE IFOUND='YES' PY1ZDS=HOLD1 PY2ZDS=HOLD1 C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482) 1482 FORMAT('(FOR BOTH VERTICAL FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1183)HOLD1 CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'DISP')GOTO1550 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1560 IERROR='YES' GOTO9000 C 1550 CONTINUE HOLD1=PDEFVG GOTO1580 C 1560 CONTINUE HOLD1=ARG(NUMARG) GOTO1580 C 1580 CONTINUE IFOUND='YES' PY1ZDS=HOLD1 C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582) 1582 FORMAT('(FOR THE LEFT VERTICAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1183)HOLD1 CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'DISP')GOTO1650 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1660 IERROR='YES' GOTO9000 C 1650 CONTINUE HOLD1=PDEFVG GOTO1680 C 1660 CONTINUE HOLD1=ARG(NUMARG) GOTO1680 C 1680 CONTINUE IFOUND='YES' PY2ZDS=HOLD1 C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682) 1682 FORMAT('(FOR THE RIGHT VERTICAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1183)HOLD1 CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'DISP')GOTO1750 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1760 IERROR='YES' GOTO9000 C 1750 CONTINUE HOLD1=PDEFHG HOLD2=PDEFVG GOTO1780 C 1760 CONTINUE HOLD1=ARG(NUMARG) HOLD2=ARG(NUMARG) GOTO1780 C 1780 CONTINUE IFOUND='YES' PX1ZDS=HOLD1 PX2ZDS=HOLD1 PY1ZDS=HOLD2 PY2ZDS=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782) 1782 FORMAT('(FOR BOTH HORIZONTAL FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1183)HOLD1 CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1784) 1784 FORMAT('(FOR BOTH VERTICAL FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1183)HOLD2 CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE C GOTO9000 C 9000 CONTINUE RETURN END SUBROUTINE DPTLFI(ICOM,IHARG,NUMARG, 1IDEFFI, 1IX1ZFI,IX2ZFI,IY1ZFI,IY2ZFI, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL FILLS CONTAINED IN THE C 4 VARIABLES IX1ZFI,IX2ZFI,IY1ZFI,IY2ZFI C SUCH TIC LABEL FILLS DEFINE THE FILLS FOR C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C --IDEFFI C OUTPUT ARGUMENTS-- C --IX1ZFI = LOWER HORIZONTAL TIC LABEL FILL C --IX2ZFI = UPPER HORIZONTAL TIC LABEL FILL C --IY1ZFI = LEFT VERTICAL TIC LABEL FILL C --IY2ZFI = RIGHT VERTICAL TIC LABEL FILL C --IFOUND ('YES' OR 'NO' ) C --IERROR ('YES' OR 'NO' ) C WRITTEN BY--ALAN HECKERT C COMPUTER SERVICES 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--89/2 C ORIGINAL VERSION--JANUARY 1989. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IDEFFI C CHARACTER*4 IX1ZFI CHARACTER*4 IX2ZFI CHARACTER*4 IY1ZFI CHARACTER*4 IY2ZFI C CHARACTER*4 IFOUND CHARACTER*4 IERROR C CHARACTER*4 IHOLD C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.LE.1)GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'FILL')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'FILL')GOTO1090 GOTO1900 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'FILL')GOTO1150 GOTO1160 C 1150 CONTINUE IHOLD=IDEFFI GOTO1180 C 1160 CONTINUE IHOLD=IHARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' IX1ZFI=IHOLD IX2ZFI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL FILL (FOR BOTH HORIZONTAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)IHOLD 1182 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'FILL')GOTO1250 GOTO1260 C 1250 CONTINUE IHOLD=IDEFFI GOTO1280 C 1260 CONTINUE IHOLD=IHARG(NUMARG) GOTO1280 C 1280 CONTINUE IFOUND='YES' IX1ZFI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL FILL (FOR THE BOTTOM ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)IHOLD 1282 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'FILL')GOTO1350 GOTO1360 C 1350 CONTINUE IHOLD=IDEFFI GOTO1380 C 1360 CONTINUE IHOLD=IHARG(NUMARG) GOTO1380 C 1380 CONTINUE IFOUND='YES' IX2ZFI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL FILL (FOR THE TOP HORIZONTAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)IHOLD 1382 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'FILL')GOTO1450 GOTO1460 C 1450 CONTINUE IHOLD=IDEFFI GOTO1480 C 1460 CONTINUE IHOLD=IHARG(NUMARG) GOTO1480 C 1480 CONTINUE IFOUND='YES' IY1ZFI=IHOLD IY2ZFI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL FILL (FOR BOTH VERTICAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)IHOLD 1482 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'FILL')GOTO1550 GOTO1560 C 1550 CONTINUE IHOLD=IDEFFI GOTO1580 C 1560 CONTINUE IHOLD=IHARG(NUMARG) GOTO1580 C 1580 CONTINUE IFOUND='YES' IY1ZFI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL FILL (FOR THE LEFT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)IHOLD 1582 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'FILL')GOTO1650 GOTO1660 C 1650 CONTINUE IHOLD=IDEFFI GOTO1680 C 1660 CONTINUE IHOLD=IHARG(NUMARG) GOTO1680 C 1680 CONTINUE IFOUND='YES' IY2ZFI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL FILL (FOR THE RIGHT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)IHOLD 1682 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'FILL')GOTO1750 GOTO1760 C 1750 CONTINUE IHOLD=IDEFFI GOTO1780 C 1760 CONTINUE IHOLD=IHARG(NUMARG) GOTO1780 C 1780 CONTINUE IFOUND='YES' IX1ZFI=IHOLD IX2ZFI=IHOLD IY1ZFI=IHOLD IY2ZFI=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL FILL (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)IHOLD 1782 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTLFM(ICOM,IHARG,NUMARG, 1IDETLF, 1IX1ZFM,IX2ZFM,IY1ZFM,IY2ZFM, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL FORMATS CONTAINED IN THE C 4 VARIABLES IX1ZFM,IX2ZFM,IY1ZFM,IY2ZFM C SUCH TIC LABEL FORMATS DEFINE THE FORMATS FOR C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C --IDETLF C OUTPUT ARGUMENTS-- C --IX1ZFM = LOWER HORIZONTAL TIC LABEL FORMAT C --IX2ZFM = UPPER HORIZONTAL TIC LABEL FORMAT C --IY1ZFM = LEFT VERTICAL TIC LABEL FORMAT C --IY2ZFM = RIGHT VERTICAL TIC LABEL FORMAT 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--88/2 C ORIGINAL VERSION--FEBRUARY 1988. C UPDATED --JANUARY 2004. ADD SUPPORT FOR: C ROW LABEL C GROUP LABEL C VARIABLE C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IDETLF C CHARACTER*4 IX1ZFM CHARACTER*4 IX2ZFM CHARACTER*4 IY1ZFM CHARACTER*4 IY2ZFM C CHARACTER*4 IFOUND CHARACTER*4 IERROR C CHARACTER*4 IHOLD C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.LE.1)GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'FORM')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'FORM')GOTO1090 GOTO1900 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'FORM')GOTO1150 IF(IHARG(NUMARG).EQ.'ROWL')GOTO1170 IF(IHARG(NUMARG-1).EQ.'ROW '.AND.IHARG(NUMARG).EQ.'LABE')GOTO1170 IF(IHARG(NUMARG-1).EQ.'GROU'.AND.IHARG(NUMARG).EQ.'LABE')GOTO1172 IF(IHARG(NUMARG).EQ.'VARI')GOTO1174 GOTO1160 C 1150 CONTINUE IHOLD=IDETLF GOTO1180 C 1160 CONTINUE IHOLD=IHARG(NUMARG) IF(IHOLD.EQ.'FIXE')IHOLD='REAL' GOTO1180 C 1170 CONTINUE IHOLD='ROWL' GOTO1180 C 1172 CONTINUE IHOLD='GLAB' GOTO1180 C 1174 CONTINUE IHOLD='VARI' GOTO1180 C 1180 CONTINUE IFOUND='YES' IX1ZFM=IHOLD IX2ZFM=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL FORMAT (FOR BOTH HORIZONTAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)IHOLD 1182 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'FORM')GOTO1250 IF(IHARG(NUMARG).EQ.'ROWL')GOTO1270 IF(IHARG(NUMARG-1).EQ.'ROW '.AND.IHARG(NUMARG).EQ.'LABE')GOTO1270 IF(IHARG(NUMARG-1).EQ.'GROU'.AND.IHARG(NUMARG).EQ.'LABE')GOTO1272 IF(IHARG(NUMARG).EQ.'VARI')GOTO1274 GOTO1260 C 1250 CONTINUE IHOLD=IDETLF GOTO1280 C 1260 CONTINUE IHOLD=IHARG(NUMARG) IF(IHOLD.EQ.'FIXE')IHOLD='REAL' GOTO1280 C 1270 CONTINUE IHOLD='ROWL' GOTO1280 C 1272 CONTINUE IHOLD='GLAB' GOTO1280 C 1274 CONTINUE IHOLD='VARI' GOTO1280 C 1280 CONTINUE IFOUND='YES' IX1ZFM=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL FORMAT (FOR THE BOTTOM ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)IHOLD 1282 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'FORM')GOTO1350 IF(IHARG(NUMARG).EQ.'ROWL')GOTO1370 IF(IHARG(NUMARG-1).EQ.'ROW '.AND.IHARG(NUMARG).EQ.'LABE')GOTO1370 IF(IHARG(NUMARG-1).EQ.'GROU'.AND.IHARG(NUMARG).EQ.'LABE')GOTO1372 IF(IHARG(NUMARG).EQ.'VARI')GOTO1374 GOTO1360 C 1350 CONTINUE IHOLD=IDETLF GOTO1380 C 1360 CONTINUE IHOLD=IHARG(NUMARG) IF(IHOLD.EQ.'FIXE')IHOLD='REAL' GOTO1380 C 1370 CONTINUE IHOLD='ROWL' GOTO1380 C 1372 CONTINUE IHOLD='GLAB' GOTO1380 C 1374 CONTINUE IHOLD='VARI' GOTO1380 C 1380 CONTINUE IFOUND='YES' IX2ZFM=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL FORMAT (FOR THE TOP HORIZONTAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)IHOLD 1382 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'FORM')GOTO1450 IF(IHARG(NUMARG).EQ.'ROWL')GOTO1470 IF(IHARG(NUMARG-1).EQ.'ROW '.AND.IHARG(NUMARG).EQ.'LABE')GOTO1470 IF(IHARG(NUMARG-1).EQ.'GROU'.AND.IHARG(NUMARG).EQ.'LABE')GOTO1472 IF(IHARG(NUMARG).EQ.'VARI')GOTO1474 GOTO1460 C 1450 CONTINUE IHOLD=IDETLF GOTO1480 C 1460 CONTINUE IHOLD=IHARG(NUMARG) IF(IHOLD.EQ.'FIXE')IHOLD='REAL' GOTO1480 C 1470 CONTINUE IHOLD='ROWL' GOTO1480 C 1472 CONTINUE IHOLD='GLAB' GOTO1480 C 1474 CONTINUE IHOLD='VARI' GOTO1480 C 1480 CONTINUE IFOUND='YES' IY1ZFM=IHOLD IY2ZFM=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL FORMAT (FOR BOTH VERTICAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)IHOLD 1482 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'FORM')GOTO1550 IF(IHARG(NUMARG).EQ.'ROWL')GOTO1570 IF(IHARG(NUMARG-1).EQ.'ROW '.AND.IHARG(NUMARG).EQ.'LABE')GOTO1570 IF(IHARG(NUMARG-1).EQ.'GROU'.AND.IHARG(NUMARG).EQ.'LABE')GOTO1572 IF(IHARG(NUMARG).EQ.'VARI')GOTO1574 GOTO1560 C 1550 CONTINUE IHOLD=IDETLF GOTO1580 C 1560 CONTINUE IHOLD=IHARG(NUMARG) IF(IHOLD.EQ.'FIXE')IHOLD='REAL' GOTO1580 C 1570 CONTINUE IHOLD='ROWL' GOTO1580 C 1572 CONTINUE IHOLD='GLAB' GOTO1580 C 1574 CONTINUE IHOLD='VARI' GOTO1580 C 1580 CONTINUE IFOUND='YES' IY1ZFM=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL FORMAT (FOR THE LEFT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)IHOLD 1582 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'FORM')GOTO1650 IF(IHARG(NUMARG).EQ.'ROWL')GOTO1670 IF(IHARG(NUMARG-1).EQ.'ROW '.AND.IHARG(NUMARG).EQ.'LABE')GOTO1670 IF(IHARG(NUMARG-1).EQ.'GROU'.AND.IHARG(NUMARG).EQ.'LABE')GOTO1672 IF(IHARG(NUMARG).EQ.'VARI')GOTO1674 GOTO1660 C 1650 CONTINUE IHOLD=IDETLF GOTO1680 C 1660 CONTINUE IHOLD=IHARG(NUMARG) IF(IHOLD.EQ.'FIXE')IHOLD='REAL' GOTO1680 C 1670 CONTINUE IHOLD='ROWL' GOTO1680 C 1672 CONTINUE IHOLD='GLAB' GOTO1680 C 1674 CONTINUE IHOLD='VARI' GOTO1680 C 1680 CONTINUE IFOUND='YES' IY2ZFM=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL FORMAT (FOR THE RIGHT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)IHOLD 1682 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'FORM')GOTO1750 IF(IHARG(NUMARG).EQ.'ROWL')GOTO1770 IF(IHARG(NUMARG-1).EQ.'ROW '.AND.IHARG(NUMARG).EQ.'LABE')GOTO1770 IF(IHARG(NUMARG-1).EQ.'GROU'.AND.IHARG(NUMARG).EQ.'LABE')GOTO1772 IF(IHARG(NUMARG).EQ.'VARI')GOTO1774 GOTO1760 C 1750 CONTINUE IHOLD=IDETLF GOTO1780 C 1760 CONTINUE IHOLD=IHARG(NUMARG) IF(IHOLD.EQ.'FIXE')IHOLD='REAL' GOTO1780 C 1770 CONTINUE IHOLD='ROWL' GOTO1180 C 1772 CONTINUE IHOLD='GLAB' GOTO1180 C 1774 CONTINUE IHOLD='VARI' GOTO1180 C 1780 CONTINUE IFOUND='YES' IX1ZFM=IHOLD IX2ZFM=IHOLD IY1ZFM=IHOLD IY2ZFM=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL FORMAT (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)IHOLD 1782 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTLFO(ICOM,IHARG,NUMARG, 1IDEFFO, 1IX1ZFO,IX2ZFO,IY1ZFO,IY2ZFO, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL FONTS CONTAINED IN THE C 4 VARIABLES IX1ZFO,IX2ZFO,IY1ZFO,IY2ZFO C SUCH TIC LABEL FONTS DEFINE THE FONTS FOR C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C --IDEFFO C OUTPUT ARGUMENTS-- C --IX1ZFO = LOWER HORIZONTAL TIC LABEL FONT C --IX2ZFO = UPPER HORIZONTAL TIC LABEL FONT C --IY1ZFO = LEFT VERTICAL TIC LABEL FONT C --IY2ZFO = RIGHT VERTICAL TIC LABEL FONT C --IFOUND ('YES' OR 'NO' ) C --IERROR ('YES' OR 'NO' ) C WRITTEN BY--ALAN HECKERT 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--89/2 C ORIGINAL VERSION--JANUARY 1989. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IDEFFO C CHARACTER*4 IX1ZFO CHARACTER*4 IX2ZFO CHARACTER*4 IY1ZFO CHARACTER*4 IY2ZFO C CHARACTER*4 IFOUND CHARACTER*4 IERROR C CHARACTER*4 IHOLD C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.LE.1)GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'FONT')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'FONT')GOTO1090 GOTO1900 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'FONT')GOTO1150 GOTO1160 C 1150 CONTINUE IHOLD=IDEFFO GOTO1180 C 1160 CONTINUE IHOLD=IHARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' IX1ZFO=IHOLD IX2ZFO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL FONT (FOR BOTH HORIZONTAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)IHOLD 1182 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'FONT')GOTO1250 GOTO1260 C 1250 CONTINUE IHOLD=IDEFFO GOTO1280 C 1260 CONTINUE IHOLD=IHARG(NUMARG) GOTO1280 C 1280 CONTINUE IFOUND='YES' IX1ZFO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL FONT (FOR THE BOTTOM ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)IHOLD 1282 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'FONT')GOTO1350 GOTO1360 C 1350 CONTINUE IHOLD=IDEFFO GOTO1380 C 1360 CONTINUE IHOLD=IHARG(NUMARG) GOTO1380 C 1380 CONTINUE IFOUND='YES' IX2ZFO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL FONT (FOR THE TOP HORIZONTAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)IHOLD 1382 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'FONT')GOTO1450 GOTO1460 C 1450 CONTINUE IHOLD=IDEFFO GOTO1480 C 1460 CONTINUE IHOLD=IHARG(NUMARG) GOTO1480 C 1480 CONTINUE IFOUND='YES' IY1ZFO=IHOLD IY2ZFO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL FONT (FOR BOTH VERTICAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)IHOLD 1482 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'FONT')GOTO1550 GOTO1560 C 1550 CONTINUE IHOLD=IDEFFO GOTO1580 C 1560 CONTINUE IHOLD=IHARG(NUMARG) GOTO1580 C 1580 CONTINUE IFOUND='YES' IY1ZFO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL FONT (FOR THE LEFT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)IHOLD 1582 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'FONT')GOTO1650 GOTO1660 C 1650 CONTINUE IHOLD=IDEFFO GOTO1680 C 1660 CONTINUE IHOLD=IHARG(NUMARG) GOTO1680 C 1680 CONTINUE IFOUND='YES' IY2ZFO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL FONT (FOR THE RIGHT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)IHOLD 1682 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'FONT')GOTO1750 GOTO1760 C 1750 CONTINUE IHOLD=IDEFFO GOTO1780 C 1760 CONTINUE IHOLD=IHARG(NUMARG) GOTO1780 C 1780 CONTINUE IFOUND='YES' IX1ZFO=IHOLD IX2ZFO=IHOLD IY1ZFO=IHOLD IY2ZFO=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL FONT (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)IHOLD 1782 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTLHW(ICOM,IHARG,IARGT,ARG,NUMARG, 1PDEFHE,PDEFWI, 1PX1ZHE,PX1ZWI,PX1ZVG,PX1ZHG, 1PX2ZHE,PX2ZWI,PX2ZVG,PX2ZHG, 1PY1ZHE,PY1ZWI,PY1ZVG,PY1ZHG, 1PY2ZHE,PY2ZWI,PY2ZVG,PY2ZHG, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE TIC MARK LABEL HEIGHT AND WIDTH SWITCHES C FOR ANY OF THE 4 FRAME LINES. C SUCH TIC MARK SWITCHES DEFINE THE HEIGHT AND WIDTH C OF THE TIC MARK LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --IARGT (A HOLLERITH VECTOR) C --ARG (A FLOATING POINT VECTOR) C --NUMARG C --PDEFHE C --PDEFWI C OUTPUT ARGUMENTS-- C --PX1ZHE,PX1ZWI,PX1ZVG,PX1ZHG, C --PX2ZHE,PX2ZWI,PX2ZVG,PX2ZHG, C --PY1ZHE,PY1ZWI,PY1ZVG,PY1ZHG, C --PY2ZHE,PY2ZWI,PY2ZVG,PY2ZHG, 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--JULY 1987. C UPDATED --DECEMBER 1988. ADD DEFAULT WIDTH C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG CHARACTER*4 IARGT 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 NUMAM1=NUMARG-1 C CCCCC IF(NUMARG.LE.1)GOTO1900 IF(NUMARG.LE.1)GOTO9000 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'HW')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'HW')GOTO1090 CCCCC GOTO1900 GOTO9000 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'HW')GOTO1150 IF(IARGT(NUMAM1).EQ.'NUMB'.AND. 1 IARGT(NUMARG).EQ.'NUMB')GOTO1160 IERROR='YES' GOTO9000 C 1150 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1180 C 1160 CONTINUE HOLD1=ARG(NUMAM1) HOLD2=ARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' PX1ZHE=HOLD1 PX2ZHE=HOLD1 PX1ZWI=HOLD2 PX2ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL HEIGHT & WIDTH (FOR BOTH ', 1'HORIZONTAL FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)HOLD1,HOLD2 1182 FORMAT('HAVE JUST BEEN SET TO ',2E15.7) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'HW')GOTO1250 IF(IARGT(NUMAM1).EQ.'NUMB'.AND. 1 IARGT(NUMARG).EQ.'NUMB')GOTO1260 IERROR='YES' GOTO9000 C 1250 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1280 C 1260 CONTINUE HOLD1=ARG(NUMAM1) HOLD2=ARG(NUMARG) GOTO1280 C 1280 CONTINUE IFOUND='YES' PX1ZHE=HOLD1 PX1ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL HEIGHT & WIDTH (FOR THE BOTTOM ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)HOLD1,HOLD2 1282 FORMAT('HAVE JUST BEEN SET TO ',2E15.7) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'HW')GOTO1350 IF(IARGT(NUMAM1).EQ.'NUMB'.AND. 1 IARGT(NUMARG).EQ.'NUMB')GOTO1360 IERROR='YES' GOTO9000 C 1350 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1380 C 1360 CONTINUE HOLD1=ARG(NUMAM1) HOLD2=ARG(NUMARG) GOTO1380 C 1380 CONTINUE IFOUND='YES' PX2ZHE=HOLD1 PX2ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL HEIGHT & WIDTH (FOR THE TOP ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)HOLD1,HOLD2 1382 FORMAT('HAVE JUST BEEN SET TO ',2E15.7) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'HW')GOTO1450 IF(IARGT(NUMAM1).EQ.'NUMB'.AND. 1 IARGT(NUMARG).EQ.'NUMB')GOTO1460 IERROR='YES' GOTO9000 C 1450 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1480 C 1460 CONTINUE HOLD1=ARG(NUMAM1) HOLD2=ARG(NUMARG) GOTO1480 C 1480 CONTINUE IFOUND='YES' PY1ZHE=HOLD1 PY2ZHE=HOLD1 PY1ZWI=HOLD2 PY2ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL HEIGHT & WIDTH (FOR BOTH ', 1'VERTICAL FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)HOLD1,HOLD2 1482 FORMAT('HAVE JUST BEEN SET TO ',2E15.7) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'HW')GOTO1550 IF(IARGT(NUMAM1).EQ.'NUMB'.AND. 1 IARGT(NUMARG).EQ.'NUMB')GOTO1560 IERROR='YES' GOTO9000 C 1550 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1580 C 1560 CONTINUE HOLD1=ARG(NUMAM1) HOLD2=ARG(NUMARG) GOTO1580 C 1580 CONTINUE IFOUND='YES' PY1ZHE=HOLD1 PY1ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL HEIGHT & WIDTH (FOR THE LEFT ', 1'VERTICAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)HOLD1,HOLD2 1582 FORMAT('HAVE JUST BEEN SET TO ',2E15.7) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'HW')GOTO1650 IF(IARGT(NUMAM1).EQ.'NUMB'.AND. 1 IARGT(NUMARG).EQ.'NUMB')GOTO1660 IERROR='YES' GOTO9000 C 1650 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1680 C 1660 CONTINUE HOLD1=ARG(NUMAM1) HOLD2=ARG(NUMARG) GOTO1680 C 1680 CONTINUE IFOUND='YES' PY2ZHE=HOLD1 PY2ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL HEIGHT & WIDTH (FOR THE RIGHT ', 1'VERTICAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)HOLD1,HOLD2 1682 FORMAT('HAVE JUST BEEN SET TO ',2E15.7) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'HW')GOTO1750 IF(IARGT(NUMAM1).EQ.'NUMB'.AND. 1 IARGT(NUMARG).EQ.'NUMB')GOTO1760 IERROR='YES' GOTO9000 C 1750 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1780 C 1760 CONTINUE HOLD1=ARG(NUMAM1) HOLD2=ARG(NUMARG) GOTO1780 C 1780 CONTINUE IFOUND='YES' PX1ZHE=HOLD1 PX2ZHE=HOLD1 PY1ZHE=HOLD1 PY2ZHE=HOLD1 PX1ZWI=HOLD2 PX2ZWI=HOLD2 PY1ZWI=HOLD2 PY2ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL HEIGHT & WIDTH (FOR ', 1'ALL 4 FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)HOLD1,HOLD2 1782 FORMAT('HAVE JUST BEEN SET TO ',2E15.7) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE C PX1ZVG=PX1ZHE*0.375 PX2ZVG=PX2ZHE*0.375 PY1ZVG=PY1ZHE*0.375 PY2ZVG=PY2ZHE*0.375 C PX1ZHG=PX1ZHE*0.125 PX2ZHG=PX2ZHE*0.125 PY1ZHG=PY1ZHE*0.125 PY2ZHG=PY2ZHE*0.125 GOTO9000 C 9000 CONTINUE RETURN END SUBROUTINE DPTLJU(ICOM,IHARG,NUMARG, 1IDEFJU, 1IX1ZJU,IX2ZJU,IY1ZJU,IY2ZJU, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL JUSTIFICATIONS CONTAINED IN THE C 4 VARIABLES IX1ZJU,IX2ZJU,IY1ZJU,IY2ZJU C SUCH TIC LABEL JUSTIFICATIONS DEFINE THE JUSTIFICATIONS FOR C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --NUMARG C --IDEFJU C OUTPUT ARGUMENTS-- C --IX1ZJU = LOWER HORIZONTAL TIC LABEL JUSTIFICATION C --IX2ZJU = UPPER HORIZONTAL TIC LABEL JUSTIFICATION C --IY1ZJU = LEFT VERTICAL TIC LABEL JUSTIFICATION C --IY2ZJU = RIGHT VERTICAL TIC LABEL JUSTIFICATION C --IFOUND ('YES' OR 'NO' ) C --IERROR ('YES' OR 'NO' ) C WRITTEN BY--ALAN HECKERT 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--89/2 C ORIGINAL VERSION--JANUARY 1989. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C CHARACTER*4 IDEFJU C CHARACTER*4 IX1ZJU CHARACTER*4 IX2ZJU CHARACTER*4 IY1ZJU CHARACTER*4 IY2ZJU C CHARACTER*4 IFOUND CHARACTER*4 IERROR C CHARACTER*4 IHOLD C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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.LE.1)GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'JUST')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'JUST')GOTO1090 GOTO1900 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'JUST')GOTO1150 GOTO1160 C 1150 CONTINUE IHOLD=IDEFJU GOTO1180 C 1160 CONTINUE IHOLD=IHARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' IX1ZJU=IHOLD IX2ZJU=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL JUSTIFICATION (FOR BOTH ', 1'HORIZONTAL FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)IHOLD 1182 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'JUST')GOTO1250 GOTO1260 C 1250 CONTINUE IHOLD=IDEFJU GOTO1280 C 1260 CONTINUE IHOLD=IHARG(NUMARG) GOTO1280 C 1280 CONTINUE IFOUND='YES' IX1ZJU=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL JUSTIFICATION (FOR THE BOTTOM ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)IHOLD 1282 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'JUST')GOTO1350 GOTO1360 C 1350 CONTINUE IHOLD=IDEFJU GOTO1380 C 1360 CONTINUE IHOLD=IHARG(NUMARG) GOTO1380 C 1380 CONTINUE IFOUND='YES' IX2ZJU=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL JUSTIFICATION (FOR THE TOP ', 1'HORIZONTAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)IHOLD 1382 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'JUST')GOTO1450 GOTO1460 C 1450 CONTINUE IHOLD=IDEFJU GOTO1480 C 1460 CONTINUE IHOLD=IHARG(NUMARG) GOTO1480 C 1480 CONTINUE IFOUND='YES' IY1ZJU=IHOLD IY2ZJU=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL JUSTIFICATION (FOR BOTH VERTICAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)IHOLD 1482 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'JUST')GOTO1550 GOTO1560 C 1550 CONTINUE IHOLD=IDEFJU GOTO1580 C 1560 CONTINUE IHOLD=IHARG(NUMARG) GOTO1580 C 1580 CONTINUE IFOUND='YES' IY1ZJU=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL JUSTIFICATION (FOR THE LEFT ', 1'VERTICAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)IHOLD 1582 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'JUST')GOTO1650 GOTO1660 C 1650 CONTINUE IHOLD=IDEFJU GOTO1680 C 1660 CONTINUE IHOLD=IHARG(NUMARG) GOTO1680 C 1680 CONTINUE IFOUND='YES' IY2ZJU=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL JUSTIFICATION (FOR THE RIGHT ', 1'VERTICAL FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)IHOLD 1682 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'JUST')GOTO1750 GOTO1760 C 1750 CONTINUE IHOLD=IDEFJU GOTO1780 C 1760 CONTINUE IHOLD=IHARG(NUMARG) GOTO1780 C 1780 CONTINUE IFOUND='YES' IX1ZJU=IHOLD IX2ZJU=IHOLD IY1ZJU=IHOLD IY2ZJU=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL JUSTIFICATION (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)IHOLD 1782 FORMAT('HAS JUST BEEN SET TO ',A4) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTLSZ(ICOM,IHARG,IARGT,ARG,NUMARG, 1PDEFHE,PDEFWI, 1PX1ZHE,PX1ZWI,PX1ZVG,PX1ZHG, 1PX2ZHE,PX2ZWI,PX2ZVG,PX2ZHG, 1PY1ZHE,PY1ZWI,PY1ZVG,PY1ZHG, 1PY2ZHE,PY2ZWI,PY2ZVG,PY2ZHG, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE TIC MARK LABEL SIZE SWITCHES C FOR ANY OF THE 4 FRAME LINES. C SUCH TIC MARK SWITCHES DEFINE THE SIZE (HEIGHT) C OF THE TIC MARK LABELS ON THE 4 FRAME LINES OF A PLOT. C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --IARGT (A HOLLERITH VECTOR) C --ARG (A FLOATING POINT VECTOR) C --NUMARG C --PDEFHE C OUTPUT ARGUMENTS-- C --PX1ZHE,PX1ZWI,PX1ZVG,PX1ZHG, C --PX2ZHE,PX2ZWI,PX2ZVG,PX2ZHG, C --PY1ZHE,PY1ZWI,PY1ZVG,PY1ZHG, C --PY2ZHE,PY2ZWI,PY2ZVG,PY2ZHG, 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--OCTOBER 1980. C UPDATED --MAY 1982. C UPDATED --DECEMBER 1988. DEFAULT WIDTH C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG CHARACTER*4 IARGT 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 IF(NUMARG.LE.1)GOTO1900 IF(NUMARG.LE.1)GOTO9000 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'SIZE')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'SIZE')GOTO1090 CCCCC GOTO1900 GOTO9000 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'SIZE')GOTO1150 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1160 IERROR='YES' GOTO9000 C 1150 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1180 C 1160 CONTINUE HOLD1=ARG(NUMARG) HOLD2=HOLD1*0.5 GOTO1180 C 1180 CONTINUE IFOUND='YES' PX1ZHE=HOLD1 PX2ZHE=HOLD1 PX1ZWI=HOLD2 PX2ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL SIZE (FOR BOTH HORIZONTAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)HOLD1 1182 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'SIZE')GOTO1250 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1260 IERROR='YES' GOTO9000 C 1250 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1280 C 1260 CONTINUE HOLD1=ARG(NUMARG) HOLD2=HOLD1*0.5 GOTO1280 C 1280 CONTINUE IFOUND='YES' PX1ZHE=HOLD1 PX1ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL SIZE (FOR THE BOTTOM HORIZONTAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)HOLD1 1282 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'SIZE')GOTO1350 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1360 IERROR='YES' GOTO9000 C 1350 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1380 C 1360 CONTINUE HOLD1=ARG(NUMARG) HOLD2=HOLD1*0.5 GOTO1380 C 1380 CONTINUE IFOUND='YES' PX2ZHE=HOLD1 PX2ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL SIZE (FOR THE TOP HORIZONTAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)HOLD1 1382 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'SIZE')GOTO1450 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1460 IERROR='YES' GOTO9000 C 1450 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1480 C 1460 CONTINUE HOLD1=ARG(NUMARG) HOLD2=HOLD1*0.5 GOTO1480 C 1480 CONTINUE IFOUND='YES' PY1ZHE=HOLD1 PY2ZHE=HOLD1 PY1ZWI=HOLD2 PY2ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL SIZE (FOR BOTH VERTICAL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)HOLD1 1482 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'SIZE')GOTO1550 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1560 IERROR='YES' GOTO9000 C 1550 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1580 C 1560 CONTINUE HOLD1=ARG(NUMARG) HOLD2=HOLD1*0.5 GOTO1580 C 1580 CONTINUE IFOUND='YES' PY1ZHE=HOLD1 PY1ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL SIZE (FOR THE LEFT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)HOLD1 1582 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'SIZE')GOTO1650 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1660 IERROR='YES' GOTO9000 C 1650 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1680 C 1660 CONTINUE HOLD1=ARG(NUMARG) HOLD2=HOLD1*0.5 GOTO1680 C 1680 CONTINUE IFOUND='YES' PY2ZHE=HOLD1 PY2ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL SIZE (FOR THE RIGHT VERTICAL ', 1'FRAME LINE)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)HOLD1 1682 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'SIZE')GOTO1750 IF(IARGT(NUMARG).EQ.'NUMB')GOTO1760 IERROR='YES' GOTO9000 C 1750 CONTINUE HOLD1=PDEFHE HOLD2=PDEFWI GOTO1780 C 1760 CONTINUE HOLD1=ARG(NUMARG) HOLD2=HOLD1*0.5 GOTO1780 C 1780 CONTINUE IFOUND='YES' PX1ZHE=HOLD1 PX2ZHE=HOLD1 PY1ZHE=HOLD1 PY2ZHE=HOLD1 PX1ZWI=HOLD2 PX2ZWI=HOLD2 PY1ZWI=HOLD2 PY2ZWI=HOLD2 C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL SIZE (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)HOLD1 1782 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE C PX1ZVG=PX1ZHE*0.375 PX2ZVG=PX2ZHE*0.375 PY1ZVG=PY1ZHE*0.375 PY2ZVG=PY2ZHE*0.375 C PX1ZHG=PX1ZHE*0.125 PX2ZHG=PX2ZHE*0.125 PY1ZHG=PY1ZHE*0.125 PY2ZHG=PY2ZHE*0.125 GOTO9000 C 9000 CONTINUE RETURN END SUBROUTINE DPTLTH(ICOM,IHARG,ARG,NUMARG, 1PDEFTH, 1PTIZTH, 1IFOUND,IERROR) C C PURPOSE--DEFINE THE 4 TIC LABEL THICKNESSS CONTAINED IN THE C 4 VARIABLES PTIZTH,PTIZTH,PTIZTH,PTIZTH C SUCH TIC LABEL THICKNESSS DEFINE THE THICKNESSS FOR C THE TIC LABELS ON THE 4 FRAME LINES OF A PLOT. C NOTE: ALL 4 THICKNESS CURRENTLY LIMITED TO ONE C SETTING, PTIZTH C INPUT ARGUMENTS--ICOM C --IHARG (A HOLLERITH VECTOR) C --ARG (A REAL VECTOR) C --NUMARG C --PDEFTH C OUTPUT ARGUMENTS-- C --PTIZTH = LOWER HORIZONTAL TIC LABEL THICKNESS C --PTIZTH = UPPER HORIZONTAL TIC LABEL THICKNESS C --PTIZTH = LEFT VERTICAL TIC LABEL THICKNESS C --PTIZTH = RIGHT VERTICAL TIC LABEL THICKNESS C --IFOUND ('YES' OR 'NO' ) C --IERROR ('YES' OR 'NO' ) C WRITTEN BY--ALAN HECKERT 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--89/2 C ORIGINAL VERSION--JANUARY 1989. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICOM CHARACTER*4 IHARG C C CHARACTER*4 IFOUND CHARACTER*4 IERROR C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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(NUMARG.LE.1)GOTO1900 IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LABE'.AND. 1IHARG(2).EQ.'THIC')GOTO1090 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MARK'.AND. 1IHARG(2).EQ.'LABE'.AND.IHARG(3).EQ.'THIC')GOTO1090 GOTO1900 1090 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH HORIZONTAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'XTIC')GOTO1100 GOTO1199 C 1100 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.'THIC')GOTO1150 GOTO1160 C 1150 CONTINUE PHOLD=PDEFTH GOTO1180 C 1160 CONTINUE PHOLD=ARG(NUMARG) GOTO1180 C 1180 CONTINUE IFOUND='YES' PTIZTH=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1181) 1181 FORMAT('THE TIC MARK LABEL THICKNESS (FOR ALL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1182)PHOLD 1182 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1900 C 1199 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE BOTTOM HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X1TI')GOTO1200 GOTO1299 C 1200 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.'THIC')GOTO1250 GOTO1260 C 1250 CONTINUE PHOLD=PDEFTH GOTO1280 C 1260 CONTINUE PHOLD=ARG(NUMARG) GOTO1280 C 1280 CONTINUE IFOUND='YES' PTIZTH=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1289 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1281) 1281 FORMAT('THE TIC MARK LABEL THICKNESS (ALL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1282)PHOLD 1282 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1289 CONTINUE GOTO1900 C 1299 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE TOP HORIZONTAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'X2TI')GOTO1300 GOTO1399 C 1300 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.'THIC')GOTO1350 GOTO1360 C 1350 CONTINUE PHOLD=PDEFTH GOTO1380 C 1360 CONTINUE PHOLD=ARG(NUMARG) GOTO1380 C 1380 CONTINUE IFOUND='YES' PTIZTH=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1389 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1381) 1381 FORMAT('THE TIC MARK LABEL THICKNESS (FOR ALL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1382)PHOLD 1382 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1389 CONTINUE GOTO1900 C 1399 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** BOTH VERTICAL AXIS TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'YTIC')GOTO1400 GOTO1499 C 1400 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.'THIC')GOTO1450 GOTO1460 C 1450 CONTINUE PHOLD=PDEFTH GOTO1480 C 1460 CONTINUE PHOLD=ARG(NUMARG) GOTO1480 C 1480 CONTINUE IFOUND='YES' PTIZTH=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1489 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1481) 1481 FORMAT('THE TIC MARK LABEL THICKNESS (FOR ALL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1482)PHOLD 1482 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1489 CONTINUE GOTO1900 C 1499 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE LEFT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y1TI')GOTO1500 GOTO1599 C 1500 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.'THIC')GOTO1550 GOTO1560 C 1550 CONTINUE PHOLD=PDEFTH GOTO1580 C 1560 CONTINUE PHOLD=ARG(NUMARG) GOTO1580 C 1580 CONTINUE IFOUND='YES' PTIZTH=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1581) 1581 FORMAT('THE TIC MARK LABEL THICKNESS (FOR ALL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1582)PHOLD 1582 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1589 CONTINUE GOTO1900 C 1599 CONTINUE C C ************************************************************** C ** TREAT THE CASE WHEN ** C ** ONLY THE RIGHT VERTICAL TIC MARKS ARE TO BE CHANGED ** C ************************************************************** C IF(ICOM.EQ.'Y2TI')GOTO1600 GOTO1699 C 1600 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.'THIC')GOTO1650 GOTO1660 C 1650 CONTINUE PHOLD=PDEFTH GOTO1680 C 1660 CONTINUE PHOLD=ARG(NUMARG) GOTO1680 C 1680 CONTINUE IFOUND='YES' PTIZTH=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1689 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1681) 1681 FORMAT('THE TIC MARK LABEL THICKNESS (FOR ALL ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1682)PHOLD 1682 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1689 CONTINUE GOTO1900 C 1699 CONTINUE C C ***************************************************** C ** TREAT THE CASE WHEN ** C ** ALL 4 FRAME TICS ARE TO BE CHANGED ** C ***************************************************** C IF(ICOM.EQ.'TIC')GOTO1700 IF(ICOM.EQ.'TICS')GOTO1700 IF(ICOM.EQ.'XYTI')GOTO1700 IF(ICOM.EQ.'YXTI')GOTO1700 GOTO1799 C 1700 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.'THIC')GOTO1750 GOTO1760 C 1750 CONTINUE PHOLD=PDEFTH GOTO1780 C 1760 CONTINUE PHOLD=ARG(NUMARG) GOTO1780 C 1780 CONTINUE IFOUND='YES' PTIZTH=PHOLD C IF(IFEEDB.EQ.'OFF')GOTO1789 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1781) 1781 FORMAT('THE TIC MARK LABEL THICKNESS (FOR ALL 4 ', 1'FRAME LINES)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1782)PHOLD 1782 FORMAT('HAS JUST BEEN SET TO ',E15.7) CALL DPWRST('XXX','BUG ') 1789 CONTINUE GOTO1900 C 1799 CONTINUE C 1900 CONTINUE RETURN END SUBROUTINE DPTMCO(XTEMP1,XTEMP2,MAXNXT,ICASAN, 1ICAPSW, 1IBUGA2,IBUGA3,IBUGQ,ISUBRO,IFOUND,IERROR) C C PURPOSE--GENERATE CONFIDENCE LIMITS FOR THE TRIMMED MEAN C FOR PROBABILITY VALUE P = .90, .95, .99, .999, AND .9999. 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 REFERENCE--"INTRODUCTION TO ROBUST ESTIMATION AND HYPOTHESIS C TESTING", RAND R. WILCOX, ACADEMIC PRESS, 1997. 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--2003/2 C ORIGINAL VERSION--FEBRUARY 2003. C UPDATED --OCTOBERY 2003. ADD SUPPORT FOR HTML, LATEX C OUTPUT 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 CHARACTER*4 IHP CHARACTER*4 IHP2 C CHARACTER*4 IHWUSE CHARACTER*4 MESSAG CHARACTER*4 ICASEQ CHARACTER*4 IHLEFT CHARACTER*4 IHLEF2 CHARACTER*4 IH21 CHARACTER*4 IH22 C CHARACTER*4 ICASAN CHARACTER*4 ICAPSW C CHARACTER*4 ISUBN1 CHARACTER*4 ISUBN2 CHARACTER*4 ISTEPN C C--------------------------------------------------------------------- C INCLUDE 'DPCOPA.INC' C DIMENSION XTEMP1(*) DIMENSION XTEMP2(*) C DIMENSION W(MAXOBV) C INCLUDE 'DPCOZZ.INC' EQUIVALENCE (GARBAG(IGARB1),W(1)) C C-----COMMON---------------------------------------------------------- C INCLUDE 'DPCOHK.INC' INCLUDE 'DPCOSU.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='DPTM' ISUBN2='CO ' 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 MAXV2=1 MINN2=5 C IFOUND='YES' C NLEFT=0 N2=0 C ICASEQ='UNKN' C C ***************************************************** C ** TREAT THE TRIMMED MEAN CONFIDENCE LIMITS CASE ** C ***************************************************** C IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TMCO')THEN WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,51) 51 FORMAT('***** AT THE BEGINNING OF DPTMCO--') 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 ') WRITE(ICOUT,57)ICASAN 57 FORMAT('ICASAN = ',A4) CALL DPWRST('XXX','BUG ') ENDIF 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.'TMCO') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C MINNA=1 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'.OR.ISUBRO.EQ.'TMCO') 1CALL 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 ** C ** (NLEFT) FOR THE RESPONSE VARIABLE IS 2 OR MORE. ** C ****************************************************** C ISTEPN='4' IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TMCO') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(NLEFT.GE.MINN2)GOTO390 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,311) 311 FORMAT('***** ERROR IN DPTMCO--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,312) 312 FORMAT(' THE INPUT NUMBER OF OBSERVATIONS') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,313) 313 FORMAT(' (FROM WHICH TRIMMED MEAN CONFIDENCE LIMITS ') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,314) 314 FORMAT(' WERE TO HAVE BEEN CALCULATED)') 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) 317 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--') CALL DPWRST('XXX','BUG ') IF(IWIDTH.GE.1)WRITE(ICOUT,318)(IANS(I),I=1,MAX(IWIDTH,80)) 318 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'.OR.ISUBRO.EQ.'ON') 1CALL 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 5-- ** C ** TEMPORARILY FORM THE VARIABLE Y(.) ** C ** WHICH WILL HOLD THE RESPONSE VARIABLE. ** C ** FORM THIS VARIABLE BY ** C ** BRANCHING TO THE APPROPRIATE SUBCASE ** C ** (FULL, SUBSET, OR FOR). ** C ********************************************* C ISTEPN='5' IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TMCO') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(ICASEQ.EQ.'FULL')GOTO510 IF(ICASEQ.EQ.'SUBS')GOTO520 IF(ICASEQ.EQ.'FOR')GOTO530 C 510 CONTINUE DO515I=1,MAX(NLEFT,N2) ISUB(I)=1 515 CONTINUE NQ=MAX(NLEFT,N2) GOTO550 C 520 CONTINUE NIOLD=MAX(NLEFT,N2) CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR) NQ=NIOLD GOTO550 C 530 CONTINUE NIOLD=MAX(NLEFT,N2) CALL DPFOR(NIOLD,NFOR,IROW1,IROWN, 1NLOCAL,ILOCS,NS,IBUGQ,IERROR) NQ=NFOR GOTO550 C 550 CONTINUE IF(NQ.GE.MINN2)GOTO560 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,551) 551 FORMAT('***** ERROR IN DPTMCO--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,552) 552 FORMAT(' AFTER THE APPROPRIATE SUBSET HAS BEEN ', 1'EXTRACTED,') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,553)IHLEFT,IHLEF2 553 FORMAT(' THE NUMBER OF OBSERVATIONS REMAINING', 1'FROM VARIABLE ',A4,A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,554) 554 FORMAT(' (FROM WHICH TRIMMED MEAN CONFIDENCE LIMITS ') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,555) 555 FORMAT(' ARE TO BE CALCULATED)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,556)MINN2 556 FORMAT(' MUST BE ',I8,' OR LARGER;') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,557) 557 FORMAT(' SUCH WAS NOT THE CASE HERE.') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,558) 558 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--') CALL DPWRST('XXX','BUG ') IF(IWIDTH.GE.1)WRITE(ICOUT,559)(IANS(I),I=1,MAX(IWIDTH,80)) 559 FORMAT(' ',80A1) IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO9000 C 560 CONTINUE J=0 IMAX=NLEFT IF(NQ.LT.NLEFT)IMAX=NQ DO570I=1,IMAX IF(ISUB(I).EQ.0)GOTO570 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 570 CONTINUE NS=J C C ****************************************************** C ** STEP 8-- C ** PREPARE FOR ENTRANCE INTO DPTMC2-- C ** SET THE WEIGHT VECTOR TO UNITY THROUGHOUT. C ****************************************************** C ISTEPN='8' IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TMCO') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C DO1110I=1,NS W(I)=1.0 1110 CONTINUE C C ****************************************************** C ** STEP 9-- ** C ** DETERMINE VALUE OF TRIMMING CONSTANTS (OBTAINED ** C ** FROM PARAMETERS P1 AND P2) ** C ****************************************************** C IHP='P1 ' IHP2=' ' IHWUSE='P' MESSAG='YES' CALL CHECKN(IHP,IHP2,IHWUSE, 1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM, 1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR) IF(IERROR.EQ.'YES')GOTO9000 PROP1=VALUE(ILOCP) C IHP='P2 ' IHP2=' ' IHWUSE='P' MESSAG='YES' CALL CHECKN(IHP,IHP2,IHWUSE, 1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM, 1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR) IF(IERROR.EQ.'YES')GOTO9000 PROP2=VALUE(ILOCP) C IF(0.0.LE.PROP1.AND.PROP1.LE.100.0)GOTO11589 IF(0.0.LE.PROP2.AND.PROP2.LE.100.0)GOTO11589 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,11581) 11581 FORMAT('***** ERROR IN DPTMCO--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,11582) 11582 FORMAT('THE PROPORTION TO BE TRIMMED BELOW AND ABOVE') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,11583) 11583 FORMAT('MUST BE BETWEEN 0 AND 100, BUT WAS NOT.') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,11584)PROP1 11584 FORMAT('PARAMETER P1 = LOWER PROPORTION = ',E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,11585)PROP2 11585 FORMAT('PARAMETER P2 = UPPER PROPORTION = ',E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,11586) 11586 FORMAT('USE THE LET COMMAND TO PRE-DEFINE P1 AND P2, AS IN') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,11587) 11587 FORMAT(' LET P1 = 25') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,11588) 11588 FORMAT(' LET P2 = 10') CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO9000 11589 CONTINUE C C ********************************* C ** STEP 9-- ** C ** FORM THE CONFIDENCE LIMITS ** C ********************************* C ISTEPN='9' IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TMCO') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TMCO')THEN WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1211) 1211 FORMAT('***** FROM DPTMCO, AS WE ARE ABOUT TO CALL DPTMC2--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1212)NLEFT,MAXN,NS 1212 FORMAT('NLEFT,MAXN,NS = ',3I8) CALL DPWRST('XXX','BUG ') DO1215I=1,NS WRITE(ICOUT,1216)I,Y(I),W(I) 1216 FORMAT('I,Y(I),W(I) = ',I8,2E15.7) CALL DPWRST('XXX','BUG ') 1215 CONTINUE CCCCC IBUGA3='ABCD' WRITE(ICOUT,1231)IBUGA3 1231 FORMAT('IBUGA3 = ',A4) CALL DPWRST('XXX','BUG ') ENDIF C CALL DPTMC2(Y,W,NS,X,NS2,XTEMP1,XTEMP2,MAXNXT, 1PROP1,PROP2, 1ICAPSW,ICAPTY, 1ICASAN,IBUGA3,ISUBRO,IERROR) C C ***************** C ** STEP 90-- ** C ** EXIT ** C ***************** C 9000 CONTINUE IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TMCO')THEN WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9011) 9011 FORMAT('***** AT THE END OF DPTMCO--') 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 ') ENDIF C RETURN END SUBROUTINE DPTMC2(Y,W,N,X,N2,XTEMP1,XTEMP2,MAXNXT, 1PROP1,PROP2, 1ICAPSW,ICAPTY, 1ICASAN,IBUGA3,ISUBRO,IERROR) C C PURPOSE--THIS ROUTINE GENERATES TRIMMED MEAN CONFIDENCE LIMITS C FOR THE DATA IN THE INPUT VECTOR Y. C NOTE--ASSUMPTION--MODEL IS RESPONSE = CONSTANT + ERROR. C NOTE--WEIGHTS AND TWO VARIABLE (=DIFFERENCE OF TWO MEANS) C NOT YET SUPPORTED. ARGUMENTS PASSED FOR POSSIBLE C FUTURE IMPLEMENTATION. C INPUT ARGUMENTS--Y = THE SINGLE PRECISION VECTOR C OF OBSERVATIONS C N = THE INTEGER NUMBER OF C OBSERVATIONS IN THE VECTOR Y. 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--2003/2 C ORIGINAL VERSION--FEBRUARY 2003. C UPDATED --OCTOBER 2003. ADD SUPPORT FOR HTML, LATEX C OUTPUT C C UPDATED --OCTOBER 2006. CALL LIST TO TPPF C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 IBUGA3 CHARACTER*4 ISUBRO CHARACTER*4 IERROR C CHARACTER*4 IWRITE CHARACTER*4 ICASAN CHARACTER*4 ICAPSW CHARACTER*4 ICAPTY CHARACTER*4 IBASLC C CHARACTER*4 ISUBN1 CHARACTER*4 ISUBN2 CHARACTER*4 ISTEPN C C--------------------------------------------------------------------- C DIMENSION Y(*) DIMENSION X(*) DIMENSION W(*) DIMENSION XTEMP1(*) DIMENSION XTEMP2(*) C DIMENSION CONF(10) DIMENSION T(10) DIMENSION TSDM(10) DIMENSION ALOWER(10) DIMENSION AUPPER(10) 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='DPTM' ISUBN2='C2 ' C IERROR='NO' C IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TMC2')THEN WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,51) 51 FORMAT('**** AT THE BEGINNING OF DPTMC2--') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,52)N,PROP1,PROP2,IBUGA3 52 FORMAT('N,PROP1,PROP2,IBUGA3 = ',I8,2X,E15.7,2X,E15.7,2X,A4) CALL DPWRST('XXX','WRIT') DO56I=1,N WRITE(ICOUT,57)I,Y(I),W(I),X(I) 57 FORMAT('I,Y(I),W(I),X(I) = ',I8,3E15.7) CALL DPWRST('XXX','WRIT') 56 CONTINUE WRITE(ICOUT,58)ICASAN 58 FORMAT('ICASAN = ',A4) CALL DPWRST('XXX','WRIT') ENDIF C C ******************************************** C ** STEP 1-- ** C ** CHECK THE INPUT ARGUMENTS FOR ERRORS ** C ******************************************** C ISTEPN='1' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TMC2') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(N.GE.5)GOTO119 WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,111) 111 FORMAT('***** ERROR IN DPTMC2--THE NUMBER OF OBSERVATIONS ', 1'IN THE RESPONSE VARIABLE IS LESS THAN 5') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,112)N 112 FORMAT('SAMPLE SIZE = ',I8) CALL DPWRST('XXX','WRIT') IERROR='YES' GOTO9000 119 CONTINUE C HOLD=Y(1) DO135I=2,N IF(Y(I).NE.HOLD)GOTO139 135 CONTINUE 130 CONTINUE WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,131)HOLD 131 FORMAT('***** NOTE FROM DPTMC2--THE RESPONSE VARIABLE ', 1'HAS ALL ELEMENTS = ',E15.7) CALL DPWRST('XXX','WRIT') GOTO9000 139 CONTINUE C C *************************************************** C ** STEP 3-- ** C ** COMPUTE THE TRIMMED MEAN LOCATION ESTIMATE ** C ** COMPUTE THE TRIMMED MEAN STANDARD ERROR ** C *************************************************** C C ISTEPN='3' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TMC2') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IWRITE='OFF' C CALL TRIMME(Y,N,PROP1,PROP2,IWRITE,XTEMP1,MAXNXT,YTRMME, 1IBUGA3,IERROR) CALL TRIMSE(Y,N,PROP1,PROP2,IWRITE,XTEMP1,XTEMP2,MAXNXT,YTRMSE, 1IBUGA3,IERROR) C AN1=N LAMBDA=INT(AN1*(PROP1+PROP2)/100.) V=0.7*(AN1-1.0) IV=N - LAMBDA - 1 IF(IV.LT.1)IV=1 C C *************************************** C ** STEP 4-- ** C ** COMPUTE CONFIDENCE LIMITS ** C ** FOR VARIOUS PROBABILITY VALUES. ** C *************************************** C ISTEPN='4' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TMC2') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C CONF(1)=50.0 CONF(2)=75.0 CONF(3)=90.0 CONF(4)=95.0 CONF(5)=99.0 CONF(6)=99.9 CONF(7)=99.99 CONF(8)=99.999 C DO1400I=1,8 PCONF=CONF(I)/100.0 CDF=0.5+PCONF/2.0 CALL TPPF(CDF,REAL(IV),T(I)) TSDM(I)=T(I)*YTRMSE ALOWER(I)=YTRMME-TSDM(I) AUPPER(I)=YTRMME+TSDM(I) 1400 CONTINUE C C **************************** C ** STEP 7-- ** C ** WRITE EVERYTHING OUT ** C **************************** C ISTEPN='7' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TMC2') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(IPRINT.EQ.'ON')THEN CCCCC OCTOBER 2003: WRITE OUTPUT IN HTML FORMAT IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN C C STEP 1: END ASIS MODE AND WRITE A HEADER C 5001 FORMAT('') 5004 FORMAT('

') WRITE(ICOUT,5001) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5004) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C C STEP 2: START TABLE AND DEFINE A CAPTION C 5011 FORMAT('') 5099 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 2B: START TABLE AND DEFINE A CAPTION
C
        WRITE(ICOUT,5004)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,5011)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,5013)
        CALL DPWRST('XXX','WRIT')
C
C  STEP 3B: DEFINE HEADER ROW
C
 5121   FORMAT('   ')
 5123   FORMAT('      ')
 5127   FORMAT('      ')
 5139   FORMAT('   ')
 5131   FORMAT('         Confidence
Value (%)') 5132 FORMAT(' t
Value') 5133 FORMAT(' t X Standard Error)') 5134 FORMAT(' Lower
Limit') 5135 FORMAT(' Upper
Limit') 5161 FORMAT(' ') 5162 FORMAT('
') WRITE(ICOUT,5121) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5123) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5131) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5127) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5123) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5132) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5127) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5123) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5133) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5127) 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,5123) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5135) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5127) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5139) CALL DPWRST('XXX','WRIT') C C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES C WRITE(ICOUT,5041) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5161) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5162) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5047) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5039) CALL DPWRST('XXX','WRIT') C C STEP 4: DEFINE DATA ROW C 5141 FORMAT(' ') 5143 FORMAT(' ') 5147 FORMAT(' ') 5151 FORMAT(' ',F8.3) 5152 FORMAT(' ',G12.6) 5149 FORMAT(' ') DO5180I=1,8 WRITE(ICOUT,5141) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5143) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5151)CONF(I) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5147) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5143) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5151)T(I) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5147) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5143) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5152)TSDM(I) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5147) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5143) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5152)ALOWER(I) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5147) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5143) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5152)AUPPER(I) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5147) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5149) CALL DPWRST('XXX','WRIT') 5180 CONTINUE C C STEP 4: END THE TABLE AND RESET ASIS MODE C 5191 FORMAT('') 5193 FORMAT('') 5199 FORMAT('
')
        WRITE(ICOUT,5191)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,5193)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,5199)
        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, AND
C          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 Confidence Limits for the Trimmed Mean ',
     1      'Location (2-Sided)}')
 8013 FORMAT(A1,'end{center}')
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,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,'Trimmed Mean Location: & ',G15.7,2X,A1,A1)
 8024 FORMAT(5X,'Standard Error: & ',G15.7,2X,A1,A1)
 8025 FORMAT(5X,'Degrees of Freedom: & ',I8,2X,A1,A1)
 8026 FORMAT(5X,'Percetage Trimmed Below: & ',G15.7,2X,A1,A1)
 8027 FORMAT(5X,'Percetage Trimmed Above: & ',G15.7,2X,A1,A1)
 8049 FORMAT(5X,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,8026)PROP1,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8027)PROP2,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8022)YTRMME,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8024)YTRMSE,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8025)IV,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}')
        WRITE(ICOUT,8093)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,'{',A1,'bf Confidence} & {',A1,'bf t } & & ',
     1       '{',A1,'bf Lower } & {',A1,'bf Upper}',2X,A1,A1)
 8122 FORMAT(5X,'{',A1,'bf Value (',A1,'%) } & {',A1,'bf Value} & {',A1,
     1       'bf t x Standard Error} & {',A1,'bf Limit} & {',A1,
     1       'bf Limit }',2X,A1,A1)
 8123 FORMAT(5X,2(F8.3,' & '),2(G12.6,' & '),G12.6,2X,A1,A1)
 8130 FORMAT(5X,A1,'hline')
        WRITE(ICOUT,8009)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8120)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8121)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,
     1                   IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8130)IBASLC
        CALL DPWRST('XXX','WRIT')
        DO8160I=1,8
          WRITE(ICOUT,8123)CONF(I),T(I),TSDM(I),ALOWER(I),AUPPER(I),
     1                     IBASLC,IBASLC
          CALL DPWRST('XXX','WRIT')
 8160   CONTINUE
        WRITE(ICOUT,8049)IBASLC
        CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
 8199 FORMAT(A1,'begin{verbatim}')
        WRITE(ICOUT,8093)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8091)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8199)IBASLC
        CALL DPWRST('XXX','WRIT')
C
C PLACEHOLDER FOR RTF FORMAT OUTPUT
C
      ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
      ELSE
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,811)
  811   FORMAT(
     1'                   CONFIDENCE LIMITS FOR TRIMMED MEAN LOCATION')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,812)
  812   FORMAT(
     1'                           (2-SIDED)')
        CALL DPWRST('XXX','WRIT')
 
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,815)N
  815   FORMAT(
     1'          NUMBER OF OBSERVATIONS         = ',I8)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,817)PROP1
  817   FORMAT(
     1'          PERCENTAGE TRIMMED BELOW       = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,818)PROP2
  818   FORMAT(
     1'          PERCENTAGE TRIMMED ABOVE       = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,822)YTRMME
  822   FORMAT(
     1'          TRIMMED MEAN LOCATION          = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,823)YTRMSE
  823   FORMAT(
     1'          TRIMMED MEAN STANDARD ERROR    = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,826)IV
  826   FORMAT(
     1'          DEGREES OF FREEDOM             = ',I8)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,832)
  832   FORMAT(
     1'   CONFIDENCE   T     T X STDERR       LOWER         UPPER     ')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,833)
  833   FORMAT(
     1'   VALUE (%)  VALUE                    LIMIT         LIMIT     ')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,834)
  834   FORMAT(
     1'---------------------------------------------------------------')
        CALL DPWRST('XXX','WRIT')
        DO840I=1,8
          WRITE(ICOUT,841)CONF(I),T(I),TSDM(I),ALOWER(I),AUPPER(I)
  841     FORMAT(
     1'   ',F8.3,F8.3,2X,G12.6,2X,G12.6,2X,G12.6)
          CALL DPWRST('XXX','WRIT')
  840   CONTINUE
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
      ENDIF
      ENDIF
C
      GOTO9000
C
C               *****************
C               **  STEP 90--  **
C               **  EXIT       **
C               *****************
C
 9000 CONTINUE
      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TMC2')THEN
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','WRIT')
      WRITE(ICOUT,9011)
 9011 FORMAT('***** AT THE END       OF DPTMC2--')
      CALL DPWRST('XXX','WRIT')
      WRITE(ICOUT,9012)N,IBUGA3,IERROR
 9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
      CALL DPWRST('XXX','WRIT')
      DO9016I=1,N
      WRITE(ICOUT,9017)I,Y(I),W(I)
 9017 FORMAT('I,Y(I),W(I) = ',I8,2E15.7)
      CALL DPWRST('XXX','WRIT')
 9016 CONTINUE
      ENDIF
C
      RETURN
      END
      SUBROUTINE DPTOLI(XTEMP1,XTEMP2,MAXNXT,
     1ICASAN,
     1IBUGA2,IBUGA3,IBUGQ,IFOUND,IERROR)
C
C     PURPOSE--GENERATE TOLERANCE LIMITS
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--98/11
C     ORIGINAL VERSION--NOVEMBER  1998.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
      CHARACTER*4 ICASAN
      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 IHLEFT
      CHARACTER*4 IHLEF2
C
      CHARACTER*4 ISUBN1
      CHARACTER*4 ISUBN2
      CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
      INCLUDE 'DPCOPA.INC'
C
      DIMENSION XTEMP1(*)
      DIMENSION XTEMP2(*)
C
      DIMENSION W(MAXOBV)
C
      INCLUDE 'DPCOZZ.INC'
      EQUIVALENCE (GARBAG(IGARB1),W(1))
C
C-----COMMON----------------------------------------------------------
C
      INCLUDE 'DPCOHK.INC'
      INCLUDE 'DPCOSU.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='DPCO'
      ISUBN2='NF  '
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
      MAXV2=1
      MINN2=2
C
      IFOUND='YES'
C
      NLEFT=0
C
      ICASEQ='UNKN'
C
C               ***************************************
C               **  TREAT THE TOLERANCE LIMITS 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 DPTOLI--')
      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')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      MINNA=1
      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 DPTOLI--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,312)
  312 FORMAT('      THE INPUT NUMBER OF OBSERVATIONS')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,313)
  313 FORMAT('      (FROM WHICH TOLERANCE LIMITS ')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,314)
  314 FORMAT('      WERE TO HAVE BEEN CALCULATED)')
      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)
  317 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
      CALL DPWRST('XXX','BUG ')
      IF(IWIDTH.GE.1)WRITE(ICOUT,318)(IANS(I),I=1,IWIDTH)
  318 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 5--                               **
C               **  TEMPORARILY FORM THE VARIABLE Y(.)     **
C               **  WHICH WILL HOLD THE RESPONSE VARIABLE. **
C               **  FORM THIS VARIABLE BY                  **
C               **  BRANCHING TO THE APPROPRIATE SUBCASE   **
C               **  (FULL, SUBSET, OR FOR).                **
C               *********************************************
C
      ISTEPN='5'
      IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(ICASEQ.EQ.'FULL')GOTO510
      IF(ICASEQ.EQ.'SUBS')GOTO520
      IF(ICASEQ.EQ.'FOR')GOTO530
C
  510 CONTINUE
      DO515I=1,NLEFT
      ISUB(I)=1
  515 CONTINUE
      NQ=NLEFT
      GOTO550
C
  520 CONTINUE
      NIOLD=NLEFT
      CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR)
      NQ=NIOLD
      GOTO550
C
  530 CONTINUE
      NIOLD=NLEFT
      CALL DPFOR(NIOLD,NFOR,IROW1,IROWN,
     1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
      NQ=NFOR
      GOTO550
C
  550 CONTINUE
      IF(NQ.GE.MINN2)GOTO560
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,551)
  551 FORMAT('***** ERROR IN DPTOLI--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,552)
  552 FORMAT('      AFTER THE APPROPRIATE SUBSET HAS BEEN ',
     1'EXTRACTED,')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,553)IHLEFT,IHLEF2
  553 FORMAT('      THE NUMBER OF OBSERVATIONS REMAINING',
     1'FROM VARIABLE ',A4,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,554)
  554 FORMAT('      (FROM WHICH TOLERANCE LIMITS ')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,555)
  555 FORMAT('      ARE TO BE CALCULATED)')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,556)MINN2
  556 FORMAT('      MUST BE ',I8,' OR LARGER;')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,557)
  557 FORMAT('      SUCH WAS NOT THE CASE HERE.')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,558)
  558 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
      CALL DPWRST('XXX','BUG ')
      IF(IWIDTH.GE.1)WRITE(ICOUT,559)(IANS(I),I=1,IWIDTH)
  559 FORMAT('      ',80A1)
      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
C
  560 CONTINUE
      J=0
      IMAX=NLEFT
      IF(NQ.LT.NLEFT)IMAX=NQ
      DO570I=1,IMAX
      IF(ISUB(I).EQ.0)GOTO570
      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
  570 CONTINUE
      NS=J
C
C               *******************************************************
C               **  STEP 8--                                         **
C               **  PREPARE FOR ENTRANCE INTO TOL   --               **
C               **  SET THE WEIGHT VECTOR TO UNITY THROUGHOUT.       **
C               *******************************************************
C
      ISTEPN='8'
      IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      DO1110I=1,NS
      W(I)=1.0
 1110 CONTINUE
C
C               *********************************
C               **  STEP 9--                   **
C               **  FORM THE TOLERANCE LIMITS **
C               *********************************
C
      ISTEPN='9'
      IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(IBUGA2.EQ.'OFF')GOTO1290
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1211)
 1211 FORMAT('***** FROM DPTOLI, AS WE ARE ABOUT TO CALL TOL--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1212)NLEFT,MAXN,NS
 1212 FORMAT('NLEFT,MAXN,NS = ',3I8)
      CALL DPWRST('XXX','BUG ')
      DO1215I=1,NS
      WRITE(ICOUT,1216)I,Y(I),W(I)
 1216 FORMAT('I,Y(I),W(I) = ',I8,2E15.7)
      CALL DPWRST('XXX','BUG ')
 1215 CONTINUE
CCCCC IBUGA3='ABCD'
      WRITE(ICOUT,1231)IBUGA3
 1231 FORMAT('IBUGA3 = ',A4)
      CALL DPWRST('XXX','BUG ')
 1290 CONTINUE
C
      CALL TOL(Y,NS,ICASAN)
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 DPTOLI--')
      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 DPTPCO(IHARG,NUMARG,IDETPC,MAXTEX,ITEPCO,
     1IBUGP2,IFOUND,IERROR)
C
C     PURPOSE--DEFINE THE TEXT PATTERN COLORS = THE COLORS
C              OF THE LINES MAKING UP A PATTERN WITHIN A TEXT.
C              THESE ARE LOCATED IN THE VECTOR ITEPCO(.).
C     INPUT  ARGUMENTS--IHARG  (A  CHARACTER VECTOR)
C                     --NUMARG
C                     --IDETPC
C                     --MAXTEX
C                     --IBUGP2 ('ON' OR 'OFF' )
C     OUTPUT ARGUMENTS--ITEPCO (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 IDETPC
      CHARACTER*4 ITEPCO
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 ITEPCO(*)
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='DPTP'
      ISUBN2='CO  '
C
      NUMTEX=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 DPTPCO--')
      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)MAXTEX,NUMTEX
   53 FORMAT('MAXTEX,NUMTEX = ',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)IDETPC
   55 FORMAT('IDETPC = ',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)ITEPCO(1)
   70 FORMAT('ITEPCO(1) = ',A4)
      CALL DPWRST('XXX','BUG ')
      DO75I=1,10
      WRITE(ICOUT,76)I,ITEPCO(I)
   76 FORMAT('I,ITEPCO(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
      NUMTEX=1
      ITEPCO(1)=IDETPC
      GOTO1270
C
 1220 CONTINUE
      NUMTEX=NUMARG-2
      IF(NUMTEX.GT.MAXTEX)NUMTEX=MAXTEX
      DO1225I=1,NUMTEX
      J=I+2
      IHOLD1=IHARG(J)
      IHOLD2=IHOLD1
      IF(IHOLD1.EQ.'ON')IHOLD2=IDETPC
      IF(IHOLD1.EQ.'OFF')IHOLD2=IDETPC
      IF(IHOLD1.EQ.'AUTO')IHOLD2=IDETPC
      IF(IHOLD1.EQ.'DEFA')IHOLD2=IDETPC
      ITEPCO(I)=IHOLD2
 1225 CONTINUE
      GOTO1270
C
 1270 CONTINUE
      IF(IFEEDB.EQ.'OFF')GOTO1279
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      DO1278I=1,NUMTEX
      WRITE(ICOUT,1276)I,ITEPCO(I)
 1276 FORMAT('THE COLOR OF TEXT PATTERN ',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
      NUMTEX=MAXTEX
      IHOLD2=IHOLD1
      IF(IHOLD1.EQ.'ON')IHOLD2=IDETPC
      IF(IHOLD1.EQ.'OFF')IHOLD2=IDETPC
      IF(IHOLD1.EQ.'AUTO')IHOLD2=IDETPC
      IF(IHOLD1.EQ.'DEFA')IHOLD2=IDETPC
      DO1315I=1,NUMTEX
      ITEPCO(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)ITEPCO(I)
 1316 FORMAT('THE COLOR OF ALL TEXT PATTERNS',
     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 DPTPCO--')
      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)MAXTEX,NUMTEX
 9013 FORMAT('MAXTEX,NUMTEX = ',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)IDETPC
 9015 FORMAT('IDETPC = ',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)ITEPCO(1)
 9030 FORMAT('ITEPCO(1) = ',A4)
      CALL DPWRST('XXX','BUG ')
      DO9035I=1,10
      WRITE(ICOUT,9036)I,ITEPCO(I)
 9036 FORMAT('I,ITEPCO(I) = ',I8,2X,A4)
      CALL DPWRST('XXX','BUG ')
 9035 CONTINUE
 9090 CONTINUE
C
      RETURN
      END
      SUBROUTINE DPTPLI(IHARG,IHARG2,NUMARG,IDETPL,MAXTEX,ITEPLI,
CCCCC AUGUST 1995.  ADD IHARG2 FOR DASH2, ETC
CCCC  SUBROUTINE DPTPLI(IHARG,NUMARG,IDETPL,MAXTEX,ITEPLI,
     1IBUGP2,IFOUND,IERROR)
C
C     PURPOSE--DEFINE THE PATTERN LINES = THE LINES TYPES
C              OF THE PATTERN WITHIN THE TEXTS.
C              THESE ARE LOCATED IN THE VECTOR ITEPLI(.).
C     INPUT  ARGUMENTS--IHARG  (A  CHARACTER VECTOR)
C                     --NUMARG
C                     --IDETPL
C                     --MAXTEX
C                     --IBUGP2 ('ON' OR 'OFF' )
C     OUTPUT ARGUMENTS--ITEPLI (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 IDETPL
      CHARACTER*4 ITEPLI
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 ITEPLI(*)
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='DPTP'
      ISUBN2='LI  '
C
      NUMTEX=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 DPTPLI--')
      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)MAXTEX,NUMTEX
   53 FORMAT('MAXTEX,NUMTEX = ',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)IDETPL
   55 FORMAT('IDETPL = ',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)ITEPLI(1)
   70 FORMAT('ITEPLI(1) = ',A4)
      CALL DPWRST('XXX','BUG ')
      DO75I=1,10
      WRITE(ICOUT,76)I,ITEPLI(I)
   76 FORMAT('I,ITEPLI(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
CCCCC APRIL 1996.  CHANGE IHOLD TO IHOLD1 BELOW
      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
      NUMTEX=1
      ITEPLI(1)='    '
      GOTO1270
C
 1220 CONTINUE
      NUMTEX=NUMARG-3
      IF(NUMTEX.GT.MAXTEX)NUMTEX=MAXTEX
      DO1225I=1,NUMTEX
      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=IDETPL
      IF(IHOLD1.EQ.'DEFA')IHOLD2=IDETPL
      ITEPLI(I)=IHOLD2
 1225 CONTINUE
      GOTO1270
C
 1270 CONTINUE
      IF(IFEEDB.EQ.'OFF')GOTO1279
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      DO1278I=1,NUMTEX
      WRITE(ICOUT,1276)I,ITEPLI(I)
 1276 FORMAT('THE LINE TYPE FOR TEXT PATTERN ',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
      NUMTEX=MAXTEX
      IHOLD2=IHOLD1
      IF(IHOLD1.EQ.'ON')IHOLD2='SOLI'
      IF(IHOLD1.EQ.'OFF')IHOLD2='    '
      IF(IHOLD1.EQ.'AUTO')IHOLD2=IDETPL
      IF(IHOLD1.EQ.'DEFA')IHOLD2=IDETPL
      DO1315I=1,NUMTEX
      ITEPLI(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)ITEPLI(I)
 1316 FORMAT('THE LINE TYPE FOR ALL TEXT PATTERNS',
     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 DPTPLI--')
      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)MAXTEX,NUMTEX
 9013 FORMAT('MAXTEX,NUMTEX = ',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)IDETPL
 9015 FORMAT('IDETPL = ',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)ITEPLI(1)
 9030 FORMAT('ITEPLI(1) = ',A4)
      CALL DPWRST('XXX','BUG ')
      DO9035I=1,10
      WRITE(ICOUT,9036)I,ITEPLI(I)
 9036 FORMAT('I,ITEPLI(I) = ',I8,2X,A4)
      CALL DPWRST('XXX','BUG ')
 9035 CONTINUE
 9090 CONTINUE
C
      RETURN
      END
      SUBROUTINE DPTPSP(IHARG,IARGT,ARG,NUMARG,PDETPS,MAXTEX,PTEPSP,
     1IBUGP2,IFOUND,IERROR)
C
C     PURPOSE--DEFINE THE TEXT PATTERN SPACINGS = THE SPACINGS
C              BETWEEN THE LINES WHICH MAKE UP THE PATTERNS WITHIN THE TEXTS.
C              THESE ARE LOCATED IN THE VECTOR PTEPSP(.).
C     INPUT  ARGUMENTS--IHARG  (A  CHARACTER VECTOR)
C                     --IARGT  (A  CHARACTER VECTOR)
C                     --ARG
C                     --NUMARG
C                     --PDETPS
C                     --MAXTEX
C                     --IBUGP2 ('ON' OR 'OFF' )
C     OUTPUT ARGUMENTS--PTEPSP (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 PTEPSP(*)
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='DPTP'
      ISUBN2='SP  '
C
      NUMTEX=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 DPTPSP--')
      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)MAXTEX,NUMTEX
   53 FORMAT('MAXTEX,NUMTEX = ',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)PDETPS
   55 FORMAT('PDETPS = ',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)PTEPSP(1)
   70 FORMAT('PTEPSP(1) = ',E15.7)
      CALL DPWRST('XXX','BUG ')
      DO75I=1,10
      WRITE(ICOUT,76)I,PTEPSP(I)
   76 FORMAT('I,PTEPSP(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=PDETPS
      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
      NUMTEX=1
      PTEPSP(1)=PDETPS
      GOTO1270
C
 1220 CONTINUE
      NUMTEX=NUMARG-2
      IF(NUMTEX.GT.MAXTEX)NUMTEX=MAXTEX
      DO1225I=1,NUMTEX
      J=I+2
      IHOLD1=IHARG(J)
      HOLD1=ARG(J)
      HOLD2=HOLD1
      IF(IHOLD1.EQ.'ON')HOLD2=PDETPS
      IF(IHOLD1.EQ.'OFF')HOLD2=PDETPS
      IF(IHOLD1.EQ.'AUTO')HOLD2=PDETPS
      IF(IHOLD1.EQ.'DEFA')HOLD2=PDETPS
      PTEPSP(I)=HOLD2
 1225 CONTINUE
      GOTO1270
C
 1270 CONTINUE
      IF(IFEEDB.EQ.'OFF')GOTO1279
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      DO1278I=1,NUMTEX
      WRITE(ICOUT,1276)I,PTEPSP(I)
 1276 FORMAT('THE SPACING BETWEEN (LINES WITHIN) PATTERN ',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
      NUMTEX=MAXTEX
      HOLD2=HOLD1
      IF(IHOLD1.EQ.'ON')HOLD2=PDETPS
      IF(IHOLD1.EQ.'OFF')HOLD2=PDETPS
      IF(IHOLD1.EQ.'AUTO')HOLD2=PDETPS
      IF(IHOLD1.EQ.'DEFA')HOLD2=PDETPS
      DO1315I=1,NUMTEX
      PTEPSP(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)PTEPSP(I)
 1316 FORMAT('THE SPACING BETWEEN (LINES WITHIN) ALL PATTERNS',
     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 DPTPSP--')
      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)MAXTEX,NUMTEX
 9013 FORMAT('MAXTEX,NUMTEX = ',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)PDETPS
 9015 FORMAT('PDETPS = ',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)PTEPSP(1)
 9030 FORMAT('PTEPSP(1) = ',E15.7)
      CALL DPWRST('XXX','BUG ')
      DO9035I=1,10
      WRITE(ICOUT,9036)I,PTEPSP(I)
 9036 FORMAT('I,PTEPSP(I) = ',I8,2X,E15.7)
      CALL DPWRST('XXX','BUG ')
 9035 CONTINUE
 9090 CONTINUE
C
      RETURN
      END
      SUBROUTINE DPTPTH(IHARG,IARGT,ARG,NUMARG,PDETPT,MAXTEX,PTEPTH,
     1IBUGP2,IFOUND,IERROR)
C
C     PURPOSE--DEFINE THE TEXT PATTERN THICKNESSES = THE THICKNESSES
C              OF THE LINES WHICH MAKE UP THE PATTERNS WITHIN THE TEXTS.
C              THESE ARE LOCATED IN THE VECTOR PTEPTH(.).
C     INPUT  ARGUMENTS--IHARG  (A  CHARACTER VECTOR)
C                     --IARGT  (A  CHARACTER VECTOR)
C                     --ARG
C                     --NUMARG
C                     --PDETPT
C                     --MAXTEX
C                     --IBUGP2 ('ON' OR 'OFF' )
C     OUTPUT ARGUMENTS--PTEPTH (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 PTEPTH(*)
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='DPTP'
      ISUBN2='TH  '
C
      NUMTEX=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 DPTPTH--')
      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)MAXTEX,NUMTEX
   53 FORMAT('MAXTEX,NUMTEX = ',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)PDETPT
   55 FORMAT('PDETPT = ',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)PTEPTH(1)
   70 FORMAT('PTEPTH(1) = ',E15.7)
      CALL DPWRST('XXX','BUG ')
      DO75I=1,10
      WRITE(ICOUT,76)I,PTEPTH(I)
   76 FORMAT('I,PTEPTH(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=PDETPT
      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(2)
      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
      NUMTEX=1
      PTEPTH(1)=PDETPT
      GOTO1270
C
 1220 CONTINUE
      NUMTEX=NUMARG-2
      IF(NUMTEX.GT.MAXTEX)NUMTEX=MAXTEX
      DO1225I=1,NUMTEX
      J=I+2
      IHOLD1=IHARG(J)
      HOLD1=ARG(J)
      HOLD2=HOLD1
      IF(IHOLD1.EQ.'ON')HOLD2=PDETPT
      IF(IHOLD1.EQ.'OFF')HOLD2=PDETPT
      IF(IHOLD1.EQ.'AUTO')HOLD2=PDETPT
      IF(IHOLD1.EQ.'DEFA')HOLD2=PDETPT
      PTEPTH(I)=HOLD2
 1225 CONTINUE
      GOTO1270
C
 1270 CONTINUE
      IF(IFEEDB.EQ.'OFF')GOTO1279
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      DO1278I=1,NUMTEX
      WRITE(ICOUT,1276)I,PTEPTH(I)
 1276 FORMAT('THE THICKNESS OF (LINES WITHIN) PATTERN ',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
      NUMTEX=MAXTEX
      HOLD2=HOLD1
      IF(IHOLD1.EQ.'ON')HOLD2=PDETPT
      IF(IHOLD1.EQ.'OFF')HOLD2=PDETPT
      IF(IHOLD1.EQ.'AUTO')HOLD2=PDETPT
      IF(IHOLD1.EQ.'DEFA')HOLD2=PDETPT
      DO1315I=1,NUMTEX
      PTEPTH(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)PTEPTH(I)
 1316 FORMAT('THE THICKNESS OF (LINES WITHIN) ALL PATTERNS',
     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 DPTPTH--')
      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)MAXTEX,NUMTEX
 9013 FORMAT('MAXTEX,NUMTEX = ',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)PDETPT
 9015 FORMAT('PDETPT = ',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)PTEPTH(1)
 9030 FORMAT('PTEPTH(1) = ',E15.7)
      CALL DPWRST('XXX','BUG ')
      DO9035I=1,10
      WRITE(ICOUT,9036)I,PTEPTH(I)
 9036 FORMAT('I,PTEPTH(I) = ',I8,2X,E15.7)
      CALL DPWRST('XXX','BUG ')
 9035 CONTINUE
 9090 CONTINUE
C
      RETURN
      END
      SUBROUTINE DPTPTY(IHARG,NUMARG,IDETPT,MAXTEX,ITEPTY,
     1IBUGP2,IFOUND,IERROR)
C
C     PURPOSE--DEFINE THE PATTERN TYPES = THE TYPES
C              OF THE PATTERN WITHIN THE TEXTS.
C              THESE ARE LOCATED IN THE VECTOR ITEPTY(.).
C     INPUT  ARGUMENTS--IHARG  (A  CHARACTER VECTOR)
C                     --NUMARG
C                     --IDETPT
C                     --MAXTEX
C                     --IBUGP2 ('ON' OR 'OFF' )
C     OUTPUT ARGUMENTS--ITEPTY (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 IDETPT
      CHARACTER*4 ITEPTY
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 ITEPTY(*)
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='DPTP'
      ISUBN2='TY  '
C
      NUMTEX=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 DPTPTY--')
      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)MAXTEX,NUMTEX
   53 FORMAT('MAXTEX,NUMTEX = ',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)IDETPT
   55 FORMAT('IDETPT = ',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)ITEPTY(1)
   70 FORMAT('ITEPTY(1) = ',A4)
      CALL DPWRST('XXX','BUG ')
      DO75I=1,10
      WRITE(ICOUT,76)I,ITEPTY(I)
   76 FORMAT('I,ITEPTY(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
      NUMTEX=1
      ITEPTY(1)='    '
      GOTO1270
C
 1220 CONTINUE
      NUMTEX=NUMARG-2
      IF(NUMTEX.GT.MAXTEX)NUMTEX=MAXTEX
      DO1225I=1,NUMTEX
      J=I+2
      IHOLD1=IHARG(J)
      IHOLD2=IHOLD1
      IF(IHOLD1.EQ.'ON')IHOLD2='SOLI'
      IF(IHOLD1.EQ.'OFF')IHOLD2='    '
      IF(IHOLD1.EQ.'AUTO')IHOLD2=IDETPT
      IF(IHOLD1.EQ.'DEFA')IHOLD2=IDETPT
      ITEPTY(I)=IHOLD2
 1225 CONTINUE
      GOTO1270
C
 1270 CONTINUE
      IF(IFEEDB.EQ.'OFF')GOTO1279
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      DO1278I=1,NUMTEX
      WRITE(ICOUT,1276)I,ITEPTY(I)
 1276 FORMAT('THE TYPE FOR TEXT PATTERN ',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
      NUMTEX=MAXTEX
      IHOLD2=IHOLD1
      IF(IHOLD1.EQ.'ON')IHOLD2='SOLI'
      IF(IHOLD1.EQ.'OFF')IHOLD2='    '
      IF(IHOLD1.EQ.'AUTO')IHOLD2=IDETPT
      IF(IHOLD1.EQ.'DEFA')IHOLD2=IDETPT
      DO1315I=1,NUMTEX
      ITEPTY(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)ITEPTY(I)
 1316 FORMAT('THE TYPE FOR ALL TEXT PATTERNS',
     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 DPTPTY--')
      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)MAXTEX,NUMTEX
 9013 FORMAT('MAXTEX,NUMTEX = ',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)IDETPT
 9015 FORMAT('IDETPT = ',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)ITEPTY(1)
 9030 FORMAT('ITEPTY(1) = ',A4)
      CALL DPWRST('XXX','BUG ')
      DO9035I=1,10
      WRITE(ICOUT,9036)I,ITEPTY(I)
 9036 FORMAT('I,ITEPTY(I) = ',I8,2X,A4)
      CALL DPWRST('XXX','BUG ')
 9035 CONTINUE
 9090 CONTINUE
C
      RETURN
      END
      SUBROUTINE DPTREN(XTEMP1,XTEMP2,MAXNXT,
     1ICAPSW,ISUBRO,
     1IBUGA2,IBUGA3,IBUGQ,IFOUND,IERROR)
C
C     PURPOSE--CARRY OUT 3 TRENDS TEST FOR RELIABILITY ANALYSIS.
C              1) REVERSE ARRANGEMENTS TEST
C              2) MILITARY HANDBOOK TEST
C              3) LAPLACE TEST
C     EXAMPLES--LET TEND = ; RELIABILITY TREND TEST Y
C             --LET TEND = ; RELIABILITY TREND TEST Y GROUPID
C             --RELIABILITY TREND TEST Y GROUPID CENSOR
C     REFERENCE--TOBIAS AND TRINDADE (1995), "APPLIED RELIABILITY
C                ANALYSIS", SECOND EDITION, CHAPMAN & HALL/CRC,
C                PP. 344-354.
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--98/5
C     ORIGINAL VERSION--MAY       1998.
C     UPDATED         --OCTOBER   2006. SUPPORT FOR MULTIPLE SYSTEMS
C     UPDATED         --OCTOBER   2006. CAPTURE HTML/LATEX/RTF
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
      CHARACTER*4 ICAPSW
      CHARACTER*4 ISUBRO
      CHARACTER*4 IBUGA2
      CHARACTER*4 IBUGA3
      CHARACTER*4 IBUGQ
      CHARACTER*4 IFOUND
      CHARACTER*4 IERROR
C
      CHARACTER*4 IHP
      CHARACTER*4 IHP2
      CHARACTER*4 IHWUSE
      CHARACTER*4 MESSAG
      CHARACTER*4 ICASEQ
      CHARACTER*4 IHLEFT
      CHARACTER*4 IHLEF2
      CHARACTER*4 IHGROU
      CHARACTER*4 IHGRO2
      CHARACTER*4 IHCENS
      CHARACTER*4 IHCEN2
C
      CHARACTER*4 ISUBN1
      CHARACTER*4 ISUBN2
      CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
      INCLUDE 'DPCOPA.INC'
C
      DIMENSION XTEMP1(*)
      DIMENSION XTEMP2(*)
C
      DIMENSION Y1(MAXOBV)
      DIMENSION X1(MAXOBV)
      DIMENSION XCEN(MAXOBV)
      DIMENSION TEMP1(MAXOBV)
      DIMENSION TEMP2(MAXOBV)
      DIMENSION TEMP3(MAXOBV)
      DIMENSION TEMP4(MAXOBV)
      DIMENSION TEMP5(MAXOBV)
      DIMENSION TEMP6(MAXOBV)
C
      INCLUDE 'DPCOZZ.INC'
      EQUIVALENCE (GARBAG(IGARB1),Y1(1))
      EQUIVALENCE (GARBAG(IGARB2),X1(1))
      EQUIVALENCE (GARBAG(IGARB3),XCEN(1))
      EQUIVALENCE (GARBAG(IGARB4),TEMP1(1))
      EQUIVALENCE (GARBAG(IGARB5),TEMP2(1))
      EQUIVALENCE (GARBAG(IGARB6),TEMP3(1))
      EQUIVALENCE (GARBAG(IGARB7),TEMP4(1))
      EQUIVALENCE (GARBAG(IGARB8),TEMP5(1))
      EQUIVALENCE (GARBAG(IGARB9),TEMP6(1))
C
C-----COMMON----------------------------------------------------------
C
      INCLUDE 'DPCOHK.INC'
      INCLUDE 'DPCOSU.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='DPTR'
      ISUBN2='EN  '
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
      MAXV2=3
      MINN2=4
C
      IFOUND='YES'
C
      NLEFT=0
C
      ICASEQ='UNKN'
C
C               **********************************
C               **  TREAT THE TRENDS TEST CASE  **
C               **********************************
C
      IF(IBUGA2.EQ.'ON' .OR. ISUBRO.EQ.'TREN')THEN
        WRITE(ICOUT,999)
  999   FORMAT(1X)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,51)
   51   FORMAT('***** AT THE BEGINNING OF DPTREN--')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,52)IBUGA2,IBUGA3,IBUGQ
   52   FORMAT('IBUGA2,IBUGA3,IBUGQ = ',A4,2X,A4,2X,A4)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,55)MAXNXT
   55   FORMAT('MAXNXT = ',I8)
        CALL DPWRST('XXX','BUG ')
      ENDIF
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.'TREN')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      MINNA=1
      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     **
C               **  (NLEFT) FOR THE RESPONSE VARIABLE IS 2 OR MORE. **
C               ******************************************************
C
      ISTEPN='4'
      IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TREN')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(NLEFT.LT.MINN2)THEN
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,311)
  311   FORMAT('***** ERROR IN RELIABILITY TREND TEST--')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,312)
  312   FORMAT('      THE INPUT NUMBER OF OBSERVATIONS FOR WHICH A')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,314)
  314   FORMAT('      RELIABILITY TRENDS TEST WAS TO HAVE BEEN ')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,315)MINN2
  315   FORMAT('      CARRIED OUT 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)
  317   FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
        CALL DPWRST('XXX','BUG ')
        IF(IWIDTH.GE.1)THEN
          WRITE(ICOUT,318)(IANS(I),I=1,MIN(80,IWIDTH))
  318     FORMAT(80A1)
          CALL DPWRST('XXX','BUG ')
        ENDIF
        IERROR='YES'
        GOTO9000
      ENDIF
C
C               *****************************************
C               **  STEP 4--                           **
C               **  CHECK TO SEE THE IF THE PARAMETER  **
C               **  TEND (TO SPECIFY THE CENSORING TIME)*
C               *****************************************
C
      IHP='TEND'
      IHP2='    '
      IHWUSE='P'
      MESSAG='NO'
      CALL CHECKN(IHP,IHP2,IHWUSE,
     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
      IF(IERROR.EQ.'YES')THEN
        TEND=CPUMIN
      ELSE
        TEND=VALUE(ILOCP)
      ENDIF
C
C               ********************************************
C               **  STEP 13--                             **
C               **  CHECK THE VALIDITY OF ARGUMENT 2      **
C               **  (THIS WILL BE THE GROUP-ID VARIABLE)  **
C               ********************************************
C
      ISTEPN='13'
      IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TREN')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IHGROU=IHARG(2)
      IHGRO2=IHARG2(2)
      IHWUSE='V'
      MESSAG='NO'
      CALL CHECKN(IHGROU,IHGRO2,IHWUSE,
     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
      IF(IERROR.EQ.'YES')THEN
        ICOLG=0
        NGROUP=0
      ELSE
        ICOLG=IVALUE(ILOCV)
        NGROUP=IN(ILOCV)
      ENDIF
C
C               ****************************************************
C               **  STEP 14--                                     **
C               **  CHECK THAT THE INPUT NUMBER OF OBSERVATIONS   **
C               **  (NGROUP) FOR THE GROUP-ID VARIABLE IS EQUAL   **
C               **  THE NUMBER OF OBSERVATIONS FOR THE RESPONSE   **
C               **  VARIABLE.                                     **
C               ****************************************************
C
      ISTEPN='14'
      IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TREN')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(NGROUP.GT.0 .AND. (NGROUP.NE.NLEFT))THEN
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1411)
 1411   FORMAT('***** ERROR IN RELIABILITY TREND TEST--')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1412)IHGROU,IHGRO2
 1412   FORMAT('      THE INPUT NUMBER OF OBSERVATIONS ',
     1         'IN THE GROUP-ID VARIABLE ',A4,A4)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1413)
 1413   FORMAT('      IS NOT EQUAL TO THE NUMBER OF OBSERVATIONS')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1414)IHLEFT,IHLEF2
 1414   FORMAT('      IN THE RESPONSE VARIABLE ',A4,A4,'.')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1415)IHGROU,IHGROU2,NGROUP
 1415   FORMAT('      THE NUMBBER OF OBSERVATIONS IN ',A4,A4,
     1         ' = ',I10)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1415)IHLEFT,IHLEF2,NLEFT
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1417)
 1417   FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
        CALL DPWRST('XXX','BUG ')
        IF(IWIDTH.GE.1)THEN
          WRITE(ICOUT,1418)(IANS(I),I=1,MAX(80,IWIDTH))
 1418     FORMAT('      ',80A1)
          CALL DPWRST('XXX','BUG ')
        ENDIF
        IERROR='YES'
        GOTO9000
      ENDIF
C
C               ********************************************
C               **  STEP 15--                             **
C               **  CHECK THE VALIDITY OF ARGUMENT 3      **
C               **  (THIS WILL BE THE CESNORING VARIABLE) **
C               ********************************************
C
      ISTEPN='15'
      IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TREN')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IHCENS=IHARG(3)
      IHCEN2=IHARG2(3)
      IHWUSE='V'
      MESSAG='NO'
      CALL CHECKN(IHCENS,IHCEN2,IHWUSE,
     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
      IF(IERROR.EQ.'YES')THEN
        ICOLC=0
        NCENS=0
      ELSE
        ICOLC=IVALUE(ILOCV)
        NCENS=IN(ILOCV)
      ENDIF
C
C               ****************************************************
C               **  STEP 16--                                     **
C               **  CHECK THAT THE INPUT NUMBER OF OBSERVATIONS   **
C               **  (NCENS) FOR THE CENSORING VARIABLE IS EQUAL   **
C               **  THE NUMBER OF OBSERVATIONS FOR THE RESPONSE   **
C               **  VARIABLE.                                     **
C               ****************************************************
C
      ISTEPN='16'
      IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TREN')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(NCENS.GT.0 .AND. (NCENS.NE.NLEFT))THEN
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1611)
 1611   FORMAT('***** ERROR IN RELIABILITY TREND TEST--')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1612)IHCENS,IHCEN2
 1612   FORMAT('      THE INPUT NUMBER OF OBSERVATIONS ',
     1         'IN THE CENSORING VARIABLE ',A4,A4)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1613)
 1613   FORMAT('      IS NOT EQUAL TO THE NUMBER OF OBSERVATIONS')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1614)IHLEFP,IHLEF2
 1614   FORMAT('      IN THE RESPONSE VARIABLE ',A4,A4,'.')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1615)IHCENS,IHCEN2,NCENS
 1615   FORMAT('      THE NUMBBER OF OBSERVATIONS IN ',A4,A4,
     1         ' = ',I10)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1615)IHLEFP,IHLEF2,NLEFT
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1617)
 1617   FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
        CALL DPWRST('XXX','BUG ')
        IF(IWIDTH.GE.1)THEN
          WRITE(ICOUT,1618)(IANS(I),I=1,MAX(80,IWIDTH))
 1618     FORMAT('      ',80A1)
          CALL DPWRST('XXX','BUG ')
        ENDIF
        IERROR='YES'
        GOTO9000
      ENDIF
C
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
C
      IF(ILOCQ.EQ.2)THEN
        NCENS=0
        NGROUP=0
      ENDIF
      IF(ILOCQ.EQ.3)THEN
        NCENS=0
      ENDIF
C
      IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TREN')THEN
        WRITE(ICOUT,491)NUMARG,ILOCQ,NCENS,NGROUP
  491   FORMAT('NUMARG,ILOCQ,NRESP,NGROUP = ',4I8)
        CALL DPWRST('XXX','BUG ')
      ENDIF
C
C               ***********************************************
C               **  STEP 22--                                **
C               **  CHECK FOR A VALID NUMBER OF VARIABLES    **
C               **  (EITHER 1, 2, OR 3)                      **
C               **  FOR A RELIABILITY TRENDS PLOT            **
C               ***********************************************
C
      ISTEPN='22'
      IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TREN')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      NUMV2=ILOCQ-1
      IF(NUMV2.LT.1 .OR. NUMV2.GT.MAXV2)THEN
C
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,2251)
 2251   FORMAT('***** ERROR IN RELIABILITY TREND TEST--')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,2253)
 2253   FORMAT('      THE NUMBER OF VARIABLES MUST BE 1, 2, OR 3;')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,2255)
 2255   FORMAT('      SUCH WAS NOT THE CASE HERE;  THE SPECIFIED')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,2257)NUMV2
 2257   FORMAT('      NUMBER OF VARIABLES WAS ',I10)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,2258)
 2258   FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
        CALL DPWRST('XXX','BUG ')
        IF(IWIDTH.GE.1)THEN
          WRITE(ICOUT,2259)(IANS(I),I=1,MAX(80,IWIDTH))
 2259     FORMAT(80A1)
          CALL DPWRST('XXX','BUG ')
        ENDIF
        IERROR='YES'
        GOTO9000
C
      ENDIF
C
C
C               *********************************************
C               **  STEP 5--                               **
C               **  TEMPORARILY FORM THE VARIABLE Y(.)     **
C               **  WHICH WILL HOLD THE RESPONSE VARIABLE. **
C               **  FORM THIS VARIABLE BY                  **
C               **  BRANCHING TO THE APPROPRIATE SUBCASE   **
C               **  (FULL, SUBSET, OR FOR).                **
C               *********************************************
C
      ISTEPN='5'
      IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TREN')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(ICASEQ.EQ.'FULL')GOTO510
      IF(ICASEQ.EQ.'SUBS')GOTO520
      IF(ICASEQ.EQ.'FOR')GOTO530
C
  510 CONTINUE
      DO515I=1,NLEFT
      ISUB(I)=1
  515 CONTINUE
      NQ=NLEFT
      GOTO550
C
  520 CONTINUE
      NIOLD=NLEFT
      CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR)
      NQ=NIOLD
      GOTO550
C
  530 CONTINUE
      NIOLD=NLEFT
      CALL DPFOR(NIOLD,NFOR,IROW1,IROWN,
     1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
      NQ=NFOR
      GOTO550
C
  550 CONTINUE
C
      IF(NQ.LT.MINN2)THEN
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,551)
  551   FORMAT('***** ERROR IN RELIABILITY TREND TEST--')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,552)
  552   FORMAT('      AFTER THE APPROPRIATE SUBSET HAS BEEN ',
     1         'EXTRACTED,')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,553)IHLEFT,IHLEF2
  553   FORMAT('      THE NUMBER OF OBSERVATIONS REMAINING ',
     1         'FROM VARIABLE ',A4,A4)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,554)
  554   FORMAT('      FOR WHICH A TRENDS TEST IS TO BE CARRIED OUT')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,556)MINN2
  556   FORMAT('      MUST BE ',I8,' OR LARGER;')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,557)
  557   FORMAT('      SUCH WAS NOT THE CASE HERE.')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,558)
  558   FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
        CALL DPWRST('XXX','BUG ')
        IF(IWIDTH.GE.1)THEN
          WRITE(ICOUT,559)(IANS(I),I=1,MIN(80,IWIDTH))
  559     FORMAT('      ',80A1)
          CALL DPWRST('XXX','BUG ')
        ENDIF
        IERROR='YES'
        GOTO9000
      ENDIF
C
      J=0
      IMAX=NLEFT
      IF(NQ.LT.NLEFT)IMAX=NQ
C
      DO570I=1,IMAX
C
        IF(ISUB(I).EQ.0)GOTO570
        J=J+1
        IJ=MAXN*(ICOLL-1)+I
        IF(ICOLL.LE.MAXCOL)Y1(J)=V(IJ)
        IF(ICOLL.EQ.MAXCP1)Y1(J)=PRED(I)
        IF(ICOLL.EQ.MAXCP2)Y1(J)=RES(I)
        IF(ICOLL.EQ.MAXCP3)Y1(J)=YPLOT(I)
        IF(ICOLL.EQ.MAXCP4)Y1(J)=XPLOT(I)
        IF(ICOLL.EQ.MAXCP5)Y1(J)=X2PLOT(I)
        IF(ICOLL.EQ.MAXCP6)Y1(J)=TAGPLO(I)
C
        IF(NGROUP.GT.0)THEN
          IJ=MAXN*(ICOLG-1)+I
          IF(ICOLG.LE.MAXCOL)X1(J)=V(IJ)
          IF(ICOLG.EQ.MAXCP1)X1(J)=PRED(I)
          IF(ICOLG.EQ.MAXCP2)X1(J)=RES(I)
          IF(ICOLG.EQ.MAXCP3)X1(J)=YPLOT(I)
          IF(ICOLG.EQ.MAXCP4)X1(J)=XPLOT(I)
          IF(ICOLG.EQ.MAXCP5)X1(J)=X2PLOT(I)
          IF(ICOLG.EQ.MAXCP6)X1(J)=TAGPLO(I)
        ELSE
          X1(J)=0.0
        ENDIF
C
        IF(NCENS.GT.0)THEN
          IJ=MAXN*(ICOLC-1)+I
          IF(ICOLC.LE.MAXCOL)XCEN(J)=V(IJ)
          IF(ICOLC.EQ.MAXCP1)XCEN(J)=PRED(I)
          IF(ICOLC.EQ.MAXCP2)XCEN(J)=RES(I)
          IF(ICOLC.EQ.MAXCP3)XCEN(J)=YPLOT(I)
          IF(ICOLC.EQ.MAXCP4)XCEN(J)=XPLOT(I)
          IF(ICOLC.EQ.MAXCP5)XCEN(J)=X2PLOT(I)
          IF(ICOLC.EQ.MAXCP6)XCEN(J)=TAGPLO(I)
        ELSE
          XCEN(J)=0.0
        ENDIF
C
  570 CONTINUE
      NS=J
C
C               ******************************************************
C               **  STEP 8--
C               **  PREPARE FOR ENTRANCE INTO DPTREN2--
C               ******************************************************
C
      ISTEPN='8'
      IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'TREN')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(IBUGA2.EQ.'ON' .OR. ISUBRO.EQ.'TREN')THEN
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1211)
 1211   FORMAT('***** FROM DPTREN, AS WE ARE ABOUT TO CALL DPTRE2--')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,1212)NLEFT,MAXN,NS
 1212   FORMAT('NLEFT,MAXN,NS = ',3I8)
        CALL DPWRST('XXX','BUG ')
        DO1215I=1,NS
          WRITE(ICOUT,1216)I,Y1(I)
 1216     FORMAT('I,Y1(I) = ',I8,G15.7)
          CALL DPWRST('XXX','BUG ')
 1215   CONTINUE
        WRITE(ICOUT,1231)IBUGA3
 1231   FORMAT('IBUGA3 = ',A4)
        CALL DPWRST('XXX','BUG ')
      ENDIF
C
      CALL DPTRE2(Y1,NS,X1,NGROUP,XCEN,NCENS,
     1            ICAPSW,ICAPTY,
     1            XTEMP1,XTEMP2,
     1            TEMP1,TEMP2,TEMP3,TEMP4,TEMP5,TEMP6,
     1            TEND,MAXNXT,
     1            ISUBRO,IBUGA3,IERROR)
C
C               *****************
C               **  STEP 90--  **
C               **  EXIT       **
C               *****************
C
 9000 CONTINUE
      IF(IBUGA2.EQ.'ON' .OR. ISUBRO.EQ.'TREN')THEN
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,9011)
 9011   FORMAT('***** AT THE END       OF DPTREN--')
        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 ')
      ENDIF
C
      RETURN
      END
      SUBROUTINE DPTRE2(Y,N,X1,NGROUP,XCEN,NCENS,
     1            ICAPSW,ICAPTY,
     1            XTEMP1,XTEMP2,
     1            XIDTEM,TEMP2,TEMP3,TEMP4,TEMP5,TEMP6,
     1            TEND,MAXNXT,
     1            ISUBRO,IBUGA3,IERROR)
C
C     PURPOSE--THIS ROUTINE CARRIES OUT A TRENDS ANALYSIS
C              FOR THE DATA IN THE INPUT VECTOR Y.
C     INPUT ARGUMENTS--Y      = THE SINGLE PRECISION VECTOR OF
C                               (UNSORTED) REPAIR/CENSORING TIMES.
C                    --X1     = THE OPTIONAL SINGLE PRECISION VECTOR
C                               GROUP-ID VALUES
C                    --XCEN   = THE OPTIONAL SINGLE PRECISION VECTOR
C                               OF CENSOR VALUES (1 = REPAIR
C                               TIME, 0 = CENSOR TIME).
C                      NY     = THE INTEGER NUMBER OF OBSERVATIONS
C                               IN THE VECTOR Y.
C                      NX     = THE INTEGER NUMBER OF OBSERVATIONS
C                               IN THE VECTOR X1.
C                      NC     = THE INTEGER NUMBER OF OBSERVATIONS
C                               IN THE VECTOR XCEN.
C     REFERENCE--TOBIAS AND TRINDADE (1995), "APPLIED
C                RELIABILITY", SECOND EDITION, CHAPMAN AND HALL,
C                PP. 314.
C     NOTE--3 TRENDS TESTS ARE PERFORMED:
C           1) REVERSE ARRANGEMENT TEST
C           2) MILITARY HANDBOOK TEST
C           3) LAPLACE TEST
C     FORTRAN LIBRARY SUBROUTINES NEEDED--SQRT.
C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
C     LANGUAGE--ANSI 77 FORTRAN.
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--98/5
C     ORIGINAL VERSION--MAY       1998.
C     UPDATED         --OCTOBER   2006. SUPPORT FOR MULTIPLE SYSTEMS
C     UPDATED         --OCTOBER   2006. SUPPORT FOR HTML/LATEX/RFT
C                                       OUTPUT
C     UPDATED         --OCTOBER   2006. CHANGE OUTPUT FORMAT FOR
C                                       REVERSE ARRANGEMENT TEST
C                                       AND CORRECTED BUG IN THIS
C                                       TEST
C     UPDATED         --OCTOBER   2006. CODE FOR SINGLE TEST
C                                       EXTRACTED TO DPTRE3
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
      CHARACTER*4 ISUBN1
      CHARACTER*4 ISUBN2
      CHARACTER*4 ISTEPN
C
      DOUBLE PRECISION DSUM1
      DOUBLE PRECISION DSUM2
      DOUBLE PRECISION DSUM3
      DOUBLE PRECISION DVAL2
      DOUBLE PRECISION DVAL3
C
      REAL MHTPVA
C
C---------------------------------------------------------------------
C
      DOUBLE PRECISION DSUM
C
      CHARACTER*6 ICONC1
      CHARACTER*6 ICONC2
      CHARACTER*6 ICONC3
      CHARACTER*6 ICONC4
      CHARACTER*6 ICONC5
      CHARACTER*6 ICONC6
C
      DIMENSION Y(*)
      DIMENSION X1(*)
      DIMENSION XCEN(*)
      DIMENSION XTEMP1(*)
      DIMENSION XTEMP2(*)
      DIMENSION XIDTEM(*)
      DIMENSION TEMP2(*)
      DIMENSION TEMP3(*)
      DIMENSION TEMP4(*)
      DIMENSION TEMP5(*)
      DIMENSION TEMP6(*)
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)
      CHARACTER*50 IVAL2
      INTEGER NCHAR(MAXHED)
      REAL AVALUE(MAXHED)
C
      LOGICAL IFLAG1
      LOGICAL IFLAG2
      LOGICAL IFLAG3
C
      CHARACTER*1 IBASLC
C
      CHARACTER*132 ITTEMP
      CHARACTER*132 IHEAD
C
      CHARACTER*4 IRTFMD
      COMMON/COMRTF/IRTFMD
C
      INCLUDE 'DPCOST.INC'
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='DPTR'
      ISUBN2='E2  '
C
      IERROR='NO'
C
      MAXSYS=10000
C
      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'TRE2')THEN
        WRITE(ICOUT,999)
  999   FORMAT(1X)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,51)
   51   FORMAT('**** AT THE BEGINNING OF DPTRE2--')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,52)N,IBUGA3
   52   FORMAT('N,IBUGA3 = ',I8,2X,A4)
        CALL DPWRST('XXX','BUG ')
        DO56I=1,MIN(N,100)
          WRITE(ICOUT,57)I,Y(I),X1(I),XCEN(I)
   57     FORMAT('I,Y(I),X1(I),XCEN(I) = ',I8,3G15.7)
          CALL DPWRST('XXX','BUG ')
   56   CONTINUE
      ENDIF
C
C               ********************************************
C               **  STEP 1--                              **
C               **  CHECK THE INPUT ARGUMENTS FOR ERRORS  **
C               ********************************************
C
      ISTEPN='1'
      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TRE2')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(N.LT.4)THEN
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,111)
  111   FORMAT('***** ERROR IN RELIABILITY TREND TEST--')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,112)
  112   FORMAT('      THE NUMBER OF OBSERVATIONS IN THE RESPONSE ',
     1        'VARIABLE IS NON-POSITIVE')
        CALL DPWRST('XXX','BUG ')
        WRITE(ICOUT,115)N
  115   FORMAT('SAMPLE SIZE = ',I8)
        CALL DPWRST('XXX','BUG ')
        IERROR='YES'
        GOTO9000
      ENDIF
C
      HOLD=Y(1)
      DO135I=2,N
      IF(Y(I).NE.HOLD)GOTO139
  135 CONTINUE
  130 CONTINUE
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,111)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,131)HOLD
  131 FORMAT('      THE RESPONSE VARIABLE HAS ALL ELEMENTS = ',G15.7)
      CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
  139 CONTINUE
C
C               ********************************************
C               **  STEP 11--                             **
C               **  GENERATE THE RELIABILITY TREND TESTS  **
C               ********************************************
C
      ISTEPN='11'
      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TRE2')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C     CASE 1: NO GROUP OR CENSORING VARIABLE
C
      IF(NGROUP.EQ.0 .AND. NCENS.EQ.0)THEN
        ISET=1
        CALL DPTRE3(Y,N,XTEMP1,XTEMP2,TEND,MAXNXT,
     1              RATPVA,MHTPVA,DSUM1,DVAL2,DVAL3,
     1              ISET,ICAPSW,ICAPTY,
     1              ISUBRO,IBUGA3,IERROR)
        NUMSET=1
C
C       CASE 2: GROUP VARIABLE, BUT NO CENSORING VARIABLE
C
      ELSEIF(NCENS.EQ.0)THEN
C
C       STEP 1: DETERMINE UNIQUE GROUPS
C
        NUMSET=0
        DO1051I=1,N
          IF(NUMSET.EQ.0)GOTO1053
          DO1052J=1,NUMSET
            IF(X1(I).EQ.XIDTEM(J))GOTO1051
 1052     CONTINUE
 1053     CONTINUE
          NUMSET=NUMSET+1
          XIDTEM(NUMSET)=X1(I)
 1051   CONTINUE
        CALL SORT(XIDTEM,NUMSET,XIDTEM)
C
C       STEP 2: GENERATE TRACES FOR EACH GROUP
C
        J=0
        DO1090ISET=1,NUMSET
C
          K=0
          DO1091I=1,N
            IF(X1(I).EQ.XIDTEM(ISET))THEN
              K=K+1
              TEMP2(K)=Y(I)
            ENDIF
1091      CONTINUE
          NI=K
          CALL DPTRE3(TEMP2,NI,XTEMP1,XTEMP2,TEND,MAXNXT,
     1                RATPVA,MHTPVA,DSUM1,DVAL2,DVAL3,
     1                ISET,ICAPSW,ICAPTY,
     1                ISUBRO,IBUGA3,IERROR)
          TEMP6(ISET)=RATPVA
          TEMP6(MAXSYS+ISET)=MHTPVA
          TEMP6(2*MAXSYS+ISET)=REAL(DSUM1)
          TEMP6(3*MAXSYS+ISET)=REAL(DVAL2)
          TEMP6(4*MAXSYS+ISET)=REAL(DVAL3)
1090    CONTINUE
C
C       CASE 3: BOTH GROUP VARIABLE AND CENSORING VARIABLE
C
      ELSE
C
C       STEP 1: DETERMINE UNIQUE GROUPS
C
        NUMSET=0
        DO1111I=1,N
          IF(NUMSET.EQ.0)GOTO1113
          DO1112J=1,NUMSET
            IF(X1(I).EQ.XIDTEM(J))GOTO1111
 1112     CONTINUE
 1113     CONTINUE
          NUMSET=NUMSET+1
          XIDTEM(NUMSET)=X1(I)
 1111   CONTINUE
        CALL SORT(XIDTEM,NUMSET,XIDTEM)
C
C       STEP 2A: EXTRACT RESPONSE AND CENSORING DATA FOR EACH
C                GROUP
C
        J=0
        ISETMX=NUMSET
        DO1120ISET=1,NUMSET
C
          K=0
          DO1121I=1,N
            IF(X1(I).EQ.XIDTEM(ISET))THEN
              K=K+1
              TEMP2(K)=Y(I)
              TEMP3(K)=XCEN(I)
            ENDIF
1121      CONTINUE
          NI=K
C
C       STEP 2B: PROCESS THE CENSORING VARIABLE.  THERE CAN
C                BE AT MOST ONE CENSORING POINT FOR EACH
C                GROUP.
C
          CALL SORTC(TEMP2,TEMP3,NI,TEMP4,TEMP5)
          DO1160I=1,NI
            TEMP2(I)=TEMP4(I)
            TEMP3(I)=TEMP5(I)
 1160     CONTINUE
          AREP=TEMP3(1)
          ACEN=TEMP2(NI)
          IF(NI.LE.1)THEN
            NTEMPR=1
            NTEMPC=0
          ELSE
            IF(AREP.EQ.ACEN)THEN
              NTEMPR=NI
              NTEMPC=0
              DO1170I=1,NI
                IF(TEMP3(I).NE.AREP)THEN
                  WRITE(ICOUT,999)
                  CALL DPWRST('XXX','BUG ')
                  WRITE(ICOUT,111)
                  CALL DPWRST('XXX','BUG ')
                  WRITE(ICOUT,1171)
                  CALL DPWRST('XXX','BUG ')
                  WRITE(ICOUT,1172)
                  CALL DPWRST('XXX','BUG ')
                  WRITE(ICOUT,1173)
                  CALL DPWRST('XXX','BUG ')
                  WRITE(ICOUT,1174)XIDTEM(ISET)
                  CALL DPWRST('XXX','BUG ')
                  IERROR='YES'
                  GOTO1120
                ENDIF
 1170         CONTINUE
            ELSE
              TEND=TEMP2(NI)
              NTEMPR=NI-1
              NTEMPC=1
              DO1180I=1,NTEMPR
                IF(TEMP3(I).NE.AREP)THEN
                  WRITE(ICOUT,999)
                  CALL DPWRST('XXX','BUG ')
                  WRITE(ICOUT,111)
                  CALL DPWRST('XXX','BUG ')
                  WRITE(ICOUT,1171)
                  CALL DPWRST('XXX','BUG ')
                  WRITE(ICOUT,1172)
                  CALL DPWRST('XXX','BUG ')
                  WRITE(ICOUT,1173)
                  CALL DPWRST('XXX','BUG ')
                  WRITE(ICOUT,1174)XIDTEM(ISET)
                  CALL DPWRST('XXX','BUG ')
                  IERROR='YES'
                  GOTO1120
                ENDIF
 1180         CONTINUE
            ENDIF
          ENDIF
 1171 FORMAT('      FOR EACH SYSTEM, THERE SHOULD BE AT MOST')
 1172 FORMAT('      ONE CENSORING TIME AND IT MUST BE THE MAXIMUM')
 1173 FORMAT('      VALUE FOR THAT SYSTEM.')
 1174 FORMAT('      SUCH WAS NOT THE CASE FOR SYSTEM ',G15.7)
C
C       STEP 2C: COMPUTE THE TREND TEST FOR A SINGLE SYSTEM
C
          TEND=ACEN
          CALL DPTRE3(TEMP2,NTEMPR,XTEMP1,XTEMP2,TEND,MAXNXT,
     1                RATPVA,MHTPVA,DSUM1,DVAL2,DVAL3,
     1                ISET,ICAPSW,ICAPTY,
     1                ISUBRO,IBUGA3,IERROR)
          TEMP6(ISET)=RATPVA
          TEMP6(MAXSYS+ISET)=MHTPVA
          TEMP6(2*MAXSYS+ISET)=REAL(DSUM1)
          TEMP6(3*MAXSYS+ISET)=REAL(DVAL2)
          TEMP6(4*MAXSYS+ISET)=REAL(DVAL3)
C
1120    CONTINUE
      ENDIF
C
C               ********************************************
C               **  STEP 21--                             **
C               **  PERFORM COMPOSITE TESTS               **
C               ********************************************
C
      ISTEPN='21'
      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TRE2')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(NUMSET.LE.1)GOTO9000
C
C     COMPOSITE TESTS
C
      IF(IPRINT.EQ.'ON')THEN
      IF(ICAPSW.EQ.'ON'.AND.ICAPTY.EQ.'HTML')THEN
C
        WRITE(ICOUT,5105)
        CALL DPWRST('XXX','WRIT')
        ITTEMP='Reverse Arrangements Test: Fisher Composite Test'
        NCTEMP=48
        IFLAG1=.TRUE.
        IFLAG2=.TRUE.
        CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2)
C
        NHEAD=4
        DO5020I=1,5
          ALIGN(I)='CENTER'
          NUMDI2(I)=0
          IWIDTH(I)=150
          VALIGN(I)='TOP'
 5020   CONTINUE
        NUMDI2(2)=-2
        NUMDI2(3)=-2
C
        IVALUE(1)='System'
        NCHAR(1)=6
        IVALUE(2)='P-Value'
        NCHAR(2)=7
        IVALUE(3)='-2LN(p)'
        NCHAR(3)=7
        IVALUE(4)='Degrees of
Freedom' NCHAR(4)=21 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C IDF=2 ISUM=0 SUM1=0.0 SUM2=0.0 NHEAD=4 NCHAR(1)=0 IVALUE(1)=' ' DO5010I=1,NUMSET PVAL=TEMP6(I) ATERM1=-2.0*LOG(PVAL) SUM1=SUM1 + PVAL SUM2=SUM2 + ATERM1 ISUM=ISUM+IDF AVALUE(1)=REAL(I) AVALUE(2)=PVAL AVALUE(3)=ATERM1 AVALUE(4)=REAL(IDF) CALL DPHTM5(IVALUE,NCHAR(1),AVALUE,NHEAD) 5010 CONTINUE C NHEAD=4 CALL DPHTM6(NHEAD) C 5160 FORMAT(' ') 5161 FORMAT(' ') 5162 FORMAT(' ') 5170 FORMAT(' ') C WRITE(ICOUT,5160) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,5161) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5166) 5166 FORMAT(' SUM') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5162) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,5161) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5167) 5167 FORMAT('  ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5162) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,5161) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5168)SUM2 5168 FORMAT(' ',F12.5) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5162) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,5161) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5169) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5169)ISUM 5169 FORMAT(' ',I8) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5162) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,5170) CALL DPWRST('XXX','WRIT') C IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C 5105 FORMAT('

') 5106 FORMAT('
') WRITE(ICOUT,5106) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5107) 5107 FORMAT('
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5113) 5113 FORMAT('H0: No Trend for Interarrival Times
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5115) 5115 FORMAT('Ha: There is a Trend for ', 1 'Interarrival Times
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5119) 5119 FORMAT('
') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5105) CALL DPWRST('XXX','WRIT') C ITTEMP=' ' NCTEMP=0 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C NHEAD=4 DO5120I=1,4 ALIGN(I)='CENTER' NUMDI2(I)=-2 IWIDTH(I)=150 VALIGN(I)='TOP' 5120 CONTINUE IVALUE(1)='Significance
Level' NCHAR(1)=21 IVALUE(2)='Chi-Square
Test Statistic' NCHAR(2)=28 IVALUE(3)='Critical
Region' NCHAR(3)=18 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C ALP90=0.90 CALL CHSPPF(ALP90,ISUM,CV1) ALP95=0.95 CALL CHSPPF(ALP95,ISUM,CV2) ALP99=0.99 CALL CHSPPF(ALP99,ISUM,CV3) C ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' C IF(SUM2.GT.CV1)ICONC1='REJECT' IF(SUM2.GT.CV2)ICONC1='REJECT' IF(SUM2.GT.CV3)ICONC1='REJECT' C NHEAD=2 AVALUE(1)=SUM2 AVALUE(2)=CV1 IVALUE(1)='0.90%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC1(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV2 IVALUE(1)='0.95%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC2(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV3 IVALUE(1)='0.99%' NCHAR(3)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC3(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C WRITE(ICOUT,5105) CALL DPWRST('XXX','WRIT') ITTEMP='Military Handbook Test: Fisher Composite Test' NCTEMP=45 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C NHEAD=4 DO5220I=1,5 ALIGN(I)='CENTER' NUMDI2(I)=0 IWIDTH(I)=150 VALIGN(I)='TOP' 5220 CONTINUE NUMDI2(2)=-2 NUMDI2(3)=-2 C IVALUE(1)='System' NCHAR(1)=6 IVALUE(2)='P-Value' NCHAR(2)=7 IVALUE(3)='-2LN(p)' NCHAR(3)=7 IVALUE(4)='Degrees of
Freedom' NCHAR(4)=21 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C IDF=2 ISUM=0 SUM1=0.0 SUM2=0.0 NHEAD=4 NCHAR(1)=0 IVALUE(1)=' ' DO5210I=1,NUMSET PVAL=TEMP6(MAXSYS+I) ATERM1=-2.0*LOG(PVAL) SUM1=SUM1 + PVAL SUM2=SUM2 + ATERM1 ISUM=ISUM+IDF AVALUE(1)=REAL(I) AVALUE(2)=PVAL AVALUE(3)=ATERM1 AVALUE(4)=REAL(IDF) CALL DPHTM5(IVALUE,NCHAR(1),AVALUE,NHEAD) 5210 CONTINUE C NHEAD=4 CALL DPHTM6(NHEAD) C WRITE(ICOUT,5160) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,5161) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5166) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5162) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,5161) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5167) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5162) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,5161) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5168)SUM2 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5162) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,5161) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5169) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5169)ISUM CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5162) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,5170) CALL DPWRST('XXX','WRIT') C IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C WRITE(ICOUT,5106) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5107) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5113) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5115) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5119) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5105) CALL DPWRST('XXX','WRIT') C ITTEMP=' ' NCTEMP=0 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C NHEAD=4 DO5230I=1,4 ALIGN(I)='CENTER' NUMDI2(I)=-2 IWIDTH(I)=150 VALIGN(I)='TOP' 5230 CONTINUE IVALUE(1)='Significance
Level' NCHAR(1)=21 IVALUE(2)='Chi-Square
Test Statistic' NCHAR(2)=28 IVALUE(3)='Critical
Region' NCHAR(3)=18 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C ALP90=0.90 CALL CHSPPF(ALP90,ISUM,CV1) ALP95=0.95 CALL CHSPPF(ALP95,ISUM,CV2) ALP99=0.99 CALL CHSPPF(ALP99,ISUM,CV3) C ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' C IF(SUM2.GT.CV1)ICONC1='REJECT' IF(SUM2.GT.CV2)ICONC1='REJECT' IF(SUM2.GT.CV3)ICONC1='REJECT' C NHEAD=2 AVALUE(1)=SUM2 AVALUE(2)=CV1 IVALUE(1)='0.90%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC1(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV2 IVALUE(1)='0.95%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC2(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV3 IVALUE(1)='0.99%' NCHAR(3)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC3(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C DSUM1=0.0D0 DSUM2=0.0D0 DSUM3=0.0D0 DO5410I=1,NUMSET VAL1=TEMP6(2*MAXSYS+I) VAL2=TEMP6(3*MAXSYS+I) VAL3=TEMP6(4*MAXSYS+I) DSUM1=DSUM1 + DBLE(VAL1) DSUM2=DSUM2 + DBLE(VAL2) DSUM3=DSUM3 + DBLE(VAL3) 5410 CONTINUE DSUM2=-0.5D0*DSUM2 Z=REAL((DSUM1 + DSUM2)/DSQRT(DSUM3/12.0D0)) CALL NORCDF(Z,CDF) ALP01=0.01 CALL NORPPF(ALP01,CV1) ALP05=0.05 CALL NORPPF(ALP05,CV2) ALP10=0.10 CALL NORPPF(ALP10,CV3) ALP90=0.90 CALL NORPPF(ALP90,CV4) ALP95=0.95 CALL NORPPF(ALP95,CV5) ALP99=0.99 CALL NORPPF(ALP99,CV6) ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' ICONC4='ACCEPT' ICONC5='ACCEPT' ICONC6='ACCEPT' IF(Z.LE.CV1)ICONC1='REJECT' IF(Z.LE.CV2)ICONC2='REJECT' IF(Z.LE.CV3)ICONC3='REJECT' IF(Z.GE.CV4)ICONC4='REJECT' IF(Z.GE.CV5)ICONC5='REJECT' IF(Z.GE.CV6)ICONC6='REJECT' C WRITE(ICOUT,5105) CALL DPWRST('XXX','WRIT') ITTEMP='Laplace Test: Composite Test' NCTEMP=28 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C IWIDT1=350 IWDIT2=150 NUMDIG=0 C CCCCC IVAL2='Number of Failure Times:' CCCCC NCH=24 CCCCC AVAL=REAL(N) CCCCC CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) NUMDIG=-2 IVAL2='Normal Test Statistic Value' NCH=27 AVAL=Z CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IVAL2='Normal Test Statistic CDF Value' NCH=31 AVAL=CDF CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C WRITE(ICOUT,5305) 5305 FORMAT('
') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5307) 5307 FORMAT('
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5313) 5313 FORMAT('H0: No Trend for Interarrival Times
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5315) 5315 FORMAT('Ha: There is a Trend Following a NHPP ', 1 'Exponential Law Model
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5319) 5319 FORMAT('
') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5305) CALL DPWRST('XXX','WRIT') C ITTEMP=' ' NCTEMP=0 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C NHEAD=4 DO5320I=1,4 ALIGN(I)='CENTER' NUMDI2(I)=-2 IWIDTH(I)=150 VALIGN(I)='TOP' 5320 CONTINUE IVALUE(1)='Significance
Level' NCHAR(1)=21 IVALUE(2)='Normal
Test Statistic' NCHAR(2)=24 IVALUE(3)='Critical
Region' NCHAR(3)=18 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C NHEAD=2 AVALUE(1)=Z AVALUE(2)=CV1 IVALUE(1)='0.01%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC1(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV2 IVALUE(1)='0.05%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC2(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV3 IVALUE(1)='0.10%' NCHAR(3)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC3(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(1)=Z AVALUE(2)=CV4 IVALUE(1)='0.90%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC4(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV5 IVALUE(1)='0.95%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC5(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV6 IVALUE(1)='0.99%' NCHAR(3)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC6(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C ELSEIF(ICAPSW.EQ.'ON'.AND.ICAPTY.EQ.'LATE')THEN C CALL DPCONA(92,IBASLC) IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C CALL DPCONA(92,IBASLC) IFLAG1=.FALSE. IFLAG2=.TRUE. ITTEMP='Reverse Arrangements Test: Fisher Composite Test' NCTEMP=48 CALL DPLAT8(ITTEMP,NCTEMP,IFLAG1,IFLAG2) NHEAD=0 C DO8010I=1,4 IWIDTH(I)=100 VALIGN(1)='BOTTOM' ALIGN(I)='c' NUMDI2(1)=0 8010 CONTINUE NUMDI2(2)=-2 NUMDI2(3)=-2 IFLAG1=.FALSE. NHEAD=4 C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C IVALUE(1)='System' NCHAR(1)=6 IVALUE(2)='P-Value' NCHAR(2)=7 IVALUE(3)='-2$ ln(p)$' IVALUE(3)(4:4)=IBASLC NCHAR(3)=10 IVALUE(4)='Degrees of Freedom' NCHAR(4)=18 IFLAG1=.TRUE. IFLAG2=.TRUE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=4 NUMDI2(4)=0 IDF=2 ISUM=0 SUM1=0.0 SUM2=0.0 NCHAR(1)=0 IVALUE(1)=' ' DO8020I=1,NUMSET PVAL=TEMP6(I) ATERM1=-2.0*LOG(PVAL) SUM1=SUM1 + PVAL SUM2=SUM2 + ATERM1 ISUM=ISUM+IDF AVALUE(1)=REAL(I) AVALUE(2)=PVAL AVALUE(3)=ATERM1 AVALUE(4)=REAL(IDF) CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) 8020 CONTINUE C WRITE(ICOUT,8021)SUM2,ISUM,IBASLC,IBASLC 8021 FORMAT(5X,'Sum: & & ',F12.5,' & ' ,I8,2X,A1,A1) CALL DPWRST('XXX','WRIT') C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.FALSE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: There is a Trend for Interarrival Times' NCHAR2=43 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) C ALP90=0.90 CALL CHSPPF(ALP90,ISUM,CV1) ALP95=0.95 CALL CHSPPF(ALP95,ISUM,CV2) ALP99=0.99 CALL CHSPPF(ALP99,ISUM,CV3) C ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' C IF(SUM2.GT.CV1)ICONC1='REJECT' IF(SUM2.GT.CV2)ICONC1='REJECT' IF(SUM2.GT.CV3)ICONC1='REJECT' C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C NHEAD=4 IVALUE(1)='Significance' NCHAR(1)=12 IVALUE(2)='Number of' NCHAR(2)=9 IVALUE(3)='Critical' NCHAR(3)=8 IVALUE(4)=' ' NCHAR(4)=1 IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) IVALUE(1)='Level' NCHAR(1)=5 IVALUE(2)='Reversals' NCHAR(2)=9 IVALUE(3)='Region' NCHAR(3)=6 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.FALSE. IFLAG2=.TRUE. IFLAG3=.FALSE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=2 IVALUE(1)='0.90$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC1 NCHAR2=6 AVALUE(1)=SUM2 AVALUE(2)=CV1 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.95$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC2 NCHAR2=6 AVALUE(2)=CV2 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.99$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC3 NCHAR2=6 AVALUE(2)=CV3 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.FALSE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C CALL DPCONA(92,IBASLC) IFLAG1=.FALSE. IFLAG2=.TRUE. ITTEMP='Military Handbook Test: Fisher Composite Test' NCTEMP=45 CALL DPLAT8(ITTEMP,NCTEMP,IFLAG1,IFLAG2) NHEAD=0 C DO8110I=1,4 IWIDTH(I)=100 VALIGN(1)='BOTTOM' ALIGN(I)='c' NUMDI2(1)=0 8110 CONTINUE NUMDI2(2)=-2 NUMDI2(3)=-2 IFLAG1=.FALSE. NHEAD=4 C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C IVALUE(1)='System' NCHAR(1)=6 IVALUE(2)='P-Value' NCHAR(2)=7 IVALUE(3)='-2$ ln(p)$' IVALUE(3)(4:4)=IBASLC NCHAR(3)=10 IVALUE(4)='Degrees of Freedom' NCHAR(4)=18 IFLAG1=.TRUE. IFLAG2=.TRUE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=4 NUMDI2(4)=0 IDF=2 ISUM=0 SUM1=0.0 SUM2=0.0 NCHAR(1)=0 IVALUE(1)=' ' DO8120I=1,NUMSET PVAL=TEMP6(MAXSYS + I) ATERM1=-2.0*LOG(PVAL) SUM1=SUM1 + PVAL SUM2=SUM2 + ATERM1 ISUM=ISUM+IDF AVALUE(1)=REAL(I) AVALUE(2)=PVAL AVALUE(3)=ATERM1 AVALUE(4)=REAL(IDF) CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) 8120 CONTINUE C WRITE(ICOUT,8021)SUM2,ISUM,IBASLC,IBASLC CALL DPWRST('XXX','WRIT') C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.FALSE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: There is a Trend for Interarrival Times' NCHAR2=43 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) C ALP90=0.90 CALL CHSPPF(ALP90,ISUM,CV1) ALP95=0.95 CALL CHSPPF(ALP95,ISUM,CV2) ALP99=0.99 CALL CHSPPF(ALP99,ISUM,CV3) C ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' C IF(SUM2.GT.CV1)ICONC1='REJECT' IF(SUM2.GT.CV2)ICONC1='REJECT' IF(SUM2.GT.CV3)ICONC1='REJECT' C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C NHEAD=4 IVALUE(1)='Significance' NCHAR(1)=12 IVALUE(2)='Chi-Square' NCHAR(2)=10 IVALUE(3)='Critical' NCHAR(3)=8 IVALUE(4)=' ' NCHAR(4)=1 IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) IVALUE(1)='Level' NCHAR(1)=5 IVALUE(2)='Test Statistic' NCHAR(2)=14 IVALUE(3)='Region' NCHAR(3)=6 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.FALSE. IFLAG2=.TRUE. IFLAG3=.FALSE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=2 NUMDI2(1)=-2 NUMDI2(2)=-2 IVALUE(1)='0.90$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC1 NCHAR2=6 AVALUE(1)=SUM2 AVALUE(2)=CV1 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.95$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC2 NCHAR2=6 AVALUE(2)=CV2 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.99$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC3 NCHAR2=6 AVALUE(2)=CV3 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.TRUE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C DSUM1=0.0D0 DSUM2=0.0D0 DSUM3=0.0D0 DO8310I=1,NUMSET VAL1=TEMP6(2*MAXSYS+I) VAL2=TEMP6(3*MAXSYS+I) VAL3=TEMP6(4*MAXSYS+I) DSUM1=DSUM1 + DBLE(VAL1) DSUM2=DSUM2 + DBLE(VAL2) DSUM3=DSUM3 + DBLE(VAL3) 8310 CONTINUE DSUM2=-0.5D0*DSUM2 Z=REAL((DSUM1 + DSUM2)/DSQRT(DSUM3/12.0D0)) CALL NORCDF(Z,CDF) ALP01=0.01 CALL NORPPF(ALP01,CV1) ALP05=0.05 CALL NORPPF(ALP05,CV2) ALP10=0.10 CALL NORPPF(ALP10,CV3) ALP90=0.90 CALL NORPPF(ALP90,CV4) ALP95=0.95 CALL NORPPF(ALP95,CV5) ALP99=0.99 CALL NORPPF(ALP99,CV6) ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' ICONC4='ACCEPT' ICONC5='ACCEPT' ICONC6='ACCEPT' IF(Z.LE.CV1)ICONC1='REJECT' IF(Z.LE.CV2)ICONC2='REJECT' IF(Z.LE.CV3)ICONC3='REJECT' IF(Z.GE.CV4)ICONC4='REJECT' IF(Z.GE.CV5)ICONC5='REJECT' IF(Z.GE.CV6)ICONC6='REJECT' C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C CALL DPCONA(92,IBASLC) IFLAG1=.FALSE. IFLAG2=.TRUE. ITTEMP='Laplace Test: Composite Test' NCTEMP=28 CALL DPLAT8(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C IWIDTH(1)=0 VALIGN(1)=' ' ALIGN(1)='l' NUMDI2(1)=-2 IWIDTH(2)=0 VALIGN(2)=' ' ALIGN(2)='r' NUMDI2(2)=-2 IFLAG1=.FALSE. NHEAD=1 C 8321 FORMAT(A1,'begin{center}') 8322 FORMAT(A1,'begin{tabular}{lr}') WRITE(ICOUT,8321)IBASLC CALL DPWRST('XXX','WRIT') WRITE(ICOUT,8322)IBASLC CALL DPWRST('XXX','WRIT') C CCCCC IVALUE(1)='Number of Failure Times: ' CCCCC NCHAR(1)=25 CCCCC AVALUE(1)=REAL(N) CCCCC CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Normal Test Statistic Value: ' NCHAR(1)=29 AVALUE(1)=Z CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Normal Test Statistic CDF Value: ' NCHAR(1)=33 AVALUE(1)=CDF CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.FALSE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Trend Following a NHPP Exponential Law Model' NCHAR2=48 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) C DO8320I=1,4 IWIDTH(I)=100 VALIGN(1)='BOTTOM' ALIGN(I)='c' NUMDI2(1)=-2 8320 CONTINUE IFLAG1=.FALSE. C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C NHEAD=4 IVALUE(1)='Significance' NCHAR(1)=12 IVALUE(2)='Normal' NCHAR(2)=6 IVALUE(3)='Critical' NCHAR(3)=8 IVALUE(4)=' ' NCHAR(4)=1 IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) IVALUE(1)='Level' NCHAR(1)=5 IVALUE(2)='Test Statistic' NCHAR(2)=14 IVALUE(3)='Region' NCHAR(3)=6 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.FALSE. IFLAG2=.TRUE. IFLAG3=.FALSE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=2 C IVALUE(1)='0.01$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC1 NCHAR2=6 AVALUE(1)=Z AVALUE(2)=CV1 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.05$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC2 NCHAR2=6 AVALUE(2)=CV2 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.10$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC3 NCHAR2=6 AVALUE(2)=CV3 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) C IVALUE(1)='0.90$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC4 NCHAR2=6 AVALUE(1)=Z AVALUE(2)=CV4 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.95$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC5 NCHAR2=6 AVALUE(2)=CV5 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.99$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC6 NCHAR2=6 AVALUE(2)=CV6 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.TRUE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C ELSEIF(ICAPSW.EQ.'ON'.AND.ICAPTY.EQ.'RTF')THEN C 6191 FORMAT(A1,'f',I1) 6193 FORMAT(A1,'fs',I1) 6195 FORMAT(A1,'fs',I2) 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 ITEMP2=2.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE WRITE(ICOUT,6195)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ENDIF C C WRITE HEADER LINE C IRTFMD='OFF' CALL DPCONA(92,IBASLC) IFLAG1=.TRUE. ITTEMP='Reverse Arrangements Test: Fisher Composite Test' NCTEMP=48 CALL DPRTF8(ITTEMP,NCTEMP,ITEMP,IFLAG1) NHEAD=0 ITEMP2=1.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE WRITE(ICOUT,6195)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ENDIF C NUMDI2(1)=0 NUMDI2(2)=-2 NUMDI2(3)=-2 NUMDI2(4)=0 DO6005I=1,4 VALIGN(I)='b' ALIGN(I)='c' 6005 CONTINUE IDEFPS=20 IFRST=IRTFPS*1400/IDEFPS IINC1=IRTFPS*1640/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 IWIDTH(3)=IWIDTH(1) + 2*IINC1 IWIDTH(4)=IWIDTH(1) + 3*IINC1 C IVALUE(1)=' b System' IVALUE(1)(1:1)=IBASLC NCHAR(1)=9 IVALUE(2)=' b P-Value' IVALUE(2)(1:1)=IBASLC NCHAR(2)=10 IVALUE(3)=' b -2 LN(p)' IVALUE(3)(1:1)=IBASLC NCHAR(3)=11 IVALUE(4)=' b Degrees of line Freedom' IVALUE(4)(1:1)=IBASLC IVALUE(4)(14:14)=IBASLC NCHAR(4)=26 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C IDF=2 ISUM=0 SUM1=0.0 SUM2=0.0 NCHAR(1)=0 IFLAG1=.FALSE. DO6010I=1,NUMSET PVAL=TEMP6(I) ATERM1=-2.0*LOG(PVAL) SUM1=SUM1 + PVAL SUM2=SUM2 + ATERM1 ISUM=ISUM+IDF AVALUE(1)=REAL(I) AVALUE(2)=PVAL AVALUE(3)=ATERM1 AVALUE(4)=REAL(IDF) IF(I.EQ.NUMSET)THEN IFLAG1=.TRUE. ENDIF CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) 6010 CONTINUE IFLAG1=.FALSE. C NHEAD=4 IVALUE(1)= ' b Sum' IVALUE(1)(1:1)=IBASLC NCHAR(1)=6 NHEAD=3 NUMDI2(1)=-1 NUMDI2(2)=-1 NUMDI2(3)=-2 NUMDI2(4)=0 AVALUE(1)=0.0 AVALUE(2)=0.0 AVALUE(3)=SUM2 AVALUE(4)=REAL(ISUM) CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) C NHEAD=4 CALL DPRTF6(NHEAD) 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 IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: There is a Trend for Interarrival Times' NCHAR2=43 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) CALL DPRTF6(NHEAD) 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 ALP90=0.90 CALL CHSPPF(ALP90,ISUM,CV1) ALP95=0.95 CALL CHSPPF(ALP95,ISUM,CV2) ALP99=0.99 CALL CHSPPF(ALP99,ISUM,CV3) C ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' C IF(SUM2.GT.CV1)ICONC1='REJECT' IF(SUM2.GT.CV2)ICONC1='REJECT' IF(SUM2.GT.CV3)ICONC1='REJECT' 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 NUMDI2(1)=0 NUMDI2(2)=-2 NUMDI2(3)=-2 NUMDI2(4)=0 IFLAG1=.FALSE. C IVALUE(1)=' ' IVALUE(2)=' ' NCHAR2=0 CALL DPRTF1(IVALUE,NCHAR2,IVALUE(2),NCHAR2) C DO6020I=1,4 VALIGN(I)='b' ALIGN(I)='c' 6020 CONTINUE IFRST=IRTFPS*2000/IDEFPS IINC1=IRTFPS*1600/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 IWIDTH(3)=IWIDTH(2) + IINC1 IWIDTH(4)=IWIDTH(3) + IINC1 C IVALUE(1)=' b Significance line Level' IVALUE(1)(1:1)=IBASLC IVALUE(1)(16:16)=IBASLC NCHAR(1)=26 IVALUE(2)=' b Chi-Square line Test Statistic' IVALUE(2)(1:1)=IBASLC IVALUE(2)(14:14)=IBASLC NCHAR(2)=33 IVALUE(3)=' b Critical line Region' IVALUE(3)(1:1)=IBASLC IVALUE(3)(12:12)=IBASLC NCHAR(3)=23 IVALUE(4)=' b Conclusion' IVALUE(4)(1:1)=IBASLC NCHAR(4)=13 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C IFLAG1=.FALSE. NHEAD=2 C IVALUE(1)='0.90%' NCHAR(1)=5 IVAL2=ICONC1 NCHAR2=6 AVALUE(2)=SUM2 AVALUE(3)=CV1 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.95%' IVAL2=ICONC2 AVALUE(3)=CV2 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.99%' IVAL2=ICONC3 AVALUE(3)=CV3 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) C CALL DPRTF6(NHEAD) 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 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 ITEMP2=2.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE WRITE(ICOUT,6195)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ENDIF C C WRITE HEADER LINE C IRTFMD='OFF' CALL DPCONA(92,IBASLC) IFLAG1=.TRUE. ITTEMP='Military Handbook Test: Fisher Composite Test' NCTEMP=45 CALL DPRTF8(ITTEMP,NCTEMP,ITEMP,IFLAG1) NHEAD=0 ITEMP2=1.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE WRITE(ICOUT,6195)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ENDIF C NUMDI2(1)=0 NUMDI2(2)=-2 NUMDI2(3)=-2 NUMDI2(4)=0 DO6105I=1,4 VALIGN(I)='b' ALIGN(I)='c' 6105 CONTINUE IDEFPS=20 IFRST=IRTFPS*1400/IDEFPS IINC1=IRTFPS*1640/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 IWIDTH(3)=IWIDTH(1) + 2*IINC1 IWIDTH(4)=IWIDTH(1) + 3*IINC1 C IVALUE(1)=' b System' IVALUE(1)(1:1)=IBASLC NCHAR(1)=9 IVALUE(2)=' b P-Value' IVALUE(2)(1:1)=IBASLC NCHAR(2)=10 IVALUE(3)=' b -2 LN(p)' IVALUE(3)(1:1)=IBASLC NCHAR(3)=11 IVALUE(4)=' b Degrees of line Freedom' IVALUE(4)(1:1)=IBASLC IVALUE(4)(14:14)=IBASLC NCHAR(4)=26 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C IDF=2 ISUM=0 SUM1=0.0 SUM2=0.0 NCHAR(1)=0 IFLAG1=.FALSE. DO6110I=1,NUMSET PVAL=TEMP6(MAXSYS+I) ATERM1=-2.0*LOG(PVAL) SUM1=SUM1 + PVAL SUM2=SUM2 + ATERM1 ISUM=ISUM+IDF AVALUE(1)=REAL(I) AVALUE(2)=PVAL AVALUE(3)=ATERM1 AVALUE(4)=REAL(IDF) IF(I.EQ.NUMSET)THEN IFLAG1=.TRUE. ENDIF CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) 6110 CONTINUE IFLAG1=.FALSE. C NHEAD=4 IVALUE(1)= ' b Sum' IVALUE(1)(1:1)=IBASLC NCHAR(1)=6 NHEAD=3 NUMDI2(1)=-1 NUMDI2(2)=-1 NUMDI2(3)=-2 NUMDI2(4)=0 AVALUE(1)=0.0 AVALUE(2)=0.0 AVALUE(3)=SUM2 AVALUE(4)=REAL(ISUM) CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) C NHEAD=4 CALL DPRTF6(NHEAD) 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 IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: There is a Trend for Interarrival Times' NCHAR2=43 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) CALL DPRTF6(NHEAD) 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 ALP90=0.90 CALL CHSPPF(ALP90,ISUM,CV1) ALP95=0.95 CALL CHSPPF(ALP95,ISUM,CV2) ALP99=0.99 CALL CHSPPF(ALP99,ISUM,CV3) C ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' C IF(SUM2.GT.CV1)ICONC1='REJECT' IF(SUM2.GT.CV2)ICONC1='REJECT' IF(SUM2.GT.CV3)ICONC1='REJECT' 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 NUMDI2(1)=0 NUMDI2(2)=-2 NUMDI2(3)=-2 NUMDI2(4)=0 IFLAG1=.FALSE. C IVALUE(1)=' ' IVALUE(2)=' ' NCHAR2=0 CALL DPRTF1(IVALUE,NCHAR2,IVALUE(2),NCHAR2) C DO6120I=1,4 VALIGN(I)='b' ALIGN(I)='c' 6120 CONTINUE IFRST=IRTFPS*2000/IDEFPS IINC1=IRTFPS*1600/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 IWIDTH(3)=IWIDTH(2) + IINC1 IWIDTH(4)=IWIDTH(3) + IINC1 C IVALUE(1)=' b Significance line Level' IVALUE(1)(1:1)=IBASLC IVALUE(1)(16:16)=IBASLC NCHAR(1)=26 IVALUE(2)=' b Chi-Square line Test Statistic' IVALUE(2)(1:1)=IBASLC IVALUE(2)(14:14)=IBASLC NCHAR(2)=33 IVALUE(3)=' b Critical line Region' IVALUE(3)(1:1)=IBASLC IVALUE(3)(12:12)=IBASLC NCHAR(3)=23 IVALUE(4)=' b Conclusion' IVALUE(4)(1:1)=IBASLC NCHAR(4)=13 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C IFLAG1=.FALSE. NHEAD=2 C IVALUE(1)='0.90%' NCHAR(1)=5 IVAL2=ICONC1 NCHAR2=6 AVALUE(2)=SUM2 AVALUE(3)=CV1 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.95%' IVAL2=ICONC2 AVALUE(3)=CV2 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.99%' IVAL2=ICONC3 AVALUE(3)=CV3 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) C CALL DPRTF6(NHEAD) 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 DSUM1=0.0D0 DSUM2=0.0D0 DSUM3=0.0D0 DO6210I=1,NUMSET VAL1=TEMP6(2*MAXSYS+I) VAL2=TEMP6(3*MAXSYS+I) VAL3=TEMP6(4*MAXSYS+I) DSUM1=DSUM1 + DBLE(VAL1) DSUM2=DSUM2 + DBLE(VAL2) DSUM3=DSUM3 + DBLE(VAL3) 6210 CONTINUE DSUM2=-0.5D0*DSUM2 Z=REAL((DSUM1 + DSUM2)/DSQRT(DSUM3/12.0D0)) CALL NORCDF(Z,CDF) ALP01=0.01 CALL NORPPF(ALP01,CV1) ALP05=0.05 CALL NORPPF(ALP05,CV2) ALP10=0.10 CALL NORPPF(ALP10,CV3) ALP90=0.90 CALL NORPPF(ALP90,CV4) ALP95=0.95 CALL NORPPF(ALP95,CV5) ALP99=0.99 CALL NORPPF(ALP99,CV6) ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' ICONC4='ACCEPT' ICONC5='ACCEPT' ICONC6='ACCEPT' IF(Z.LE.CV1)ICONC1='REJECT' IF(Z.LE.CV2)ICONC2='REJECT' IF(Z.LE.CV3)ICONC3='REJECT' IF(Z.GE.CV4)ICONC4='REJECT' IF(Z.GE.CV5)ICONC5='REJECT' IF(Z.GE.CV6)ICONC6='REJECT' 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 ITEMP2=2.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE WRITE(ICOUT,6195)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ENDIF C C WRITE HEADER LINE C IRTFMD='OFF' CALL DPCONA(92,IBASLC) IFLAG1=.TRUE. ITTEMP='Laplace Test: Composite Test' NCTEMP=28 CALL DPRTF8(ITTEMP,NCTEMP,ITEMP,IFLAG1) NHEAD=0 ITEMP2=1.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE 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 IDEFPS=20 IFRST=IRTFPS*1400*4/IDEFPS IINC1=IRTFPS*1440/IDEFPS IINC2=IRTFPS*1000/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 VALIGN(1)='b' VALIGN(2)='b' VALIGN(3)='b' VALIGN(4)='b' ALIGN(1)='l' ALIGN(2)='r' ALIGN(3)='c' ALIGN(4)='c' NUMDI2(1)=0 NUMDI2(2)=0 NUMDI2(3)=0 NUMDI2(4)=0 IFLAG1=.FALSE. NHEAD=1 C CCCCC IVALUE(1)='Number of Failure Times:' CCCCC NCHAR(1)=24 CCCCC AVALUE(2)=REAL(N) CCCCC CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Normal Test Statistic Value:' NCHAR(1)=28 AVALUE(2)=Z NUMDI2(2)=-2 CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Normal Test Statistic CDF Value:' NCHAR(1)=32 AVALUE(2)=CDF CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) C CALL DPRTF6(NHEAD) 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 IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Trend Following a NHPP Exponential Law Model' NCHAR2=48 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) CALL DPRTF6(NHEAD) 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 IVALUE(1)=' ' IVALUE(2)=' ' NCHAR2=0 CALL DPRTF1(IVALUE,NCHAR2,IVALUE(2),NCHAR2) C DO7220I=1,4 VALIGN(I)='b' ALIGN(I)='c' NUMDI2(I)=-2 7220 CONTINUE IFRST=IRTFPS*2000/IDEFPS IINC1=IRTFPS*1600/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 IWIDTH(3)=IWIDTH(2) + IINC1 IWIDTH(4)=IWIDTH(3) + IINC1 C IVALUE(1)=' b Significance line Level' IVALUE(1)(1:1)=IBASLC IVALUE(1)(16:16)=IBASLC NCHAR(1)=26 IVALUE(2)=' b Normal line Test Statistic' IVALUE(2)(1:1)=IBASLC IVALUE(2)(10:10)=IBASLC NCHAR(2)=30 IVALUE(3)=' b Critical line Region' IVALUE(3)(1:1)=IBASLC IVALUE(3)(12:12)=IBASLC NCHAR(3)=23 IVALUE(4)=' b Conclusion' IVALUE(4)(1:1)=IBASLC NCHAR(4)=13 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C IFLAG1=.FALSE. NHEAD=2 C IVALUE(1)='0.01%' NCHAR(1)=5 IVAL2=ICONC1 NCHAR2=6 AVALUE(2)=Z AVALUE(3)=CV1 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.05%' IVAL2=ICONC2 AVALUE(3)=CV2 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.10%' IVAL2=ICONC3 AVALUE(3)=CV3 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.90%' NCHAR(1)=5 IVAL2=ICONC4 NCHAR2=6 AVALUE(2)=Z AVALUE(3)=CV4 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.95%' IVAL2=ICONC5 AVALUE(3)=CV5 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.99%' IVAL2=ICONC6 AVALUE(3)=CV6 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) C CALL DPRTF6(NHEAD) 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 ELSE C WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4001) 4001 FORMAT(5X,'REVERSE ARRANGEMENTS TEST: FISHER COMPOSITE TEST') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4003) 4003 FORMAT(' ', 1 'DEGREES OF') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4005) 4005 FORMAT(' SYSTEM P-VALUE -2*LN(P) ', 1 'FREEDOM') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4007) 4007 FORMAT('================================================', 1 '======') CALL DPWRST('XXX','WRIT') C IDF=2 ISUM=0 SUM1=0.0 SUM2=0.0 DO4010I=1,NUMSET PVAL=TEMP6(I) ATERM1=-2.0*LOG(PVAL) SUM1=SUM1 + PVAL SUM2=SUM2 + ATERM1 ISUM=ISUM+IDF WRITE(ICOUT,4011)I,PVAL,ATERM1,IDF 4011 FORMAT(I8,5X,F12.5,5X,F12.5,5X,I7) CALL DPWRST('XXX','WRIT') 4010 CONTINUE WRITE(ICOUT,4007) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,4021)SUM2,ISUM 4021 FORMAT(3X,'SUM ',22X,F12.5,I12) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,4031) 4031 FORMAT('H0: NO TREND FOR INTERARRIVAL TIMES') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4033) 4033 FORMAT('HA: THERE IS A TREND FOR INTERARRIVAL TIMES') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4042) 4042 FORMAT('SIGNIFICANCE CHI-SQUARE CRITICAL') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4044) 4044 FORMAT(' LEVEL TEST STATISTIC REGION ', 1 'CONCLUSION') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4046) 4046 FORMAT('===============================================', 1 '=======') CALL DPWRST('XXX','WRIT') C ALP90=0.90 CALL CHSPPF(ALP90,ISUM,CV1) ALP95=0.95 CALL CHSPPF(ALP95,ISUM,CV2) ALP99=0.99 CALL CHSPPF(ALP99,ISUM,CV3) C ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' C IF(SUM2.GT.CV1)ICONC1='REJECT' IF(SUM2.GT.CV2)ICONC1='REJECT' IF(SUM2.GT.CV3)ICONC1='REJECT' C WRITE(ICOUT,4049)ALP90,SUM2,CV1,ICONC1 4049 FORMAT(3X,F4.2,'%',6X,F12.5,F12.5,'(>=)',5X,A6) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4049)ALP95,SUM2,CV2,ICONC2 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4049)ALP99,SUM2,CV3,ICONC3 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4101) 4101 FORMAT(5X,'MILITARY HANDBOOK TEST: FISHER COMPOSITE TEST') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4003) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4005) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4007) CALL DPWRST('XXX','WRIT') C IDF=2 ISUM=0 SUM1=0.0 SUM2=0.0 DO4110I=1,NUMSET PVAL=TEMP6(MAXSYS+I) ATERM1=-2.0*LOG(PVAL) SUM1=SUM1 + PVAL SUM2=SUM2 + ATERM1 ISUM=ISUM+IDF WRITE(ICOUT,4011)I,PVAL,ATERM1,IDF CALL DPWRST('XXX','WRIT') 4110 CONTINUE WRITE(ICOUT,4007) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,4021)SUM2,ISUM CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,4031) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4133) 4133 FORMAT('HA: THERE IS A NHPP POWER LAW TREND FOR ', 1 'INTERARRIVAL TIMES') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4042) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4044) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4046) CALL DPWRST('XXX','WRIT') C ALP90=0.90 CALL CHSPPF(ALP90,ISUM,CV1) ALP95=0.95 CALL CHSPPF(ALP95,ISUM,CV2) ALP99=0.99 CALL CHSPPF(ALP99,ISUM,CV3) C ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' C IF(SUM2.GT.CV1)ICONC1='REJECT' IF(SUM2.GT.CV2)ICONC1='REJECT' IF(SUM2.GT.CV3)ICONC1='REJECT' C WRITE(ICOUT,4049)ALP90,SUM2,CV1,ICONC1 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4049)ALP95,SUM2,CV2,ICONC2 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4049)ALP99,SUM2,CV3,ICONC3 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C DSUM1=0.0D0 DSUM2=0.0D0 DSUM3=0.0D0 DO4210I=1,NUMSET VAL1=TEMP6(2*MAXSYS+I) VAL2=TEMP6(3*MAXSYS+I) VAL3=TEMP6(4*MAXSYS+I) DSUM1=DSUM1 + DBLE(VAL1) DSUM2=DSUM2 + DBLE(VAL2) DSUM3=DSUM3 + DBLE(VAL3) 4210 CONTINUE DSUM2=-0.5D0*DSUM2 Z=REAL((DSUM1 + DSUM2)/DSQRT(DSUM3/12.0D0)) CALL NORCDF(Z,CDF) ALP01=0.01 CALL NORPPF(ALP01,CV1) ALP05=0.05 CALL NORPPF(ALP05,CV2) ALP10=0.10 CALL NORPPF(ALP10,CV3) ALP90=0.90 CALL NORPPF(ALP90,CV4) ALP95=0.95 CALL NORPPF(ALP95,CV5) ALP99=0.99 CALL NORPPF(ALP99,CV6) ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' ICONC4='ACCEPT' ICONC5='ACCEPT' ICONC6='ACCEPT' IF(Z.LE.CV1)ICONC1='REJECT' IF(Z.LE.CV2)ICONC2='REJECT' IF(Z.LE.CV3)ICONC3='REJECT' IF(Z.GE.CV4)ICONC4='REJECT' IF(Z.GE.CV5)ICONC5='REJECT' IF(Z.GE.CV6)ICONC6='REJECT' C WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4532) 4532 FORMAT(5X,'LAPLACE TEST: COMPOSITE TEST') CALL DPWRST('XXX','WRIT') CCCCC WRITE(ICOUT,4534)N C4534 FORMAT('NUMBER OF FAILURE TIMES = ',I8) CCCCC CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4536)Z 4536 FORMAT('NORMAL TEST STATISTIC VALUE = ',G15.7) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4538)CDF 4538 FORMAT('NORMAL TEST STATISTIC CDF VALUE = ',G15.7) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,4574) 4574 FORMAT('H0: NO TREND FOR INTERARRIVAL TIMES') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4576) 4576 FORMAT('HA: THERE IS A TREND FOLLOWING A NHPP EXPONENTIAL ', 1 'LAW MODEL') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4582) 4582 FORMAT('SIGNIFICANCE NORMAL CRITICAL') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4584) 4584 FORMAT(' LEVEL TEST STATISTIC REGION ', 1 'CONCLUSION') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4586) 4586 FORMAT('==================================================', 1 '====') CALL DPWRST('XXX','WRIT') C 4559 FORMAT(1X,F4.2,'%',8X,F12.5,1X,F12.5,'(<=)',5X,A6) 4569 FORMAT(1X,F4.2,'%',8X,F12.5,1X,F12.5,'(>=)',5X,A6) WRITE(ICOUT,4559)ALP01,Z,CV1,ICONC1 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4559)ALP05,Z,CV2,ICONC2 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4559)ALP10,Z,CV3,ICONC3 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4569)ALP90,Z,CV4,ICONC4 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4569)ALP95,Z,CV5,ICONC5 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,4569)ALP99,Z,CV6,ICONC6 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C C ENDIF ENDIF C C ***************** C ** STEP 90-- ** C ** EXIT ** C ***************** C 9000 CONTINUE IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'TRE2')THEN WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9011) 9011 FORMAT('***** AT THE END OF DPTRE2--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9012)N,IBUGA3,IERROR 9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4) CALL DPWRST('XXX','BUG ') DO9016I=1,N WRITE(ICOUT,9017)I,Y(I) 9017 FORMAT('I,Y(I),W(I) = ',I8,E15.7) CALL DPWRST('XXX','BUG ') 9016 CONTINUE ENDIF C RETURN END SUBROUTINE DPTRE3(Y,N,XTEMP1,XTEMP2,TEND,MAXNXT, 1 RATPVA,MHTPVA,DSUM1,DVAL2,DVAL3, 1 ISET,ICAPSW,ICAPTY, 1 ISUBRO,IBUGA3,IERROR) C C PURPOSE--THIS ROUTINE CARRIES OUT A TRENDS ANALYSIS C FOR THE DATA IN THE INPUT VECTOR Y. C NOTE--DPTRE2 CAN LOOP THROUGH MULTIPLE SYSTEMS. C THIS ROUTINE IS USED TO COMPUTE THE TESTS FOR C A SINGLE SYSTEM. C NOTE--3 TRENDS TESTS ARE PERFORMED: C 1) REVERSE ARRANGEMENT TEST C 2) MILITARY HANDBOOK TEST C 3) LAPLACE TEST C INPUT ARGUMENTS--Y = THE SINGLE PRECISION VECTOR C OF FAILURE TIMES C N = THE INTEGER NUMBER OF C OBSERVATIONS IN THE VECTOR Y. C FORTRAN LIBRARY SUBROUTINES NEEDED--SQRT. C MODE OF INTERNAL OPERATIONS--SINGLE PRECISION. C LANGUAGE--ANSI 77 FORTRAN. 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--2006/10 C ORIGINAL VERSION--OCTOBER 2006. EXTRACTED FROM DPTRE3 C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 ICAPSW CHARACTER*4 ICAPTY C CHARACTER*4 ISUBRO CHARACTER*4 IBUGA3 CHARACTER*4 IERROR C CHARACTER*4 IWRITE CHARACTER*4 ISUBN1 CHARACTER*4 ISUBN2 CHARACTER*4 ISTEPN C C--------------------------------------------------------------------- C DOUBLE PRECISION DSUM DOUBLE PRECISION DSUM1 DOUBLE PRECISION DVAL2 DOUBLE PRECISION DVAL3 C REAL MHTPVA C CHARACTER*6 ICONC1 CHARACTER*6 ICONC2 CHARACTER*6 ICONC3 C DIMENSION Y(*) DIMENSION XTEMP1(*) DIMENSION XTEMP2(*) 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) CHARACTER*50 IVAL2 INTEGER NCHAR(MAXHED) REAL AVALUE(MAXHED) C LOGICAL IFLAG1 LOGICAL IFLAG2 LOGICAL IFLAG3 C CHARACTER*1 IBASLC C CHARACTER*132 ITTEMP CHARACTER*132 IHEAD C CHARACTER*4 IRTFMD COMMON/COMRTF/IRTFMD 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='DPTR' ISUBN2='E3 ' C IERROR='NO' C IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'TRE3')THEN WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,51) 51 FORMAT('**** AT THE BEGINNING OF DPTRE3--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,52)N,IBUGA3 52 FORMAT('N,IBUGA3 = ',I8,2X,A4) CALL DPWRST('XXX','BUG ') DO56I=1,N WRITE(ICOUT,57)I,Y(I) 57 FORMAT('I,Y(I) = ',I8,G15.7) CALL DPWRST('XXX','BUG ') 56 CONTINUE ENDIF C C ******************************************** C ** STEP 1-- ** C ** CHECK THE INPUT ARGUMENTS FOR ERRORS ** C ******************************************** C ISTEPN='1' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TRE3') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(N.LT.2)THEN WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,111)ISET 111 FORMAT('***** ERROR IN RELIABILITY TREND TEST--SYSTEM ',I8) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,113) 113 FORMAT(' THE NUMBER OF OBSERVATONS IS LESS THAN 2.') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,112)N 112 FORMAT('SAMPLE SIZE = ',I8) CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO9000 ENDIF C HOLD=Y(1) DO135I=2,N IF(Y(I).NE.HOLD)GOTO139 135 CONTINUE 130 CONTINUE WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,111)ISET CALL DPWRST('XXX','BUG ') WRITE(ICOUT,131)HOLD 131 FORMAT(' THE RESPONSE VARIABLE HAS ALL ELEMENTS = ',G15.7) CALL DPWRST('XXX','BUG ') GOTO9000 139 CONTINUE C C ******************************************** C ** STEP 11-- ** C ** REVERSE ARRANGEMENTS TEST ** C ******************************************** C C ******************************************** C ** STEP 11A- ** C ** CREATE INTERARRIVAL TIME ARRAY ** C ******************************************** C ISTEPN='11' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TRE3') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IWRITE='NO' CALL INTARR(Y,N,IWRITE,XTEMP1,NX,IBUGA3,IERROR) 100 CONTINUE C C ******************************************** C ** STEP 11B- ** C ** CALCULATE NUMBER OF REVERSALS ** C ******************************************** IREV=0 DO140J=1,N-1 DO149K=J+1,N IF(XTEMP1(K).GT.XTEMP1(J))IREV=IREV+1 149 CONTINUE 140 CONTINUE IRMAX=N*(N-1)/2 AN=REAL(N) REXP=AN*(AN-1.0)/4.0 RVAR=(2.0*AN + 5.0)*(AN - 1.0)*AN/72.0 RSD=SQRT(RVAR) C R=REAL(IREV) ANUM=R + 0.5 - REXP Z=ANUM/RSD CALL NORCDF(Z,CDF) RATPVA=CDF C C ************************* C ** STEP 11C- ** C ** FORM Z STATISTICS ** C ************************* C ISTEPN='11C' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TRE3') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C ALP01=0.01 CALL NORPPF(ALP01,PPF01) ALP05=0.05 CALL NORPPF(ALP05,PPF05) ALP10=0.10 CALL NORPPF(ALP10,PPF10) ALP90=0.90 CALL NORPPF(ALP90,PPF90) ALP95=0.95 CALL NORPPF(ALP95,PPF95) ALP99=0.99 CALL NORPPF(ALP99,PPF99) IF(N.EQ.4)THEN IRMN01=-1 IRMN05=0 IRMN10=0 IRMN90=6 IRMN95=6 IRMN99=-1 ELSEIF(N.EQ.5)THEN IRMN01=0 IRMN05=1 IRMN10=1 IRMN90=9 IRMN95=9 IRMN99=10 ELSEIF(N.EQ.6)THEN IRMN01=1 IRMN05=2 IRMN10=3 IRMN90=12 IRMN95=13 IRMN99=14 ELSEIF(N.EQ.7)THEN IRMN01=2 IRMN05=4 IRMN10=5 IRMN90=16 IRMN95=17 IRMN99=19 ELSEIF(N.EQ.8)THEN IRMN01=4 IRMN05=6 IRMN10=8 IRMN90=20 IRMN95=22 IRMN99=24 ELSEIF(N.EQ.9)THEN IRMN01=6 IRMN05=9 IRMN10=11 IRMN90=25 IRMN95=27 IRMN99=30 ELSEIF(N.EQ.10)THEN IRMN01=9 IRMN05=12 IRMN10=14 IRMN90=31 IRMN95=33 IRMN99=36 ELSEIF(N.EQ.11)THEN IRMN01=12 IRMN05=16 IRMN10=18 IRMN90=37 IRMN95=39 IRMN99=43 ELSEIF(N.EQ.12)THEN IRMN01=16 IRMN05=20 IRMN10=23 IRMN90=43 IRMN95=46 IRMN99=50 ELSEIF(N.GT.12)THEN IRMN01=PPF01*RSD + REXP - 0.5 IRMN05=PPF05*RSD + REXP - 0.5 IRMN10=PPF10*RSD + REXP - 0.5 IRMN90=PPF90*RSD + REXP - 0.5 IRMN95=PPF95*RSD + REXP - 0.5 IRMN99=PPF99*RSD + REXP - 0.5 ENDIF C ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' IF(IREV.GE.IRMN90)ICONC1='REJECT' IF(IREV.GE.IRMN95)ICONC2='REJECT' IF(IREV.GE.IRMN99)ICONC3='REJECT' C C **************************** C ** STEP 11D- ** C ** WRITE EVERYTHING OUT ** C **************************** C ISTEPN='11D' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TRE3') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(IPRINT.EQ.'ON')THEN IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN ITTEMP='Reverse Arrangements Test: (System )' WRITE(ITTEMP(36:43),'(I8)')ISET NCTEMP=44 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C IWIDT1=350 IWDIT2=150 NUMDIG=0 C IVAL2='Number of Failure Times:' NCH=24 AVAL=REAL(N) CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IVAL2='Observed Number of Reversals:' NCH=29 AVAL=REAL(IREV) CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IVAL2='Maximum Possible Number of Reversals:' NCH=38 AVAL=REAL(IRMAX) CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) NUMDIG=-2 IVAL2='Expected Number of Reversals:' NCH=30 AVAL=REXP CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IVAL2='Variance for Expected Number of Reversals:' NCH=44 AVAL=RVAR CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IVAL2='Value of Test Statistic (Z-Score):' NCH=36 AVAL=Z CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IVAL2='Z-Score CDF Value:' NCH=20 AVAL=CDF CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C WRITE(ICOUT,5005) 5005 FORMAT('

') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5007) 5007 FORMAT('
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5011) 5011 FORMAT('Improvement Test
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5013) 5013 FORMAT('H0: No Trend for Interarrival Times
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5015) 5015 FORMAT('Ha: There is an Increasing Trend for ', 1 'Interarrival Times
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5019) 5019 FORMAT('
') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5005) CALL DPWRST('XXX','WRIT') C ITTEMP=' ' NCTEMP=0 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C NHEAD=4 DO5020I=1,4 ALIGN(I)='CENTER' NUMDI2(I)=0 IWIDTH(I)=150 VALIGN(I)='TOP' 5020 CONTINUE IVALUE(1)='Significance
Level' NCHAR(1)=21 IVALUE(2)='Number of
Reversals' NCHAR(2)=22 IVALUE(3)='Critical
Region' NCHAR(3)=18 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C NHEAD=2 AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN90) IVALUE(1)='0.90%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC1(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN95) IVALUE(1)='0.95%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC2(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN99) IVALUE(3)='0.99%' NCHAR(3)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC3(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN C CALL DPCONA(92,IBASLC) IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C CALL DPCONA(92,IBASLC) IFLAG1=.FALSE. IFLAG2=.TRUE. ITTEMP='Reverse Arrangements Test: (System )' WRITE(ITTEMP(36:43),'(I8)')ISET NCTEMP=44 CALL DPLAT8(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C IWIDTH(1)=0 VALIGN(1)=' ' ALIGN(1)='l' NUMDI2(1)=-2 IWIDTH(2)=0 VALIGN(2)=' ' ALIGN(2)='r' NUMDI2(2)=-2 IFLAG1=.FALSE. NHEAD=1 C 8020 FORMAT(A1,'begin{center}') 8021 FORMAT(A1,'begin{tabular}{lr}') WRITE(ICOUT,8020)IBASLC CALL DPWRST('XXX','WRIT') WRITE(ICOUT,8021)IBASLC CALL DPWRST('XXX','WRIT') C IVALUE(1)='Number of Failure Times: ' NCHAR(1)=25 AVALUE(1)=REAL(N) CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Observed Number of Reversals: ' NCHAR(1)=30 AVALUE(1)=REAL(IREV) CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Maximum Possible Number of Reversals:' NCHAR(1)=39 AVALUE(1)=REAL(IRMAX) CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) NUMDI2(1)=-2 IVALUE(1)='Expected Number of Reversals: ' NCHAR(1)=31 AVALUE(1)=REXP CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Variance for Expected Number of Reversals: ' NCHAR(1)=45 AVALUE(1)=RVAR CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Value of Test Statistic (Z-Score): ' NCHAR(1)=36 AVALUE(1)=Z CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Z-Score CDF Value: ' NCHAR(1)=20 AVALUE(1)=CDF CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.FALSE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C IVALUE(1)='Improvement Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Increasing Trend for Interarrival Times' NCHAR2=43 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) C DO8010I=1,4 IWIDTH(I)=100 VALIGN(1)='BOTTOM' ALIGN(I)='c' NUMDI2(1)=0 8010 CONTINUE IFLAG1=.FALSE. C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C NHEAD=4 IVALUE(1)='Significance' NCHAR(1)=12 IVALUE(2)='Number of' NCHAR(2)=9 IVALUE(3)='Critical' NCHAR(3)=8 IVALUE(4)=' ' NCHAR(4)=1 IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) IVALUE(1)='Level' NCHAR(1)=5 IVALUE(2)='Reversals' NCHAR(2)=9 IVALUE(3)='Region' NCHAR(3)=6 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.FALSE. IFLAG2=.TRUE. IFLAG3=.FALSE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=2 IVALUE(1)='0.90$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC1 NCHAR2=6 AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN90) CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.95$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC2 NCHAR2=6 AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN95) CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.99$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC3 NCHAR2=6 AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN99) CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN C CALL DPCONA(92,IBASLC) 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 ITEMP2=2.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE WRITE(ICOUT,6195)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ENDIF C C WRITE HEADER LINE C IRTFMD='OFF' CALL DPCONA(92,IBASLC) IFLAG1=.TRUE. ITTEMP='Reverse Arrangements Test: (System )' WRITE(ITTEMP(36:43),'(I8)')ISET NCTEMP=44 CALL DPRTF8(ITTEMP,NCTEMP,ITEMP,IFLAG1) NHEAD=0 ITEMP2=1.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE WRITE(ICOUT,6195)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ENDIF C 6191 FORMAT(A1,'f',I1) 6193 FORMAT(A1,'fs',I1) 6195 FORMAT(A1,'fs',I2) 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 IDEFPS=20 IFRST=IRTFPS*1400*4/IDEFPS IINC1=IRTFPS*1440/IDEFPS IINC2=IRTFPS*800/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 VALIGN(1)='b' VALIGN(2)='b' VALIGN(3)='b' VALIGN(4)='b' ALIGN(1)='l' ALIGN(2)='r' ALIGN(3)='c' ALIGN(4)='c' NUMDI2(1)=0 NUMDI2(2)=0 NUMDI2(3)=0 NUMDI2(4)=0 IFLAG1=.FALSE. NHEAD=1 C IVALUE(1)='Number of Failure Times:' NCHAR(1)=24 AVALUE(2)=REAL(N) CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Observed Number of Reversals:' NCHAR(1)=29 AVALUE(2)=REAL(IREV) CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Maximum Possible Number of Reversals:' NCHAR(1)=38 AVALUE(2)=REAL(IRMAX) CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) NUMDI2(2)=-2 IVALUE(1)='Expected Number of Reversals:' NCHAR(1)=30 AVALUE(2)=REXP CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Variance for Expected Number of Reversals:' NCHAR(1)=44 AVALUE(2)=RVAR CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Value of Test Statistic (Z-Score):' NCHAR(1)=36 AVALUE(2)=Z CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Z-Score CDF Value:' NCHAR(1)=20 AVALUE(2)=CDF CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) C CALL DPRTF6(NHEAD) 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 IVALUE(1)='Improvement Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Increasing Trend for Interarrival Times' NCHAR2=43 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) CALL DPRTF6(NHEAD) 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 IVALUE(1)=' ' IVALUE(2)=' ' NCHAR2=0 CALL DPRTF1(IVALUE,NCHAR2,IVALUE(2),NCHAR2) C DO7020I=1,4 VALIGN(I)='b' ALIGN(I)='c' NUMDI2(I)=0 7020 CONTINUE IFRST=IRTFPS*2000/IDEFPS IINC1=IRTFPS*1600/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 IWIDTH(3)=IWIDTH(2) + IINC1 IWIDTH(4)=IWIDTH(3) + IINC1 C IVALUE(1)=' b Significance line Level' IVALUE(1)(1:1)=IBASLC IVALUE(1)(16:16)=IBASLC NCHAR(1)=26 IVALUE(2)=' b Number of line Reversals' IVALUE(2)(1:1)=IBASLC IVALUE(2)(13:13)=IBASLC NCHAR(2)=27 IVALUE(3)=' b Critical line Region' IVALUE(3)(1:1)=IBASLC IVALUE(3)(12:12)=IBASLC NCHAR(3)=23 IVALUE(4)=' b Conclusion' IVALUE(4)(1:1)=IBASLC NCHAR(4)=13 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C IFLAG1=.FALSE. NHEAD=2 C IVALUE(1)='0.90%' NCHAR(1)=5 IVAL2=ICONC1 NCHAR2=6 AVALUE(2)=REAL(IREV) AVALUE(3)=REAL(IRMN90) CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.95%' IVAL2=ICONC2 AVALUE(3)=REAL(IRMN95) CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.99%' IVAL2=ICONC3 AVALUE(3)=REAL(IRMN99) CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) C CALL DPRTF6(NHEAD) 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 ELSE C WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,152)ISET 152 FORMAT(12X,'REVERSE ARRANGEMENTS TEST: (SYSTEM ',I10,')') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,154)N 154 FORMAT('NUMBER OF FAILURE TIMES = ',I8) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,156)IREV 156 FORMAT('OBSERVED NUMBER OF REVERSALS = ',I8) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,158)IRMAX 158 FORMAT('MAXIMUM POSSIBLE NUMBER OF REVERSALS = ',I8) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,160)REXP 160 FORMAT('EXPECTED NUMBER OF REVERSALS = ',G15.7) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,162)RVAR 162 FORMAT('VARIANCE FOR EXPECTED NUMBER OF REVERSALS = ',G15.7) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,164)Z 164 FORMAT('VALUE OF TEST STATISTIC (Z-SCORE) = ',G15.7) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,166)CDF 166 FORMAT('Z-SCORE CDF VALUE = ',G15.7) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,202) 202 FORMAT('IMPROVEMENT TEST') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,174) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,204) 204 FORMAT('HA: THERE IS AN INCREASING TREND FOR INTERARRIVAL ', 1 'TIMES') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,182) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,184) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,186) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,209)ALP90,IREV,IRMN90,ICONC1 209 FORMAT(1X,F4.2,'%',5X,I10,3X,I10,'(>=)',7X,A6) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,209)ALP95,IREV,IRMN95,ICONC2 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,209)ALP99,IREV,IRMN99,ICONC3 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C ENDIF ENDIF C ICONC1='ACCEPT' ICONC2='ACCEPT' ICONC3='ACCEPT' IF(IREV.LE.IRMN01)ICONC1='REJECT' IF(IREV.LE.IRMN05)ICONC2='REJECT' IF(IREV.LE.IRMN10)ICONC3='REJECT' C IF(IPRINT.EQ.'ON')THEN IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN WRITE(ICOUT,5005) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5007) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5061) 5061 FORMAT('Degradation Test
') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5013) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5065) 5065 FORMAT('Ha: There is an Decreasing Trend for ', 1 'Interarrival Times
') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5019) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5005) CALL DPWRST('XXX','WRIT') C ITTEMP=' ' NCTEMP=0 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C NHEAD=4 DO5060I=1,4 ALIGN(I)='CENTER' NUMDI2(I)=0 IWIDTH(I)=150 VALIGN(I)='TOP' 5060 CONTINUE IVALUE(1)='Significance
Level' NCHAR(1)=21 IVALUE(2)='Number of
Reversals' NCHAR(2)=22 IVALUE(3)='Critical
Region' NCHAR(3)=18 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C NHEAD=2 AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN01) IVALUE(1)='0.01%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC1(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN05) IVALUE(1)='0.05%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC2(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN10) IVALUE(3)='0.10%' NCHAR(3)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC3(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.FALSE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C IVALUE(1)='Degradation Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Decreasing Trend for Interarrival Times' NCHAR2=43 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) DO8070I=1,4 IWIDTH(I)=100 VALIGN(1)='BOTTOM' ALIGN(I)='c' NUMDI2(1)=0 8070 CONTINUE IFLAG1=.FALSE. C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C NHEAD=4 IVALUE(1)='Significance' NCHAR(1)=12 IVALUE(2)='Number of' NCHAR(2)=9 IVALUE(3)='Critical' NCHAR(3)=8 IVALUE(4)=' ' NCHAR(4)=1 IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) IVALUE(1)='Level' NCHAR(1)=5 IVALUE(2)='Reversals' NCHAR(2)=9 IVALUE(3)='Region' NCHAR(3)=6 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.FALSE. IFLAG2=.TRUE. IFLAG3=.FALSE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=2 IVALUE(1)='0.01$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC1 NCHAR2=6 AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN01) CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.05$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC2 NCHAR2=6 AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN05) CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.10$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC3 NCHAR2=6 AVALUE(1)=REAL(IREV) AVALUE(2)=REAL(IRMN10) CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IFLAG1=.TRUE. IFLAG2=.TRUE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN C IVALUE(1)='Degradation Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Decreasing Trend for Interarrival Times' NCHAR2=43 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) CALL DPRTF6(NHEAD) 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 IVALUE(1)=' ' IVALUE(2)=' ' NCHAR2=0 CALL DPRTF1(IVALUE,NCHAR2,IVALUE(2),NCHAR2) C IVALUE(1)=' b Significance line Level' IVALUE(1)(1:1)=IBASLC IVALUE(1)(16:16)=IBASLC NCHAR(1)=26 IVALUE(2)=' b Number of line Reversals' IVALUE(2)(1:1)=IBASLC IVALUE(2)(13:13)=IBASLC NCHAR(2)=27 IVALUE(3)=' b Critical line Region' IVALUE(3)(1:1)=IBASLC IVALUE(3)(12:12)=IBASLC NCHAR(3)=23 IVALUE(4)=' b Conclusion' IVALUE(4)(1:1)=IBASLC NCHAR(4)=13 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C DO7040I=1,4 VALIGN(I)='b' ALIGN(I)='c' NUMDI2(I)=0 7040 CONTINUE IFLAG1=.FALSE. NHEAD=2 C IVALUE(1)='0.01%' NCHAR(1)=5 IVAL2=ICONC1 NCHAR2=6 AVALUE(2)=REAL(IREV) AVALUE(3)=REAL(IRMN01) CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.05%' IVAL2=ICONC2 AVALUE(3)=REAL(IRMN05) CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.10%' IVAL2=ICONC3 AVALUE(3)=REAL(IRMN10) CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) CALL DPRTF6(NHEAD) C ELSE C WRITE(ICOUT,172) 172 FORMAT('DEGRADATION TEST') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,174) 174 FORMAT('H0: NO TREND FOR INTERARRIVAL TIMES') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,176) 176 FORMAT('HA: THERE IS A DECLINING TREND FOR INTERARRIVAL ', 1 'TIMES') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,182) 182 FORMAT('SIGNIFICANCE NUMBER OF CRITICAL') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,184) 184 FORMAT(' LEVEL REVERSALS REGION CONCLUSION') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,186) 186 FORMAT('===================================================') CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,192)ALP01,IREV,IRMN01,ICONC1 192 FORMAT(1X,F4.2,'%',5X,I10,3X,I10,'(<=)',7X,A6) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,192)ALP05,IREV,IRMN05,ICONC2 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,192)ALP10,IREV,IRMN10,ICONC3 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C ENDIF ENDIF C C ******************************************** C ** STEP 21-- ** C ** MILITARY HANDBOOK TEST ** C ******************************************** C ISTEPN='21' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TRE3') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C C ******************************************** C ** STEP 21B- ** C ** CALCULATE TEST STATISTIC ** C ******************************************** C DSUM=0.0D0 DO310I=1,N IF(Y(I).GE.TEND)THEN WRITE(ICOUT,311) 311 FORMAT('***** ERROR FROM MILITARY HANDBOOK TEST--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,312)ISET 312 FORMAT(' FOR SYSTEM ',I8) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,313)TEND 313 FORMAT(' THE SPECIFIED CENSORING TIME,',G15.7,',') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,314) 314 FORMAT(' IS LESS THAN AT LEAST ONE FAILURE TIME.') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,316)I,Y(I) 316 FORMAT(' FAILURE TIME ',I8,' = ',G15.7) CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO9000 ELSEIF(Y(I).LE.0.0)THEN WRITE(ICOUT,311) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,317)I 317 FORMAT(' FAILURE ',I8,' IS NON-POSITIVE. ') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,318)Y(I) 318 FORMAT(' IT HAS THE VALUE ',G15.7) CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO9000 ENDIF DSUM=DSUM + DLOG(DBLE(TEND/Y(I))) 310 CONTINUE Z=REAL(2.0D0*DSUM) INU=2*N CALL CHSCDF(Z,INU,CDF) MHTPVA=CDF C ALP01=0.01 CALL CHSPPF(ALP01,INU,CV1) ALP05=0.05 CALL CHSPPF(ALP05,INU,CV2) ALP10=0.10 CALL CHSPPF(ALP10,INU,CV3) ALP90=0.90 CALL CHSPPF(ALP90,INU,CV4) ALP95=0.95 CALL CHSPPF(ALP95,INU,CV5) ALP99=0.99 CALL CHSPPF(ALP99,INU,CV6) C ICONC1='REJECT' ICONC2='REJECT' ICONC3='REJECT' C IF(0.000.LE.CDF.AND.CDF.LE.0.9)ICONC1='ACCEPT' IF(0.000.LE.CDF.AND.CDF.LE.0.95)ICONC2='ACCEPT' IF(0.000.LE.CDF.AND.CDF.LE.0.99)ICONC3='ACCEPT' C C **************************** C ** STEP 21B- ** C ** WRITE EVERYTHING OUT ** C **************************** C ISTEPN='21B' IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(IPRINT.EQ.'ON')THEN IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN ITTEMP='Military Handbook Test: (System )' WRITE(ITTEMP(33:40),'(I8)')ISET NCTEMP=41 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C IWIDT1=350 IWDIT2=150 NUMDIG=0 C IVAL2='Number of Failure Times:' NCH=24 AVAL=REAL(N) CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) NUMDIG=-2 IVAL2='Chi-Square Test Statistic Value' NCH=31 AVAL=Z CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IVAL2='Chi-Square Test Statistic CDF Value' NCH=35 AVAL=CDF CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C WRITE(ICOUT,5105) 5105 FORMAT('

') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5107) 5107 FORMAT('
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5111) 5111 FORMAT('Improvement Test
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5113) 5113 FORMAT('H0: No Trend for Interarrival Times
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5115) 5115 FORMAT('Ha: There is a Trend Following a NHPP ', 1 'Power Law Model
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5119) 5119 FORMAT('
') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5105) CALL DPWRST('XXX','WRIT') C ITTEMP=' ' NCTEMP=0 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C NHEAD=4 DO5120I=1,4 ALIGN(I)='CENTER' NUMDI2(I)=-2 IWIDTH(I)=150 VALIGN(I)='TOP' 5120 CONTINUE IVALUE(1)='Significance
Level' NCHAR(1)=21 IVALUE(2)='Chi-Square
Test Statistic' NCHAR(2)=28 IVALUE(3)='Critical
Region' NCHAR(3)=18 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C NHEAD=2 AVALUE(1)=Z AVALUE(2)=CV4 IVALUE(1)='0.90%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC1(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV5 IVALUE(1)='0.95%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC2(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV6 IVALUE(3)='0.99%' NCHAR(3)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC3(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C CALL DPCONA(92,IBASLC) IFLAG1=.FALSE. IFLAG2=.TRUE. ITTEMP='Military Handbook Test: (System )' WRITE(ITTEMP(33:40),'(I8)')ISET NCTEMP=41 CALL DPLAT8(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C IWIDTH(1)=0 VALIGN(1)=' ' ALIGN(1)='l' NUMDI2(1)=-2 IWIDTH(2)=0 VALIGN(2)=' ' ALIGN(2)='r' NUMDI2(2)=-2 IFLAG1=.FALSE. NHEAD=1 C WRITE(ICOUT,8020)IBASLC CALL DPWRST('XXX','WRIT') WRITE(ICOUT,8021)IBASLC CALL DPWRST('XXX','WRIT') C IVALUE(1)='Number of Failure Times: ' NCHAR(1)=25 AVALUE(1)=REAL(N) CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Chi-Square Test Statistic Value: ' NCHAR(1)=33 AVALUE(1)=Z CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Chi-Square Test Statistic CDF Value: ' NCHAR(1)=37 AVALUE(1)=CDF CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.FALSE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C IVALUE(1)='Improvement Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Trend Following a NHPP Power Law Model' NCHAR2=42 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) C DO8210I=1,4 IWIDTH(I)=100 VALIGN(1)='BOTTOM' ALIGN(I)='c' NUMDI2(1)=-2 8210 CONTINUE IFLAG1=.FALSE. C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C NHEAD=4 IVALUE(1)='Significance' NCHAR(1)=12 IVALUE(2)='Chi-Square' NCHAR(2)=10 IVALUE(3)='Critical' NCHAR(3)=8 IVALUE(4)=' ' NCHAR(4)=1 IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) IVALUE(1)='Level' NCHAR(1)=5 IVALUE(2)='Test Statistic' NCHAR(2)=14 IVALUE(3)='Region' NCHAR(3)=6 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.FALSE. IFLAG2=.TRUE. IFLAG3=.FALSE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=2 IVALUE(1)='0.90$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC1 NCHAR2=6 AVALUE(1)=Z AVALUE(2)=CV4 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.95$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC2 NCHAR2=6 AVALUE(2)=CV5 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.99$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC3 NCHAR2=6 AVALUE(2)=CV6 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN C CALL DPCONA(92,IBASLC) 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 ITEMP2=2.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE WRITE(ICOUT,6195)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ENDIF C C WRITE HEADER LINE C IRTFMD='OFF' CALL DPCONA(92,IBASLC) IFLAG1=.TRUE. ITTEMP='Military Handbook Test: (System )' WRITE(ITTEMP(33:40),'(I8)')ISET NCTEMP=41 CALL DPRTF8(ITTEMP,NCTEMP,ITEMP,IFLAG1) NHEAD=0 ITEMP2=1.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE 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 IDEFPS=20 IFRST=IRTFPS*1400*4/IDEFPS IINC1=IRTFPS*1440/IDEFPS IINC2=IRTFPS*800/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 VALIGN(1)='b' VALIGN(2)='b' VALIGN(3)='b' VALIGN(4)='b' ALIGN(1)='l' ALIGN(2)='r' ALIGN(3)='c' ALIGN(4)='c' NUMDI2(1)=0 NUMDI2(2)=0 NUMDI2(3)=0 NUMDI2(4)=0 IFLAG1=.FALSE. NHEAD=1 C IVALUE(1)='Number of Failure Times:' NCHAR(1)=24 AVALUE(2)=REAL(N) CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Chi-Square Test Statistic Value:' NCHAR(1)=32 AVALUE(2)=Z CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Chi-Square Test Statistic CDF Value:' NCHAR(1)=36 AVALUE(2)=CDF CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) C CALL DPRTF6(NHEAD) 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 IVALUE(1)='Improvement Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Trend Following a NHPP Power Law Model' NCHAR2=42 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) CALL DPRTF6(NHEAD) 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 IVALUE(1)=' ' IVALUE(2)=' ' NCHAR2=0 CALL DPRTF1(IVALUE,NCHAR2,IVALUE(2),NCHAR2) C DO7120I=1,4 VALIGN(I)='b' ALIGN(I)='c' NUMDI2(I)=-2 7120 CONTINUE IFRST=IRTFPS*2000/IDEFPS IINC1=IRTFPS*1600/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 IWIDTH(3)=IWIDTH(2) + IINC1 IWIDTH(4)=IWIDTH(3) + IINC1 C IVALUE(1)=' b Significance line Level' IVALUE(1)(1:1)=IBASLC IVALUE(1)(16:16)=IBASLC NCHAR(1)=26 IVALUE(2)=' b Chi-Square line Test Statistic' IVALUE(2)(1:1)=IBASLC IVALUE(2)(14:14)=IBASLC NCHAR(2)=34 IVALUE(3)=' b Critical line Region' IVALUE(3)(1:1)=IBASLC IVALUE(3)(12:12)=IBASLC NCHAR(3)=23 IVALUE(4)=' b Conclusion' IVALUE(4)(1:1)=IBASLC NCHAR(4)=13 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C IFLAG1=.FALSE. NHEAD=2 C IVALUE(1)='0.90%' NCHAR(1)=5 IVAL2=ICONC1 NCHAR2=6 AVALUE(2)=Z AVALUE(3)=CV4 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.95%' IVAL2=ICONC2 AVALUE(3)=CV5 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.99%' IVAL2=ICONC3 AVALUE(3)=CV6 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) C CALL DPRTF6(NHEAD) 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 ELSE C WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,332)ISET 332 FORMAT(12X,'MILITARY HANDBOOK TEST: (FOR SYSTEM ',I8,')') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,334)N 334 FORMAT('NUMBER OF FAILURE TIMES = ',I8) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,336)Z 336 FORMAT('CHI-SQUARE TEST STATISTIC VALUE = ',G15.7) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,338)CDF 338 FORMAT('CHI-SQUARE TEST STATISTIC CDF VALUE = ',G15.7) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,340) 340 FORMAT('IMPROVEMENT TEST') CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,354) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,344) 344 FORMAT('HA: THERE IS A TREND FOLLOWING A NHPP POWER LAW ', 1 'MODEL') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,362) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,364) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,366) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,349)ALP90,Z,CV4,ICONC1 349 FORMAT(1X,F4.2,'%',8X,F12.5,1X,F12.5,'(>=)',5X,A6) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,349)ALP95,Z,CV5,ICONC2 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,349)ALP99,Z,CV6,ICONC3 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C ENDIF ENDIF C ICONC1='REJECT' ICONC2='REJECT' ICONC3='REJECT' C IF(CDF.GE.0.1)ICONC1='ACCEPT' IF(CDF.GE.0.05)ICONC2='ACCEPT' IF(CDF.GE.0.01)ICONC3='ACCEPT' C IF(IPRINT.EQ.'ON')THEN IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN WRITE(ICOUT,5205) 5205 FORMAT('

') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5207) 5207 FORMAT('
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5211) 5211 FORMAT('Improvement Test
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5213) 5213 FORMAT('H0: No Trend for Interarrival Times
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5215) 5215 FORMAT('Ha: There is a Trend Following a NHPP ', 1 'Power Law Model
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5219) 5219 FORMAT('
') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5205) CALL DPWRST('XXX','WRIT') C ITTEMP=' ' NCTEMP=0 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C NHEAD=4 DO5220I=1,4 ALIGN(I)='CENTER' NUMDI2(I)=-2 IWIDTH(I)=150 VALIGN(I)='TOP' 5220 CONTINUE IVALUE(1)='Significance
Level' NCHAR(1)=21 IVALUE(2)='Chi-Square
Test Statistic' NCHAR(2)=28 IVALUE(3)='Critical
Region' NCHAR(3)=18 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C NHEAD=2 AVALUE(1)=Z AVALUE(2)=CV1 IVALUE(1)='0.01%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC1(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV2 IVALUE(1)='0.90%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC2(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV3 IVALUE(3)='0.01%' NCHAR(3)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC3(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.FALSE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C IVALUE(1)='Degradation Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Decreasing Trend for Interarrival Times' NCHAR2=43 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) DO8360I=1,4 IWIDTH(I)=100 VALIGN(1)='BOTTOM' ALIGN(I)='c' NUMDI2(1)=0 8360 CONTINUE IFLAG1=.FALSE. C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C NHEAD=4 IVALUE(1)='Significance' NCHAR(1)=12 IVALUE(2)='Chi-Square' NCHAR(2)=10 IVALUE(3)='Critical' NCHAR(3)=8 IVALUE(4)=' ' NCHAR(4)=1 IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) IVALUE(1)='Level' NCHAR(1)=5 IVALUE(2)='Test Statistic' NCHAR(2)=14 IVALUE(3)='Region' NCHAR(3)=6 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.FALSE. IFLAG2=.TRUE. IFLAG3=.FALSE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=2 IVALUE(1)='0.01$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC1 NCHAR2=6 AVALUE(1)=Z AVALUE(2)=CV1 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.05$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC2 NCHAR2=6 AVALUE(2)=CV2 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.10$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC3 NCHAR2=6 AVALUE(2)=CV3 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IFLAG1=.TRUE. IFLAG2=.TRUE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN C IVALUE(1)='Degradation Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Trend Following a NHPP Power Law Model' NCHAR2=42 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) CALL DPRTF6(NHEAD) 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 IVALUE(1)=' ' IVALUE(2)=' ' NCHAR2=0 CALL DPRTF1(IVALUE,NCHAR2,IVALUE(2),NCHAR2) C IVALUE(1)=' b Significance line Level' IVALUE(1)(1:1)=IBASLC IVALUE(1)(16:16)=IBASLC NCHAR(1)=26 IVALUE(2)=' b Chi-Square line Test Statistic' IVALUE(2)(1:1)=IBASLC IVALUE(2)(14:14)=IBASLC NCHAR(2)=34 IVALUE(3)=' b Critical line Region' IVALUE(3)(1:1)=IBASLC IVALUE(3)(12:12)=IBASLC NCHAR(3)=23 IVALUE(4)=' b Conclusion' IVALUE(4)(1:1)=IBASLC NCHAR(4)=13 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C DO7140I=1,4 VALIGN(I)='b' ALIGN(I)='c' NUMDI2(I)=-2 7140 CONTINUE IFLAG1=.FALSE. NHEAD=2 C IVALUE(1)='0.01%' NCHAR(1)=5 IVAL2=ICONC1 NCHAR2=6 AVALUE(2)=Z AVALUE(3)=CV1 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.05%' IVAL2=ICONC2 AVALUE(3)=CV2 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.10%' IVAL2=ICONC3 AVALUE(3)=CV3 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) CALL DPRTF6(NHEAD) C ELSE C WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,350) 350 FORMAT('DEGRADATION TEST') CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,354) 354 FORMAT('H0: NO TREND FOR INTERARRIVAL TIMES') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,356) 356 FORMAT('HA: THERE IS A TREND FOLLOWING A NHPP POWER LAW ', 1 'MODEL') CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,362) 362 FORMAT('SIGNIFICANCE CHI-SQUARE CRITICAL') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,364) 364 FORMAT(' LEVEL TEST STATISTIC REGION ', 1 'CONCLUSION') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,366) 366 FORMAT('==================================================', 1 '====') CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,392)ALP01,Z,CV1,ICONC1 392 FORMAT(1X,F4.2,'%',8X,F12.5,1X,F12.5,'(<=)',5X,A6) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,392)ALP05,Z,CV2,ICONC2 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,392)ALP10,Z,CV3,ICONC3 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C ENDIF ENDIF C C ******************************************** C ** STEP 31-- ** C ** LAPLACE TEST ** C ******************************************** C ISTEPN='31' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TRE3') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C C ******************************************** C ** STEP 31B- ** C ** CALCULATE TEST STATISTIC ** C ******************************************** C DSUM=0.0D0 DSUM1=0.0D0 DO510I=1,N IF(Y(I).GE.TEND)THEN WRITE(ICOUT,511)TEND 511 FORMAT('***** ERROR FROM LAPLACE TREND TEST--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,512)ISET 512 FORMAT(' FOR SYSTEM ',I8) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,513)TEND 513 FORMAT(' THE SPECIFIED CENSORING TIME, ',G15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,514) 514 FORMAT(' IS LESS THAN AT LEAST ONE FAILURE TIME.') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,516)I,Y(I) 516 FORMAT(' FAILURE TIME ',I8,' = ',G15.7) CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO9000 ENDIF IF(Y(I).LE.0.0)THEN WRITE(ICOUT,511)TEND CALL DPWRST('XXX','BUG ') WRITE(ICOUT,512)ISET CALL DPWRST('XXX','BUG ') WRITE(ICOUT,521)I 521 FORMAT(' FAILURE ',I8,' IS NOT POSITIVE.') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,523)Y(I) 523 FORMAT(' IT HAS THE VALUE ',G15.7) CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO9000 ENDIF DSUM=DSUM + DBLE(Y(I)-TEND/2.0) DSUM1=DSUM1 + DBLE(Y(I)) 510 CONTINUE DVAL2=DBLE(N)*DBLE(TEND) DVAL3=DBLE(N)*DBLE(TEND)**2 C AN=REAL(N) Z=REAL(DBLE(SQRT(12.0*AN))*DSUM/DBLE(AN*TEND)) CALL NORCDF(Z,CDF) C ALP01=0.01 CALL NORPPF(ALP01,CV1) ALP05=0.05 CALL NORPPF(ALP05,CV2) ALP10=0.10 CALL NORPPF(ALP10,CV3) ALP90=0.90 CALL NORPPF(ALP90,CV4) ALP95=0.95 CALL NORPPF(ALP95,CV5) ALP99=0.99 CALL NORPPF(ALP99,CV6) C C **************************** C ** STEP 31B- ** C ** WRITE EVERYTHING OUT ** C **************************** C ISTEPN='31B' IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'TRE3') 1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C ICONC1='REJECT' ICONC2='REJECT' ICONC3='REJECT' C IF(0.000.LE.CDF.AND.CDF.LE.0.9)ICONC1='ACCEPT' IF(0.000.LE.CDF.AND.CDF.LE.0.95)ICONC2='ACCEPT' IF(0.000.LE.CDF.AND.CDF.LE.0.99)ICONC3='ACCEPT' C IF(IPRINT.EQ.'ON')THEN IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN ITTEMP='Laplace Test: (System )' WRITE(ITTEMP(23:30),'(I8)')ISET NCTEMP=31 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C IWIDT1=350 IWDIT2=150 NUMDIG=0 C IVAL2='Number of Failure Times:' NCH=24 AVAL=REAL(N) CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) NUMDIG=-2 IVAL2='Normal Test Statistic Value' NCH=27 AVAL=Z CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IVAL2='Normal Test Statistic CDF Value' NCH=31 AVAL=CDF CALL DPHTM3(IVAL2,NCH,AVAL,NUMDIG,IWIDT1,IWDIT2) IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C WRITE(ICOUT,5305) 5305 FORMAT('

') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5307) 5307 FORMAT('
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5311) 5311 FORMAT('Improvement Test
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5313) 5313 FORMAT('H0: No Trend for Interarrival Times
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5315) 5315 FORMAT('Ha: There is a Trend Following a NHPP ', 1 'Exponential Law Model
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5319) 5319 FORMAT('
') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5305) CALL DPWRST('XXX','WRIT') C ITTEMP=' ' NCTEMP=0 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C NHEAD=4 DO5320I=1,4 ALIGN(I)='CENTER' NUMDI2(I)=-2 IWIDTH(I)=150 VALIGN(I)='TOP' 5320 CONTINUE IVALUE(1)='Significance
Level' NCHAR(1)=21 IVALUE(2)='Normal
Test Statistic' NCHAR(2)=24 IVALUE(3)='Critical
Region' NCHAR(3)=18 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C NHEAD=2 AVALUE(1)=Z AVALUE(2)=CV4 IVALUE(1)='0.90%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC1(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV5 IVALUE(1)='0.95%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC2(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV6 IVALUE(1)='0.99%' NCHAR(3)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC3(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C CALL DPCONA(92,IBASLC) IFLAG1=.FALSE. IFLAG2=.TRUE. ITTEMP='Laplace Test: (System )' WRITE(ITTEMP(23:30),'(I8)')ISET NCTEMP=31 CALL DPLAT8(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C IWIDTH(1)=0 VALIGN(1)=' ' ALIGN(1)='l' NUMDI2(1)=-2 IWIDTH(2)=0 VALIGN(2)=' ' ALIGN(2)='r' NUMDI2(2)=-2 IFLAG1=.FALSE. NHEAD=1 C WRITE(ICOUT,8020)IBASLC CALL DPWRST('XXX','WRIT') WRITE(ICOUT,8021)IBASLC CALL DPWRST('XXX','WRIT') C IVALUE(1)='Number of Failure Times: ' NCHAR(1)=25 AVALUE(1)=REAL(N) CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Normal Test Statistic Value: ' NCHAR(1)=29 AVALUE(1)=Z CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Normal Test Statistic CDF Value: ' NCHAR(1)=33 AVALUE(1)=CDF CALL DPLAT5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.FALSE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C IVALUE(1)='Improvement Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Trend Following a NHPP Exponential Law Model' NCHAR2=48 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) C DO8310I=1,4 IWIDTH(I)=100 VALIGN(1)='BOTTOM' ALIGN(I)='c' NUMDI2(1)=-2 8310 CONTINUE IFLAG1=.FALSE. C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C NHEAD=4 IVALUE(1)='Significance' NCHAR(1)=12 IVALUE(2)='Normal' NCHAR(2)=6 IVALUE(3)='Critical' NCHAR(3)=8 IVALUE(4)=' ' NCHAR(4)=1 IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) IVALUE(1)='Level' NCHAR(1)=5 IVALUE(2)='Test Statistic' NCHAR(2)=14 IVALUE(3)='Region' NCHAR(3)=6 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.FALSE. IFLAG2=.TRUE. IFLAG3=.FALSE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=2 IVALUE(1)='0.90$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC1 NCHAR2=6 AVALUE(1)=Z AVALUE(2)=CV4 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.95$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC2 NCHAR2=6 AVALUE(2)=CV5 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IVALUE(1)='0.99$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC3 NCHAR2=6 AVALUE(2)=CV6 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1, 1 IVAL2,NCHAR2) IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN C CALL DPCONA(92,IBASLC) 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 ITEMP2=2.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE WRITE(ICOUT,6195)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ENDIF C C WRITE HEADER LINE C IRTFMD='OFF' CALL DPCONA(92,IBASLC) IFLAG1=.TRUE. ITTEMP='Laplace Test: (System )' WRITE(ITTEMP(23:30),'(I8)')ISET NCTEMP=31 CALL DPRTF8(ITTEMP,NCTEMP,ITEMP,IFLAG1) NHEAD=0 ITEMP2=1.0*IRTFPS IF(ITEMP2.LE.9)THEN WRITE(ICOUT,6193)IBASLC,ITEMP2 CALL DPWRST(ICOUT,'WRIT') ELSE 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 IDEFPS=20 IFRST=IRTFPS*1400*4/IDEFPS IINC1=IRTFPS*1440/IDEFPS IINC2=IRTFPS*1000/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 VALIGN(1)='b' VALIGN(2)='b' VALIGN(3)='b' VALIGN(4)='b' ALIGN(1)='l' ALIGN(2)='r' ALIGN(3)='c' ALIGN(4)='c' NUMDI2(1)=0 NUMDI2(2)=0 NUMDI2(3)=0 NUMDI2(4)=0 IFLAG1=.FALSE. NHEAD=1 C IVALUE(1)='Number of Failure Times:' NCHAR(1)=24 AVALUE(2)=REAL(N) CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Normal Test Statistic Value:' NCHAR(1)=28 AVALUE(2)=Z NUMDI2(2)=-2 CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) IVALUE(1)='Normal Test Statistic CDF Value:' NCHAR(1)=32 AVALUE(2)=CDF CALL DPRTF5(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1) C CALL DPRTF6(NHEAD) 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 IVALUE(1)='Improvement Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Trend Following a NHPP Exponential Law Model' NCHAR2=48 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) CALL DPRTF6(NHEAD) 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 IVALUE(1)=' ' IVALUE(2)=' ' NCHAR2=0 CALL DPRTF1(IVALUE,NCHAR2,IVALUE(2),NCHAR2) C DO7220I=1,4 VALIGN(I)='b' ALIGN(I)='c' NUMDI2(I)=-2 7220 CONTINUE IFRST=IRTFPS*2000/IDEFPS IINC1=IRTFPS*1600/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 IWIDTH(3)=IWIDTH(2) + IINC1 IWIDTH(4)=IWIDTH(3) + IINC1 C IVALUE(1)=' b Significance line Level' IVALUE(1)(1:1)=IBASLC IVALUE(1)(16:16)=IBASLC NCHAR(1)=26 IVALUE(2)=' b Normal line Test Statistic' IVALUE(2)(1:1)=IBASLC IVALUE(2)(10:10)=IBASLC NCHAR(2)=30 IVALUE(3)=' b Critical line Region' IVALUE(3)(1:1)=IBASLC IVALUE(3)(12:12)=IBASLC NCHAR(3)=23 IVALUE(4)=' b Conclusion' IVALUE(4)(1:1)=IBASLC NCHAR(4)=13 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C IFLAG1=.FALSE. NHEAD=2 C IVALUE(1)='0.90%' NCHAR(1)=5 IVAL2=ICONC1 NCHAR2=6 AVALUE(2)=Z AVALUE(3)=CV4 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.95%' IVAL2=ICONC2 AVALUE(3)=CV5 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.99%' IVAL2=ICONC3 AVALUE(3)=CV6 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) C CALL DPRTF6(NHEAD) 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 ELSE C WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,532)ISET 532 FORMAT(12X,'LAPLACE TEST: (FOR SYSTEM ',I8,')') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,534)N 534 FORMAT('NUMBER OF FAILURE TIMES = ',I8) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,536)Z 536 FORMAT('NORMAL TEST STATISTIC VALUE = ',G15.7) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,538)CDF 538 FORMAT('NORMAL TEST STATISTIC CDF VALUE = ',G15.7) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,540) 540 FORMAT('IMPROVEMENT TEST') CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,574) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,554) 554 FORMAT('HA: THERE IS A TREND FOLLOWING A NHPP EXPONENTIAL ', 1 'LAW MODEL') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,582) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,584) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,586) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,559)ALP90,Z,CV4,ICONC1 559 FORMAT(1X,F4.2,'%',8X,F12.5,1X,F12.5,'(>=)',5X,A6) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,559)ALP95,Z,CV5,ICONC2 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,559)ALP99,Z,CV6,ICONC3 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C ENDIF ENDIF C WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') ICONC1='REJECT' ICONC2='REJECT' ICONC3='REJECT' C IF(CDF.GE.0.01)ICONC1='ACCEPT' IF(CDF.GE.0.05)ICONC2='ACCEPT' IF(CDF.GE.0.1)ICONC3='ACCEPT' C IF(IPRINT.EQ.'ON')THEN IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN WRITE(ICOUT,5405) 5405 FORMAT('

') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5407) 5407 FORMAT('
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5411) 5411 FORMAT('Degradation Test
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5413) 5413 FORMAT('H0: No Trend for Interarrival Times
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5415) 5415 FORMAT('Ha: There is a Trend Following a NHPP ', 1 'Exponential Law Model
    ') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5419) 5419 FORMAT('
') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5405) CALL DPWRST('XXX','WRIT') C ITTEMP=' ' NCTEMP=0 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPHTM1(ITTEMP,NCTEMP,IFLAG1,IFLAG2) C NHEAD=4 DO5420I=1,4 ALIGN(I)='CENTER' NUMDI2(I)=-2 IWIDTH(I)=150 VALIGN(I)='TOP' 5420 CONTINUE IVALUE(1)='Significance
Level' NCHAR(1)=21 IVALUE(2)='Normal
Test Statistic' NCHAR(2)=24 IVALUE(3)='Critical
Region' NCHAR(3)=18 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.TRUE. IFLAG2=.TRUE. CALL DPHTM4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) C NHEAD=2 AVALUE(1)=Z AVALUE(2)=CV1 IVALUE(1)='0.01%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC1(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV2 IVALUE(1)='0.05%' NCHAR(1)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC2(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) AVALUE(2)=CV3 IVALUE(1)='0.10%' NCHAR(3)=5 NCHAR2=6 IVAL2(1:NCHAR2)=ICONC3(1:NCHAR2) CALL DPHTM7(IVALUE,NCHAR(1),AVALUE,NHEAD,IVAL2,NCHAR2) C IFLAG1=.TRUE. IFLAG2=.FALSE. CALL DPHTM2(IFLAG1,IFLAG2,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN C IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.FALSE. CALL DPLAT6(IFLAG1,IFLAG2,IFLAG3) C IVALUE(1)='Degradation Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Decreasing Trend for Interarrival Times' NCHAR2=43 AVALUE(1)=CPUMIN CALL DPLAT7(IVALUE(1),NCHAR2,AVALUE(1)) DO8370I=1,4 IWIDTH(I)=100 VALIGN(1)='BOTTOM' ALIGN(I)='c' NUMDI2(1)=0 8370 CONTINUE IFLAG1=.FALSE. C IFLAG1=.FALSE. NCHAR2=0 CALL DPLAT1(IVALUE(1),NCHAR2,IVALUE(2),NCHAR2,IFLAG1) C NHEAD=4 IVALUE(1)='Significance' NCHAR(1)=12 IVALUE(2)='Normal' NCHAR(2)=6 IVALUE(3)='Critical' NCHAR(3)=8 IVALUE(4)=' ' NCHAR(4)=1 IFLAG1=.TRUE. IFLAG2=.FALSE. IFLAG3=.TRUE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) IVALUE(1)='Level' NCHAR(1)=5 IVALUE(2)='Test Statistic' NCHAR(2)=14 IVALUE(3)='Region' NCHAR(3)=6 IVALUE(4)='Conclusion' NCHAR(4)=10 IFLAG1=.FALSE. IFLAG2=.TRUE. IFLAG3=.FALSE. CALL DPLAT4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2,IFLAG3) C NHEAD=2 IVALUE(1)='0.01$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC1 NCHAR2=6 AVALUE(1)=Z AVALUE(2)=CV1 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.05$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC2 NCHAR2=6 AVALUE(2)=CV2 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.10$ %$' IVALUE(1)(6:6)=IBASLC NCHAR(1)=8 IVAL2=ICONC3 NCHAR2=6 AVALUE(2)=CV3 CALL DPLAT9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IFLAG1=.TRUE. IFLAG2=.TRUE. IFLAG3=.TRUE. CALL DPLATZ(IFLAG1,IFLAG2,IFLAG3,NHEAD) C ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN 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 IVALUE(1)='Degradation Test' NCHAR2=16 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='H0: No Trend for Interarrival Times' NCHAR2=35 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) IVALUE(1)='Ha: Trend Following a NHPP Power Law Model' NCHAR2=42 AVALUE(1)=CPUMIN CALL DPRTF7(IVALUE(1),NCHAR2,AVALUE(1)) CALL DPRTF6(NHEAD) 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 IVALUE(1)=' ' IVALUE(2)=' ' NCHAR2=0 CALL DPRTF1(IVALUE,NCHAR2,IVALUE(2),NCHAR2) C DO7420I=1,4 VALIGN(I)='b' ALIGN(I)='c' NUMDI2(I)=-2 7420 CONTINUE IFRST=IRTFPS*2000/IDEFPS IINC1=IRTFPS*1600/IDEFPS IWIDTH(1)=IFRST IWIDTH(2)=IWIDTH(1) + IINC1 IWIDTH(3)=IWIDTH(2) + IINC1 IWIDTH(4)=IWIDTH(3) + IINC1 C IVALUE(1)=' b Significance line Level' IVALUE(1)(1:1)=IBASLC IVALUE(1)(16:16)=IBASLC NCHAR(1)=26 IVALUE(2)=' b Normal line Test Statistic' IVALUE(2)(1:1)=IBASLC IVALUE(2)(10:10)=IBASLC NCHAR(2)=29 IVALUE(3)=' b Critical line Region' IVALUE(3)(1:1)=IBASLC IVALUE(3)(12:12)=IBASLC NCHAR(3)=23 IVALUE(4)=' b Conclusion' IVALUE(4)(1:1)=IBASLC NCHAR(4)=13 NHEAD=4 IFLAG1=.FALSE. IFLAG2=.TRUE. CALL DPRTF4(IVALUE,NCHAR,NHEAD,IFLAG1,IFLAG2) IFLAG2=.FALSE. C IFLAG1=.FALSE. NHEAD=2 C IVALUE(1)='0.10%' NCHAR(1)=5 IVAL2=ICONC1 NCHAR2=6 AVALUE(2)=Z AVALUE(3)=CV1 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.05%' IVAL2=ICONC2 AVALUE(3)=CV2 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) IVALUE(1)='0.01%' IVAL2=ICONC3 AVALUE(3)=CV3 CALL DPRTF9(IVALUE,NCHAR(1),AVALUE,NHEAD,IFLAG1,IVAL2,NCHAR2) C IFLAG1=.FALSE. NHEAD=2 C CALL DPRTF6(NHEAD) 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 ELSE C WRITE(ICOUT,570) 570 FORMAT('DEGRADATION TEST') CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,574) 574 FORMAT('H0: NO TREND FOR INTERARRIVAL TIMES') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,554) CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,582) 582 FORMAT('SIGNIFICANCE NORMAL CRITICAL') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,584) 584 FORMAT(' LEVEL TEST STATISTIC REGION ', 1 'CONCLUSION') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,586) 586 FORMAT('==================================================', 1 '====') CALL DPWRST('XXX','WRIT') C WRITE(ICOUT,592)ALP01,Z,CV1,ICONC1 592 FORMAT(1X,F4.2,'%',8X,F12.5,1X,F12.5,'(<=)',5X,A6) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,592)ALP05,Z,CV2,ICONC2 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,592)ALP10,Z,CV3,ICONC3 CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) 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.'TRE3')THEN WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9011) 9011 FORMAT('***** AT THE END OF DPTRE3--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9012)N,IBUGA3,IERROR 9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4) CALL DPWRST('XXX','BUG ') DO9016I=1,N WRITE(ICOUT,9017)I,Y(I),XTEMP1(I) 9017 FORMAT('I,Y(I),XTEMP1(I) = ',I8,2G15.7) CALL DPWRST('XXX','BUG ') 9016 CONTINUE ENDIF C RETURN END SUBROUTINE DPTRI2(X1,Y1,X2,Y2,X3,Y3, 1IFIG, 1ILINPA,ILINCO,PLINTH, 1AREGBA, 1IREBLI,IREBCO,PREBTH, 1IREFSW,IREFCO, 1IREPTY,IREPLI,IREPCO,PREPTH,PREPSP, 1PTEXHE,PTEXWI,PTEXVG,PTEXHG) C C PURPOSE--DRAW A TRIANGLE C WITH FRONT FACE VERTICES AT (X1,Y1), C (X2,Y2), AND (X3,Y3). 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 UPDATED --JANUARY 1989. MODIFY CALLS TO DPDRPL (ALAN) C UPDATED --JANUARY 1989. MODIFY CALL TO DPFIRE (ALAN) C C-----NON-COMMON VARIABLES------------------------------------- C CHARACTER*4 IFIG CHARACTER*4 IPATT2 C CHARACTER*4 ILINPA CHARACTER*4 ILINCO C CHARACTER*4 IREBLI CHARACTER*4 IREBCO CHARACTER*4 IREFSW CHARACTER*4 IREFCO CHARACTER*4 IREPTY CHARACTER*4 IREPLI CHARACTER*4 IREPCO C CHARACTER*4 IPATT CHARACTER*4 ICOLF CHARACTER*4 ICOLP CHARACTER*4 ICOL CHARACTER*4 IFLAG C DIMENSION PX(10) DIMENSION PY(10) CCCCC DIMENSION PX3(10) CCCCC DIMENSION PY3(10) C DIMENSION ILINPA(*) DIMENSION ILINCO(*) DIMENSION PLINTH(*) C DIMENSION AREGBA(*) DIMENSION IREBLI(*) DIMENSION IREBCO(*) DIMENSION PREBTH(*) DIMENSION IREFSW(*) DIMENSION IREFCO(*) DIMENSION IREPTY(*) DIMENSION IREPLI(*) DIMENSION IREPCO(*) DIMENSION PREPTH(*) DIMENSION PREPSP(*) C C-----COMMON---------------------------------------------------------- C INCLUDE 'DPCOGR.INC' 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 IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'TRI2')GOTO90 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,51) 51 FORMAT('***** AT THE BEGINNING OF DPTRI2--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,53)X1,Y1 53 FORMAT('X1,Y1 = ',2E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,54)X2,Y2 54 FORMAT('X2,Y2 = ',2E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,59)IFIG 59 FORMAT('IFIG = ',A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,61)ILINPA(1),ILINCO(1),PLINTH(1) 61 FORMAT('ILINPA(1),ILINCO(1),PLINTH(1) = ',A4,2X,A4,E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,62)AREGBA(1) 62 FORMAT('AREGBA(1) = ',E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,63)IREBLI(1),IREBCO(1),PREBTH(1) 63 FORMAT('IREBLI(1),IREBCO(1),PREBTH(1) = ',A4,2X,A4,E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,64)IREFSW(1),IREFCO(1) 64 FORMAT('IREFSW(1),IREFCO(1) = ',A4,2X,A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,65)IREPTY(1),IREPLI(1),IREPCO(1),PREPTH(1),PREPSP(1) 65 FORMAT('IREPTY(1),IREPLI(1),IREPCO(1),PREPTH(1),PREPSP(1) = ', 1A4,2X,A4,2X,A4,2E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,69)PTEXHE,PTEXWI 69 FORMAT('PTEXHE,PTEXWI= ',2E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,70)PTEXVG,PTEXHG 70 FORMAT('PTEXVG,PTEXHG= ',2E15.6) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,79)IBUGG4,ISUBG4,IERRG4 79 FORMAT('IBUGG4,ISUBG4,IERRG4 = ',A4,2X,A4,2X,A4) CALL DPWRST('XXX','BUG ') 90 CONTINUE C C ********************************* C ** STEP 1-- ** C ** DETERMINE THE COORDINATES ** C ** FOR THE TRIANGLE ** C ********************************* C PX(1)=X1 PY(1)=Y1 C PX(2)=X2 PY(2)=Y2 C PX(3)=X3 PY(3)=Y3 C PX(4)=X1 PY(4)=Y1 C NP=4 C C C *********************** C ** STEP 2-- ** C ** FILL THE FIGURE ** C ** (IF CALLED FOR) ** C *********************** C IF(IREFSW(1).EQ.'OFF')GOTO2190 IPATT=IREPTY(1) IPATT2='SOLI' PTHICK=PREPTH(1) PXGAP=PREPSP(1) PYGAP=PREPSP(1) ICOLF=IREFCO(1) ICOLP=IREPCO(1) CALL DPFIRE(PX,PY,NP, 1IFIG,IPATT,PTHICK,PXGAP,PYGAP,ICOLF,ICOLP,IPATT2) 2190 CONTINUE C C *************************** C ** STEP 3-- ** C ** DRAW OUT THE FIGURE ** C *************************** C IPATT=ILINPA(1) PTHICK=PLINTH(1) ICOL=ILINCO(1) IFLAG='ON' CCCCC CALL DPDRPL(PX,PY,NP,PX3,PY3,NP3, CCCCC1IFIG,IPATT,PTHICK,ICOL) CALL DPDRPL(PX,PY,NP, 1IFIG,IPATT,PTHICK,ICOL, 1JPATT,JTHICK,PTHIC2,JCOL,IFLAG) C C ***************** C ** STEP 90-- ** C ** EXIT ** C ***************** C 9000 CONTINUE IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'TRI2')GOTO9090 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9011) 9011 FORMAT('***** AT THE END OF DPTRI2--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9013)NP 9013 FORMAT('NP = ',I8) CALL DPWRST('XXX','BUG ') DO9015I=1,NP WRITE(ICOUT,9016)I,PX(I),PY(I) 9016 FORMAT('I,PX(I),PY(I) = ',I8,2E15.7) CALL DPWRST('XXX','BUG ') 9015 CONTINUE WRITE(ICOUT,9039)IBUGG4,ISUBG4,IERRG4 9039 FORMAT('IBUGG4,ISUBG4,IERRG4 = ',A4,2X,A4,2X,A4) CALL DPWRST('XXX','BUG ') 9090 CONTINUE C RETURN END SUBROUTINE DPTRIA(IHARG,IARGT,ARG,NUMARG, 1PXSTAR,PYSTAR, 1PXEND,PYEND, 1ILINPA,ILINCO,PLINTH, 1AREGBA, 1IREBLI,IREBCO,PREBTH, 1IREFSW,IREFCO, 1IREPTY,IREPLI,IREPCO,PREPTH,PREPSP, 1PTEXHE,PTEXWI,PTEXVG,PTEXHG, 1IGRASW,IDIASW, 1PGRAXF,PGRAYF,PDIAXC,PDIAYC,PDIAX2,PDIAY2, 1PDIAHE,PDIAWI,PDIAVG,PDIAHG, 1NUMDEV, 1IDMANU,IDMODE,IDMOD2,IDMOD3, 1IDPOWE,IDCONT,IDCOLO,IDNVPP,IDNHPP,IDUNIT, 1IDNVOF,IDNHOF, CCCCC ADD FOLLOWING LINE MARCH 1997. 1IDFONT, CCCCC ADD FOLLOWING LINE JULY 1997. 1UNITSW, 1IBUGD2,IFOUND,IERROR) C C PURPOSE--DRAW ONE OR MORE TRIANGLES C (DEPENDING ON HOW MANY NUMBERS ARE PROVIDED). C THE COORDINATES ARE IN STANDARDIZED UNITS C OF 0 TO 100. C NOTE--THE INPUT COORDINATES DEFINE THE VERTICES C OF THE TRIANGLE. C NOTE-THE USUAL INPUT NUMBER OF COORDINATES IS 3 C AND THEREFORE THE USUAL INPUT NUMBER OF NUMBERS IS 2*3 = 6. C NOTE--IF 4 NUMBERS ARE PROVIDED, C THEN THE DRAWN TRIANGLE WILL GO C FROM THE LAST CURSOR POSITION C (ASSUMED TO BE AT VERTEX 1) C THROUGH THE (X,Y) POINT C (EITHER ABSOLUTE OR RELATIVE) C AS DEFINED BY THE FIRST AND SECOND NUMBERS C (ASSUMED TO BE AT VERTEX 2) C TO THE (X,Y) POINT C (EITHER ABSOLUTE OR RELATIVE) C AS DEFINED BY THE THIRD AND FOURTH NUMBERS C (ASSUMED TO BE AT VERTEX 3) C AND CONTINUING BACK THE START POINT TO CLOSE THE TRIANGLE. C NOTE--IF 6 NUMBERS ARE PROVIDED, C THEN THE DRAWN TRIANGLE WILL GO C FROM THE ABSOLUTE (X,Y) POSITION C AS RESULTING FORM THE FIRST AND SECOND NUMBERS C (ASSUMED TO BE AT VERTEX 1) C THROUGH THE (X,Y) POINT C (EITHER ABSOLUTE OR RELATIVE) C AS DEFINED BY THE THIRD AND FOURTH NUMBERS C (ASSUMED TO BE AT VERTEX 2) C TO THE (X,Y) POINT C (EITHER ABSOLUTE OR RELATIVE) C AS DEFINED BY THE FIFTH AND SIXTH NUMBERS C (ASSUMED TO BE AT VERTEX 3) C AND THEN CONTINUING BACK THE START POINT TO CLOSE THE TRIANGLE. C NOTE--AND SO FORTH FOR 10, 14, 18, ... NUMBERS. C INPUT ARGUMENTS--IHARG C --IARGT C --ARG C --NUMARG C --PXSTAR C --PYSTAR C OUTPUT ARGUMENTS--PXEND C --PYEND 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 --MARCH 1982. C UPDATED --MAY 1982. C UPDATED --NOVEMBER 1982. C UPDATED --JANUARY 1989. CALL LIST FOR OFFSET VAR (ALAN) C UPDATED --MARCH 1997. SUPPORT FOR DEVICE FONT (ALAN) C UPDATED --JULY 1997. SUPPORT FOR "DATA" UNITS (ALAN) C C-----NON-COMMON VARIABLES----------------------------------------- C CHARACTER*4 IHARG CHARACTER*4 IARGT C CHARACTER*4 ILINPA CHARACTER*4 ILINCO C CHARACTER*4 IREBLI CHARACTER*4 IREBCO CHARACTER*4 IREFSW CHARACTER*4 IREFCO CHARACTER*4 IREPTY CHARACTER*4 IREPLI CHARACTER*4 IREPCO C CHARACTER*4 IGRASW CHARACTER*4 IDIASW C CHARACTER*4 IDMANU CHARACTER*4 IDMODE CHARACTER*4 IDMOD2 CHARACTER*4 IDMOD3 CHARACTER*4 IDPOWE CHARACTER*4 IDCONT CHARACTER*4 IDCOLO CCCCC ADD FOLLOWING LINE MARCH 1997. CHARACTER*4 IDFONT CCCCC ADD FOLLOWING LINE JULY 1997. CHARACTER*4 UNITSW C CHARACTER*4 IFOUND CHARACTER*4 IBUGD2 CHARACTER*4 IERROR CHARACTER*4 ISUBRO C CHARACTER*4 IFIG CHARACTER*4 IBELSW CHARACTER*4 IERASW CHARACTER*4 IBACCO CHARACTER*4 ICOPSW CHARACTER*4 ITYPEO C DIMENSION IHARG(*) DIMENSION IARGT(*) DIMENSION ARG(*) C DIMENSION ILINPA(*) DIMENSION ILINCO(*) DIMENSION PLINTH(*) C DIMENSION AREGBA(*) DIMENSION IREBLI(*) DIMENSION IREBCO(*) DIMENSION PREBTH(*) DIMENSION IREFSW(*) DIMENSION IREFCO(*) DIMENSION IREPTY(*) DIMENSION IREPLI(*) DIMENSION IREPCO(*) DIMENSION PREPTH(*) DIMENSION PREPSP(*) C DIMENSION IDMANU(*) DIMENSION IDMODE(*) DIMENSION IDMOD2(*) DIMENSION IDMOD3(*) DIMENSION IDPOWE(*) DIMENSION IDCONT(*) DIMENSION IDCOLO(*) CCCCC ADD FOLLOWING LINE MARCH 1997. DIMENSION IDFONT(*) DIMENSION IDNVPP(*) DIMENSION IDNHPP(*) DIMENSION IDUNIT(*) C DIMENSION IDNVOF(*) DIMENSION IDNHOF(*) C C-----COMMON---------------------------------------------------------- C INCLUDE 'DPCOGR.INC' 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' IERRG4=IERROR CCCCC IBUGG4=IBUGD2 CCCCC ISUBG4=ISUBRO C ILOCFN=0 NUMNUM=0 C X1=0.0 Y1=0.0 X2=0.0 Y2=0.0 C IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'TRIA')GOTO90 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,51) 51 FORMAT('***** AT THE BEGINNING OF DPTRIA--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,53)NUMARG 53 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 WRITE(ICOUT,57)PXSTAR,PYSTAR 57 FORMAT('PXSTAR,PYSTAR = ',2E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,58)PXEND,PYEND 58 FORMAT('PXEND,PYEND = ',2E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,61)ILINPA(1),ILINCO(1),PLINTH(1) 61 FORMAT('ILINPA(1),ILINCO(1),PLINTH(1) = ',A4,2X,A4,E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,62)AREGBA(1) 62 FORMAT('AREGBA(1) = ',E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,63)IREBLI(1),IREBCO(1),PREBTH(1) 63 FORMAT('IREBLI(1),IREBCO(1),PREBTH(1) = ',A4,2X,A4,E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,64)IREFSW(1),IREFCO(1) 64 FORMAT('IREFSW(1),IREFCO(1) = ',A4,2X,A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,65)IREPTY(1),IREPLI(1),IREPCO(1),PREPTH(1),PREPSP(1) 65 FORMAT('IREPTY(1),IREPLI(1),IREPCO(1),PREPTH(1),PREPSP(1) = ', 1A4,2X,A4,2X,A4,2E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,69)PTEXHE,PTEXWI 69 FORMAT('PTEXHE,PTEXWI= ',2E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,70)PTEXVG,PTEXHG 70 FORMAT('PTEXVG,PTEXHG= ',2E15.6) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,76)IGRASW,IDIASW 76 FORMAT('IGRASW,IDIASW = ',A4,2X,A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,77)PGRAXF,PGRAYF,PDIAXC,PDIAYC 77 FORMAT('PGRAXF,PGRAYF,PDIAXC,PDIAYC = ',4E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,78)PDIAHE,PDIAWI,PDIAVG,PDIAHG 78 FORMAT('PDIAHE,PDIAWI,PDIAVG,PDIAHG = ',4E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,80)NUMDEV 80 FORMAT('NUMDEV= ',I8) CALL DPWRST('XXX','BUG ') DO81I=1,NUMDEV WRITE(ICOUT,82)IDMANU(I),IDMODE(I),IDMOD2(I),IDMOD3(I) 82 FORMAT('IDMANU(I),IDMODE(I),IDMOD2(I),IDMOD3(I) = ', 1A4,2X,A4,2X,A4,2X,A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,83)IDPOWE(I),IDCONT(I),IDCOLO(I) 83 FORMAT('IDPOWE(I),IDCONT(I),IDCOLO(I) = ', 1A4,2X,A4,2X,A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,84)IDNVPP(I),IDNHPP(I),IDUNIT(I) 84 FORMAT('IDNVPP(I),IDNHPP(I),IDUNIT(I) = ', 1I8,I8,I8) CALL DPWRST('XXX','BUG ') 81 CONTINUE WRITE(ICOUT,87)IFOUND 87 FORMAT('IFOUND= ',A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,88)IBUGG4,ISUBG4,IERRG4 88 FORMAT('IBUGG4,ISUBG4,IERRG4 = ',A4,2X,A4,2X,A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,89)IBUGD2,IERROR 89 FORMAT('IBUGD2,IERROR= ',A4,2X,A4) CALL DPWRST('XXX','BUG ') 90 CONTINUE C IFIG='TRIA' NUMPT=3 NUMPT2=2*NUMPT C C ******************************** C ** STEP 0-- ** C ** STEP THROUGH EACH DEVICE ** C ******************************** C IF(NUMDEV.LE.0)GOTO9000 DO8000IDEVIC=1,NUMDEV C IF(IDPOWE(IDEVIC).EQ.'OFF')GOTO8000 C IMANUF=IDMANU(IDEVIC) IMODEL=IDMODE(IDEVIC) IMODE2=IDMOD2(IDEVIC) IMODE3=IDMOD3(IDEVIC) IGCONT=IDCONT(IDEVIC) IGCOLO=IDCOLO(IDEVIC) CCCCC ADD FOLLOWING LINE MARCH 1997. IGFONT=IDFONT(IDEVIC) NUMVPP=IDNVPP(IDEVIC) NUMHPP=IDNHPP(IDEVIC) ANUMVP=NUMVPP ANUMHP=NUMHPP C AUGUST 1988. ADD OFFSET VARIABLE IOFFSV=IDNVOF(IDEVIC) IOFFSH=IDNHOF(IDEVIC) C IGUNIT=IDUNIT(IDEVIC) C C ************************************ C ** STEP 1-- ** C ** CARRY OUT OPENING OPERATIONS ** C ** ON THE GRAPHICS DEVICES ** C ************************************ C CALL DPOPDE C IBELSW='OFF' NUMRIN=0 IERASW='OFF' IBACCO='JUNK' C CALL DPOPPL(IGRASW, 1IBELSW,NUMRIN,IERASW, 1IBACCO) C C ***************************************** C ** STEP 2-- ** C ** SEARCH FOR COMMAND SPECIFICATIONS ** C ***************************************** C IF(NUMARG.GE.2.AND. 1IARGT(1).EQ.'NUMB'.AND.IARGT(2).EQ.'NUMB') 1GOTO1111 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'ABSO'.AND. 1IARGT(2).EQ.'NUMB'.AND.IARGT(3).EQ.'NUMB') 1GOTO1112 IF(NUMARG.GE.3.AND.IHARG(1).EQ.'RELA'.AND. 1IARGT(2).EQ.'NUMB'.AND.IARGT(3).EQ.'NUMB') 1GOTO1113 GOTO1130 C 1111 CONTINUE ITYPEO='ABSO' ILOCFN=1 GOTO1119 C 1112 CONTINUE ITYPEO='ABSO' ILOCFN=2 GOTO1119 C 1113 CONTINUE ITYPEO='RELA' ILOCFN=2 GOTO1119 1119 CONTINUE C IF(ILOCFN.GT.NUMARG)GOTO1129 DO1120I=ILOCFN,NUMARG IF(IARGT(I).EQ.'NUMB')GOTO1120 GOTO1129 1120 CONTINUE IFOUND='YES' GOTO1149 1129 CONTINUE GOTO1130 C 1130 CONTINUE IERRG4='YES' WRITE(ICOUT,1131) 1131 FORMAT('***** ERROR IN DPTRIA--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1132) 1132 FORMAT(' ILLEGAL FORM FOR DRAW ', 1'COMMAND.') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1134) 1134 FORMAT(' TEST EXAMPLE TO DEMONSTRATE THE ', 1'PROPER FORM--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1135) 1135 FORMAT(' SUPPOSE IT IS DESIRED TO DRAW A TRIANGLE ') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1136) 1136 FORMAT(' WITH VERTICES (20,20), (50,20), (35,40)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1141) 1141 FORMAT(' THEN ALLOWABLE FORMS ARE--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1142) 1142 FORMAT(' TRIANGLE 20 20 50 20 35 40') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1143) 1143 FORMAT(' TRIANGLE ABSOLUTE 20 20 50 20 35 40') CALL DPWRST('XXX','BUG ') GOTO9000 1149 CONTINUE C C **************************** C ** STEP 3-- ** C ** DRAW OUT THE LINE(S) ** C **************************** C NUMNUM=NUMARG-ILOCFN+1 IF(NUMNUM.LT.NUMPT2)GOTO1151 GOTO1152 C 1151 CONTINUE J=ILOCFN-1 X1=PXSTAR Y1=PYSTAR GOTO1159 C 1152 CONTINUE J=ILOCFN IF(J.GT.NUMARG)GOTO1190 X1=ARG(J) CCCCC THE FOLLOWING LINE WAS ADDED JULY 1997 IF(UNITSW.EQ.'DATA')CALL DPCODS('X',X1,X1,IBUGD2,ISUBRO,IERROR) J=J+1 IF(J.GT.NUMARG)GOTO1190 Y1=ARG(J) CCCCC THE FOLLOWING LINE WAS ADDED JULY 1997 IF(UNITSW.EQ.'DATA')CALL DPCODS('Y',Y1,Y1,IBUGD2,ISUBRO,IERROR) GOTO1159 1159 CONTINUE C 1160 CONTINUE J=J+1 IF(J.GT.NUMARG)GOTO1190 X2=ARG(J) CCCCC THE FOLLOWING LINE WAS ADDED JULY 1997 IF(UNITSW.EQ.'DATA')CALL DPCODS('X',X2,X2,IBUGD2,ISUBRO,IERROR) IF(ITYPEO.EQ.'RELA')X2=X1+X2 J=J+1 IF(J.GT.NUMARG)GOTO1190 Y2=ARG(J) CCCCC THE FOLLOWING LINE WAS ADDED JULY 1997 IF(UNITSW.EQ.'DATA')CALL DPCODS('Y',Y2,Y2,IBUGD2,ISUBRO,IERROR) IF(ITYPEO.EQ.'RELA')Y2=Y1+Y2 C 1170 CONTINUE J=J+1 IF(J.GT.NUMARG)GOTO1190 X3=ARG(J) CCCCC THE FOLLOWING LINE WAS ADDED JULY 1997 IF(UNITSW.EQ.'DATA')CALL DPCODS('X',X3,X3,IBUGD2,ISUBRO,IERROR) IF(ITYPEO.EQ.'RELA')X3=X2+X3 J=J+1 IF(J.GT.NUMARG)GOTO1190 Y3=ARG(J) CCCCC THE FOLLOWING LINE WAS ADDED JULY 1997 IF(UNITSW.EQ.'DATA')CALL DPCODS('Y',Y3,Y3,IBUGD2,ISUBRO,IERROR) IF(ITYPEO.EQ.'RELA')Y3=Y2+Y3 C CALL DPTRI2(X1,Y1,X2,Y2,X3,Y3, 1IFIG, 1ILINPA,ILINCO,PLINTH, 1AREGBA, 1IREBLI,IREBCO,PREBTH, 1IREFSW,IREFCO, 1IREPTY,IREPLI,IREPCO,PREPTH,PREPSP, 1PTEXHE,PTEXWI,PTEXVG,PTEXHG) C X1=X3 Y1=Y3 C GOTO1160 1190 CONTINUE C PXEND=X3 PYEND=Y3 C C ************************************ C ** STEP 4-- ** C ** CARRY OUT CLOSING OPERATIONS ** C ** ON THE GRAPHICS DEVICES ** C ************************************ C ICOPSW='OFF' NUMCOP=0 CALL DPCLPL(ICOPSW,NUMCOP, 1PGRAXF,PGRAYF, 1IGRASW,PDIAXC,PDIAYC,PDIAX2,PDIAY2, 1PDIAHE,PDIAWI,PDIAVG,PDIAHG) C CALL DPCLDE C 8000 CONTINUE C C ***************** C ** STEP 90-- ** C ** EXIT ** C ***************** C 9000 CONTINUE IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'TRIA')GOTO9090 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9011) 9011 FORMAT('***** AT THE END OF DPTRIA--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9012)ILOCFN,NUMNUM 9012 FORMAT('ILOCFN,NUMNUM = ',2I8) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9013)X1,Y1,X2,Y2,X3,Y3 9013 FORMAT('X1,Y1,X2,Y2,X3,Y3 = ',6E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9015)PXSTAR,PYSTAR 9015 FORMAT('PXSTAR,PYSTAR = ',2E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9016)PXEND,PYEND 9016 FORMAT('PXEND,PYEND = ',2E15.7) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9017)IFIG 9017 FORMAT('IFIG = ',A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9027)IFOUND 9027 FORMAT('IFOUND = ',A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9028)IBUGG4,ISUBG4,IERRG4 9028 FORMAT('IBUGG4,ISUBG4,IERRG4 = ',A4,2X,A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,9029)IBUGD2,IERROR 9029 FORMAT('IBUGD2,IERROR = ',A4,2X,A4) CALL DPWRST('XXX','BUG ') 9090 CONTINUE C RETURN END SUBROUTINE DPTRIP(IHARG,NUMARG,IDEFPR,IHMXPR, 1IPREC,IFOUND,IERROR) C C PURPOSE--DEFINE THE PRECISION SWITCH C AS TRIPLE PRECISION. C THIS IN TURN SPECIFIES THAT SUBSEQUENT C CALCULATIONS WILL ALL BE CARRIED OUT C IN TRIPLE PRECISION. C THE SPECIFIED PRECISION SWITCH SPECIFICATION C WILL BE PLACED IN THE HOLLERITH VARIABLE IPREC. C INPUT ARGUMENTS--IHARG (A HOLLERITH VECTOR) C --NUMARG (AN INTEGER VARIABLE) C --IDEFPR (A HOLLERITH VARIABLE) C --IHMXPR (A HOLLERITH VARIABLE) C OUTPUT ARGUMENTS--IPREC (A HOLLERITH 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--NOVEMBER 1980. C UPDATED --SEPTEMBER 1981. C UPDATED --MAY 1982. C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 IHARG CHARACTER*4 IDEFPR CHARACTER*4 IHMXPR CHARACTER*4 IPREC CHARACTER*4 IFOUND CHARACTER*4 IERROR C CHARACTER*4 IHOLD C C--------------------------------------------------------------------- C DIMENSION IHARG(*) 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 IFOUND='YES' C 1110 CONTINUE IF(NUMARG.LE.0)GOTO1120 IF(IHARG(NUMARG).EQ.'ON')GOTO1130 IF(IHARG(NUMARG).EQ.'OFF')GOTO1120 IF(IHARG(NUMARG).EQ.'AUTO')GOTO1130 IF(IHARG(NUMARG).EQ.'DEFA')GOTO1120 GOTO1130 C 1120 CONTINUE IHOLD=IDEFPR GOTO1160 C 1130 CONTINUE IHOLD='TRIP' GOTO1160 C 1160 CONTINUE IF(IHOLD.EQ.'DOUB'.AND.IHMXPR.EQ.'SING')GOTO1170 IF(IHOLD.EQ.'TRIP'.AND.IHMXPR.EQ.'SING')GOTO1170 IF(IHOLD.EQ.'TRIP'.AND.IHMXPR.EQ.'DOUB')GOTO1170 IF(IHOLD.EQ.'QUAD'.AND.IHMXPR.EQ.'SING')GOTO1170 IF(IHOLD.EQ.'QUAD'.AND.IHMXPR.EQ.'DOUB')GOTO1170 IF(IHOLD.EQ.'QUAD'.AND.IHMXPR.EQ.'TRIP')GOTO1170 GOTO1180 C 1170 CONTINUE IERROR='YES' WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1172) 1172 FORMAT('***** ERROR IN DPTRIP--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1173) 1173 FORMAT(' THE DESIRED PRECISION IS HIGHER') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1174) 1174 FORMAT(' THAN PERMITTED ON THIS COMPUTER.') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1175)IHOLD 1175 FORMAT(' DESIRED PRECISION = ',A4) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1176)IHMXPR 1176 FORMAT(' MAXIMUM ALLOWABLE PRECISION = ',A4) CALL DPWRST('XXX','BUG ') GOTO1199 C 1180 CONTINUE IPREC=IHOLD C IF(IFEEDB.EQ.'OFF')GOTO1189 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1188)IPREC 1188 FORMAT('THE PRECISION SWITCH HAS JUST BEEN SET TO ', 1A4) CALL DPWRST('XXX','BUG ') 1189 CONTINUE GOTO1199 C 1199 CONTINUE RETURN END SUBROUTINE DPTTES(XTEMP1,XTEMP2,MAXNXT, 1ICAPSW, 1IBUGA2,IBUGA3,IBUGQ,IFOUND,IERROR) C C PURPOSE--CARRY OUT A T TEST C (1-SAMPLE OR 2-SAMPLE) CCCCC THE FOLLOWING 3 LINES WERE ADDED FEBRUARY 1994 C EXAMPLE--T TEST Y MU C T TEST MU Y C T TEST Y1 Y2 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--82/7 C ORIGINAL VERSION--JULY 1984. C UPDATED --FEBRUARY 1994. ADD COMMENTS ABOVE C UPDATED --DECEMBER 1994. COPY T TEST PARAMETERS C UPDATED --MAY 1995. BUG FIX (DECLARATIONS) C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 IBUGA2 CHARACTER*4 IBUGA3 CHARACTER*4 IBUGQ CHARACTER*4 IFOUND CHARACTER*4 IERROR CHARACTER*4 ICAPSW C CHARACTER*4 IHWUSE CHARACTER*4 MESSAG CHARACTER*4 ICASEQ C CHARACTER*4 IH11 CHARACTER*4 IH12 CHARACTER*4 IH21 CHARACTER*4 IH22 C CHARACTER*4 ISUBN1 CHARACTER*4 ISUBN2 CHARACTER*4 ISTEPN C CHARACTER*4 IUSE1 CHARACTER*4 IUSE2 C CCCCC MAY 1995. ADD FOLLOWING DECLARATIONS CHARACTER*4 IH CHARACTER*4 IH2 CHARACTER*4 ISUBN0 C C--------------------------------------------------------------------- C DIMENSION XTEMP1(*) DIMENSION XTEMP2(*) C C-----COMMON---------------------------------------------------------- C INCLUDE 'DPCOPA.INC' INCLUDE 'DPCOHK.INC' INCLUDE 'DPCOSU.INC' INCLUDE 'DPCODA.INC' CCCCC THE FOLLOWING LINE WAS ADDED OCTOBER 1995 INCLUDE 'DPCOHO.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='DPTT' ISUBN2='ES ' 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' 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 T TEST 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 DPTTES--') 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')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 11-- ** C ** CHECK THE VALIDITY OF ARGUMENT 1 ** C ** (THIS COULD BE A VARIABLE, ** C ** A PARAMETER, OR A NUMBER). ** C **************************************** C ISTEPN='11' IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IH11=IHARG(1) IH12=IHARG2(1) IF(IARGT(1).EQ.'NUMB')GOTO1110 IHWUSE='VORP' 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 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')GOTO1110 GOTO1120 1110 CONTINUE VALUE1=ARG(1) IUSE1='P' GOTO1190 1120 CONTINUE IUSE1=IUSE(ILOCV) ICOL1=IVALUE(ILOCV) N1=IN(ILOCV) GOTO1190 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(IUSE1.NE.'V')GOTO1290 IF(N1.GE.MINN2)GOTO1290 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,1211) 1211 FORMAT('***** ERROR IN DPTTES--') 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 T 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) IF(IARGT(2).EQ.'NUMB')GOTO2110 IHWUSE='VORP' 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 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')GOTO2110 GOTO2120 2110 CONTINUE VALUE2=ARG(2) IUSE2='P' GOTO2190 2120 CONTINUE IUSE2=IUSE(ILOCV) ICOL2=IVALUE(ILOCV) N2=IN(ILOCV) GOTO2190 2190 CONTINUE C C ******************************************************** C ** STEP 22-- ** C ** IF ARGUMENT 2 IS A VARIABLE, ** C ** CHECK THAT THE INPUT NUMBER OF OBSERVATIONS (N2) ** C ** FOR ARGUMENT 2 IS 2 OR MORE. ** C ******************************************************** C ISTEPN='22' IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(IUSE2.NE.'V')GOTO2290 IF(N2.GE.MINN2)GOTO2290 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,2211) 2211 FORMAT('***** ERROR IN DPTTES--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,2212) 2212 FORMAT(' THE INPUT NUMBER OF OBSERVATIONS') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,2213) 2213 FORMAT(' (FOR WHICH A T TEST ') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,2214) 2214 FORMAT(' WAS TO HAVE BEEN CARRIED OUT)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,2215)MINN2 2215 FORMAT(' MUST BE ',I8,' OR LARGER;') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,2216) 2216 FORMAT(' SUCH WAS NOT THE CASE HERE') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,2217)IH21,IH22 2217 FORMAT(' FOR VARIABLE ',A4,A4,' WHICH HAD') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,2218)N2 2218 FORMAT(' NUMBER OF OBSERVATIONS = ',I8,';') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,2219) 2219 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--') CALL DPWRST('XXX','BUG ') IF(IWIDTH.GE.1)WRITE(ICOUT,2220)(IANS(I),I=1,IWIDTH) 2220 FORMAT(80A1) IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO9000 2290 CONTINUE C C **************************************************************** C ** STEP 31-- ** C ** FOR A T TEST, ** C ** AT LEAST ONE OF THE 2 ARGUMENTS ** C ** MUST BE A VARIABLE. ** C ** CHECK FOR THIS. ** C ** IF ONLY 1 ARGUMENT IS A VARIABLE, ** C ** THIS IMPLIES A 1-SAMPLE T TEST. ** C ** (IF SO, COPY THE OTHER ARGUMENT AS THE TARGET MU VALUE). ** C ** IF BOTH ARGUMENTS ARE VARIABLES, ** C ** THIS IMPLIES A 2-SAMPLE T TEST. ** C **************************************************************** C ISTEPN='31' IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(IUSE1.EQ.'V'.AND.IUSE2.NE.'V')GOTO3110 IF(IUSE1.NE.'V'.AND.IUSE2.EQ.'V')GOTO3120 IF(IUSE1.EQ.'V'.AND.IUSE2.EQ.'V')GOTO3130 GOTO3140 C 3110 CONTINUE NUMVAR=1 ILOCV=1 AMU0=VALUE2 GOTO3190 3120 CONTINUE NUMVAR=1 ILOCV=2 AMU0=VALUE1 GOTO3190 3130 CONTINUE NUMVAR=2 ILOCV=(-999) AMU0=(-999.0) GOTO3190 C 3140 CONTINUE WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,3141) 3141 FORMAT('***** ERROR IN DPTTES--') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,3142) 3142 FORMAT(' FOR A T TEST,') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,3143) 3143 FORMAT(' EITHER THE FIRST ARGUMENT') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,3144) 3144 FORMAT(' OR THE SECOND ARGUMENT') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,3145) 3145 FORMAT(' (OR BOTH ARGUMENTS)') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,3146) 3146 FORMAT(' MUST BE A VARIABLE') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,3147) 3147 FORMAT(' (AS OPPOSED TO A PARAMETER OR FUNCTION).') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,3148) 3148 FORMAT(' SUCH WAS NOT THE CASE HERE.') CALL DPWRST('XXX','BUG ') WRITE(ICOUT,3149) 3149 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--') CALL DPWRST('XXX','BUG ') IF(IWIDTH.GE.1)WRITE(ICOUT,3150)(IANS(I),I=1,IWIDTH) 3150 FORMAT(80A1) IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ') IERROR='YES' GOTO9000 C 3190 CONTINUE 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')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 IF(IUSE1.NE.'V')GOTO4190 C ISTEPN='41' IF(IBUGA2.EQ.'ON')CALL 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 DPTTES--') 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 T 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 IF(IUSE2.NE.'V')GOTO4290 C ISTEPN='42' IF(IBUGA2.EQ.'ON')CALL 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=N2 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 DPTTES--') 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 T 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 T TEST ** C ********************************* C ISTEPN='52' IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(IBUGA2.EQ.'OFF')GOTO5290 WRITE(ICOUT,999) CALL DPWRST('XXX','BUG ') WRITE(ICOUT,5211) 5211 FORMAT('***** FROM DPTTES, AS WE ARE ABOUT TO CALL DPTTE2--') 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 CCCCC IBUGA3='ABCD' WRITE(ICOUT,5231)IBUGA3 5231 FORMAT('IBUGA3 = ',A4) CALL DPWRST('XXX','BUG ') 5290 CONTINUE C CCCCC THE FOLLOWING CALL WAS CHANGED DECEMBER 1994 CALL DPTTE2(Y,NS1,X,NS2,AMU0,NUMVAR,ILOCV, CCCCC1XTEMP1,XTEMP2,MAXNXT,IBUGA3,IERROR) 1XTEMP1,XTEMP2,MAXNXT, 1ICAPSW,ICAPTY, 1STATVA,STATNU,POOLSD,STATCD,CUTL95,CUTU95,CUTL99,CUTU99, 1IBUGA3,IERROR) C CCCCC THE FOLLOWING SECTION WAS ADDED DECEMBER 1994 C *************************************** C ** STEP 61-- ** C ** UPDATE INTERNAL DATAPLOT TABLES ** C *************************************** C ISTEPN='61' CCCCC MAY 1995. CHANGE FOLLOWING LINE CCCCC IF(IBUGG2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C ISUBN0='DPTT' 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='NU ' VALUE0=STATNU CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0, 1IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM, 1IANS,IWIDTH,IBUGA3,IERROR) C IF(NUMVAR.GE.2)THEN IH='POOL' IH2='SD ' VALUE0=POOLSD CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0, 1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM, 1 IANS,IWIDTH,IBUGA3,IERROR) ENDIF C IH='STAT' IH2='CDF ' VALUE0=STATCD 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 ** 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 DPTTES--') 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 DPTTE2(Y1,N1,Y2,N2,AMU0,NUMVAR,ILOCV, CCCCC THE FOLLOWING LINE WAS CHANGED DECEMBER 1994 CCCCC1XTEMP1,XTEMP2,MAXNXT,IBUGA3,IERROR) 1XTEMP1,XTEMP2,MAXNXT, 1ICAPSW,ICAPTY, 1STATVA,STATNU,POOLSD,STATCD,CUTL95,CUTU95,CUTL99,CUTU99, 1IBUGA3,IERROR) C C PURPOSE--THIS ROUTINE CARRIES OUT A T TEST C (1-SAMPLE OR 2-SAMPLE) CCCCC THE FOLLOWING 3 LINES WERE ADDED FEBRUARY 1994 C EXAMPLE--T TEST Y MU C T TEST MU Y C T 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--82/7 C ORIGINAL VERSION--MAY 1984. C UPDATED --APRIL 1987. (LARRY KNAB CORRECTION-- C BROWNLEE, P. 225) C UPDATED --FEBRUARY 1994. REFORMAT OUTPUT C UPDATED --FEBRUARY 1994. DPWRST: 'BUG ' => 'WRIT' C UPDATED --DECEMBER 1994. COPY T TEST PARAMETERS C UPDATED --OCTOBER 2006. CALL LIST TO TCDF/TPPF C C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES------------------- C CHARACTER*4 IBUGA3 CHARACTER*4 IERROR CHARACTER*4 ICAPSW CHARACTER*4 ICAPTY C CHARACTER*4 IWRITE CHARACTER*4 IBASLC C CCCCC THE FOLLOWING 3 LINES WERE ADDED FEBRUARY 1994 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 XTEMP1(*) DIMENSION XTEMP2(*) 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='DPCO' ISUBN2='F2 ' C IERROR='NO' C N=(-99) C IF(IBUGA3.EQ.'OFF')GOTO90 WRITE(ICOUT,999) 999 FORMAT(1X) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,51) 51 FORMAT('**** AT THE BEGINNING OF DPTTE2--') CALL DPWRST('XXX','WRIT') WRITE(ICOUT,52)IBUGA3 52 FORMAT('IBUGA3 = ',A4) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,53)AMU0,NUMVAR,ILOCV 53 FORMAT('AMU0,NUMVAR,ILOCV = ',E15.7,I8,I8) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,55)N1 55 FORMAT('N1 = ',I8) CALL DPWRST('XXX','WRIT') DO56I=1,N1 WRITE(ICOUT,57)I,Y1(I) 57 FORMAT('I,Y1(I) = ',I8,E15.7) CALL DPWRST('XXX','WRIT') 56 CONTINUE WRITE(ICOUT,65)N2 65 FORMAT('N2 = ',I8) CALL DPWRST('XXX','WRIT') DO66I=1,N2 WRITE(ICOUT,67)I,Y2(I) 67 FORMAT('I,Y2(I) = ',I8,E15.7) CALL DPWRST('XXX','WRIT') 66 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 DPTTE2--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 DPTTE2--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 DPTTE2--VARIABLE 1 ', 1'HAS ALL ELEMENTS = ',E15.7) CALL DPWRST('XXX','WRIT') GOTO9000 1139 CONTINUE C IF(NUMVAR.LE.1)GOTO1290 C IF(N2.GE.1)GOTO1219 WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,1211) 1211 FORMAT('***** ERROR IN DPTTE2--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 DPTTE2--VARIABLE 2 ', 1'HAS ONLY 1 ELEMENT') CALL DPWRST('XXX','WRIT') GOTO9000 1229 CONTINUE C HOLD=Y2(1) DO1235I=2,N2 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 DPTTE2--VARIABLE 2 ', 1'HAS ALL ELEMENTS = ',E15.7) CALL DPWRST('XXX','WRIT') GOTO9000 1239 CONTINUE C 1290 CONTINUE C C ************************************ C ** STEP 21-- ** C ** BRANCH DEPENDING ON WHETHER ** C ** 1-SAMPLE T TEST OR ** C ** 2-SAMPLE T TEST. ** C ************************************ C ISTEPN='21' IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IF(NUMVAR.EQ.1)GOTO3100 GOTO4100 C C ****************************** C ** STEP 31-- ** C ** CARRY OUT CALCULATIONS ** C ** FOR A 1-SAMPLE T TEST ** C ****************************** C 3100 CONTINUE C ISTEPN='31' IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2) C IWRITE='OFF' C IF(ILOCV.EQ.1)GOTO3110 GOTO3120 C 3110 CONTINUE N=N1 CALL MEAN(Y1,N1,IWRITE,YMEAN,IBUGA3,IERROR) CALL SD(Y1,N1,IWRITE,YSD,IBUGA3,IERROR) CALL SDMEAN(Y1,N1,IWRITE,YSDM,IBUGA3,IERROR) GOTO3180 C 3120 CONTINUE N=N2 CALL MEAN(Y2,N2,IWRITE,YMEAN,IBUGA3,IERROR) CALL SD(Y2,N2,IWRITE,YSD,IBUGA3,IERROR) CALL SDMEAN(Y2,N2,IWRITE,YSDM,IBUGA3,IERROR) GOTO3180 C 3180 CONTINUE DEL=YMEAN-AMU0 T=DEL/YSDM DF=N-1 IDF=DF+0.5 CALL TCDF(T,REAL(IDF),CDF) C ICONC1='REJECT' ICONC2='REJECT' ICONC3='REJECT' C IF(CDF.LE.0.050)ICONC1='ACCEPT' IF(CDF.LE.0.025 .OR. CDF.GE.0.975)ICONC2='ACCEPT' IF(CDF.GE.0.950)ICONC3='ACCEPT' C CCCCC THE FOLLOWING 7 LINES WERE ADDED DECEMBER 1994 C STATVA=T STATCD=CDF STATNU=IDF CALL TPPF(.025,REAL(IDF),CUTL95) CALL TPPF(.975,REAL(IDF),CUTU95) CALL TPPF(.005,REAL(IDF),CUTL99) CALL TPPF(.995,REAL(IDF),CUTU99) C C ****************************** C ** STEP 32-- ** C ** WRITE OUT EVERYTHING ** C ** FOR A 1-SAMPLE T TEST ** C ****************************** C ISTEPN='32' IF(IBUGA3.EQ.'ON')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('
') WRITE(ICOUT,5001) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C C STEP 2: START TABLE AND DEFINE A CAPTION C 5011 FORMAT('') 5094 FORMAT('

') WRITE(ICOUT,5091) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5093) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5094) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) C C STEP 2: START TABLE AND DEFINE A CAPTION C 5111 FORMAT('

') 5194 FORMAT('
')
        WRITE(ICOUT,5191)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,5193)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,5194)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        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, AND
C          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 ONE SAMPLE T-TEST FOR THE MEAN}')
 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} {lcr}')
 8021 FORMAT(5X,'$H_0$ Mean ($',A1,'mu_0$) & = & ',
     1       G15.7,2X,A1,A1)
 8022 FORMAT(5X,'$H_a$ Mean ($',A1,'mu_0$) & $',A1,
     1       'ne$ & ',G15.7,2X,A1,A1)
 8023 FORMAT(5X,' &   & ',2X,A1,A1)
 8024 FORMAT(5X,'{',A1,'bf Sample:} &   & ',2X,A1,A1)
 8025 FORMAT(5X,'Number of Observations & = & ',I8,2X,A1,A1)
 8026 FORMAT(5X,'Mean & = & ',G15.7,2X,A1,A1)
 8027 FORMAT(5X,'Standard Deviation & = & ',
     1       G15.7,2X,A1,A1)
 8037 FORMAT(5X,'Standard Deviation of the Mean & = & ',
     1       G15.7,2X,A1,A1)
 8028 FORMAT(5X,'{',A1,'bf Test:} &   & ',2X,A1,A1)
 8029 FORMAT(5X,'Mean - $',A1,'mu_0$ & = & ', G15.7,2X,A1,A1)
 8030 FORMAT(5X,'T Test Statistic & = & ',G15.7,2X,A1,A1)
 8031 FORMAT(5X,'Degrees of Freedom & = & ',I8,2X,A1,A1)
 8032 FORMAT(5X,'T Test Statistic CDF Value & = & ',G15.7,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)IBASLC,AMU0,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8022)IBASLC,IBASLC,AMU0,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8023)IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8024)IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8025)N,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8026)YMEAN,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8027)YSD,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8037)YSDM,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8023)IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8028)IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8029)IBASLC,DEL,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8030)T,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8031)INT(DF + 0.5),IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8032)CDF,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{center}')
        WRITE(ICOUT,8091)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
C  STEP 1: START TABLE ENVIRONMENT, WRITE A HEADER, AND
C          WRITE A TABLE CAPTION
C
 8109 FORMAT(A1,'begin{center}')
 8113 FORMAT(A1,'end{center}')
 8115 FORMAT(5X,'} ',A1,A1)
C
        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} {ccc}')
 8121 FORMAT(5X,'& {',A1,'bf Alternative} & {',A1,
     1       'bf Alternative}',2X,A1,A1)
 8122 FORMAT(5X,'{',A1,'bf Alternative} & {',A1,
     1       'bf Hypothesis} & {',A1,'bf Hypothesis}',
     1       2X,A1,A1)
 8123 FORMAT(5X,'{',A1,'bf Hypothesis} & {',A1,
     1       'bf Acceptance Interval} & {',A1,
     1       'bf Conclusion}',2X,A1,A1)
 8124 FORMAT(5X,'$',A1,'mu_0 ',A1,'ne$ ',G15.7,
     1       ' & (0,0.025), (0.975,1) & ',
     1       A6,2X,A1,A1)
 8125 FORMAT(5X,'$',A1,'mu_0 <$ ',G15.7,' & (0,0.5) & ',
     1       A6,2X,A1,A1)
 8126 FORMAT(5X,'$',A1,'mu_0 >$ ',G15.7,' & (0.95,1) & ',
     1       A6,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,8121)IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8123)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8140)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8124)IBASLC,IBASLC,AMU0,ICONC1,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8125)IBASLC,AMU0,ICONC2,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8126)IBASLC,AMU0,ICONC3,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8149)IBASLC
        CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
 8191 FORMAT(A1,'end{center}')
 8193 FORMAT(A1,'end{table}')
 8199 FORMAT(A1,'begin{verbatim}')
        WRITE(ICOUT,8191)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8193)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8199)IBASLC
        CALL DPWRST('XXX','WRIT')
CCCCC WRITE IN RTF (RICH TEXT FORMAT)
      ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
      ELSE
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3211)
 3211   FORMAT('         ONE SAMPLE T TEST FOR THE MEAN')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3231)AMU0
 3231   FORMAT('NULL HYPOTHESIS: MEAN MU               = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3233)AMU0
 3233   FORMAT('ALTERNATIVE HYPOTHESIS: MEAN MU NOT EQUAL ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,3220)
 3220   FORMAT('SAMPLE:')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3221)N
 3221   FORMAT(3X,'NUMBER OF OBSERVATIONS      = ',I8)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3222)YMEAN
 3222   FORMAT(3X,'MEAN                        = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3223)YSD
 3223   FORMAT(3X,'STANDARD DEVIATION          = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3224)YSDM
 3224   FORMAT(3X,'STANDARD DEVIATION OF MEAN  = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,3240)
 3240   FORMAT('TEST:')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3241)DEL
 3241   FORMAT(3X,'MEAN - MU0                  = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3242)T
 3242   FORMAT(3X,'T TEST STATISTIC VALUE      = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3243)DF
 3243   FORMAT(3X,'DEGREES OF FREEDOM          = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3244)CDF
 3244   FORMAT(3X,'T TEST STATISTIC CDF VALUE  = ',F11.6)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,3248)
 3248   FORMAT('                 ALTERNATIVE-         ALTERNATIVE-')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3250)
 3250   FORMAT(' ALTERNATIVE-    HYPOTHESIS           HYPOTHESIS')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3251)
 3251   FORMAT(' HYPOTHESIS      ACCEPTANCE INTERVAL  CONCLUSION')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3253)AMU0,ICONC2
 3253   FORMAT('MU <> ',G12.7,'(0,0.025) (0.975,1)   ',A6)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3252)AMU0,ICONC1
 3252   FORMAT('MU  < ',G12.7,'(0,0.05)              ',A6)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,3254)AMU0,ICONC3
 3254   FORMAT('MU  > ',G12.7,'(0.95,1)              ',A6)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
      ENDIF
      ENDIF
      GOTO9000
C
C               ******************************
C               **  STEP 41--               **
C               **  CARRY OUT CALCULATIONS  **
C               **  FOR A 2-SAMPLE T TEST   **
C               ******************************
C
 4100 CONTINUE
C
      ISTEPN='41'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IWRITE='OFF'
C
      CALL MEAN(Y1,N1,IWRITE,Y1MEAN,IBUGA3,IERROR)
      CALL SD(Y1,N1,IWRITE,Y1SD,IBUGA3,IERROR)
      Y1VAR=Y1SD**2
      CALL SDMEAN(Y1,N1,IWRITE,Y1SDM,IBUGA3,IERROR)
C
      CALL MEAN(Y2,N2,IWRITE,Y2MEAN,IBUGA3,IERROR)
      CALL SD(Y2,N2,IWRITE,Y2SD,IBUGA3,IERROR)
      Y2VAR=Y2SD**2
      CALL SDMEAN(Y2,N2,IWRITE,Y2SDM,IBUGA3,IERROR)
C
      AN1=N1
      AN2=N2
C
      DEL=Y1MEAN-Y2MEAN
      POOLSS=(AN1-1.0)*Y1VAR+(AN2-1.0)*Y2VAR
      POOLVA=POOLSS/(AN1+AN2-2.0)
      POOLSD=SQRT(POOLVA)
      POOLN=1.0/((1.0/AN1)+(1.0/AN2))
      DELSD=POOLSD/SQRT(POOLN)
      T=DEL/DELSD
      DF=N1+N2-2
      IDF=DF+0.5
      CALL TCDF(T,REAL(IDF),CDF)
C
      DEL2=DEL
      DELVA2=(Y1VAR/AN1)+(Y2VAR/AN2)
      DELSD2=SQRT(DELVA2)
      T2=DEL2/DELSD2
      C=(Y1VAR/AN1)/((Y1VAR/AN1)+(Y2VAR/AN2))
      TERM1=C*C/(AN1-1.0)
      TERM2=(1-C)*(1-C)/(AN2-1.0)
      SUM=TERM1+TERM2
      DF2=1.0/SUM
      IDF2=DF2+0.5
      CALL TCDF(T2,REAL(IDF2),CDF2)
C
      TERM11=1.0/(AN1-1.0)
      TERM12=1.0/(AN2-1.0)
      TERM13=1.0/(AN1+AN2-2.0)
CCCCC SUMC=TERM11+TERM12+TERM13
      SUMC=TERM11+TERM12-TERM13
      CBART=1.0+SUMC/3.0
      TERM21=(AN1-1.0)*2*ALOG(Y1SD/POOLSD)
      TERM22=(AN2-1.0)*2*ALOG(Y2SD/POOLSD)
      BBART=(-TERM21-TERM22)
      BART=BBART/CBART
      IDFBAR=1
      CALL CHSCDF(BART,IDFBAR,CDFBAR)
C
      ICONC1='REJECT'
      ICONC2='REJECT'
      ICONC3='REJECT'
C
      IF(CDF2.LE.0.050)ICONC1='ACCEPT'
      IF(CDF2.LE.0.025 .OR. CDF2.GE.0.975)ICONC2='ACCEPT'
      IF(CDF2.GE.0.950)ICONC3='ACCEPT'
C
CCCCC THE FOLLOWING 7 LINES WERE ADDED     DECEMBER 1994
C
      STATVA=T
      STATCD=CDF
      STATNU=IDF
      CALL TPPF(.025,REAL(IDF),CUTL95)
      CALL TPPF(.975,REAL(IDF),CUTU95)
      CALL TPPF(.005,REAL(IDF),CUTL99)
      CALL TPPF(.995,REAL(IDF),CUTU99)
C
C               ******************************
C               **   STEP 42--              **
C               **   WRITE OUT EVERYTHING   **
C               **   FOR A 2-SAMPLE T TEST  **
C               ******************************
C
      ISTEPN='42'
      IF(IBUGA3.EQ.'ON')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
 5501   FORMAT('
') WRITE(ICOUT,5501) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) CALL DPWRST('XXX','WRIT') C C STEP 2: START TABLE AND DEFINE A CAPTION C 5561 FORMAT('') 5594 FORMAT('

') WRITE(ICOUT,5591) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5593) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,5594) CALL DPWRST('XXX','WRIT') WRITE(ICOUT,999) C C STEP 2: START TABLE AND DEFINE A CAPTION C 5611 FORMAT('

') 5694 FORMAT('
')
        WRITE(ICOUT,5691)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,5693)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,5694)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        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, AND
C          WRITE A TABLE CAPTION
C
 8501 FORMAT(A1,'end{verbatim}')
 8503 FORMAT(A1,'begin{table}')
 8507 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
 8509 FORMAT(A1,'begin{center}')
 8511 FORMAT(5X,'{',A1,'bf TWO SAMPLE T-TEST FOR EQUAL MEANS}')
 8513 FORMAT(A1,'end{center}')
 8515 FORMAT(5X,'} ',A1,A1)
C
        CALL DPCONA(92,IBASLC)
C
        WRITE(ICOUT,8501)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8503)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8509)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8511)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8507)IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8507)IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8513)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
 8520 FORMAT(5X,A1,'begin{tabular} {lcr}')
 8521 FORMAT(5X,'$H_0$: $',A1,'mu_1$  = $',A1,'mu_2$  & & ',
     1       2X,A1,A1)
 8522 FORMAT(5X,'$H_a$: $',A1,'mu_1$  = $',A1,'mu_2$ & & ',
     1       2X,A1,A1)
 8523 FORMAT(5X,' &   & ',2X,A1,A1)
 8524 FORMAT(5X,'{',A1,'bf Sample 1:} &   & ',2X,A1,A1)
 8624 FORMAT(5X,'{',A1,'bf Sample 2:} &   & ',2X,A1,A1)
 8525 FORMAT(5X,'Number of Observations & = & ',I8,2X,A1,A1)
 8526 FORMAT(5X,'Mean & = & ',G15.7,2X,A1,A1)
 8527 FORMAT(5X,'Standard Deviation & = & ',
     1       G15.7,2X,A1,A1)
 8627 FORMAT(5X,'Standard Deviation of the Mean & = & ',
     1       G15.7,2X,A1,A1)
 8540 FORMAT(5X,A1,'hline')
 8549 FORMAT(A1,'end{tabular}')
        WRITE(ICOUT,8509)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8520)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8521)IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8522)IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,8523)IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8524)IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8525)N1,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8526)Y1MEAN,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8527)Y1SD,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8627)Y1SDM,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8523)IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,8624)IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8525)N2,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8526)Y2MEAN,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8527)Y2SD,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8627)Y2SDM,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8523)IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,8523)IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8524)IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8525)N2,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8526)Y2MEAN,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8527)Y2SD,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8523)IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
C
 8528 FORMAT(5X,'{',A1,'bf Test: (Assume $',A1,'sigma_1 = ',A1,
     1       'sigma_2$)} &   & ',2X,A1,A1)
 8529 FORMAT(5X,'Pooled Standard Deviation & = & ',
     1       G15.7,2X,A1,A1)
 8530 FORMAT(5X,'Difference (delta) in Means & = & ',
     1       G15.7,2X,A1,A1)
 8531 FORMAT(5X,'Standard Deviation of delta & = & ',
     1       G15.7,2X,A1,A1)
 8532 FORMAT(5X,'T-Test Statistic Value & = & ',G15.7,2X,A1,A1)
 8533 FORMAT(5X,'Degrees of Freedom & = & ',I8,2X,A1,A1)
 8534 FORMAT(5X,'T-Test Statistic CDF Value & = & ',G15.7,2X,A1,A1)
        WRITE(ICOUT,8528)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8529)POOLSD,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8530)DEL,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8531)DELSD,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8532)T,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8533)INT(DF+0.5),IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8534)CDF,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8523)IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
C
 8628 FORMAT(5X,'{',A1,'bf Test: (Do not assume $',A1,'sigma_1 = ',A1,
     1       'sigma_2$)} &   & ',2X,A1,A1)
 8629 FORMAT(5X,'Standard Deviation of Sample 1 & = & ',
     1       G15.7,2X,A1,A1)
 8630 FORMAT(5X,'Standard Deviation of Sample 2 & = & ',
     1       G15.7,2X,A1,A1)
 8631 FORMAT(5X,'Bartlett CDF Value & = & ',
     1       G15.7,2X,A1,A1)
 8632 FORMAT(5X,'Difference (delta) in Means & = & ',
     1       G15.7,2X,A1,A1)
 8633 FORMAT(5X,'Standard Deviation of delta & = & ',
     1       G15.7,2X,A1,A1)
 8634 FORMAT(5X,'T-Test Statistic Value & = & ',G15.7,2X,A1,A1)
 8635 FORMAT(5X,'Degrees of Freedom & = & ',I8,2X,A1,A1)
 8636 FORMAT(5X,'T-Test Statistic CDF Value & = & ',G15.7,2X,A1,A1)
        WRITE(ICOUT,8628)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8629)Y1SD,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8630)Y2SD,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8631)CDFBAR,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8632)DEL2,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8633)DELSD2,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8634)T2,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8635)INT(DF2+0.5),IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8636)CDF2,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8549)IBASLC
        CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
 8591 FORMAT(A1,'end{center}')
        WRITE(ICOUT,8591)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
C  STEP 1: START TABLE ENVIRONMENT, WRITE A HEADER, AND
C          WRITE A TABLE CAPTION
C
 8609 FORMAT(A1,'begin{center}')
 8613 FORMAT(A1,'end{center}')
 8615 FORMAT(5X,'} ',A1,A1)
C
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C         TABULAR ENVIRONMENT
C
 8620 FORMAT(5X,A1,'begin{tabular} {ccc}')
 8621 FORMAT(5X,'{',A1,'bf Alternative-} & {',A1,
     1       'bf Alternative-Hypothesis} & {',
     1       A1,'bf Alternative-Hypothesis}',
     1       2X,A1,A1)
 8622 FORMAT(5X,'{',A1,'bf Hypothesis} & {',A1,
     1       'bf Acceptance Interval} & {',A1,
     1       'bf Conclusion}',2X,A1,A1)
 8724 FORMAT(5X,'$',A1,'mu_1 ',A1,'ne ',A1,'mu_2 $ ',
     1       ' & (0.000,0.025) (0.975,1) & ',A6,2X,A1,A1)
 8625 FORMAT(5X,'$',A1,'mu_1 < ',A1,'mu_2 $ ',
     1       ' & (0.000,0.05) & ',A6,2X,A1,A1)
 8626 FORMAT(5X,'$',A1,'mu_1 > ',A1,'mu_2 $ ',
     1       ' & (0.95,1) & ',A6,2X,A1,A1)
 8640 FORMAT(5X,A1,'hline')
 8649 FORMAT(A1,'end{tabular}')
        WRITE(ICOUT,8609)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8620)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8621)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8622)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8640)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8724)IBASLC,IBASLC,IBASLC,ICONC2,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8625)IBASLC,IBASLC,ICONC1,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8626)IBASLC,IBASLC,ICONC3,IBASLC,IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8649)IBASLC
        CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
 8691   FORMAT(A1,'end{center}')
 8693   FORMAT(A1,'end{table}')
 8699   FORMAT(A1,'begin{verbatim}')
        WRITE(ICOUT,8691)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8693)IBASLC
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,8699)IBASLC
        CALL DPWRST('XXX','WRIT')
CCCCC WRITE IN RTF (RICH TEXT FORMAT)
      ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
      ELSE
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4211)
 4211   FORMAT('         TWO-SAMPLE T-TEST FOR EQUAL MEANS')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4213)
 4213   FORMAT('NULL HYPOTHESIS:        POPULATION MEANS MU1 = MU2')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4215)
 4215   FORMAT('ALTERNATIVE HYPOTHESIS: POPULATION MEANS MU1 = MU2')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,4220)
 4220   FORMAT('SAMPLE 1:')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4221)N1
 4221   FORMAT(3X,'NUMBER OF OBSERVATIONS      = ',I8)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4222)Y1MEAN
 4222   FORMAT(3X,'MEAN                        = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4223)Y1SD
 4223   FORMAT(3X,'STANDARD DEVIATION          = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4224)Y1SDM
 4224   FORMAT(3X,'STANDARD DEVIATION OF MEAN  = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,4230)
 4230   FORMAT('SAMPLE 2:')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4231)N2
 4231   FORMAT(3X,'NUMBER OF OBSERVATIONS      = ',I8)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4232)Y2MEAN
 4232   FORMAT(3X,'MEAN                        = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4233)Y2SD
 4233   FORMAT(3X,'STANDARD DEVIATION          = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4234)Y2SDM
 4234   FORMAT(3X,'STANDARD DEVIATION OF MEAN  = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,4240)
 4240   FORMAT('IF     ASSUME SIGMA1 = SIGMA2:')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4241)POOLSD
 4241   FORMAT(3X,'POOLED STANDARD DEVIATION   = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4244)DEL
 4244   FORMAT(3X,'DIFFERENCE (DELTA) IN MEANS = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4245)DELSD
 4245   FORMAT(3X,'STANDARD DEVIATION OF DELTA = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4246)T
 4246   FORMAT(3X,'T-TEST STATISTIC VALUE      = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4247)DF
 4247   FORMAT(3X,'DEGREES OF FREEDOM          = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4248)CDF
 4248   FORMAT(3X,'T-TEST STATISTIC CDF VALUE  = ',F11.6)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,4250)
 4250   FORMAT('IF NOT ASSUME SIGMA1 = SIGMA2:')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4251)Y1SD
 4251   FORMAT(3X,'STANDARD DEVIATION SAMPLE 1 = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4252)Y2SD
 4252   FORMAT(3X,'STANDARD DEVIATION SAMPLE 2 = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4253)CDFBAR
 4253   FORMAT(3X,'BARTLETT CDF VALUE          = ',F11.6)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4254)DEL2
 4254   FORMAT(3X,'DIFFERENCE (DELTA) IN MEANS = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4255)DELSD2
 4255   FORMAT(3X,'STANDARD DEVIATION OF DELTA = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4256)T2
 4256   FORMAT(3X,'T-TEST STATISTIC VALUE      = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4257)DF2
 4257   FORMAT(3X,'EQUIVALENT DEG. OF FREEDOM  = ',G15.7)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4258)CDF2
 4258   FORMAT(3X,'T-TEST STATISTIC CDF VALUE  = ',F11.6)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
C
        WRITE(ICOUT,4259)
 4259   FORMAT('                  ALTERNATIVE-         ALTERNATIVE-')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4260)
 4260   FORMAT('ALTERNATIVE-      HYPOTHESIS           HYPOTHESIS')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4261)
 4261   FORMAT('HYPOTHESIS        ACCEPTANCE INTERVAL  CONCLUSION')
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4263)ICONC2
 4263   FORMAT('MU1 <> MU2         (0,0.025) (0.975,1)   ',A6)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4262)ICONC1
 4262   FORMAT('MU1 < MU2          (0,0.05)              ',A6)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,4264)ICONC3
 4264   FORMAT('MU1 > MU2          (0.95,1)              ',A6)
        CALL DPWRST('XXX','WRIT')
        WRITE(ICOUT,999)
        CALL DPWRST('XXX','WRIT')
      ENDIF
      ENDIF
      GOTO9000
C
C               *****************
C               **  STEP 90--  **
C               **  EXIT       **
C               *****************
C
 9000 CONTINUE
      IF(IBUGA3.EQ.'OFF')GOTO9090
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','WRIT')
      WRITE(ICOUT,9011)
 9011 FORMAT('***** AT THE END       OF DPTTE2--')
      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,NUMVAR,ILOCV
 9013 FORMAT('AMU0,NUMVAR,ILOCV = ',E15.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 DPTUMD(NPLOTV,NPLOTP,NS,ICASPL,IAND1,IAND2,
     1IANGLU,MAXNPP,
     1IBUGG2,IBUGG3,IBUGQ,ISUBRO,IFOUND,IERROR)
C
C     PURPOSE--FORM A TUKEY MEAN DIFFERENCE PLOT
C              (USEFUL FOR DISTRIBUTIONALLY COMPARING 2 DATA SETS).
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/8
C     ORIGINAL VERSION--SEPTEMBER 1999 .
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
      CHARACTER*4 ICASPL
      CHARACTER*4 IAND1
      CHARACTER*4 IAND2
      CHARACTER*4 IANGLU
      CHARACTER*4 IBUGG2
      CHARACTER*4 IBUGG3
      CHARACTER*4 IBUGQ
      CHARACTER*4 ISUBRO
      CHARACTER*4 IFOUND
      CHARACTER*4 IERROR
C
      CHARACTER*4 ICASEQ
C
      CHARACTER*4 IHRI11
      CHARACTER*4 IHRI12
      CHARACTER*4 IHRI21
      CHARACTER*4 IHRI22
CCCCC CHARACTER*4 IHRI31
CCCCC CHARACTER*4 IHRI32
CCCCC CHARACTER*4 IHRI41
CCCCC CHARACTER*4 IHRI42
      CHARACTER*4 IHRIX1
      CHARACTER*4 IHRIX2
C
      CHARACTER*4 IERRO4
C
      CHARACTER*4 ICTAR1
      CHARACTER*4 ICTAR2
C
      CHARACTER*4 ISUBN1
      CHARACTER*4 ISUBN2
      CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
      INCLUDE 'DPCOPA.INC'
      DIMENSION Y1(MAXOBV)
      DIMENSION Y2(MAXOBV)
      DIMENSION Y3(MAXOBV)
      DIMENSION Y4(MAXOBV)
      DIMENSION XD(MAXOBV)
      DIMENSION YD(MAXOBV)
C
      INCLUDE 'DPCOZZ.INC'
      DIMENSION YLARGE(MAXOBV)
      DIMENSION YSMALL(MAXOBV)
      EQUIVALENCE (GARBAG(IGARB1),Y1(1))
      EQUIVALENCE (GARBAG(IGARB2),Y2(1))
      EQUIVALENCE (GARBAG(IGARB3),Y3(1))
      EQUIVALENCE (GARBAG(IGARB4),Y4(1))
      EQUIVALENCE (GARBAG(IGARB5),XD(1))
      EQUIVALENCE (GARBAG(IGARB6),YD(1))
      EQUIVALENCE (GARBAG(IGARB7),YLARGE(1))
      EQUIVALENCE (GARBAG(IGARB8),YSMALL(1))
C
C-----COMMON----------------------------------------------------------
C
      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='DPTU'
      ISUBN2='MD  '
C
      IFOUND='NO'
      IERROR='NO'
C
      MAXCP1=MAXCOL+1
      MAXCP2=MAXCOL+2
      MAXCP3=MAXCOL+3
      MAXCP4=MAXCOL+4
      MAXCP5=MAXCOL+5
      MAXCP6=MAXCOL+6
C
      MINN2=2
C
      IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'TUMD')GOTO90
      WRITE(ICOUT,999)
  999 FORMAT(1X)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,51)
   51 FORMAT('***** AT THE BEGINNING OF DPTUMD--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,52)NPLOTV,NPLOTP,NS
   52 FORMAT('NPLOTV,NPLOTP,NS = ',3I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,53)ICASPL,IAND1,IAND2
   53 FORMAT('ICASPL,IAND1,IAND2 = ',A4,2X,A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,54)IANGLU,IBUGG2,IBUGG3,IBUGQ
   54 FORMAT('IANGLU,IBUGG2,IBUGG3,IBUGQ = ',
     1A4,2X,A4,2X,A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,56)ICASPL,MAXN
   56 FORMAT('ICASPL,MAXN = ',A4,I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,57)IFOUND,IERROR
   57 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,58)MAXNPP
   58 FORMAT('MAXNPP = ',I8)
      CALL DPWRST('XXX','BUG ')
   90 CONTINUE
C
C               *******************************************
C               **  TREAT THE TUKEY MEAN-DIFFERENCE CASE **
C               *******************************************
C
C               ***************************
C               **  STEP 11--            **
C               **  EXTRACT THE COMMAND  **
C               ***************************
C
      ISTEPN='11'
      IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'TUMD')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(NUMARG.GE.3.AND.IHARG(1).EQ.'MEAN'.AND.
     1   IHARG(2).EQ.'DIFF'.AND.IHARG(3).EQ.'PLOT')GOTO1113
      IF(NUMARG.GE.3.AND.IHARG(1).EQ.'M   '.AND.
     1   IHARG(2).EQ.'D   '.AND.IHARG(3).EQ.'PLOT')GOTO1113
      IF(NUMARG.GE.2.AND.IHARG(1).EQ.'MD  '.AND.
     1   IHARG(2).EQ.'PLOT')GOTO1112
      GOTO9000
C
 1111 CONTINUE
      ILASTC=1
      CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
      GOTO1190
C
 1112 CONTINUE
      ILASTC=2
      CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
      GOTO1190
C
 1113 CONTINUE
      ILASTC=3
      CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
      GOTO1190
C
 1190 CONTINUE
      IFOUND='YES'
      ICASPL='TUMD'
C
C               ****************************************************
C               **  STEP 12--                                     **
C               **  CARRY OUT A GENERAL CHECK FOR THE             **
C               **  PROPER NUMBER OF INPUT ARGUMENTS              **
C               **  (IT SHOULD BE EXACTLY 2).                     **
C               ****************************************************
C
      ISTEPN='12'
      IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'TUMD')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      MINNA=2
      MAXNA=100
      CALL CHECKA(NUMARG,MINNA,MAXNA,IANS,IWIDTH,ISUBN1,ISUBN2,IERROR)
      IF(IERROR.EQ.'YES')GOTO9000
C
C               *****************************************
C               **  STEP 13--                          **
C               **  CHECK TO SEE THE TYPE CASE--       **
C               **    1) UNQUALIFIED (THAT IS, FULL);  **
C               **    2) SUBSET/EXCEPT; OR             **
C               **    3) FOR.                          **
C               *****************************************
C
      ISTEPN='13'
      IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'TUMD')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      ICASEQ='FULL'
      ILOCQ=NUMARG+1
      IF(NUMARG.LT.1)GOTO1390
      DO1300J=1,NUMARG
      J1=J
      IF(IHARG(J).EQ.'SUBS'.AND.IHARG2(J).EQ.'ET  ') GOTO1310
      IF(IHARG(J).EQ.'EXCE'.AND.IHARG2(J).EQ.'PT  ') GOTO1310
      IF(IHARG(J).EQ.'FOR '.AND.IHARG2(J).EQ.'    ') GOTO1320
 1300 CONTINUE
      GOTO1390
 1310 CONTINUE
      ICASEQ='SUBS'
      ILOCQ=J1
      GOTO1390
 1320 CONTINUE
      ICASEQ='FOR'
      ILOCQ=J1
      GOTO1390
 1390 CONTINUE
      IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'TUMD')GOTO1395
      WRITE(ICOUT,1391)ICASEQ,NUMARG,ILOCQ
 1391 FORMAT('ICASEQ,NUMARG,ILOCQ = ',A4,2X,2I8)
      CALL DPWRST('XXX','BUG ')
 1395 CONTINUE
C
C               ****************************************************
C               **  STEP 14--                                     **
C               **  CARRY OUT A SPECIFIC CHECK FOR THE            **
C               **  PROPER NUMBER OF INPUT ARGUMENTS              **
C               **  (IT SHOULD BE EXACTLY 2).                     **
C               ****************************************************
C
      ISTEPN='14'
      IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'TUMD')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      NUMVAR=ILOCQ-1
      IF(NUMVAR.EQ.2)GOTO1490
      GOTO1410
C
 1410 CONTINUE
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1411)
 1411 FORMAT('***** ERROR IN DPTUMD--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1412)
 1412 FORMAT('      FOR A TUKEY MEAN-DIFFERENCE PLOT, ')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1418)
 1418 FORMAT('      THE NUMBER OF VARIABLES ')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1419)
 1419 FORMAT('      MUST BE EXACTLY 2  ;')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1420)
 1420 FORMAT('      SUCH WAS NOT THE CASE HERE;')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1421)
 1421 FORMAT('      THE SPECIFIED NUMBER')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1422)NUMVAR
 1422 FORMAT('      OF VARIABLES WAS ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1423)
 1423 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
      CALL DPWRST('XXX','BUG ')
      IF(IWIDTH.GE.1)WRITE(ICOUT,1424)(IANS(I),I=1,MIN(IWIDTH,80))
 1424 FORMAT('      ',80A1)
      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
C
 1490 CONTINUE
C
C               ****************************************************
C               **  STEP 15--                                      *
C               **  EXAMINE THE VARIABLES--                        *
C               **  HAS EACH VARIABLE                              *
C               **  ALREADY BEEN DEFINED?                          *
C               **  NOTE THAT     ILISR1, ILISR2,                  *
C               **  IS THE LINE IN THE TABLE                       *
C               **  OF THE FIRST, SECOND VARIABLE                  *
C               **  RESPECTIVELY.                                  *
C               **  NOTE THAT     ICOLR1, ICOLR2,                  *
C               **  IS THE DATA COLUMN (1 TO 10+6)                 *
C               **  OF THE FIRST, SECOND VARIABLE                  *
C               **  RESPECTIVELY.                                  *
C               ****************************************************
C
      ISTEPN='15'
      IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'TUMD')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      ICTAR1='FIRS'
      ICTAR2='T   '
      ILOCR1=1
      IHRI11=IHARG(ILOCR1)
      IHRI12=IHARG2(ILOCR1)
      IHRIX1=IHRI11
      IHRIX2=IHRI12
      DO1510I=1,NUMNAM
      I2=I
      IF(IHRI11.EQ.IHNAME(I).AND.IHRI12.EQ.IHNAM2(I).AND.
     1IUSE(I).EQ.'V')GOTO1519
      IF(IHRI11.EQ.IHNAME(I).AND.IHRI12.EQ.IHNAM2(I).AND.
     1IUSE(I).EQ.'P')GOTO1560
 1510 CONTINUE
      GOTO1570
 1519 CONTINUE
      ILISR1=I2
      ICOLR1=IVALUE(ILISR1)
      NIRIG1=IN(ILISR1)
C
      ICTAR1='SECO'
      ICTAR2='ND  '
      ILOCR2=2
      IHRI21=IHARG(ILOCR2)
      IHRI22=IHARG2(ILOCR2)
      IHRIX1=IHRI21
      IHRIX2=IHRI22
      DO1520I=1,NUMNAM
      I2=I
      IF(IHRI21.EQ.IHNAME(I).AND.IHRI22.EQ.IHNAM2(I).AND.
     1IUSE(I).EQ.'V')GOTO1529
      IF(IHRI21.EQ.IHNAME(I).AND.IHRI22.EQ.IHNAM2(I).AND.
     1IUSE(I).EQ.'P')GOTO1560
 1520 CONTINUE
      GOTO1570
 1529 CONTINUE
      ILISR2=I2
      ICOLR2=IVALUE(ILISR2)
      NIRIG2=IN(ILISR2)
      GOTO1590
C
 1560 CONTINUE
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1561)
 1561 FORMAT('***** ERROR IN DPTUMD--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1562)ICTAR1,ICTAR2
 1562 FORMAT('      THE SPECIFIED ',A4,A4,' ARGUMENT ')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1563)IHRIX1,IHRIX2
 1563 FORMAT('      (',A4,A4,')')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1565)
 1565 FORMAT('      WAS FOUND IN THE INTERNAL NAME LIST,')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1566)
 1566 FORMAT('      BUT AS A PARAMETER,')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1567)
 1567 FORMAT('      AND NOT AS A VARIABLE AS IT SHOULD BE HERE.')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1568)
 1568 FORMAT('      THE COMMAND LINE WAS AS FOLLOWS--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1569)(IANS(I),I=1,MIN(IWIDTH,80))
 1569 FORMAT(80A1)
      CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
C
 1570 CONTINUE
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1571)
 1571 FORMAT('***** ERROR IN DPTUMD--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1572)ICTAR1,ICTAR2
 1572 FORMAT('      THE SPECIFIED ',A4,A4,' ARGUMENT ')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1573)IHRIX1,IHRIX2
 1573 FORMAT('      (',A4,A4,')')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1575)
 1575 FORMAT('      WAS NOT FOUND IN THE INTERNAL NAME LIST')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1576)
 1576 FORMAT('      OF AVAILABLE VARIABLE NAMES.')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1577)IHRI11,IHRI12
 1577 FORMAT('      THE VARIABLE IN QUESTION WAS ',A4,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1578)
 1578 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
      CALL DPWRST('XXX','BUG ')
      IF(IWIDTH.GE.1)WRITE(ICOUT,1579)(IANS(I),I=1,MIN(IWIDTH,80))
 1579 FORMAT(80A1)
      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
C
 1590 CONTINUE
C
C               *********************************************
C               **  STEP 32--                              **
C               **  FORM THE VECTOR ISUB(.)                **
C               **  DEPENDING ON THE TYPE OF CASE          **
C               **  FOR THE QUALIFIER.                     **
C               **  BRANCH TO THE PROPER CASE.             **
C               *********************************************
C
      ISTEPN='32'
      IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'TUMD')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      NLOCAL=NIRIG1
      IF(NIRIG2.GT.NIRIG1)NLOCAL=NIRIG2
C
      IF(ICASEQ.EQ.'FULL')GOTO3210
      IF(ICASEQ.EQ.'SUBS')GOTO3220
      IF(ICASEQ.EQ.'FOR')GOTO3230
C
 3210 CONTINUE
      DO3215I=1,NLOCAL
      ISUB(I)=1
 3215 CONTINUE
      NQ=NLOCAL
      GOTO3250
C
 3220 CONTINUE
      NIOLD=NLOCAL
      CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERRO4)
      NQ=NIOLD
      GOTO3250
C
 3230 CONTINUE
      NIOLD=NLOCAL
      CALL DPFOR(NIOLD,NFOR,IROW1,IROWN,
     1NLOCAL,ILOCS,NS,IBUGQ,IERRO4)
      NQ=NFOR
      GOTO3250
C
 3250 CONTINUE
      IF(NQ.GE.MINN2)GOTO3290
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3251)
 3251 FORMAT('***** ERROR IN DPTUMD--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3252)
 3252 FORMAT('      AFTER THE APPROPRIATE SUBSET ')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3253)
 3253 FORMAT('      HAS BEEN EXTRACTED,')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3254)IHRI11,IHRI12
 3254 FORMAT('      THE NUMBER OF OBSERVATIONS REMAINING',
     1'FROM VARIABLE ',A4,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3255)
 3255 FORMAT('      (FOR WHICH A TUKEY MEAN-DIFFERENCE ')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3256)
 3256 FORMAT('      IS TO BE FORMED)')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3257)MINN2
 3257 FORMAT('      MUST BE ',I8,' OR LARGER;')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3258)NQ
 3258 FORMAT('      SUCH WAS NOT THE CASE HERE (NQ = ',I8,')')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3259)
 3259 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
      CALL DPWRST('XXX','BUG ')
      IF(IWIDTH.GE.1)WRITE(ICOUT,3260)(IANS(I),I=1,IWIDTH)
 3260 FORMAT('      ',80A1)
      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
C
 3290 CONTINUE
C
C               **********************************************
C               **  STEP 33--                               **
C               **  FORM THE SUBSETTED VARIABLES            **
C               **       Y1(.)                              **
C               **       Y2(.)                              **
C               **  CONTAINING                              **
C               **       THE VERTICAL AXIS VARIABLE         **
C               **       THE HORIZONTAL AXIS VARIABLE       **
C               **  RESPECTIVELY.                           **
C               **********************************************
C
      ISTEPN='33'
      IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'TUMD')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      J=0
      IMAX=NIRIG1
      IF(NQ.LT.NIRIG1)IMAX=NQ
      DO3310I=1,IMAX
      IF(ISUB(I).EQ.0)GOTO3310
      J=J+1
      IJ=MAXN*(ICOLR1-1)+I
      IF(ICOLR1.LE.MAXCOL)Y1(J)=V(IJ)
      IF(ICOLR1.EQ.MAXCP1)Y1(J)=PRED(I)
      IF(ICOLR1.EQ.MAXCP2)Y1(J)=RES(I)
      IF(ICOLR1.EQ.MAXCP3)Y1(J)=YPLOT(I)
      IF(ICOLR1.EQ.MAXCP4)Y1(J)=XPLOT(I)
      IF(ICOLR1.EQ.MAXCP5)Y1(J)=X2PLOT(I)
      IF(ICOLR1.EQ.MAXCP6)Y1(J)=TAGPLO(I)
 3310 CONTINUE
      NS1=J
C
      J=0
      IMAX=NIRIG2
      IF(NQ.LT.NIRIG2)IMAX=NQ
      DO3320I=1,IMAX
      IF(ISUB(I).EQ.0)GOTO3320
      J=J+1
      IJ=MAXN*(ICOLR2-1)+I
      IF(ICOLR2.LE.MAXCOL)Y2(J)=V(IJ)
      IF(ICOLR2.EQ.MAXCP1)Y2(J)=PRED(I)
      IF(ICOLR2.EQ.MAXCP2)Y2(J)=RES(I)
      IF(ICOLR2.EQ.MAXCP3)Y2(J)=YPLOT(I)
      IF(ICOLR2.EQ.MAXCP4)Y2(J)=XPLOT(I)
      IF(ICOLR2.EQ.MAXCP5)Y2(J)=X2PLOT(I)
      IF(ICOLR2.EQ.MAXCP6)Y2(J)=TAGPLO(I)
 3320 CONTINUE
      NS2=J
C
C               *********************************************
C               **  STEP 34--                              **
C               **  CHECK TO MAKE SURE THAT                **
C               **  AFTER SUBSETTING, EACH OF              **
C               **  THE 2 VARIABLES HAS AT LEAST           **
C               **  2 POINTS (THE MINIMUM NEEDED           **
C               **  TO YIELD A PLOT).                      **
C               *********************************************
C
      ISTEPN='34'
      IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'TUMD')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      ICOUN1=0
      IF(NS1.LE.2)ICOUN1=NS1
      IF(NS1.LE.2)GOTO3419
      DO3410I=1,NS1
      IF(Y1(I).LE.-0.0001.OR.Y1(I).GE.0.0001)ICOUN1=ICOUN1+1
 3410 CONTINUE
 3419 CONTINUE
      IF(ICOUN1.LE.MINN2)GOTO3450
C
      ICOUN2=0
      IF(NS2.LE.2)ICOUN2=NS2
      IF(NS2.LE.2)GOTO3429
      DO3420I=1,NS2
      IF(Y2(I).LE.-0.0001.OR.Y2(I).GE.0.0001)ICOUN2=ICOUN2+1
 3420 CONTINUE
 3429 CONTINUE
      IF(ICOUN2.LE.MINN2)GOTO3450
      GOTO3490
C
 3450 CONTINUE
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3451)
 3451 FORMAT('***** ERROR IN DPTUMD--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3452)
 3452 FORMAT('      AFTER THE SPECIFIED SUBSETTING ')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3453)
 3453 FORMAT('      HAS BEEN DONE,')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3454)
 3454 FORMAT('      THE NUMBER OF OBSERVATIONS REMAINING')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3455)
 3455 FORMAT('      (FOR WHICH A TUKEY MEAN-DIFFERENCE PLOT')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3456)
 3456 FORMAT('      IS TO BE FORMED)')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3457)MINN2
 3457 FORMAT('      MUST BE ',I8,' OR LARGER;')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3458)
 3458 FORMAT('      SUCH WAS NOT THE CASE HERE')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3459)ICOUN1,ICOUN2
 3459 FORMAT('(ICOUN1, ICOUN2 = ',2I8,')')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,3460)
 3460 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
      CALL DPWRST('XXX','BUG ')
      IF(IWIDTH.GE.1)WRITE(ICOUT,3461)(IANS(I),I=1,MIN(IWIDTH,80))
 3461 FORMAT('      ',80A1)
      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
C
 3490 CONTINUE
C
C               ****************************************************
C               **  STEP 41--                                      *
C               **  FORM THE VERTICAL AND HORIZONTAL AXIS          *
C               **  VARIABLES (Y(.) AND X(.), RESPECTIVELY) FOR    *
C               **   THE PLOT.                                     *
C               **  FORM THE CURVE DESIGNATION VARIABLE D(.)  .    *
C               **  THIS WILL BE BOTH ONES FOR BOTH CASES          *
C               **  DEFINE THE NUMBER OF PLOT POINTS    (NPLOTP).  *
C               **  DEFINE THE NUMBER OF PLOT VARIABLES (NPLOTV).  *
C               ****************************************************
C
      ISTEPN='41'
      IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'TUMD')
     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      NS=NS1
      IF(NS2.GT.NS1)NS=NS2
      CALL DPTUM2(Y1,NS1,Y2,NS2,ICASPL,MAXN,
     1Y,X,D,NPLOTP,NPLOTV,
     1YLARGE,YSMALL,
     1IBUGG3,ISUBRO,IERROR)
C
C
C               *****************
C               **  STEP 90--  **
C               **  EXIT       **
C               *****************
C
 9000 CONTINUE
      IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'TUMD')GOTO9090
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9011)
 9011 FORMAT('***** AT THE END       OF DPTUMD--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9012)IFOUND,IERROR
 9012 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9013)NPLOTV,NPLOTP,NS,ICASPL,IAND1,IAND2
 9013 FORMAT('NPLOTV,NPLOTP,NS,ICASPL,IAND1,IAND2 = ',
     1I8,I8,I8,2X,A4,2X,A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9014)ICASPL,MAXN,NUMVAR
 9014 FORMAT('ICASPL,MAXN,NUMVAR = ',A4,I8,I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9015)NIRIG1,NIRIG2
 9015 FORMAT('NIRIG1,NIRIG2 = ',2I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9016)NLOCAL,NQ,MINN2
 9016 FORMAT('NLOCAL,NQ,MINN2 = ',3I8)
      CALL DPWRST('XXX','BUG ')
      IF(NPLOTP.LE.0)GOTO9029
      DO9020I=1,NPLOTP
      WRITE(ICOUT,9021)I,Y(I),X(I),D(I)
 9021 FORMAT('I,Y(I),X(I),D(I) = ',I8,3F12.5)
      CALL DPWRST('XXX','BUG ')
 9020 CONTINUE
 9029 CONTINUE
      WRITE(ICOUT,9031)ICOUN1,ICOUN2
 9031 FORMAT('ICOUN1,ICOUN2 = ',2I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9051)IHRI11,IHRI12
 9051 FORMAT('IHRI11,IHRI12 = ',A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9052)IHRI21,IHRI22
 9052 FORMAT('IHRI21,IHRI22 = ',A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9053)NS1,NS2,NS
 9053 FORMAT('NS1,NS2,NS = ',3I8)
      CALL DPWRST('XXX','BUG ')
 9090 CONTINUE
C
      RETURN
      END
      SUBROUTINE DPTUM2(Y,NY,X,NX,ICASPL,MAXN,
     1Y2,X2,D2,N2,NPLOTV,
     1YLARGE,YSMALL,
     1IBUGG3,ISUBRO,IERROR)
C
C     PURPOSE--GENERATE A PAIR OF COORDINATE VECTORS
C              THAT WILL DEFINE
C              A TUKEY MEAN-DIFFERENCE PLOT
C              (USEFUL FOR DISTRIBUTIONALLY COMPARING 2 DATA SETS).
C              AFTER CALCULATING COORDINATES FOR Q-Q PLOT, CALCULATE
C              (Bi - Ti) VERSUS (Bi+Ti)/2 WHERE Bi AND Ti ARE
C              THE QUANTILES FOR THE RESPECTIVE DATA SETS.
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/9
C     ORIGINAL VERSION--SEPTEMBER 1999.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
      CHARACTER*4 IBUGG3
      CHARACTER*4 ISUBRO
      CHARACTER*4 IERROR
C
      CHARACTER*4 ICASE
      CHARACTER*4 ICASPL
C
      CHARACTER*4 ISUBN1
      CHARACTER*4 ISUBN2
C
C---------------------------------------------------------------------
C
      INCLUDE 'DPCOPA.INC'
C
      DIMENSION Y(*)
      DIMENSION X(*)
      DIMENSION Y2(*)
      DIMENSION X2(*)
      DIMENSION D2(*)
C
      DIMENSION YLARGE(*)
      DIMENSION YSMALL(*)
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='DPQU'
      ISUBN2='A2  '
C
      IERROR='NO'
C
      ICASE=ICASPL
C
      ANY=NY
      ANX=NX
C
      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'TUM2')GOTO90
      WRITE(ICOUT,999)
  999 FORMAT(1X)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,51)
   51 FORMAT('***** AT THE BEGINNING OF DPTUM2--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,52)IBUGG3,ISUBRO
   52 FORMAT('IBUGG3,ISUBRO = ',A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,53)ICASPL,MAXN,NX,NPLOTV
   53 FORMAT('ICASPL,MAXN,NX,NPLOTV = ',A4,2X,I8,I8,I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,60)NY
   60 FORMAT(' NY = ',I8)
      CALL DPWRST('XXX','BUG ')
      IF(NY.LE.0)GOTO63
      DO61I=1,NY
      WRITE(ICOUT,62)I,Y(I)
   62 FORMAT('I,Y(I) = ',I8,E12.5)
      CALL DPWRST('XXX','BUG ')
   61 CONTINUE
   63 CONTINUE
      WRITE(ICOUT,70)NX
   70 FORMAT(' NX = ',I8)
      CALL DPWRST('XXX','BUG ')
      IF(NX.LE.0)GOTO73
      DO71I=1,NX
      WRITE(ICOUT,72)I,X(I)
   72 FORMAT('I,X(I) = ',I8,E12.5)
      CALL DPWRST('XXX','BUG ')
   71 CONTINUE
   73 CONTINUE
   90 CONTINUE
C
C               ********************************************
C               **  STEP 11--                             **
C               **  CHECK THE INPUT ARGUMENTS FOR ERRORS  **
C               ********************************************
C
      IF(NY.GE.1.AND.NX.GE.1)GOTO1119
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1111)
 1111 FORMAT('***** ERROR IN DPTUM2--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1112)
 1112 FORMAT('      THE NUMBER OF OBSERVATIONS')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1113)
 1113 FORMAT('      MUST BE AT LEAST 1;')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1114)NY,NX
 1114 FORMAT('      THE ENTERED NUMBER OF OBSERVATIONS HERE = ',2I6)
      CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
 1119 CONTINUE
C
      IF(NY.GE.2.AND.NX.GE.2)GOTO1129
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1121)
 1121 FORMAT('***** ERROR IN DPTUM2--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1122)
 1122 FORMAT('      THE NUMBER OF OBSERVATIONS')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1123)
 1123 FORMAT('      WAS EXACTLY EQUAL TO 1.')
      CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
 1129 CONTINUE
C
      HOLD=Y(1)
      DO1130I=1,NY
      IF(Y(I).NE.HOLD)GOTO1139
 1130 CONTINUE
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1131)
 1131 FORMAT('***** ERROR IN DPTUM2--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1132)
 1132 FORMAT('      ALL INPUT RESPONSE VARIABLE ELEMENTS')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1133)HOLD
 1133 FORMAT('      ARE IDENTICALLY EQUAL TO ',E15.7)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
 1139 CONTINUE
C
      HOLD=X(1)
      DO1140I=1,NY
      IF(X(I).NE.HOLD)GOTO1149
 1140 CONTINUE
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1141)
 1141 FORMAT('***** ERROR IN DPTUM2--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1142)
 1142 FORMAT('      ALL INPUT RESPONSE VARIABLE ELEMENTS')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,1143)HOLD
 1143 FORMAT('      ARE IDENTICALLY EQUAL TO ',E15.7)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
 1149 CONTINUE
C
C               ****************************************************
C               **  STEP 21--                                     **
C               **  SORT Y AND SORT X                             **
C               ****************************************************
C
      CALL SORT(X,NX,X)
      CALL SORT(Y,NY,Y)
C
C               *****************************************
C               **  STEP 22--                          **
C               **  DETERMINE THE TYPE CASE            **
C               **  EQUAL SAMPLE SIZES OR NOT)         **
C               **  AND BRANCH ACORDINGLY              **
C               *****************************************
C
      ICASE='UNEQ'
      IF(NY.EQ.NX)ICASE='EQUA'
      IF(ICASE.EQ.'EQUA')GOTO5100
C
C               **************************************************
C               **  STEP 23--                                   **
C               **  DETERMINE THE SMALLER OF THE 2--            **
C               **  NY OR NX                                    **
C               **  DETERMINE THE LARGER OF THE 2--             **
C               **  NY OR NX                                    **
C               **************************************************
C
      NSMALL=NX
      IF(NY.LT.NX)NSMALL=NY
      ANSMAL=NSMALL
C
      NLARGE=NX
      IF(NY.GT.NX)NLARGE=NY
      ANLARG=NLARGE
C
C               ****************************************************
C               **  STEP 24--                                     **
C               **  STEP THROUGH THE VARIOUS SORTED VALUES OF     **
C               **  THE SMALLER OF Y OR X.                        **
C               **  COMPUTE A CORRESPONDING PERCENTAGE.           **
C               **  ESTIMATE THIS PERCENT  POINT                  **
C               **  IN THE LARGER OF Y OR X.                      **
C               ****************************************************
C
      DO2400I=1,NSMALL
      AI=I
      PSMALL=(AI-0.5)/ANSMAL
      IF(NY.LE.NX)YSMALL(I)=Y(I)
      IF(NY.GT.NX)YSMALL(I)=X(I)
C
      PLARGE=0.0
      DO2410J=1,NLARGE
      AJ=J
      J2=J
      J2M1=J2-1
      PPRIOR=PLARGE
      PLARGE=(AJ-0.5)/ANLARG
      IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'TUM2')
     1WRITE(ICOUT,777)I,J,J2,J2M1,PSMALL,PLARGE,PPRIOR
  777 FORMAT('I,J,J2,J2M1,PSMALL,PLARGE,PPRIOR = ',4I8,3E15.7)
      IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'TUM2')
     1CALL DPWRST('XXX','BUG ')
      IF(PLARGE.LT.PSMALL)GOTO2410
      IF(PLARGE.EQ.PSMALL)GOTO2411
      GOTO2412
C
 2411 CONTINUE
      IF(NY.LE.NX)YLARGE(I)=X(J2)
      IF(NY.GT.NX)YLARGE(I)=Y(J2)
      GOTO2400
C
 2412 CONTINUE
      RATIO=(PSMALL-PPRIOR)/(PLARGE-PPRIOR)
      IF(NY.LE.NX)YLARGE(I)=RATIO*X(J2M1)+(1.0-RATIO)*X(J2)
      IF(NY.GT.NX)YLARGE(I)=RATIO*Y(J2M1)+(1.0-RATIO)*Y(J2)
      GOTO2400
C
 2410 CONTINUE
C
 2400 CONTINUE
C
C               *******************************************
C               **  STEP 51--                            **
C               **  FORM PLOT COORDINATES                **
C               *******************************************
C
 5100 CONTINUE
      IF(ICASE.EQ.'EQUA')GOTO5110
      GOTO5120
C
 5110 CONTINUE
      J=0
      DO5111I=1,NY
      J=J+1
      ADIFF=Y(I)-X(I)
      AMEAN=(Y(I)+X(I))/2.0
      Y2(J)=ADIFF
      X2(J)=AMEAN
      D2(J)=1.0
 5111 CONTINUE
      J=J+1
      X2(J)=X2(1)
      Y2(J)=0.0
      D2(J)=2.0
      J=J+1
      X2(J)=X2(NY)
      Y2(J)=0.0
      D2(J)=2.0
      GOTO9000
C
 5120 CONTINUE
      J=0
      DO5121I=1,NSMALL
      J=J+1
      IF(NY.LE.NX)Y2(J)=YSMALL(I)
      IF(NY.GT.NX)Y2(J)=YLARGE(I)
      IF(NY.LE.NX)X2(J)=YLARGE(I)
      IF(NY.GT.NX)X2(J)=YSMALL(I)
      D2(J)=1.0
      ADIFF=Y2(J)-X2(J)
      AMEAN=(Y2(J)+X2(J))/2.0
      Y2(J)=ADIFF
      X2(J)=AMEAN
 5121 CONTINUE
C
      J=J+1
      X2(J)=X2(1)
      Y2(J)=0.0
      D2(J)=2.0
      J=J+1
      X2(J)=X2(NSMALL)
      Y2(J)=0.0
      D2(J)=2.0
C
      N2=J
      NPLOTV=3
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 DPTUM2--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9012)ICASPL,MAXN,N2,IERROR
 9012 FORMAT('ICASPL,MAXN,N2,IERROR = ',A4,I8,I8,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9013)ICASE
 9013 FORMAT('ICASE = ',A4)
      CALL DPWRST('XXX','BUG ')
      DO9015I=1,N2
      WRITE(ICOUT,9016)I,Y2(I),X2(I),D2(I)
 9016 FORMAT('I,Y2(I),X2(I),D2(I) = ',I8,2E15.7,F9.2)
      CALL DPWRST('XXX','BUG ')
 9015 CONTINUE
      WRITE(ICOUT,9031)NLARGE
 9031 FORMAT('NLARGE = ',I8)
      CALL DPWRST('XXX','BUG ')
      DO9032I=1,NLARGE
      WRITE(ICOUT,9033)I,YLARGE(I)
 9033 FORMAT('I,YLARGE(I) = ',I8,E15.7)
      CALL DPWRST('XXX','BUG ')
 9032 CONTINUE
      WRITE(ICOUT,9041)NSMALL
 9041 FORMAT('NSMALL = ',I8)
      CALL DPWRST('XXX','BUG ')
      DO9042I=1,NSMALL
      WRITE(ICOUT,9043)I,YSMALL(I)
 9043 FORMAT('I,YSMALL(I) = ',I8,E15.7)
      CALL DPWRST('XXX','BUG ')
 9042 CONTINUE
      WRITE(ICOUT,9051)NY,NX,NSMALL,NLARGE
 9051 FORMAT('NY,NX,NSMALL,NLARGE = ',4I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9052)RATIO
 9052 FORMAT('RATIO = ',E15.7)
      CALL DPWRST('XXX','BUG ')
 9090 CONTINUE
C
      RETURN
      END
      SUBROUTINE DPTY3B(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,
     1                  IBUGA3,
     1                  IFOUZ2,ISTAR2,ISTOP2,
     1                  ITYPE2,IHOL,IHOL2,INT,FLOAT,IERROR)
C
C     NOTE--THIS SUBROUTINE IS IDENTICAL TO DPTYP3
C           AND HAS BEEN DUPLICATED ONLY FOR MAPPING PURPOSES.
C           DATE--SEPTEMBER 5, 1981.
C
C     PURPOSE--SCAN THE CHARACTER ARRAY IANS(.) BETWEEN
C              COLUMNS ISTAR1 AND ISTOP1
C              FOR THE STRING DEFINED IN STRIN AND ISTRI2.
C     NOTE THAT THE STRING DEFINED IN ISTRIN AND ISTRI2
C     MAY BE EXPRESSED IN SEVERAL WAYS--
C          1) EXPLICITELY, E.G., LET    FOR    SUBSET, ETC.
C          2) IMPLICITELY WITH ! REPRESENTING THE FIRST
C             NON-BLANK CHARACTER THAT IS ENCOUNTERED;
C          3) IMPLICITELY WITH ; REPRESENTING ANY STRING
C             (INCLUDING ALL CHARACTERS, EVEN BLANKS));
C          4) IMPLICITELY WITH : REPRESENTING THE FIRST
C            BLANK CHARACTER THAT IS ENCOUNTERED.
C     NOTE--A GIVEN ARGUMENT MAY END UP WITH
C            3 DIFFERENT REPRESENTATIONS--
C            HOLLERITH, INTEGER, AND FLOATING POINT.
C     INPUT  ARGUMENTS--IANS   = A HOLLERITH 1-CHARACTER-PER-WORD
C                                VARIABLE CONTAINING THE INPUT LINE
C                                TO BE EXAMINED.
C                     --IWIDTH = THE (FULL) WIDTH OF THE INPUT LINE
C                                (THAT IS, THE NUMBER OF COLUMNS)
C                     --ISTAR1 = THE FIRST COLUMN FOR WHICH THE
C                                SCAN IS TO BE CARRIED OUT.
C                     --ISTOP1 = THE LAST  COLUMN FOR WHICH THE
C                                SCAN IS TO BE CARRIED OUT.
C                     --ISTRIN = THE HOLLERITH VARIABLE
C                                WHICH CONTAINS CHARACTERS 1 TO 4
C                                OF THE STRING TO BE SEARCHED FOR.
C                                THE DEFINITION OF THE STRING IN ISTRIN MAY
C                                MAY BE DONE EXPLICTELY (BUT IS LIMITED
C                                TO 4 CHARACTERS) OR IMPLICITELY
C                                WHICH IS NOT LIMITED TO 4 CHARACTERS AND IS MOR
C                                IS MORE GENERAL IN
C                                OTHER WAYS ALSO.
C                     --ISTRI2 = THE HOLLERITH VARIABLE
C                                WHICH CONTAINS CHARACTERS 5 TO 8
C                                OF THE STRING TO BE SEARCHED FOR.
C                                THE DEFINITION OF THE STRING IN ISTRIN MAY
C                                MAY BE DONE EXPLICTELY (BUT IS LIMITED
C                                TO 4 CHARACTERS) OR IMPLICITELY
C                                WHICH IS NOT LIMITED TO 4 CHARACTERS AND IS MOR
C                                IS MORE GENERAL IN
C                                OTHER WAYS ALSO.
C                     --INEX   = A HOLLERITH VARIABLE WHICH
C                                WILL CONTAIN ONE OF THE FOLLOWING 4 VALUES--
C                                II, IE, EI, EE THAT STANDS FOR
C                                WHERE I STANDS FOR INCLUSIVE AND
C                                WHERE E STANDS FOR EXCLUSIVE;
C                                INEX SPECIFIES WHETHER THE FIRST OR LAST CHARAC
C                                CHARACTER IS TO BE INCLUDED OR EXCLUDED IN
C                                IN DEFINING ISTAR2 AND ISTOP2.
C     OUTPUT ARGUMENTS--IFOUZ2 = A HOLLERITH VARIABLE
C                                WITH THE VALUE 'YES'
C                                IF THE STRING WAS FOUND;
C                                AND THE VALUE 'NO'
C                                IF THE STRING WAS NOT FOUND.
C                     --ISTAR2 = THE START COLUMN OF THE FOUND STRING
C                     --ISTOP2 = THE STOP COLUMN OF THE FIUND STRING.
C                     --ITYPE2 = A HOLLERITH VARIABLE
C                                WITH THE VALUE 'WORD' IF THE STRING CONTAINS
C                                ANY NON-NUMERIC (EXCLUDING BLANKS) CHARACTER;
C                                AND WITH THE VALUE 'NUMB' IF THE STRING CONTA
C                                ALL NUMERIC VALUES OR DECIMAL POINT OR + OR -
C                                (WITH INTERMITTENT BLANKS IGNORED).
C                     --IHOL   = THE HOLLERITH VARIABLE
C                                CONTAINING THE PACKED (4 CHARACTERS) VERSION
C                                OF CHARACTERS 1 TO 4 OF THE FOUND STRING.
C                     --IHOL2  = THE HOLLERITH VARIABLE
C                                CONTAINING THE PACKED (4 CHARACTERS) VERSION
C                                OF CHARACTERS 5 TO 8 OF THE FOUND STRING.
C                     --INT    = THE INTEGER VARIABLE
C                                CONTAINING THE INTEGER REPRESENTATION
C                                (IF POSSIBLE) OF THE FOUND STRING.
C                     --FLOAT  = THE FLOATING POINT VARIABLE
C                                CONTAINING THE FLOATING POINT REPRESENTATION
C                                (IF POSSIBLE) OF THE FOUND STRING.
C                     --IERROR = A HOLLERITH VARIABLE WITH VALUE
C                                'YES' OR 'NO' INDICATING IF AN
C                                ERROR CONDITION EXISTS.
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  1978.
C     UPDATED         --JULY      1978.
C     UPDATED         --OCTOBER   1978.
C     UPDATED         --NOVEMBER  1980.
C     UPDATED         --JANUARY   1981.
C     UPDATED         --JUNE      1981.
C     UPDATED         --MARCH     1982.
C     UPDATED         --MAY       1982.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
      CHARACTER*4 IANS
      CHARACTER*4 ISTRIN
      CHARACTER*4 ISTRI2
      CHARACTER*4 INEX
      CHARACTER*4 IBUGA3
      CHARACTER*4 IFOUZ2
      CHARACTER*4 ITYPE2
      CHARACTER*4 IHOL
      CHARACTER*4 IHOL2
      CHARACTER*4 IERROR
C
      CHARACTER*4 IBUG1
      CHARACTER*4 IBUG2
      CHARACTER*4 ITEMP
      CHARACTER*4 IFLUNK
      CHARACTER*4 ISTRI3
C
      CHARACTER*4 ISUBN1
      CHARACTER*4 ISUBN2
      CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
      DIMENSION IANS(*)
C
      DIMENSION ISTRI3(20)
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='DPTY'
      ISUBN2='P3  '
C
      IERROR='NO'
C
      I2=0
      IPJM1=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 DPTY3B--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,52)IBUGA3
   52 FORMAT('IBUGA3 = ',A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,53)ISTAR1,ISTOP1
   53 FORMAT('ISTAR1,ISTOP1 = ',I8,I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,54)ISTRIN,ISTRI2
   54 FORMAT('ISTRIN,ISTRI2 = ',A4,A4)
      CALL DPWRST('XXX','BUG ')
   90 CONTINUE
C
      NUMASC=4
C
      IBUG1='OFF'
      IBUG2='OFF'
C
C               ******************************************************
C               **  STEP 1--                                        **
C               **  INITIALIZE THE OUTPUT PARAMETERS AND VARIABLES  **
C               ******************************************************
C
      ISTEPN='1'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(IBUG1.EQ.'OFF')GOTO150
      WRITE(ICOUT,101)
  101 FORMAT('AT THE BEGINNING OF DPTY3B--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,102)IWIDTH
  102 FORMAT('IWIDTH = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,103)(IANS(I),I=1,IWIDTH)
  103 FORMAT('IANS(.) = ',80A1)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,104)ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX
  104 FORMAT('ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX = ',I8,I8,A4,A4,A4)
      CALL DPWRST('XXX','BUG ')
  150 CONTINUE
      IFOUZ2='NO'
      ISTAR2=-1
      ISTOP2=-1
      ITYPE2='9999'
      IHOL ='9999'
      IHOL2='9999'
      INT = -999999
      FLOAT=-999999.0
C
C               ************************************************************
C               **  STEP 2--                                              **
C               **  DECOMPOSE THE INPUT SEARCH STRING INTO A1 CHARACTERS  **
C               ************************************************************
C
      ISTEPN='2'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      IMAX=2*NUMASC
      DO300I=1,IMAX
      I2=I
      J=I
      IF(I.GT.NUMASC)J=I-NUMASC
      ISTAR3=NUMBPC*(J-1)
      ISTAR3=IABS(ISTAR3)
      ITEMP='    '
      IF(I.LE.NUMASC)CALL DPCHEX(ISTAR3,NUMBPC,ISTRIN,0,NUMBPC,ITEMP)
      IF(I.GT.NUMASC)CALL DPCHEX(ISTAR3,NUMBPC,ISTRI2,0,NUMBPC,ITEMP)
      IF(ITEMP.EQ.'    ')GOTO350
      ISTRI3(I)=ITEMP
  300 CONTINUE
      ILEN2=I2
      GOTO390
  350 CONTINUE
      ILEN2=I2-1
  390 CONTINUE
C
      IF(IBUG2.EQ.'OFF')GOTO399
      WRITE(ICOUT,391)
  391 FORMAT('IN THE MIDDLE OF DPTY3B (AFTER STEP 2)--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,392)ILEN2
  392 FORMAT('ILEN2 = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,393)(ISTRI3(I),I=1,ILEN2)
  393 FORMAT('ISTRI3(.) = ',6A1)
      CALL DPWRST('XXX','BUG ')
  399 CONTINUE
C
C               ****************************************************************
C               **  STEP 3--
C               **  DISTINGUISH BETWEEN THE 3 TYPES OF POSSIBLE SEARCH STRINGS--
C               **  1) AN EXPLICITELY-DEFINED STRING; E.G.,
C               **     LET     FOR     SUBSET     =     5.3     -2.6666666
C               **     (AS IN COMMANDS, KEY WORDS, AND NUMBERS);
C               **  2) A STRING STARTING WITH THE FIRST NON-BLANK CHARACTER
C               **     AND ENDING WITH SOME SPECIFIED CHARACTER; E.G., XXXXX(
C               **     (AS IN THE VARIABLE NAME OF A SUBSCRIPTED VARIABLE,
C               **     OR THE ARGUMENT (I. E., THE SUBSCRIPT) IN A SUBSCRIPTED
C               **     VARIABLE);
C               **  3) A STRING STARTING WITH THE FIRST NON-BLANK CHARACTER
C               **     AND ENDING WITH THE FIRST SUBSEQUENT BLANK CHARCTER (EXCL
C               **     E.G., XXXX
C               **     (AS IN SOME UNSPECIFIED PARAMETER OR VARIABLE NAME).
C               ****************************************************************
C
      ISTEPN='3'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      ICASE=1
      IF(ISTRI3(1).NE.'!'.AND.ISTRI3(2).EQ.';'.AND.ISTRI3(3).NE.':')
     1ICASE=2
      IF(ISTRI3(1).EQ.'!'.AND.ISTRI3(2).EQ.';'.AND.ISTRI3(3).NE.':')
     1ICASE=3
      IF(ISTRI3(1).EQ.'!'.AND.ISTRI3(2).EQ.';'.AND.ISTRI3(3).EQ.':')
     1ICASE=4
      IF(ILEN2.EQ.1.OR.ILEN2.EQ.2)ICASE=1
C
      IF(IBUG2.EQ.'OFF')GOTO398
      WRITE(ICOUT,395)
  395 FORMAT('AFTER STEP 3 OF DPTY3B--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,396)ICASE
  396 FORMAT('ICASE = ',I8)
      CALL DPWRST('XXX','BUG ')
  398 CONTINUE
C
C               *********************************************************
C               **  STEP 4--                                           **
C               **  DETERMINE IF THE DESIRED SEARCH STRING IS PRESENT  **
C               *********************************************************
C
      ISTEPN='4'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      IF(ICASE.EQ.1)GOTO400
      IF(ICASE.EQ.2)GOTO500
      IF(ICASE.EQ.3)GOTO600
      IF(ICASE.EQ.4)GOTO700
C
  400 CONTINUE
      DO410I=ISTAR1,ISTOP1
      I2=I
      IF(IANS(I).EQ.ISTRI3(1))GOTO420
      GOTO410
  420 CONTINUE
      DO430J=1,ILEN2
      IPJM1=J+I-1
      IF(IPJM1.GT.ISTOP1)GOTO410
      IF(IANS(IPJM1).EQ.ISTRI3(J))GOTO430
      GOTO410
  430 CONTINUE
      IFOUZ2='YES'
      IF(INEX.EQ.'II')ISTAR2=I2
      IF(INEX.EQ.'IE')ISTAR2=I2
      IF(INEX.EQ.'EI')ISTAR2=I2+1
      IF(INEX.EQ.'EE')ISTAR2=I2+1
      IF(INEX.EQ.'II')ISTOP2=IPJM1
      IF(INEX.EQ.'IE')ISTOP2=IPJM1-1
      IF(INEX.EQ.'EI')ISTOP2=IPJM1
      IF(INEX.EQ.'EE')ISTOP2=IPJM1-1
      IF(ISTAR2.LE.ISTOP2)GOTO990
      GOTO900
  410 CONTINUE
      IFOUZ2='NO'
      GOTO9000
C
  500 CONTINUE
      DO510I=ISTAR1,ISTOP1
      I2=I
      IF(IANS(I).EQ.ISTRI3(1))GOTO520
  510 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  520 CONTINUE
      IMIN=I2
      DO530I=IMIN,ISTOP1
      I2=I
      IF(IANS(I).EQ.ISTRI3(ILEN2))GOTO540
  530 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  540 CONTINUE
      IFOUZ2='YES'
      IF(INEX.EQ.'II')ISTAR2=IMIN
      IF(INEX.EQ.'IE')ISTAR2=IMIN
      IF(INEX.EQ.'EI')ISTAR2=IMIN+1
      IF(INEX.EQ.'EE')ISTAR2=IMIN+1
      IF(INEX.EQ.'II')ISTOP2=I2
      IF(INEX.EQ.'IE')ISTOP2=I2-1
      IF(INEX.EQ.'EI')ISTOP2=I2
      IF(INEX.EQ.'EE')ISTOP2=I2-1
      IF(ISTAR2.LE.ISTOP2)GOTO990
      GOTO900
C
  600 CONTINUE
      DO610I=ISTAR1,ISTOP1
      I2=I
      IF(IANS(I).NE.' ')GOTO620
  610 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  620 CONTINUE
      IMIN=I2
      DO630I=IMIN,ISTOP1
      I2=I
      IF(IANS(I).EQ.ISTRI3(ILEN2))GOTO640
  630 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  640 CONTINUE
      IFOUZ2='YES'
      IF(INEX.EQ.'II')ISTAR2=IMIN
      IF(INEX.EQ.'IE')ISTAR2=IMIN
      IF(INEX.EQ.'EI')ISTAR2=IMIN+1
      IF(INEX.EQ.'EE')ISTAR2=IMIN+1
      IF(INEX.EQ.'II')ISTOP2=I2
      IF(INEX.EQ.'IE')ISTOP2=I2-1
      IF(INEX.EQ.'EI')ISTOP2=I2
      IF(INEX.EQ.'EE')ISTOP2=I2-1
      IF(ISTAR2.LE.ISTOP2)GOTO990
      GOTO900
C
  700 CONTINUE
      DO710I=ISTAR1,ISTOP1
      I2=I
      IF(IANS(I).NE.' ')GOTO720
  710 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  720 CONTINUE
      IMIN=I2
      DO730I=IMIN,ISTOP1
      I2=I
      IF(IANS(I).EQ.' ')GOTO740
  730 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  740 CONTINUE
      IFOUZ2='YES'
      IF(INEX.EQ.'II')ISTAR2=IMIN
      IF(INEX.EQ.'IE')ISTAR2=IMIN
      IF(INEX.EQ.'EI')ISTAR2=IMIN+1
      IF(INEX.EQ.'EE')ISTAR2=IMIN+1
      IF(INEX.EQ.'II')ISTOP2=I2
      IF(INEX.EQ.'IE')ISTOP2=I2-1
      IF(INEX.EQ.'EI')ISTOP2=I2
      IF(INEX.EQ.'EE')ISTOP2=I2-1
      IF(ISTAR2.LE.ISTOP2)GOTO990
      GOTO900
C
  900 CONTINUE
C
C     NOTE--THE FOLLOWING SECTION HAS BEEN 'BUGGED' OUT
C           TO CIRCUMVENT A PROBLEM WITH Y=(...
C           WHILE IT STILL LOOKED FOR A VARIABLE NAME
C           BETWEEN THE = AND THE (     .
C     CAUTION--WHEN IBUGA3 = 'OFF', AS IT USUALLY IS,
C              IERROR CAN NEVER BE 'YES'
C              UPON RETURN FROM DPTY3B:
C              BUT WHEN IBUGA3 = 'ON' (AS IN ERROR TRACING)
C              IERROR MAY = 'YES' WHICH MAY CHANGE THE
C              LOGIC PATH BACK IN DPTYP2.
C
      IF(IBUGA3.EQ.'OFF')GOTO9000
      WRITE(ICOUT,921)
  921 FORMAT('***** INTERNAL ERROR IN DPTY3B SUBROUTINE')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,922)
  922 FORMAT('ISTAR2 GREATER THAN ISTOP2')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,923)ISTAR2,ISTOP2
  923 FORMAT('ISTAR2, ISTOP2 = ',2I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,924)ICASE
  924 FORMAT('ICASE = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,925)IWIDTH
  925 FORMAT('IWIDTH = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,926)(IANS(I),I=1,IWIDTH)
  926 FORMAT('IANS(.) = ',80A1)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,927)ISTAR1,ISTOP1
  927 FORMAT('ISTAR1, ISTOP1 = ',2I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,928)ILEN2
  928 FORMAT('ILEN2 = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,929)(ISTRI3(I),I=1,ILEN2)
  929 FORMAT('ISTRI3(.) = ',80A1)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,930)ISTRIN,ISTRI2
  930 FORMAT('ISTRIN,ISTRI2 = ',2A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,931)INEX
  931 FORMAT('INEX = ',A4)
      CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
  990 CONTINUE
C
C               ********************************************************
C               **  STEP 5--                                          **
C               **  CONVERT THE STRING INTO 2 HOLLERITH A4 WORDS.     **
C               **  IF MORE THAN 8 CHARACTERS, CONVERT ONLY           **
C               **  THE FIRST 8 CHARACTERS.                           **
C               **  OUTPUT THESE HOLLERITH WORDS AS IHOL AND IHOL2.   **
C               ********************************************************
C
      ISTEPN='5'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      IHOL ='    '
      IHOL2='    '
      IMAX=2*NUMASC
      J=0
      DO1000I=ISTAR2,ISTOP2
      J=J+1
      K=J
      IF(J.GT.NUMASC)K=J-NUMASC
      ISTAR3=NUMBPC*(K-1)
      ISTAR3=IABS(ISTAR3)
      IF(J.LE.NUMASC)CALL DPCHEX(0,NUMBPC,IANS(I),ISTAR3,NUMBPC,IHOL)
      IF(J.GT.NUMASC)CALL DPCHEX(0,NUMBPC,IANS(I),ISTAR3,NUMBPC,IHOL2)
      IF(J.GE.IMAX)GOTO1050
 1000 CONTINUE
 1050 CONTINUE
C
C               ****************************************************************
C               **  STEP 6--
C               **  CONVERT (IF POSSIBLE) THE STRING INTO AN INTEGER ARGUMENT.
C               **  OUTPUT  THIS INTEGER VALUE IN INT.
C               ****************************************************************
C
      ISTEPN='6'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      IFLUNK='NO'
      ITYPE2='NUMB'
      IDIG=0
      ISIGN=0
      IDECPT=0
      ISUM=0
      DO2700I=ISTAR2,ISTOP2
      IREV=ISTOP2-(I-ISTAR2)
      IF(IANS(IREV).EQ.' ')GOTO2700
      IF(IANS(IREV).EQ.'0')GOTO2710
      IF(IANS(IREV).EQ.'1')GOTO2711
      IF(IANS(IREV).EQ.'2')GOTO2712
      IF(IANS(IREV).EQ.'3')GOTO2713
      IF(IANS(IREV).EQ.'4')GOTO2714
      IF(IANS(IREV).EQ.'5')GOTO2715
      IF(IANS(IREV).EQ.'6')GOTO2716
      IF(IANS(IREV).EQ.'7')GOTO2717
      IF(IANS(IREV).EQ.'8')GOTO2718
      IF(IANS(IREV).EQ.'9')GOTO2719
      IF(IANS(IREV).EQ.'+')GOTO2720
      IF(IANS(IREV).EQ.'-')GOTO2721
      IF(IANS(IREV).EQ.'.')GOTO2722
      IFLUNK='YES'
      GOTO2800
 2710 ITERM=0
      GOTO2725
 2711 ITERM=1
      GOTO2725
 2712 ITERM=2
      GOTO2725
 2713 ITERM=3
      GOTO2725
 2714 ITERM=4
      GOTO2725
 2715 ITERM=5
      GOTO2725
 2716 ITERM=6
      GOTO2725
 2717 ITERM=7
      GOTO2725
 2718 ITERM=8
      GOTO2725
 2719 ITERM=9
      GOTO2725
 2720 ISIGN=ISIGN+1
      GOTO2700
 2721 ISIGN=ISIGN+1
      ISUM=-ISUM
      GOTO2700
 2722 IDECPT=IDECPT+1
      IF(IDECPT.EQ.1.AND.IDIG.EQ.0)GOTO2700
      GOTO2800
 2725 IDIG=IDIG+1
      TERM2=10.0**(IDIG-1)
      ITERM2=TERM2 + 0.01
      ISUM=ISUM+ITERM*ITERM2
 2700 CONTINUE
      IF(IDIG.LE.0)GOTO2800
      IF(ISIGN.GE.2)GOTO2800
      INT=ISUM
 2800 CONTINUE
      IF(IFLUNK.EQ.'YES')ITYPE2='WORD'
 2100 CONTINUE
 2999 CONTINUE
C
C               ********************************************************
C               **  STEP 7--                                          **
C               **  CONVERT (IF POSSIBLE) THE STRING INTO A FLOATING  **
C               **  POINT ARGUMENT.                                   **
C               **  OUTPUT THIS FLOATING POINT VALUE IN FLOAT.        **
C               ********************************************************
C
      ISTEPN='7'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      AMIN=-1000000.
      AMAX=+1000000.
      IFLUNK='NO'
      ITYPE2='NUMB'
      FLOAT=-1.0
C
      ILOC=0
      IDECPT=0
      DO3060I=ISTAR2,ISTOP2
      IF(IANS(I).EQ.'.')ILOC=I
      IF(IANS(I).EQ.'.')IDECPT=IDECPT+1
 3060 CONTINUE
      IF(IDECPT.GE.2)GOTO3900
      IF(IDECPT.EQ.1)GOTO3150
      DO3100I=ISTAR2,ISTOP2
      IREV=ISTOP2-(I-ISTAR2)
      IF(IANS(IREV).EQ.' ')GOTO3100
      IF(IANS(IREV).EQ.'0')GOTO3110
      IF(IANS(IREV).EQ.'1')GOTO3110
      IF(IANS(IREV).EQ.'2')GOTO3110
      IF(IANS(IREV).EQ.'3')GOTO3110
      IF(IANS(IREV).EQ.'4')GOTO3110
      IF(IANS(IREV).EQ.'5')GOTO3110
      IF(IANS(IREV).EQ.'6')GOTO3110
      IF(IANS(IREV).EQ.'7')GOTO3110
      IF(IANS(IREV).EQ.'8')GOTO3110
      IF(IANS(IREV).EQ.'9')GOTO3110
      IFLUNK='YES'
      IF(IANS(IREV).EQ.'+')GOTO3900
      IF(IANS(IREV).EQ.'-')GOTO3900
      GOTO3900
 3100 CONTINUE
      IFLUNK='YES'
      GOTO3900
 3110 ILOC=IREV+1
 3150 CONTINUE
      IF(IBUG2.EQ.'ON')WRITE(ICOUT,3111)ILOC,IDECPT
 3111 FORMAT('ILOC = ',I8,'    IDECPT = ',I8)
      IF(IBUG2.EQ.'ON')CALL DPWRST('XXX','BUG ')
C
C     SECONDLY, COMPUTE THE INTEGER PART OF THE VALUE
C
      SIGN=1.0
      IDIGI=0
      ISIGN=0
      SUMI=0
      ILOCM1=ILOC-1
      IF(ILOCM1.LT.ISTAR2)GOTO3250
      DO3200I=ISTAR2,ILOCM1
      IREV=ILOCM1-(I-ISTAR2)
      IF(IANS(IREV).EQ.' ')GOTO3200
      IF(IANS(IREV).EQ.'0')GOTO3210
      IF(IANS(IREV).EQ.'1')GOTO3211
      IF(IANS(IREV).EQ.'2')GOTO3232
      IF(IANS(IREV).EQ.'3')GOTO3213
      IF(IANS(IREV).EQ.'4')GOTO3214
      IF(IANS(IREV).EQ.'5')GOTO3215
      IF(IANS(IREV).EQ.'6')GOTO3216
      IF(IANS(IREV).EQ.'7')GOTO3217
      IF(IANS(IREV).EQ.'8')GOTO3218
      IF(IANS(IREV).EQ.'9')GOTO3219
      IF(IANS(IREV).EQ.'+')GOTO3220
      IF(IANS(IREV).EQ.'-')GOTO3221
      IFLUNK='YES'
      GOTO3900
 3210 ITERM=0
      GOTO3225
 3211 ITERM=1
      GOTO3225
 3232 ITERM=2
      GOTO3225
 3213 ITERM=3
      GOTO3225
 3214 ITERM=4
      GOTO3225
 3215 ITERM=5
      GOTO3225
 3216 ITERM=6
      GOTO3225
 3217 ITERM=7
      GOTO3225
 3218 ITERM=8
      GOTO3225
 3219 ITERM=9
      GOTO3225
 3220 ISIGN=ISIGN+1
      GOTO3200
 3221 ISIGN=ISIGN+1
      SIGN=-SIGN
      GOTO3200
 3225 IDIGI=IDIGI+1
      TERM=ITERM
      IEXP=IDIGI-1
      SUMI=SUMI+TERM*(10.0**IEXP)
 3200 CONTINUE
 3250 CONTINUE
      IF(ISIGN.GE.2)GOTO3900
      IF(IBUG2.EQ.'ON')WRITE(ICOUT,3255)IDIGI,SUMI
 3255 FORMAT('IDIGI = ',I8,'    SUMI = ',F20.10)
      IF(IBUG2.EQ.'ON')CALL DPWRST('XXX','BUG ')
C
C     THIRDLY, COMPUTE THE DECIMAL PART OF THE VALUE
C
      IDIGD=0
      SUMD=0.0
      ILOCP1=ILOC+1
      IF(ILOCP1.GT.ISTOP2)GOTO3350
      DO3300I=ILOCP1,ISTOP2
      IF(IANS(I).EQ.' ')GOTO3300
      IF(IANS(I).EQ.'0')GOTO3310
      IF(IANS(I).EQ.'1')GOTO3311
      IF(IANS(I).EQ.'2')GOTO3312
      IF(IANS(I).EQ.'3')GOTO3333
      IF(IANS(I).EQ.'4')GOTO3314
      IF(IANS(I).EQ.'5')GOTO3315
      IF(IANS(I).EQ.'6')GOTO3316
      IF(IANS(I).EQ.'7')GOTO3317
      IF(IANS(I).EQ.'8')GOTO3318
      IF(IANS(I).EQ.'9')GOTO3319
      IFLUNK='YES'
      GOTO3900
 3310 ITERM=0
      GOTO3325
 3311 ITERM=1
      GOTO3325
 3312 ITERM=2
      GOTO3325
 3333 ITERM=3
      GOTO3325
 3314 ITERM=4
      GOTO3325
 3315 ITERM=5
      GOTO3325
 3316 ITERM=6
      GOTO3325
 3317 ITERM=7
      GOTO3325
 3318 ITERM=8
      GOTO3325
 3319 ITERM=9
      GOTO3325
 3325 IDIGD=IDIGD+1
      TERM=ITERM
      SUMD=SUMD+TERM/(10.0**IDIGD)
 3300 CONTINUE
 3350 CONTINUE
      IF(IBUG2.EQ.'ON')WRITE(ICOUT,3355)IDIGD,SUMD
 3355 FORMAT('IDIGD = ',I8,'    SUMD = ',F20.10)
      IF(IBUG2.EQ.'ON')CALL DPWRST('XXX','BUG ')
      IDIGT=IDIGI+IDIGD
      IF(IDIGT.LE.0)GOTO3900
      FLOAT=SUMI+SUMD
      IF(SIGN.LT.0.0)FLOAT=-FLOAT
      IF(AMIN.LE.FLOAT.AND.FLOAT.LE.AMAX)GOTO3000
      GOTO3900
C
 3900 CONTINUE
      IF(IFLUNK.EQ.'YES')ITYPE2='WORD'
 3000 CONTINUE
 3999 CONTINUE
      GOTO9000
C
 9000 CONTINUE
      IF(IBUGA3.EQ.'OFF')GOTO9900
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9001)
 9001 FORMAT('AT THE END OF DPTY3B--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9002)IFOUZ2,ISTAR2,ISTOP2
 9002 FORMAT('IFOUZ2, ISTAR2, ISTOP2 = ',A4,I8,I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9003)ITYPE2,IHOL,IHOL2,INT,FLOAT,IERROR
 9003 FORMAT('ITYPE2,IHOL,IHOL2,INT,FLOAT,IERROR = ',A4,2X,A4,A4,2X,
     1I8,F15.7,2X,A4)
      CALL DPWRST('XXX','BUG ')
C
 9900 CONTINUE
      RETURN
      END
      SUBROUTINE DPTYP2(IANS,IWIDTH,IHNAME,IHNAM2,NUMNAM,MAXNAM,IBUGA3,
     1           IUSE,IVALUE,VALUE,IN,
     1           IFOUNZ,IBEGIN,IEND,
     1           ITYPE,IHOL,IHOL2,INT1,FLOAT1,IERRO1,
     1           NUMCL,NUMPL,NUMAOL,ITYW1L,ICAT1L,INLI1L,ITYW2L,
     1           NUMCR,NUMPR,NUMAOR,ITYW1R,ICAT1R,INLI1R,ITYW2R)
C
C     PURPOSE--SCAN THE CHARACTER ARRAY IANS(.)
C              AND EXTRACT INFORMATION
C              REGARDING THE EXISTENCE AND LOACTION
C              OF CERTAIN SUBSTRINGS USED IN THE LET COMMAND.
C     THIS SUBROUTINE (DPTYP2) IS CALLED BY DPLET.
C     OTHER SUBROUINTES NEEDED--DPTYP3
C     MOST GENERAL FORM--LET X(I) = XXX FOR I = A B C
C                      --LET X(I) = XXX SUBSET XX A B
C     INPUT  ARGUMENTS--IANS   = A HOLLERITH 1-CHARACTER-PER-WORD
C                                VARIABLE CONTAINING THE INPUT LINE
C                                TO BE EXAMINED.
C                     --IWIDTH = AN INTEGER VARIABLE CONTAINING
C                                THE (FULL) WIDTH OF THE INPUT LINE
C                                (THAT IS, THE NUMBER OF COLUMNS)
C     OUTPUT ARGUMENTS--IFOUNZ = A HOLLERITH ARRAY
C                                WITH THE VALUE 'YES'
C                                IF THE SUBSTRING WAS FOUND;
C                                AND THE VALUE 'NO'
C                                IF THE SUBSTRING WAS NOT FOUND.
C                     --IBEGIN = AN INTEGER ARRAY WITH
C                                THE START COLUMN OF THE FOUND SUBSTRING
C                     --IEND   = AN INTEGER ARRAY WITH
C                                THE STOP COLUMN OF THE FIUND SUBSTRING.
C                     --ITYPE  = A HOLLERITH ARRAY
C                                WITH THE VALUE 'WORD' IF THE SUBSTRING CONTAINS
C                                ANY NON-NUMERIC (EXCLUDING BLANKS) CHARACTER;
C                                AND WITH THE VALUE 'NUMB' IF THE SUBSTRING CO
C                                ALL NUMERIC VALUES OR DECIMAL POINT OR + OR -
C                                (WITH INTERMITTENT BLANKS IGNORED).
C                     --IHOL   = AN HOLLERITH ARRAY
C                                CONTAINING THE PACKED (FIRST 4 CHARACTERS) VERS
C                                OF THE FOUND SUBSTRING.
C                     --IHOL2  = AN HOLLERITH ARRAY
C                                CONTAINING THE PACKED (NEXT 4 CHARACTERS) VERSI
C                                OF THE FOUND SUBSTRING.
C                     --INT1   = AN INTEGER ARRAY
C                                CONTAINING THE INTEGER REPRESENTATION
C                                (IF POSSIBLE) OF THE FOUND SUBSTRING.
C                     --FLOAT1 = AN FLOATING POINT ARRAY
C                                CONTAINING THE FLOATING POINT REPRESENTATION
C                                (IF POSSIBLE) OF THE FOUND SUBSTRING.
C                     --IERRO1 = AN HOLLERITH ARRAY
C                                WITH THE VALUE 'NO' IF
C                                NO ERROR HAS BEEN ENCOUNTERED,
C                                AND THE VALUE 'YES' IF AN
C                                ERROR HAS BEEN ENCOUNTERED.
C                     --NUMCL  = AN INTEGER VARIABLE CONTAINING THE
C                                NUMBER OF COMPONENTS
C                                ON THE LEFT SIDE
C                                (NOT COUNTING LET OR THE = SIGN).
C                     --NUMPL  = AN INTEGER VARIABLE CONTAINING THE
C                                NUMBER OF PARENTHESES (LEFT + RIGHT)
C                                ON THE LEFT SIDE
C                                (NOT COUNTING LET OR THE = SIGN).
C                     --NUMAOL = AN INTEGER VARIABLE CONTAINING THE
C                                NUMBER OF ARITHMETIC OPERATIONS
C                                ON THE LEFT SIDE
C                                (NOT COUNTING LET OR THE = SIGN).
C                     --ITYW1L = A HOLLERITH VARIABLE CONTAINING THE
C                                TYPE ('WORD' VERSUS 'NUMB')
C                                FOR THE FIRST WORD
C                                (THAT IS, THE VARIABLE
C                                OR PARAMETER NAME)
C                                ON THE LEFT SIDE
C                                (NOT COUNTING LET OR THE = SIGN).
C                     --ITYW2L = A HOLLERITH VARIABLE CONTAINING THE
C                                TYPE ('WORD' VERSUS 'NUMB')
C                                FOR THE SECOND WORD
C                                (THAT IS, THE ARGUMENT)
C                                ON THE LEFT SIDE
C                                (NOT COUNTING LET OR THE = SIGN).
C                     --INLI1L = A HOLLERITH VARIABLE CONTAINING THE
C                                ANSWER ('YES' VERSUS 'NO')
C                                TO THE QUESTION AS TO WHETHER
C                                THE FIRST WORD ON THE LEFT
C                                (THAT IS, THE VARIABLE
C                                OR PARAMETER NAME)
C                                IS ALREADY EXISTENT IN THE
C                                INTERNAL DATAPLOT NAME LIST
C                                (NOT COUNTING LET OR THE = SIGN).
C                     --NUMCR  = AN INTEGER VARIABLE CONTAINING THE
C                                NUMBER OF COMPONENTS
C                                ON THE RIGHT SIDE
C                                (NOT COUNTING THE = SIGN OR SUBSET OR FOR).
C                     --NUMPR  = AN INTEGER VARIABLE CONTAINING THE
C                                NUMBER OF PARENTHESES (RIGHT + RIGHT)
C                                ON THE RIGHT SIDE
C                                (NOT COUNTING THE = SIGN OR SUBSET OR FOR).
C                     --NUMAOR = AN INTEGER VARIABLE CONTAINING THE
C                                NUMBER OF ARITHMETIC OPERATIONS
C                                ON THE RIGHT SIDE
C                                (NOT COUNTING THE = SIGN OR SUBSET OR FOR).
C                     --ITYW1R = A HOLLERITH VARIABLE CONTAINING THE
C                                TYPE ('WORD' VERSUS 'NUMB')
C                                FOR THE FIRST WORD
C                                (THAT IS, THE VARIABLE
C                                OR PARAMETER NAME)
C                                ON THE RIGHT SIDE
C                                (NOT COUNTING THE = SIGN OR SUBSET OR FOR).
C                     --ITYW2R = A HOLLERITH VARIABLE CONTAINING THE
C                                TYPE ('WORD' VERSUS 'NUMB')
C                                FOR THE SECOND WORD
C                                (THAT IS, THE ARGUMENT)
C                                ON THE RIGHT SIDE
C                                (NOT COUNTING THE = SIGN OR SUBSET OR FOR).
C                     --INLI1R = A HOLLERITH VARIABLE CONTAINING THE
C                                ANSWER ('YES' VERSUS 'NO')
C                                TO THE QUESTION AS TO WHETHER
C                                THE FIRST WORD ON THE RIGHT
C                                (THAT IS, THE VARIABLE
C                                OR PARAMETER NAME)
C                                IS ALREADY EXISTENT IN THE
C                                INTERNAL DATAPLOT NAME LIST
C                                (NOT COUNTING THE = SIGN OR SUBSET OR FOR).
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--MARCH     1978
C     UPDATED         --JUNE      1978.
C     UPDATED         --JULY      1978.
C     UPDATED         --JUNE      1981.
C     UPDATED         --JULY      1981.
C     UPDATED         --OCTOBER   1981.
C     UPDATED         --JANUARY   1982.
C     UPDATED         --MARCH     1982.
C     UPDATED         --MAY       1982.
C     UPDATED         --JANUARY   1983.
C     UPDATED         --DECEMBER  1988.  ELIM. SPUR. ERROR MESS. FOR IFRINGE
C     UPDATED         --JANAURY   1989.  IANS(IENDP) WITH IENDP = 0 (ALAN)
C     UPDATED         --NOVEMBER  1989.  FIX IANS(IENDP=0) (NELSON)
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
      CHARACTER*4 IANS
      CHARACTER*4 IHNAME
      CHARACTER*4 IHNAM2
      CHARACTER*4 IBUGA3
      CHARACTER*4 IUSE
      CHARACTER*4 IFOUNZ
      CHARACTER*4 ITYPE
      CHARACTER*4 IHOL
      CHARACTER*4 IHOL2
      CHARACTER*4 IERRO1
      CHARACTER*4 ITYW1L
      CHARACTER*4 ICAT1L
      CHARACTER*4 INLI1L
      CHARACTER*4 ITYW2L
      CHARACTER*4 ITYW1R
      CHARACTER*4 ICAT1R
      CHARACTER*4 INLI1R
      CHARACTER*4 ITYW2R
C
      CHARACTER*4 ISTRIN
      CHARACTER*4 ISTRI2
      CHARACTER*4 INEX
      CHARACTER*4 IVARL
      CHARACTER*4 IVARL2
      CHARACTER*4 IVARR
      CHARACTER*4 IVARR2
      CHARACTER*4 IQUAL
      CHARACTER*4 IHSTAT
      CHARACTER*4 IHSTA2
      CHARACTER*4 IHMAN
      CHARACTER*4 IHMAN2
      CHARACTER*4 IERROR
C
      CHARACTER*4 ISUBN1
      CHARACTER*4 ISUBN2
      CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
      DIMENSION IANS(*)
      DIMENSION IHNAME(*)
      DIMENSION IHNAM2(*)
C
      DIMENSION IUSE(*)
      DIMENSION IVALUE(*)
      DIMENSION VALUE(*)
      DIMENSION IN(*)
C
      DIMENSION IFOUNZ(*)
      DIMENSION IBEGIN(*)
      DIMENSION IEND(*)
      DIMENSION ITYPE(*)
      DIMENSION IHOL(*)
      DIMENSION IHOL2(*)
      DIMENSION INT1(*)
      DIMENSION FLOAT1(*)
      DIMENSION IERRO1(*)
C
      DIMENSION IHMAN(10)
      DIMENSION IHMAN2(10)
      DIMENSION IHSTAT(25)
      DIMENSION IHSTA2(25)
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-----DATA STATEMENTS-------------------------------------------------
C
      DATA NUMMAN/8/
C
      DATA IHMAN(1),IHMAN2(1)/'SORT','    '/
      DATA IHMAN(2),IHMAN2(2)/'RANK','    '/
      DATA IHMAN(3),IHMAN2(3)/'CODE','    '/
      DATA IHMAN(4),IHMAN2(4)/'DIST','INCT'/
      DATA IHMAN(5),IHMAN2(5)/'SEQU','ENTI'/
      DATA IHMAN(6),IHMAN2(6)/'CUMU','LATI'/
      DATA IHMAN(7),IHMAN2(7)/'CUMU','LATI'/
      DATA IHMAN(8),IHMAN2(8)/'CUMU','LATI'/
C
      DATA NUMSTA/22/
C
      DATA IHSTAT(1),IHSTA2(1)/'SIZE','    '/
      DATA IHSTAT(2),IHSTA2(2)/'NUMB','ER  '/
      DATA IHSTAT(3),IHSTA2(3)/'SUM ','    '/
      DATA IHSTAT(4),IHSTA2(4)/'MIDR','ANGE'/
      DATA IHSTAT(5),IHSTA2(5)/'MEAN','    '/
      DATA IHSTAT(6),IHSTA2(6)/'AVER','AGE '/
      DATA IHSTAT(7),IHSTA2(7)/'MIDM','EAN '/
      DATA IHSTAT(8),IHSTA2(8)/'MEDI','AN  '/
      DATA IHSTAT(9),IHSTA2(9)/'STAN','ARD '/
      DATA IHSTAT(10),IHSTA2(10)/'VARI','ANCE'/
      DATA IHSTAT(11),IHSTA2(11)/'RELA','TIVE'/
      DATA IHSTAT(12),IHSTA2(12)/'RANG','E   '/
      DATA IHSTAT(13),IHSTA2(13)/'MINI','MUM '/
      DATA IHSTAT(14),IHSTA2(14)/'MAXI','MUM '/
      DATA IHSTAT(15),IHSTA2(15)/'STAN','DARD'/
      DATA IHSTAT(16),IHSTA2(16)/'SKEW','NESS'/
      DATA IHSTAT(17),IHSTA2(17)/'STAN','DARD'/
      DATA IHSTAT(18),IHSTA2(18)/'KURT','OSIS'/
      DATA IHSTAT(19),IHSTA2(19)/'AUTO','CORR'/
      DATA IHSTAT(20),IHSTA2(20)/'STAN','DARD'/
      DATA IHSTAT(21),IHSTA2(21)/'CORR','ELAT'/
      DATA IHSTAT(22),IHSTA2(22)/'RANK','    '/
C
C-----START POINT-----------------------------------------------------
C
      ISUBN1='DPTY'
      ISUBN2='P2  '
C
      IERROR='NO'
C
      IMAXR=0
C
      IQUAL='UNKN'
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 DPTYP2--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,52)IBUGA3
   52 FORMAT('IBUGA3 = ',A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,53)IWIDTH
   53 FORMAT('IWIDTH = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,54)(IANS(I),I=1,IWIDTH)
   54 FORMAT('IANS(.) = ',80A1)
      CALL DPWRST('XXX','BUG ')
   90 CONTINUE
C
C               ******************************************************
C               **  STEP 1--                                        **
C               **  INITIALIZE THE OUTPUT PARAMETERS AND VARIABLES  **
C               ******************************************************
C
      ISTEPN='1'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      DO100I=1,30
      IFOUNZ(I)='NO'
      IBEGIN(I)=-1
      IEND(I)=-1
      ITYPE(I)='9999'
      IHOL(I)='9999'
      IHOL2(I)='9999'
      INT1(I)=-999999
      FLOAT1(I)=-999999.0
      IERRO1(I)='NO'
  100 CONTINUE
C
      NUMCL=0
      NUMPL=0
      NUMAOL=0
      ITYW1L='9999'
      ICAT1L='9999'
      INLI1L='9999'
      ITYW2L='9999'
      NUMCR=0
      NUMPR=0
      NUMAOR=0
      ITYW1R='9999'
      ICAT1R='9999'
      INLI1R='9999'
      ITYW2R='9999'
C
C               ****************************************************************
C               **  STEP 2--
C               **  EXAMINE THE LEFT-HAND SIDE OF EXPRESSION.
C               **  DETERMINE IF PARAMETER OR VARIABLE NAME TO LEFT OF = SIGN
C               **  HAS PARENTHESES.
C               **  IF IT HAS PARENTHESES, THIS MEANS THAT WE WILL BE
C               **  DEFINING    PART     OF A VARIABLE.
C               **  COMPONENT 1  = LET
C               **  COMPONENT 2  = VARIABLE NAME
C               **  COMPONENT 3  = (                             (IF IT EXISTS)
C               **  COMPONENT 4  = ARGUMENT (I.E., ROW OF TABLE) (IF IT EXISTS)
C               **  COMPONENT 5  = )                             (IF IT EXISTS)
C               **  COMPONENT 6  = =
C               ****************************************************************
C
C     MOST GENERAL FORM--LET X(I) = XXX FOR I = A B C
C                      --LET X(I) = XXX SUBSET XX A B
C
      ISTEPN='2'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C     STEP 2.1--SEARCH FOR LET.
C
      ISTAR1=1
      ISTOP1=IWIDTH
      ISTRIN='LET'
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(1),IBEGIN(1),IEND(1),
     1      ITYPE(1),IHOL(1),IHOL2(1),INT1(1),FLOAT1(1),IERRO1(1))
      IF(IFOUNZ(1).EQ.'YES')GOTO2190
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 2190 CONTINUE
C
C     STEP 2.2--SEARCH FOR = SIGN.
C
      ISTAR1=IEND(1)+1
      ISTOP1=IWIDTH
      ISTRIN='='
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(6),IBEGIN(6),IEND(6),
     1      ITYPE(6),IHOL(6),IHOL2(6),INT1(6),FLOAT1(6),IERRO1(6))
      IF(IFOUNZ(6).EQ.'YES')GOTO2290
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 2290 CONTINUE
C
C     STEP 2.3--SEARCH FOR LEFT-HAND SIDE (;
C     SEARCH BETWEEN LET AND =.
C
      ISTAR1=IEND(1)+1
      ISTOP1=IBEGIN(6)-1
      ISTRIN='('
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(3),IBEGIN(3),IEND(3),
     1      ITYPE(3),IHOL(3),IHOL2(3),INT1(3),FLOAT1(3),IERRO1(3))
      IF(IFOUNZ(3).EQ.'YES')GOTO2390
      GOTO2500
 2390 CONTINUE
C
C     STEP 2.4--SEARCH FOR LEFT-HAND SIDE );
C     SEARCH BETWEEN ( AND =.
C
      ISTAR1=IEND(3)+1
      ISTOP1=IBEGIN(6)-1
      ISTRIN=')'
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(5),IBEGIN(5),IEND(5),
     1      ITYPE(5),IHOL(5),IHOL2(5),INT1(5),FLOAT1(5),IERRO1(5))
      IF(IFOUNZ(5).EQ.'YES')GOTO2490
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 2490 CONTINUE
      GOTO2600
C
C     STEP 2.5--IF NO LEFT-HAND SIDE PARENTHESES FOUND,
C     EXTRACT VARIABLE NAME;
C     SEARCH BETWEEN LET AND =.
C
 2500 CONTINUE
      ISTAR1=IEND(1)+1
      ISTOP1=IBEGIN(6)
      ISTRIN='!;='
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(2),IBEGIN(2),IEND(2),
     1      ITYPE(2),IHOL(2),IHOL2(2),INT1(2),FLOAT1(2),IERRO1(2))
      IF(IFOUNZ(2).EQ.'YES')GOTO2590
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 2590 CONTINUE
      GOTO2800
C
C     STEP 2.6--IF LEFT-HAND SIDE PARENTHESES FOUND,
C     FIRST EXTRACT VARIABLE NAME;
C     SEARCH BETWEEN LET AND (.
C
 2600 CONTINUE
      ISTAR1=IEND(1)+1
      ISTOP1=IBEGIN(3)
      ISTRIN='!;('
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(2),IBEGIN(2),IEND(2),
     1      ITYPE(2),IHOL(2),IHOL2(2),INT1(2),FLOAT1(2),IERRO1(2))
      IF(IFOUNZ(2).EQ.'YES')GOTO2690
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 2690 CONTINUE
C
C     STEP 2.7--ALSO IF LEFT-HAND SIDE PARENTHESES FOUND,
C     SEARCH FOR LEFT-HAND SIDE ARGUMENT NAME OR VALUE;
C     SEARCH BETWEEN ( AND ).
C
      ISTAR1=IEND(3)
      ISTOP1=IBEGIN(5)
      ISTRIN='(;)'
      ISTRI2='    '
      INEX='EE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(4),IBEGIN(4),IEND(4),
     1      ITYPE(4),IHOL(4),IHOL2(4),INT1(4),FLOAT1(4),IERRO1(4))
      IF(IFOUNZ(4).EQ.'YES')GOTO2790
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 2790 CONTINUE
      K=4
      IF(ITYPE(K).EQ.'WORD')
     1CALL DPCHEC(K,IHOL,IHOL2,
     1IHNAME,IHNAM2,IUSE,IVALUE,VALUE,NUMNAM,
     1INT1,FLOAT1,IBUGA3,IERROR)
C
 2800 CONTINUE
C
C               *******************************************************
C               **  STEP 3--                                         **
C               **  EXAMINE THE RIGHT-HAND SIDE OF EXPRESSION.       **
C               **  DETERMINE WHICH OF THE 3 CASES WE HAVE--         **
C               **      1) LET X(I) =                                **
C               **      2) LET X(I) =       SUBSET XX  A  B          **
C               **      3) LET X(I) =       FOR XX = A  B  C         **
C               **  IF CASE 1 (THE NON-SUBSET AND NON-FOR CASE),     **
C               **  SEARCH FOR COMPONENTS 7, 8, 9, AND 10--          **
C               **  COMPONENT 7  = VARIABLE NAME                     **
C               **  COMPONENT 8  = (                                 **
C               **  COMPONENT 9  = ARGUMENT (THAT IS, ROW OF TABLE)  **
C               **  COMPONENT 10 = )                                 **
C               **  IF CASE 2 (THE SUBSET CASE), JUMP TO STEP 4      **
C               **  IF CASE 3 (THE FOR CASE), JUMP TO STEP 5.        **
C               *******************************************************
C
 3000 CONTINUE
C
      ISTEPN='3'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C     STEP 3.1A--SEARCH FOR SUBSET.
C
      ISTAR1=IEND(6)+1
      ISTOP1=IWIDTH
      ISTRIN='SUBS'
      ISTRI2='ET  '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(11),IBEGIN(11),IEND(11),
     1      ITYPE(11),IHOL(11),IHOL2(11),INT1(11),FLOAT1(11),IERRO1(11))
CCCCC THE FOLLOWING SECTION WAS ADDED DECEMBER 1988 TO AVOID
CCCCC SPURIOUS ERROR MESSAGES WITH A LONG VARIABLE NAME LIKE SUBSETXX
CCCCC THE SECTION WAS CORRECTED ALSO IN JANUARY 1988 AND NOVEMBER 1989
      IENDP=IEND(11)+1
      IF(IENDP.LE.0)IFOUNZ(11)='NO'
      IF(IENDP.LE.0)GOTO3119
      IF(IFOUNZ(11).EQ.'YES'.AND.
     1   IENDP.LE.ISTOP1.AND.
     1   IANS(IENDP).NE.' ')IFOUNZ(11)='NO'
      IF(IFOUNZ(11).EQ.'YES')GOTO4000
 3119 CONTINUE
C
C     STEP 3.1B--SEARCH FOR EXCEPT.
C
      ISTAR1=IEND(6)+1
      ISTOP1=IWIDTH
      ISTRIN='EXCE'
      ISTRI2='PT  '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(11),IBEGIN(11),IEND(11),
     1      ITYPE(11),IHOL(11),IHOL2(11),INT1(11),FLOAT1(11),IERRO1(11))
CCCCC THE FOLLOWING SECTION WAS ADDED DECEMBER 1988 TO AVOID
CCCCC SPURIOUS ERROR MESSAGES WITH A LONG VARIABLE NAME LIKE EXCEPTXX
CCCCC THE SECTION WAS CORRECTED ALSO IN JANUARY 1988 AND NOVEMBER 1989
      IENDP=IEND(11)+1
      IF(IENDP.LE.0)IFOUNZ(11)='NO'
      IF(IENDP.LE.0)GOTO3129
      IF(IFOUNZ(11).EQ.'YES'.AND.
     1   IENDP.LE.ISTOP1.AND.
     1   IANS(IENDP).NE.' ')IFOUNZ(11)='NO'
      IF(IFOUNZ(11).EQ.'YES')GOTO4000
 3129 CONTINUE
C
C     STEP 3.1C--SEARCH FOR FOR.
C
      ISTAR1=IEND(6)+1
      ISTOP1=IWIDTH
      ISTRIN='FOR'
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(21),IBEGIN(21),IEND(21),
     1      ITYPE(21),IHOL(21),IHOL2(21),INT1(21),FLOAT1(21),IERRO1(21))
CCCCC THE FOLLOWING SECTION WAS ADDED DECEMBER 1988 TO AVOID
CCCCC SPURIOUS ERROR MESSAGES WITH A LONG VARIABLE NAME LIKE FORTUNE
CCCCC THE SECTION WAS CORRECTED ALSO IN JANUARY 1988 AND NOVEMBER 1989
      IENDP=IEND(21)+1
      IF(IENDP.LE.0)IFOUNZ(21)='NO'
      IF(IENDP.LE.0)GOTO3139
      IF(IFOUNZ(21).EQ.'YES'.AND.
     1   IENDP.LE.ISTOP1.AND.
     1   IANS(IENDP).NE.' ')IFOUNZ(21)='NO'
      IF(IFOUNZ(21).EQ.'YES')GOTO5000
 3139 CONTINUE
C
C     STEP 3.1D--SEARCH FOR IF.
C
      ISTAR1=IEND(6)+1
      ISTOP1=IWIDTH
      ISTRIN='IF  '
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(11),IBEGIN(11),IEND(11),
     1      ITYPE(11),IHOL(11),IHOL2(11),INT1(11),FLOAT1(11),IERRO1(11))
CCCCC THE FOLLOWING SECTION WAS ADDED DECEMBER 1988 TO AVOID
CCCCC SPURIOUS ERROR MESSAGES WITH A LONG VARIABLE NAME LIKE IFRING
CCCCC THE SECTION WAS CORRECTED ALSO IN JANUARY 1988 AND NOVEMBER 1989
      IENDP=IEND(11)+1
      IF(IENDP.LE.0)IFOUNZ(11)='NO'
      IF(IENDP.LE.0)GOTO3149
      IF(IFOUNZ(11).EQ.'YES'.AND.
     1   IENDP.LE.ISTOP1.AND.
     1   IANS(IENDP).NE.' ')IFOUNZ(11)='NO'
      IF(IFOUNZ(11).EQ.'YES')GOTO4000
 3149 CONTINUE
C
C     STEP 3.2--IF NEITHER SUBSET NOR FOR HAVE BEEN FOUND,
C     SEARCH FOR RIGHT-HAND SIDE (;
C     SEARCH BETWEEN = AND END OF LINE.
C
      ISTAR1=IEND(6)+1
      ISTOP1=IWIDTH
      ISTRIN='('
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(8),IBEGIN(8),IEND(8),
     1      ITYPE(8),IHOL(8),IHOL2(8),INT1(8),FLOAT1(8),IERRO1(8))
      IF(IFOUNZ(8).EQ.'YES')GOTO3290
      GOTO3400
 3290 CONTINUE
C
C     STEP 3.3--IF NEITHER SUBSET NOR FOR HAVE BEEN FOUND,
C     SEARCH FOR RIGHT-HAND SIDE );
C     SEARCH BETWEEN ( AND END OF LINE.
C
      ISTAR1=IEND(8)+1
      ISTOP1=IWIDTH
      ISTRIN=')'
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(10),IBEGIN(10),IEND(10),
     1      ITYPE(10),IHOL(10),IHOL2(10),INT1(10),FLOAT1(10),IERRO1(10))
      IF(IFOUNZ(10).EQ.'YES')GOTO3390
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 3390 CONTINUE
      GOTO3500
C
C     STEP 3.4--IF NEITHER SUBSET NOR FOR HAVE BEEN FOUND,
C     IF NO RIGHT-HAND SIDE PARENTHESES FOUND,
C     EXTRACT VARIABLE NAME OR VALUE;
C     SEARCH BETWEEN = AND END OF LINE.
C     ALSO, TO HANDLE THE COLUMN NAMING CASE
C     (E.G., LET X = COLUMN 1),
C     CHECK TO SEE IF ANOTHER ITEM
C     FOLLOWS THE VARIABLE NAME OR VALUE.
C     AND FURTERMORE, TO HANDLE THE DATA GENERATION CASE
C     (E.G., LET X = 1 1 10),
C     CHECK TO SEE OF 2 ITEMS
C     FOLLOW THE FIRST VALUE.
C
 3400 CONTINUE
      ISTAR1=IEND(6)+1
      ISTOP1=IWIDTH
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(7),IBEGIN(7),IEND(7),
     1      ITYPE(7),IHOL(7),IHOL2(7),INT1(7),FLOAT1(7),IERRO1(7))
      IF(IFOUNZ(7).EQ.'YES')GOTO3410
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
C
 3410 CONTINUE
      ISTAR1=IEND(7)+1
      ISTOP1=IWIDTH
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(8),IBEGIN(8),IEND(8),
     1      ITYPE(8),IHOL(8),IHOL2(8),INT1(8),FLOAT1(8),IERRO1(8))
      IF(IFOUNZ(8).EQ.'YES')GOTO3420
      GOTO3900
C
 3420 CONTINUE
      ISTAR1=IEND(8)+1
      ISTOP1=IWIDTH
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(9),IBEGIN(9),IEND(9),
     1      ITYPE(9),IHOL(9),IHOL2(9),INT1(9),FLOAT1(9),IERRO1(9))
      GOTO3900
C
C     STEP 3.5--IF NEITHER SUBSET NOR FOR HAVE BEEN FOUND,
C     IF RIGHT-HAND SIDE PARENTHESES FOUND,
C     FIRST EXTRACT VARIABLE NAME;
C     SEARCH BETWEEN = AND (.
C
 3500 CONTINUE
      ISTAR1=IEND(6)+1
      ISTOP1=IBEGIN(8)
      ISTRIN='!;('
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(7),IBEGIN(7),IEND(7),
     1      ITYPE(7),IHOL(7),IHOL2(7),INT1(7),FLOAT1(7),IERRO1(7))
      IF(IFOUNZ(7).EQ.'YES')GOTO3590
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 3590 CONTINUE
C
C     STEP 3.6--IF NEITHER SUBSET NOR FOR HAVE BEEN FOUND,
C     ALSO IF RIGHT-HAND SIDE PARENTHESES FOUND,
C     SEARCH FOR RIGHT-HAND SIDE ARGUMENT NAME OR VALUE;
C     SEARCH BETWEEN ( AND ).
C
      ISTAR1=IEND(8)
      ISTOP1=IBEGIN(10)
      ISTRIN='(;)'
      ISTRI2='    '
      INEX='EE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(9),IBEGIN(9),IEND(9),
     1      ITYPE(9),IHOL(9),IHOL2(9),INT1(9),FLOAT1(9),IERRO1(9))
      IF(IFOUNZ(9).EQ.'YES')GOTO3690
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 3690 CONTINUE
      K=9
      IF(ITYPE(K).EQ.'WORD')
     1CALL DPCHEC(K,IHOL,IHOL2,
     1IHNAME,IHNAM2,IUSE,IVALUE,VALUE,NUMNAM,
     1INT1,FLOAT1,IBUGA3,IERROR)
C
 3900 CONTINUE
      GOTO6000
C
C               **********************************************************
C               **  STEP 4--                                            **
C               **  FOR THE CASE WHEN HAVE     LET X(I) =               **
C               **  EXAMINE THE RIGHT-HAND SIDE FOR    SUBSET XX  A  B  **
C               **  COMPONENT 7  = VARIABLE NAME                        **
C               **  COMPONENT 8  = (                                    **
C               **  COMPONENT 9  = ARGUMENT (THAT IS, ROW OF TABLE)     **
C               **  COMPONENT 10 = )                                    **
C               **  COMPONENT 11 = SUBSET                               **
C               **  COMPONENT 12 = LOWER LIMIT             OF SUBSET    **
C               **  COMPONENT 13 = UPPER LIMIT (IF EXISTS) OF SUBSET    **
C               **********************************************************
C
 4000 CONTINUE
      ISTEPN='4'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C     STEP 4.2--IF SUBSET HAS BEEN FOUND,
C     SEARCH FOR RIGHT-HAND SIDE (;
C     SEARCH BETWEEN = AND SUBSET.
C
      ISTAR1=IEND(6)+1
      ISTOP1=IBEGIN(11)-1
      ISTRIN='('
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(8),IBEGIN(8),IEND(8),
     1      ITYPE(8),IHOL(8),IHOL2(8),INT1(8),FLOAT1(8),IERRO1(8))
      IF(IFOUNZ(8).EQ.'YES')GOTO4090
      GOTO4400
 4090 CONTINUE
C
C     STEP 4.3--IF SUBSET HAS BEEN FOUND,
C     SEARCH FOR RIGHT-HAND SIDE );
C     SEARCH BETWEEN ( AND SUBSET.
C
      ISTAR1=IEND(8)+1
      ISTOP1=IBEGIN(11)-1
      ISTRIN=')'
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(10),IBEGIN(10),IEND(10),
     1      ITYPE(10),IHOL(10),IHOL2(10),INT1(10),FLOAT1(10),IERRO1(10))
      IF(IFOUNZ(10).EQ.'YES')GOTO4390
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 4390 CONTINUE
      GOTO4500
C
C     STEP 4.4--IF SUBSET HAS BEEN FOUND,
C     IF NO RIGHT-HAND SIDE PARENTHESES FOUND,
C     EXTRACT VARIABLE NAME OR VALUE;
C     SEARCH BETWEEN = AND SUBSET.
C
 4400 CONTINUE
      ISTAR1=IEND(6)+1
      ISTOP1=IBEGIN(11)
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(7),IBEGIN(7),IEND(7),
     1      ITYPE(7),IHOL(7),IHOL2(7),INT1(7),FLOAT1(7),IERRO1(7))
      IF(IFOUNZ(7).EQ.'YES')GOTO4490
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 4490 CONTINUE
      GOTO4700
C
C     STEP 4.5--IF SUBSET HAS BEEN FOUND,
C     IF RIGHT-HAND SIDE PARENTHESES FOUND,
C     FIRST EXTRACT VARIABLE NAME;
C     SEARCH BETWEEN = AND (.
C
 4500 CONTINUE
      ISTAR1=IEND(6)+1
      ISTOP1=IBEGIN(8)
      ISTRIN='!;('
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(7),IBEGIN(7),IEND(7),
     1      ITYPE(7),IHOL(7),IHOL2(7),INT1(7),FLOAT1(7),IERRO1(7))
      IF(IFOUNZ(7).EQ.'YES')GOTO4590
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 4590 CONTINUE
C
C     STEP 4.6--IF SUBSET HAS BEEN FOUND,
C     ALSO IF RIGHT-HAND SIDE PARENTHESES FOUND,
C     SEARCH FOR RIGHT-HAND SIDE ARGUMENT NAME OR VALUE;
C     SEARCH BETWEEN ( AND ).
C
      ISTAR1=IEND(8)
      ISTOP1=IBEGIN(10)
      ISTRIN='(;)'
      ISTRI2='    '
      INEX='EE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(9),IBEGIN(9),IEND(9),
     1      ITYPE(9),IHOL(9),IHOL2(9),INT1(9),FLOAT1(9),IERRO1(9))
      IF(IFOUNZ(9).EQ.'YES')GOTO4690
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 4690 CONTINUE
      K=9
      IF(ITYPE(K).EQ.'WORD')
     1CALL DPCHEC(K,IHOL,IHOL2,
     1IHNAME,IHNAM2,IUSE,IVALUE,VALUE,NUMNAM,
     1INT1,FLOAT1,IBUGA3,IERROR)
C
C     STEP 4.7--IF SUBSET HAS BEEN FOUND,
C     SEARCH FOR VARIABLE NAME AFTER SUBSET;
C     SEARCH BETWEEN SUBSET AND THE END OF THE LINE.
C
 4700 CONTINUE
      ISTAR1=IEND(11)+1
      ISTOP1=IWIDTH
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(12),IBEGIN(12),IEND(12),
     1      ITYPE(12),IHOL(12),IHOL2(12),INT1(12),FLOAT1(12),IERRO1(12))
      IF(IFOUNZ(12).EQ.'YES')GOTO4790
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 4790 CONTINUE
C
C     STEP 4.8--IF SUBSET HAS BEEN FOUND,
C     SEARCH FOR LOWER LIMIT VALUE AFTER     SUBSET XXX
C     SEARCH BETWEEN VARIABLE NAME AND THE END OF THE LINE.
C
      ISTAR1=IEND(12)+1
      ISTOP1=IWIDTH
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(13),IBEGIN(13),IEND(13),
     1      ITYPE(13),IHOL(13),IHOL2(13),INT1(13),FLOAT1(13),IERRO1(13))
      IF(IFOUNZ(13).EQ.'YES')GOTO4890
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 4890 CONTINUE
C
C     STEP 4.9--IF SUBSET HAS BEEN FOUND,
C     SEARCH FOR UPPER LIMIT (IF EXISTENT) AFTER     SUBSET XXX
C     SEARCH BETWEEN LOWER LIMIT AND THE END OF THE LINE.
C
      ISTAR1=IEND(13)+1
      ISTOP1=IWIDTH
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(14),IBEGIN(14),IEND(14),
     1      ITYPE(14),IHOL(14),IHOL2(14),INT1(14),FLOAT1(14),IERRO1(14))
 4900 CONTINUE
      GOTO6000
C
C               **********************************************************
C               **  STEP 5--                                            **
C               **  FOR THE CASE WHEN HAVE     LET X(I) =               **
C               **  EXAMINE THE RIGHT-HAND SIDE FOR    FOR I = A  B  C  **
C               **  COMPONENT 7  = VARIABLE NAME                        **
C               **  COMPONENT 8  = (                                    **
C               **  COMPONENT 9  = ARGUMENT (THAT IS, ROW OF TABLE)     **
C               **  COMPONENT 10 = )                                    **
C               **  COMPONENT 21 = FOR                                  **
C               **  COMPONENT 22 = =                                    **
C               **  COMPONENT 23 = START     VALUE FOR DUMMY INDEX      **
C               **  COMPONENT 24 = INCREMENT VALUE FOR DUMMY INDEX      **
C               **  COMPONENT 25 = STOP      VALUE FOR SUMMY INDEX      **
C               **********************************************************
C
 5000 CONTINUE
      ISTEPN='5'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C     STEP 5.2--IF FOR HAS BEEN FOUND,
C     SEARCH FOR RIGHT-HAND SIDE (;
C     SEARCH BETWEEN = AND FOR.
C
      ISTAR1=IEND(6)+1
      ISTOP1=IBEGIN(21)-1
      ISTRIN='('
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(8),IBEGIN(8),IEND(8),
     1      ITYPE(8),IHOL(8),IHOL2(8),INT1(8),FLOAT1(8),IERRO1(8))
      IF(IFOUNZ(8).EQ.'YES')GOTO5290
      GOTO5400
 5290 CONTINUE
C
C     STEP 5.3--IF FOR HAS BEEN FOUND,
C     SEARCH FOR RIGHT-HAND SIDE );
C     SEARCH BETWEEN ( AND FOR.
C
      ISTAR1=IEND(8)+1
      ISTOP1=IBEGIN(21)-1
      ISTRIN=')'
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(10),IBEGIN(10),IEND(10),
     1      ITYPE(10),IHOL(10),IHOL2(10),INT1(10),FLOAT1(10),IERRO1(10))
      IF(IFOUNZ(10).EQ.'YES')GOTO5390
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 5390 CONTINUE
      GOTO5500
C
C     STEP 5.4--IF FOR HAS BEEN FOUND,
C     IF NO RIGHT-HAND SIDE PARENTHESES FOUND,
C     EXTRACT VARIABLE NAME OR VALUE;
C     SEARCH BETWEEN = AND FOR.
C
 5400 CONTINUE
      ISTAR1=IEND(6)+1
      ISTOP1=IBEGIN(21)
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(7),IBEGIN(7),IEND(7),
     1      ITYPE(7),IHOL(7),IHOL2(7),INT1(7),FLOAT1(7),IERRO1(7))
      IF(IFOUNZ(7).EQ.'YES')GOTO5490
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 5490 CONTINUE
      GOTO5700
C
C     STEP 5.5--IF FOR HAS BEEN FOUND,
C     IF RIGHT-HAND SIDE PARENTHESES FOUND,
C     FIRST EXTRACT VARIABLE NAME;
C     SEARCH BETWEEN = AND (.
C
 5500 CONTINUE
      ISTAR1=IEND(6)+1
      ISTOP1=IBEGIN(8)
      ISTRIN='!;('
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(7),IBEGIN(7),IEND(7),
     1      ITYPE(7),IHOL(7),IHOL2(7),INT1(7),FLOAT1(7),IERRO1(7))
      IF(IFOUNZ(7).EQ.'YES')GOTO5590
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 5590 CONTINUE
C
C     STEP 5.6--IF FOR HAS BEEN FOUND,
C     ALSO IF RIGHT-HAND SIDE PARENTHESES FOUND,
C     SEARCH FOR RIGHT-HAND SIDE ARGUMENT NAME OR VALUE;
C     SEARCH BETWEEN ( AND ).
C
      ISTAR1=IEND(8)
      ISTOP1=IBEGIN(10)
      ISTRIN='(;)'
      ISTRI2='    '
      INEX='EE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(9),IBEGIN(9),IEND(9),
     1      ITYPE(9),IHOL(9),IHOL2(9),INT1(9),FLOAT1(9),IERRO1(9))
      IF(IFOUNZ(9).EQ.'YES')GOTO5690
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 5690 CONTINUE
      K=9
      IF(ITYPE(K).EQ.'WORD')
     1CALL DPCHEC(K,IHOL,IHOL2,
     1IHNAME,IHNAM2,IUSE,IVALUE,VALUE,NUMNAM,
     1INT1,FLOAT1,IBUGA3,IERROR)
C
C     STEP 5.7--IF FOR HAS BEEN FOUND,
C     SEARCH FOR VARIABLE NAME AFTER FOR;
C     SEARCH BETWEEN FOR AND THE END OF THE LINE.
C
 5700 CONTINUE
      ISTAR1=IEND(21)+1
      ISTOP1=IWIDTH
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(22),IBEGIN(22),IEND(22),
     1      ITYPE(22),IHOL(22),IHOL2(22),INT1(22),FLOAT1(22),IERRO1(22))
      IF(IFOUNZ(22).EQ.'YES')GOTO5790
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 5790 CONTINUE
C
C     STEP 5.8--IF FOR HAS BEEN FOUND,
C     SEARCH FOR = SIGN AFTER    FOR XXX
C     SEARCH BETWEEN VARIABLE NAME AND END OF LINE.
C
      ISTAR1=IEND(22)+1
      ISTOP1=IWIDTH
      ISTRIN='='
      ISTRI2='    '
      INEX='II'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(23),IBEGIN(23),IEND(23),
     1      ITYPE(23),IHOL(23),IHOL2(23),INT1(23),FLOAT1(23),IERRO1(23))
      IF(IFOUNZ(23).EQ.'YES')GOTO5890
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 5890 CONTINUE
C
C     STEP 5.9--IF FOR HAS BEEN FOUND,
C     SEARCH FOR START VALUE AFTER     FOR XXX =
C     SEARCH BETWEEN = AND THE END OF THE LINE.
C
      ISTAR1=IEND(23)+1
      ISTOP1=IWIDTH
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(24),IBEGIN(24),IEND(24),
     1      ITYPE(24),IHOL(24),IHOL2(24),INT1(24),FLOAT1(24),IERRO1(24))
      IF(IFOUNZ(24).EQ.'YES')GOTO5990
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 5990 CONTINUE
C
C     STEP 5.10--IF FOR HAS BEEN FOUND,
C     SEARCH FOR INCREMENT VALUE AFTER     FOR XXX =
C     SEARCH BETWEEN START VALUE AND THE END OF THE LINE.
C
      ISTAR1=IEND(24)+1
      ISTOP1=IWIDTH
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(25),IBEGIN(25),IEND(25),
     1      ITYPE(25),IHOL(25),IHOL2(25),INT1(25),FLOAT1(25),IERRO1(25))
      IF(IFOUNZ(25).EQ.'YES')GOTO5930
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 5930 CONTINUE
C
C     STEP 5.11--IF FOR HAS BEEN FOUND,
C     SEARCH FOR STOP VALUE AFTER     FOR XXX =
C     SEARCH BETWEEN INCREMENT VALUE AND THE END OF THE LINE.
C
      ISTAR1=IEND(25)+1
      ISTOP1=IWIDTH
      ISTRIN='!;:'
      ISTRI2='    '
      INEX='IE'
      CALL DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,IBUGA3,
     1      IFOUNZ(26),IBEGIN(26),IEND(26),
     1      ITYPE(26),IHOL(26),IHOL2(26),INT1(26),FLOAT1(26),IERRO1(26))
      IF(IFOUNZ(26).EQ.'YES')GOTO5950
      CALL DPLETE(IANS,IWIDTH)
      IERROR='YES'
      GOTO9000
 5950 CONTINUE
      GOTO6000
C
C               ************************************************
C               **  STEP 6--                                  **
C               **  DETERMINE VARIOUS SUMMARY VARIABLES       **
C               **  FOR THE LEFT SIDE                         **
C               **  OF THE COMMAND LINE                       **
C               **  WHICH WILL BE HELPFUL BACK IN DPLET       **
C               **  FOR BRANCHING TO THE CORRECT              **
C               **  TYPE OF OPERATION.                        **
C               **  NOTE THAT THE    LEFT SIDE                    **
C               **  WILL BE FROM     LET                      **
C               **  TO THE           = SIGN                   **
C               **  BUT WILL NOT INCLUDE EITHER.              **
C               ************************************************
C
 6000 CONTINUE
      ISTEPN='6'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C     STEP 6.0--
C     DETERMINE THE LIMITS OF THE LEFT SIDE
C
      IMINL=0
      IF(IFOUNZ(1).EQ.'YES')IMINL=IEND(1)+1
C
      IMAXL=0
      IF(IFOUNZ(6).EQ.'YES')IMAXL=IBEGIN(6)-1
C
      IF(IMINL.LE.0)GOTO6900
      IF(IMAXL.LE.0)GOTO6900
      IF(IMINL.GT.IMAXL)GOTO6900
C
C     STEP 6.1--
C     DETERMINE THE NUMBER OF COMPONENTS ON THE LEFT.
C     A COMPONET HERE = A WORD OR A PARENTHESIS.
C
      ISUM=0
      IMIN=2
      IMAX=5
      DO6100I=IMIN,IMAX
      IF(IFOUNZ(I).EQ.'YES')ISUM=ISUM+1
 6100 CONTINUE
      NUMCL=ISUM
C
C     STEP 6.2--
C     DETERMINE THE NUMBER OF PARENTHESES (LEFT + RIGHT).
C
      ISUM=0
      IMIN=IMINL
      IMAX=IMAXL
      DO6200I=IMIN,IMAX
      IF(IANS(I).EQ.'('.OR.IANS(I).EQ.')')ISUM=ISUM+1
 6200 CONTINUE
 6250 CONTINUE
      NUMPL=ISUM
C
C     STEP 6.3--
C     DETERMINE THE NUMBER OF ARITHMETIC OPERATIONS
C     +  -  *  /      ON THE LEFT
C     (IT SHOULD BE 0).
C     NOTE THAT THE ARITHMETIC OPERATION   **
C     WILL BE LUMPED IN WITH    *    .
C
      ISUM=0
      IMIN=IMINL
      IMAX=IMAXL
      DO6300I=IMIN,IMAX
      IF(IANS(I).EQ.'+'.OR.IANS(I).EQ.'-'.
     1OR.IANS(I).EQ.'*'.OR.IANS(I).EQ.'/')ISUM=ISUM+1
 6300 CONTINUE
 6350 CONTINUE
      NUMAOL=ISUM
C
C     STEP 6.4--
C     DETERMINE THE TYPE ('NUMB' OR 'WORD')
C     FOR THE FIRST WORD ON THE LEFT.
C     THIS SHOULD BE THE VARIABLE OR PARAMETER
C     DESIGNATION,
C     AND IT SHOULD BE A 'WORD'.
C
      ITYW1L=ITYPE(2)
C
C     STEP 6.5--
C     DETERMINE IF FIRST WORD ON THE LEFT
C     IS ALREADY IN THE NAME LIST OR NOT.
C
      INLI1L='NO'
      IVARL=IHOL(2)
      IVARL2=IHOL2(2)
      DO6500I=1,NUMNAM
      IF(IVARL.EQ.IHNAME(I).AND.IVARL2.EQ.IHNAM2(I))INLI1L='YES'
 6500 CONTINUE
C
C     STEP 6.6--
C     DETERMINE IF FIRST WORD ON THE LEFT
C     IS IN THE VARIABLE/PARAMETER NAME LIST, OR
C     IS A COLUMN NAMING (I.E., THE WORD 'COLU' OR 'COL', OR
C     IS A DATA MANIPULATION FUNCTION, OR
C     IS A STATISTICAL CALCULATION FUNCTION
C     (SEARCH IS DONE IN THAT ORDER).
C
C
      ICAT1L='NONE'
      IVARL=IHOL(2)
      IVARL2=IHOL2(2)
C
 6610 CONTINUE
      IF(INLI1L.EQ.'YES'.AND.IVARL.NE.'COLU')GOTO6615
      IF(INLI1L.EQ.'YES'.AND.IVARL.NE.'COL ')GOTO6615
      IF(INLI1L.EQ.'YES'.AND.IVARL.EQ.'COLU'.AND.IVARL2.EQ.'MN  '.AND.
     1IFOUNZ(3).EQ.'NO')GOTO6615
      IF(INLI1L.EQ.'YES'.AND.IVARL.EQ.'COL '.AND.IVARL2.EQ.'    '.AND.
     1IFOUNZ(3).EQ.'NO')GOTO6615
      IF(INLI1L.EQ.'YES'.AND.IVARL.EQ.'COLU'.AND.IVARL2.EQ.'MN  '.AND.
     1IFOUNZ(3).EQ.'YES'.AND.ITYPE(3).NE.'NUMB')GOTO6615
      IF(INLI1L.EQ.'YES'.AND.IVARL.EQ.'COL '.AND.IVARL2.EQ.'    '.AND.
     1IFOUNZ(3).EQ.'YES'.AND.ITYPE(3).NE.'NUMB')GOTO6615
      GOTO6620
 6615 CONTINUE
      ICAT1L='VARP'
      GOTO6690
C
 6620 CONTINUE
      IF(IVARL.EQ.'COLU'.AND.IVARL2.EQ.'MN  '.AND.
     1IFOUNZ(3).EQ.'YES'.AND.ITYPE(3).EQ.'NUMB')GOTO6625
      IF(IVARL.EQ.'COL '.AND.IVARL2.EQ.'    '.AND.
     1IFOUNZ(3).EQ.'YES'.AND.ITYPE(3).EQ.'NUMB')GOTO6625
      GOTO6630
 6625 CONTINUE
      ICAT1L='COL'
      GOTO6690
C
 6630 CONTINUE
      DO6632I=1,NUMMAN
      IF(IVARL.EQ.IHMAN(I).AND.IVARL2.EQ.IHMAN2(I))GOTO6635
 6632 CONTINUE
      GOTO6640
 6635 CONTINUE
      ICAT1L='MANI'
      GOTO6690
C
 6640 CONTINUE
      DO6642I=1,NUMSTA
      IF(IVARL.EQ.IHSTAT(I).AND.IVARL2.EQ.IHSTA2(I))GOTO6645
 6642 CONTINUE
      GOTO6690
 6645 CONTINUE
      ICAT1L='STAT'
      GOTO6690
C
 6690 CONTINUE
C
C     STEP 6.7--
C     DETERMINE THE TYPE ('NUMB' OR 'WORD')
C     FOR THE SECOND WORD
C     (AS OPPOSED TO THE SECOND COMPONENT)
C     ON THE LEFT.
C     IF EXISTENT, THIS SHOULD BE THE ARGUMENT DESIGNATION
C     OF A VARIABLE,
C     AND IT MAY BE EITHER A 'WORD' OR A 'NUMB'.
C
      ITYW2L=ITYPE(4)
C
 6900 CONTINUE
C
C               *********************************************************
C               **  STEP 7--                                           **
C               **  DETERMINE VARIOUS SUMMARY VARIABLES                **
C               **  FOR THE RIGHT SIDE                                 **
C               **  OF THE COMMAND LINE                                **
C               **  WHICH WILL BE HELPFUL BACK IN DPLET                **
C               **  FOR BRANCHING TO THE CORRECT                       **
C               **  TYPE OF OPERATION.                                 **
C               **  NOTE THAT THE    RIGHT SIDE                            **
C               **  WILL BE FROM THE = SIGN                            **
C               **  TO THE           END OF THE LINE,                  **
C               **  OR TO AN         ISOLATED FOR,                     **
C               **  OR TO AN         ISOLATED SUBSET                   **
C               **  (WHICHEVER OF THE 3 IS SMALLEST).                  **
C               **  ALSO DETERMINE WHETHER THE QUALIFICATION           **
C               **  ON THE FAR RIGHT OF THE CARD IS                    **
C               **           1) BLANK (THAT IS, NO QUALIFICATION)      **
C               **           2) SUBSET                                 **
C               **           3) FOR                                    **
C               **  THE VARIABLE IQUAL WILL BE DEFINED IN              **
C               **  THIS REGARD                                        **
C               **  IQUAL WILL = 'NONE', 'FOR', 'SUBS', OR 'ERRO'.  **
C               *********************************************************
C
 7000 CONTINUE
      ISTEPN='7'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C     STEP 7.0--
C     DETERMINE THE LIMITS OF THE    RIGHT SIDE
C
      IMINR=0
      IF(IFOUNZ(6).EQ.'YES')IMINR=IEND(6)+1
C
      IF(IFOUNZ(11).EQ.'YES'.AND.IFOUNZ(21).EQ.'YES')GOTO7020
      GOTO7030
C
 7020 CONTINUE
      WRITE(ICOUT,7021)
 7021 FORMAT('***** ERROR IN DPTYP2--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,7022)
 7022 FORMAT('      BOTH FOR CASE AND SUBSET CASE FOUND')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,7023)IWIDTH
 7023 FORMAT('IWIDTH = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,7024)
 7024 FORMAT('THE COMMAND LINE IS AS FOLLOWS--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,7025)(IANS(I),I=1,IWIDTH)
 7025 FORMAT(80A1)
      CALL DPWRST('XXX','BUG ')
      IQUAL = 'ERRO'
      IMAXR=0
      GOTO7090
C
 7030 CONTINUE
      IF(IFOUNZ(11).EQ.'NO'.AND.IFOUNZ(21).EQ.'NO')IQUAL='NONE'
      IF(IFOUNZ(11).EQ.'YES')IQUAL='SUBS'
      IF(IFOUNZ(21).EQ.'YES')IQUAL='FOR'
      IF(IQUAL.EQ.'NONE')IMAXR=IWIDTH
      IF(IQUAL.EQ.'SUBS')IMAXR=IBEGIN(11)-1
      IF(IQUAL.EQ.'FOR')IMAXR=IBEGIN(21)-1
C
 7090 CONTINUE
      IF(IMINR.LE.0)GOTO7900
      IF(IMAXR.LE.0)GOTO7900
      IF(IMINR.GT.IMAXR)GOTO7900
C
C     STEP 7.1--
C     DETERMINE THE NUMBER OF COMPONENTS ON THE RIGHT.
C     A COMPONENT HERE = A WORD OR A PARENTHESIS.
C
      ISUM=0
      IMIN=7
      IMAX=10
      DO7100I=IMIN,IMAX
      IF(IFOUNZ(I).EQ.'YES')ISUM=ISUM+1
 7100 CONTINUE
      NUMCR=ISUM
C
C     STEP 7.2--
C     DETERMINE THE NUMBER OF PARENTHESES (LEFT + RIGHT).
C
      ISUM=0
      IMIN=IMINR
      IMAX=IMAXR
      DO7200I=IMIN,IMAX
      IF(IANS(I).EQ.'('.OR.IANS(I).EQ.')')ISUM=ISUM+1
 7200 CONTINUE
 7250 CONTINUE
      NUMPR=ISUM
C
C     STEP 7.3--
C     DETERMINE THE NUMBER OF ARITHMETIC OPERATIONS
C     +  -  *  /      ON THE RIGHT
C     (IT SHOULD BE 0).
C     NOTE THAT THE ARITHMETIC OPERATION   **
C     WILL BE LUMPED IN WITH    *    .
C
      ISUM=0
      IMIN=IMINR
      IMAX=IMAXR
      DO7300I=IMIN,IMAX
      IF(IANS(I).EQ.'+'.OR.IANS(I).EQ.'-'.
     1OR.IANS(I).EQ.'*'.OR.IANS(I).EQ.'/')ISUM=ISUM+1
 7300 CONTINUE
 7350 CONTINUE
      NUMAOR=ISUM
C
C     STEP 7.4--
C     DETERMINE THE TYPE ('NUMB' OR 'WORD')
C     FOR THE FIRST WORD ON THE RIGHT.
C     THIS SHOULD BE THE VARIABLE OR PARAMETER
C     DESIGNATION,
C     AND IT SHOULD BE A 'WORD'.
C
      ITYW1R=ITYPE(7)
C
C     STEP 7.5--
C     DETERMINE IF FIRST WORD ON THE RIGHT
C     IS ALREADY IN THE NAME LIST OR NOT.
C
      INLI1R='NO'
      IVARR=IHOL(7)
      IVARR2=IHOL2(7)
      DO7500I=1,NUMNAM
      IF(IVARR.EQ.IHNAME(I).AND.IVARR2.EQ.IHNAM2(I))INLI1R='YES'
 7500 CONTINUE
C
C     STEP 7.6--
C     DETERMINE IF FIRST WORD ON THE RIGHT
C     IS IN THE VARIABLE/PARAMETER NAME LIST, OR
C     IS A COLUMN NAMING (I.E., THE WORD 'COLU' OR 'COL', OR
C     IS A DATA MANIPULATION FUNCTION, OR
C     IS A STATISTICAL CALCULATION FUNCTION
C     (SEARCH IS DONE IN THAT ORDER).
C
      ICAT1R='NONE'
      IVARR=IHOL(7)
      IVARR2=IHOL2(7)
C
 7610 CONTINUE
      IF(INLI1R.EQ.'YES'.AND.IVARR.NE.'COLU')GOTO7615
      IF(INLI1R.EQ.'YES'.AND.IVARR.NE.'COL ')GOTO7615
      IF(INLI1R.EQ.'YES'.AND.IVARR.EQ.'COLU'.AND.IVARR2.EQ.'MN  '.AND.
     1IFOUNZ(8).EQ.'NO')GOTO7615
      IF(INLI1R.EQ.'YES'.AND.IVARR.EQ.'COL '.AND.IVARR2.EQ.'    '.AND.
     1IFOUNZ(8).EQ.'NO')GOTO7615
      IF(INLI1R.EQ.'YES'.AND.IVARR.EQ.'COLU'.AND.IVARR2.EQ.'MN  '.AND.
     1IFOUNZ(8).EQ.'YES'.AND.ITYPE(8).NE.'NUMB')GOTO7615
      IF(INLI1R.EQ.'YES'.AND.IVARR.EQ.'COL '.AND.IVARR2.EQ.'    '.AND.
     1IFOUNZ(8).EQ.'YES'.AND.ITYPE(8).NE.'NUMB')GOTO7615
      GOTO7620
 7615 CONTINUE
      ICAT1R='VARP'
      GOTO7690
C
 7620 CONTINUE
      IF(IVARR.EQ.'COLU'.AND.IVARR2.EQ.'MN  '.AND.
     1IFOUNZ(8).EQ.'YES'.AND.ITYPE(8).EQ.'NUMB')GOTO7625
      IF(IVARR.EQ.'COL '.AND.IVARR2.EQ.'    '.AND.
     1IFOUNZ(8).EQ.'YES'.AND.ITYPE(8).EQ.'NUMB')GOTO7625
      GOTO7630
 7625 CONTINUE
      ICAT1R='COL'
      GOTO7690
C
 7630 CONTINUE
      DO7632I=1,NUMMAN
      IF(IVARR.EQ.IHMAN(I).AND.IVARR2.EQ.IHMAN2(I))GOTO7635
 7632 CONTINUE
      GOTO7640
 7635 CONTINUE
      ICAT1R='MANI'
      GOTO7690
C
 7640 CONTINUE
      DO7642I=1,NUMSTA
      IF(IVARR.EQ.IHSTAT(I).AND.IVARR2.EQ.IHSTA2(I))GOTO7645
 7642 CONTINUE
      GOTO7690
 7645 CONTINUE
      ICAT1R='STAT'
      GOTO7690
C
 7690 CONTINUE
C
C     STEP 7.7--
C     DETERMINE THE TYPE ('NUMB' OR 'WORD')
C     FOR THE SECOND WORD
C     (AS OPPOSED TO THE SECOND COMPONENT)
C     ON THE RIGHT.
C     IF EXISTENT, THIS SHOULD BE THE ARGUMENT DESIGNATION
C     OF A VARIABLE,
C     AND IT MAY BE EITHER A 'WORD' OR A 'NUMB'.
C
      ITYW2R=ITYPE(9)
C
 7900 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 DPTYP2--')
      CALL DPWRST('XXX','BUG ')
      DO9020I=1,30
      IF(18.LE.I.AND.I.LE.20)GOTO9020
      IF(I.GE.25)GOTO9020
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9022)
 9022 FORMAT('I--IFOUNZ,IBEGIN,IEND,',
     1'ITYPE,IHOL,IHOL2,INT1,FLOAT1,IERRO1')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9025)I,IFOUNZ(I),IBEGIN(I),IEND(I),
     1ITYPE(I),IHOL(I),IHOL2(I),INT1(I),FLOAT1(I),IERRO1(I)
 9025 FORMAT(I3,'--',A4,2X,I2,2X,I2,4X,
     1A4,2X,A4,2X,A4,2X,I8,2X,D15.7,2X,A4)
      CALL DPWRST('XXX','BUG ')
 9020 CONTINUE
C
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9031)NUMCL,NUMPL,NUMAOL,ITYW1L,ITYW2L,INLI1L,ICAT1L
 9031 FORMAT('NUMCL,NUMPL,NUMAOL,ITYW1L,ITYW2L,INLI1L,ICAT1L = ',
     1I8,I8,I8,2X,A4,2X,A4,2X,A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9032)NUMCR,NUMPR,NUMAOR,ITYW1R,ITYW2R,INLI1R,ICAT1R
 9032 FORMAT('NUMCR,NUMPR,NUMAOR,ITYW1R,ITYW2R,INLI1R,ICAT1R = ',
     1I8,I8,I8,2X,A4,2X,A4,2X,A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      GOTO9090
C
 9090 CONTINUE
      RETURN
      END
      SUBROUTINE DPTYP3(IANS,IWIDTH,ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX,
     1                  IBUGA3,
     1                  IFOUZ2,ISTAR2,ISTOP2,
     1                  ITYPE2,IHOL,IHOL2,INT,FLOAT,IERROR)
C
C     NOTE--THIS SUBROUTINE IS IDENTICAL TO DPTY3C
C           AND HAS BEEN DUPLICATED ONLY FOR MAPPING PURPOSES.
C           DATE--JULY 7, 1978.
C
C     PURPOSE--SCAN THE CHARACTER ARRAY IANS(.) BETWEEN
C              COLUMNS ISTAR1 AND ISTOP1
C              FOR THE STRING DEFINED IN STRIN AND ISTRI2.
C     NOTE THAT THE STRING DEFINED IN ISTRIN AND ISTRI2
C     MAY BE EXPRESSED IN SEVERAL WAYS--
C          1) EXPLICITELY, E.G., LET    FOR    SUBSET, ETC.
C          2) IMPLICITELY WITH ! REPRESENTING THE FIRST
C             NON-BLANK CHARACTER THAT IS ENCOUNTERED;
C          3) IMPLICITELY WITH ; REPRESENTING ANY STRING
C             (INCLUDING ALL CHARACTERS, EVEN BLANKS));
C          4) IMPLICITELY WITH : REPRESENTING THE FIRST
C            BLANK CHARACTER THAT IS ENCOUNTERED.
C     NOTE--A GIVEN ARGUMENT MAY END UP WITH
C            3 DIFFERENT REPRESENTATIONS--
C            HOLLERITH, INTEGER, AND FLOATING POINT.
C     INPUT  ARGUMENTS--IANS   = A HOLLERITH 1-CHARACTER-PER-WORD
C                                VARIABLE CONTAINING THE INPUT LINE
C                                TO BE EXAMINED.
C                     --IWIDTH = THE (FULL) WIDTH OF THE INPUT LINE
C                                (THAT IS, THE NUMBER OF COLUMNS)
C                     --ISTAR1 = THE FIRST COLUMN FOR WHICH THE
C                                SCAN IS TO BE CARRIED OUT.
C                     --ISTOP1 = THE LAST  COLUMN FOR WHICH THE
C                                SCAN IS TO BE CARRIED OUT.
C                     --ISTRIN = THE HOLLERITH VARIABLE
C                                WHICH CONTAINS CHARACTERS 1 TO 4
C                                OF THE STRING TO BE SEARCHED FOR.
C                                THE DEFINITION OF THE STRING IN ISTRIN MAY
C                                MAY BE DONE EXPLICTELY (BUT IS LIMITED
C                                TO 4 CHARACTERS) OR IMPLICITELY
C                                WHICH IS NOT LIMITED TO 4 CHARACTERS AND IS MOR
C                                IS MORE GENERAL IN
C                                OTHER WAYS ALSO.
C                     --ISTRI2 = THE HOLLERITH VARIABLE
C                                WHICH CONTAINS CHARACTERS 5 TO 8
C                                OF THE STRING TO BE SEARCHED FOR.
C                                THE DEFINITION OF THE STRING IN ISTRIN MAY
C                                MAY BE DONE EXPLICTELY (BUT IS LIMITED
C                                TO 4 CHARACTERS) OR IMPLICITELY
C                                WHICH IS NOT LIMITED TO 4 CHARACTERS AND IS MOR
C                                IS MORE GENERAL IN
C                                OTHER WAYS ALSO.
C                     --INEX   = A HOLLERITH VARIABLE WHICH
C                                WILL CONTAIN ONE OF THE FOLLOWING 4 VALUES--
C                                II, IE, EI, EE THAT STANDS FOR
C                                WHERE I STANDS FOR INCLUSIVE AND
C                                WHERE E STANDS FOR EXCLUSIVE;
C                                INEX SPECIFIES WHETHER THE FIRST OR LAST CHARAC
C                                CHARACTER IS TO BE INCLUDED OR EXCLUDED IN
C                                IN DEFINING ISTAR2 AND ISTOP2.
C     OUTPUT ARGUMENTS--IFOUZ2 = A HOLLERITH VARIABLE
C                                WITH THE VALUE 'YES'
C                                IF THE STRING WAS FOUND;
C                                AND THE VALUE 'NO'
C                                IF THE STRING WAS NOT FOUND.
C                     --ISTAR2 = THE START COLUMN OF THE FOUND STRING
C                     --ISTOP2 = THE STOP COLUMN OF THE FIUND STRING.
C                     --ITYPE2 = A HOLLERITH VARIABLE
C                                WITH THE VALUE 'WORD' IF THE STRING CONTAINS
C                                ANY NON-NUMERIC (EXCLUDING BLANKS) CHARACTER;
C                                AND WITH THE VALUE 'NUMB' IF THE STRING CONTA
C                                ALL NUMERIC VALUES OR DECIMAL POINT OR + OR -
C                                (WITH INTERMITTENT BLANKS IGNORED).
C                     --IHOL   = THE HOLLERITH VARIABLE
C                                CONTAINING THE PACKED (4 CHARACTERS) VERSION
C                                OF CHARACTERS 1 TO 4 OF THE FOUND STRING.
C                     --IHOL2  = THE HOLLERITH VARIABLE
C                                CONTAINING THE PACKED (4 CHARACTERS) VERSION
C                                OF CHARACTERS 5 TO 8 OF THE FOUND STRING.
C                     --INT    = THE INTEGER VARIABLE
C                                CONTAINING THE INTEGER REPRESENTATION
C                                (IF POSSIBLE) OF THE FOUND STRING.
C                     --FLOAT  = THE FLOATING POINT VARIABLE
C                                CONTAINING THE FLOATING POINT REPRESENTATION
C                                (IF POSSIBLE) OF THE FOUND STRING.
C                     --IERROR = A HOLLERITH VARIABLE WITH VALUE
C                                'YES' OR 'NO' INDICATING IF AN
C                                ERROR CONDITION EXISTS.
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  1978.
C     UPDATED         --JULY      1978.
C     UPDATED         --OCTOBER   1978.
C     UPDATED         --NOVEMBER  1980.
C     UPDATED         --JANUARY   1981.
C     UPDATED         --JUNE      1981.
C     UPDATED         --MARCH     1982.
C     UPDATED         --MAY       1982.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
      CHARACTER*4 IANS
      CHARACTER*4 ISTRIN
      CHARACTER*4 ISTRI2
      CHARACTER*4 INEX
      CHARACTER*4 IBUGA3
      CHARACTER*4 IFOUZ2
      CHARACTER*4 ITYPE2
      CHARACTER*4 IHOL
      CHARACTER*4 IHOL2
      CHARACTER*4 IERROR
C
      CHARACTER*4 ITEMP
      CHARACTER*4 IFLUNK
      CHARACTER*4 ISTRI3
      CHARACTER*4 ILAST
C
      CHARACTER*4 ISUBN1
      CHARACTER*4 ISUBN2
      CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
      DIMENSION IANS(*)
C
      DIMENSION ISTRI3(20)
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='DPTY'
      ISUBN2='P3  '
C
      IERROR='NO'
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 DPTYP3--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,52)IBUGA3
   52 FORMAT('IBUGA3 = ',A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,53)ISTAR1,ISTOP1
   53 FORMAT('ISTAR1,ISTOP1 = ',I8,I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,54)ISTRIN,ISTRI2
   54 FORMAT('ISTRIN,ISTRI2 = ',A4,A4)
      CALL DPWRST('XXX','BUG ')
   90 CONTINUE
C
      NUMASC=4
C
C               ******************************************************
C               **  STEP 1--                                        **
C               **  INITIALIZE THE OUTPUT PARAMETERS AND VARIABLES  **
C               ******************************************************
C
      ISTEPN='1'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(IBUGA3.EQ.'OFF')GOTO150
      WRITE(ICOUT,101)
  101 FORMAT('AT THE BEGINNING OF DPTYP3--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,102)IWIDTH
  102 FORMAT('IWIDTH = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,103)(IANS(I),I=1,IWIDTH)
  103 FORMAT('IANS(.) = ',80A1)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,104)ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX
  104 FORMAT('ISTAR1,ISTOP1,ISTRIN,ISTRI2,INEX = ',I8,I8,A4,A4,A4)
      CALL DPWRST('XXX','BUG ')
  150 CONTINUE
      IFOUZ2='NO'
      ISTAR2=-1
      ISTOP2=-1
      ITYPE2='9999'
      IHOL ='9999'
      IHOL2='9999'
      INT = -999999
      FLOAT=-999999.0
C
C               ************************************************************
C               **  STEP 2--                                              **
C               **  DECOMPOSE THE INPUT SEARCH STRING INTO A1 CHARACTERS  **
C               ************************************************************
C
      ISTEPN='2'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      IMAX=2*NUMASC
      DO300I=1,IMAX
      I2=I
      J=I
      IF(I.GT.NUMASC)J=I-NUMASC
      ISTAR3=NUMBPC*(J-1)
      ISTAR3=IABS(ISTAR3)
      ITEMP='    '
      IF(I.LE.NUMASC)CALL DPCHEX(ISTAR3,NUMBPC,ISTRIN,0,NUMBPC,ITEMP)
      IF(I.GT.NUMASC)CALL DPCHEX(ISTAR3,NUMBPC,ISTRI2,0,NUMBPC,ITEMP)
      IF(ITEMP.EQ.'    ')GOTO350
      ISTRI3(I)=ITEMP
  300 CONTINUE
      ILEN2=I2
      GOTO390
  350 CONTINUE
      ILEN2=I2-1
  390 CONTINUE
C
      IF(IBUGA3.EQ.'OFF')GOTO399
      WRITE(ICOUT,391)
  391 FORMAT('IN THE MIDDLE OF DPTYP3 (AFTER STEP 2)--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,392)ILEN2
  392 FORMAT('ILEN2 = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,393)(ISTRI3(I),I=1,ILEN2)
  393 FORMAT('ISTRI3(.) = ',6A1)
      CALL DPWRST('XXX','BUG ')
  399 CONTINUE
C
C               ****************************************************************
C               **  STEP 3--
C               **  DISTINGUISH BETWEEN THE 3 TYPES OF POSSIBLE SEARCH STRINGS--
C               **  1) AN EXPLICITELY-DEFINED STRING; E.G.,
C               **     LET     FOR     SUBSET     =     5.3     -2.6666666
C               **     (AS IN COMMANDS, KEY WORDS, AND NUMBERS);
C               **  2) A STRING STARTING WITH THE FIRST NON-BLANK CHARACTER
C               **     AND ENDING WITH SOME SPECIFIED CHARACTER; E.G., XXXXX(
C               **     (AS IN THE VARIABLE NAME OF A SUBSCRIPTED VARIABLE,
C               **     OR THE ARGUMENT (I. E., THE SUBSCRIPT) IN A SUBSCRIPTED
C               **     VARIABLE);
C               **  3) A STRING STARTING WITH THE FIRST NON-BLANK CHARACTER
C               **     AND ENDING WITH THE FIRST SUBSEQUENT BLANK CHARACTER
C               **     (OR ENDING WITH THE END OF THE LINE).
C               **     E.G., XXXX
C               **     (AS IN SOME UNSPECIFIED PARAMETER OR VARIABLE NAME).
C               ****************************************************************
C
      ISTEPN='3'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      ICASE=1
      IF(ISTRI3(1).NE.'!'.AND.ISTRI3(2).EQ.';'.AND.ISTRI3(3).NE.':')
     1ICASE=2
      IF(ISTRI3(1).EQ.'!'.AND.ISTRI3(2).EQ.';'.AND.ISTRI3(3).NE.':')
     1ICASE=3
      IF(ISTRI3(1).EQ.'!'.AND.ISTRI3(2).EQ.';'.AND.ISTRI3(3).EQ.':')
     1ICASE=4
      IF(ILEN2.EQ.1.OR.ILEN2.EQ.2)ICASE=1
C
      IF(IBUGA3.EQ.'OFF')GOTO398
      WRITE(ICOUT,395)
  395 FORMAT('AFTER STEP 3 OF DPTYP3--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,396)ICASE
  396 FORMAT('ICASE = ',I8)
      CALL DPWRST('XXX','BUG ')
  398 CONTINUE
C
C               *********************************************************
C               **  STEP 4--                                           **
C               **  DETERMINE IF THE DESIRED SEARCH STRING IS PRESENT  **
C               *********************************************************
C
      ISTEPN='4'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      IF(ICASE.EQ.1)GOTO400
      IF(ICASE.EQ.2)GOTO500
      IF(ICASE.EQ.3)GOTO600
      IF(ICASE.EQ.4)GOTO700
C
  400 CONTINUE
      DO410I=ISTAR1,ISTOP1
      I2=I
      IF(IANS(I).EQ.ISTRI3(1))GOTO420
      GOTO410
  420 CONTINUE
      DO430J=1,ILEN2
      IPJM1=J+I-1
      IF(IPJM1.GT.ISTOP1)GOTO410
      IF(IANS(IPJM1).EQ.ISTRI3(J))GOTO430
      GOTO410
  430 CONTINUE
      IFOUZ2='YES'
      IF(INEX.EQ.'II')ISTAR2=I2
      IF(INEX.EQ.'IE')ISTAR2=I2
      IF(INEX.EQ.'EI')ISTAR2=I2+1
      IF(INEX.EQ.'EE')ISTAR2=I2+1
      IF(INEX.EQ.'II')ISTOP2=IPJM1
      IF(INEX.EQ.'IE')ISTOP2=IPJM1-1
      IF(INEX.EQ.'EI')ISTOP2=IPJM1
      IF(INEX.EQ.'EE')ISTOP2=IPJM1-1
      IF(ISTAR2.LE.ISTOP2)GOTO990
      GOTO900
  410 CONTINUE
      IFOUZ2='NO'
      GOTO9000
C
  500 CONTINUE
      DO510I=ISTAR1,ISTOP1
      I2=I
      IF(IANS(I).EQ.ISTRI3(1))GOTO520
  510 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  520 CONTINUE
      IMIN=I2
      DO530I=IMIN,ISTOP1
      I2=I
      IF(IANS(I).EQ.ISTRI3(ILEN2))GOTO540
  530 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  540 CONTINUE
      IFOUZ2='YES'
      IF(INEX.EQ.'II')ISTAR2=IMIN
      IF(INEX.EQ.'IE')ISTAR2=IMIN
      IF(INEX.EQ.'EI')ISTAR2=IMIN+1
      IF(INEX.EQ.'EE')ISTAR2=IMIN+1
      IF(INEX.EQ.'II')ISTOP2=I2
      IF(INEX.EQ.'IE')ISTOP2=I2-1
      IF(INEX.EQ.'EI')ISTOP2=I2
      IF(INEX.EQ.'EE')ISTOP2=I2-1
      IF(ISTAR2.LE.ISTOP2)GOTO990
      GOTO900
C
  600 CONTINUE
      DO610I=ISTAR1,ISTOP1
      I2=I
      IF(IANS(I).NE.' ')GOTO620
  610 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  620 CONTINUE
      IMIN=I2
      DO630I=IMIN,ISTOP1
      I2=I
      IF(IANS(I).EQ.ISTRI3(ILEN2))GOTO640
  630 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  640 CONTINUE
      IFOUZ2='YES'
      IF(INEX.EQ.'II')ISTAR2=IMIN
      IF(INEX.EQ.'IE')ISTAR2=IMIN
      IF(INEX.EQ.'EI')ISTAR2=IMIN+1
      IF(INEX.EQ.'EE')ISTAR2=IMIN+1
      IF(INEX.EQ.'II')ISTOP2=I2
      IF(INEX.EQ.'IE')ISTOP2=I2-1
      IF(INEX.EQ.'EI')ISTOP2=I2
      IF(INEX.EQ.'EE')ISTOP2=I2-1
      IF(ISTAR2.LE.ISTOP2)GOTO990
      GOTO900
C
  700 CONTINUE
      ILAST='BLAN'
      DO710I=ISTAR1,ISTOP1
      I2=I
      IF(IANS(I).NE.' ')GOTO720
  710 CONTINUE
      IFOUZ2='NO'
      GOTO9000
  720 CONTINUE
      IMIN=I2
      DO730I=IMIN,ISTOP1
      I2=I
      IF(IANS(I).EQ.' ')GOTO740
  730 CONTINUE
      ILAST='NOBL'
      IF(ISTOP1.EQ.IWIDTH)GOTO740
      IFOUZ2='NO'
      GOTO9000
  740 CONTINUE
      IFOUZ2='YES'
      IF(INEX.EQ.'II')ISTAR2=IMIN
      IF(INEX.EQ.'IE')ISTAR2=IMIN
      IF(INEX.EQ.'EI')ISTAR2=IMIN+1
      IF(INEX.EQ.'EE')ISTAR2=IMIN+1
      IF(INEX.EQ.'II'.AND.ISTOP1.NE.IWIDTH)
     1ISTOP2=I2
      IF(INEX.EQ.'II'.AND.ISTOP1.EQ.IWIDTH.AND.ILAST.EQ.'BLAN')
     1ISTOP2=I2
      IF(INEX.EQ.'II'.AND.ISTOP1.EQ.IWIDTH.AND.ILAST.NE.'BLAN')
     1ISTOP2=I2
      IF(INEX.EQ.'IE'.AND.ISTOP1.NE.IWIDTH)
     1ISTOP2=I2-1
      IF(INEX.EQ.'IE'.AND.ISTOP1.EQ.IWIDTH.AND.ILAST.EQ.'BLAN')
     1ISTOP2=I2-1
      IF(INEX.EQ.'IE'.AND.ISTOP1.EQ.IWIDTH.AND.ILAST.NE.'BLAN')
     1ISTOP2=I2
      IF(INEX.EQ.'EI'.AND.ISTOP1.NE.IWIDTH)
     1ISTOP2=I2
      IF(INEX.EQ.'EI'.AND.ISTOP1.EQ.IWIDTH.AND.ILAST.EQ.'BLAN')
     1ISTOP2=I2
      IF(INEX.EQ.'EI'.AND.ISTOP1.EQ.IWIDTH.AND.ILAST.NE.'BLAN')
     1ISTOP2=I2
      IF(INEX.EQ.'EE'.AND.ISTOP1.NE.IWIDTH)
     1ISTOP2=I2-1
      IF(INEX.EQ.'EE'.AND.ISTOP1.EQ.IWIDTH.AND.ILAST.EQ.'BLAN')
     1ISTOP2=I2-1
      IF(INEX.EQ.'EE'.AND.ISTOP1.EQ.IWIDTH.AND.ILAST.NE.'BLAN')
     1ISTOP2=I2
      IF(ISTAR2.LE.ISTOP2)GOTO990
      GOTO900
C
  900 CONTINUE
C
C     NOTE--THE FOLLOWING SECTION HAS BEEN 'BUGGED' OUT
C           TO CIRCUMVENT A PROBLEM WITH Y=(...
C           WHILE IT STILL LOOKED FOR A VARIABLE NAME
C           BETWEEN THE = AND THE (     .
C     CAUTION--WHEN IBUGA3 = 'OFF', AS IT USUALLY IS,
C              IERROR CAN NEVER BE 'YES'
C              UPON RETURN FROM DPTYP3:
C              BUT WHEN IBUGA3 = 'ON' (AS IN ERROR TRACING)
C              IERROR MAY = 'YES' WHICH MAY CHANGE THE
C              LOGIC PATH BACK IN DPTYP2.
C
      IF(IBUGA3.EQ.'OFF')GOTO9000
      WRITE(ICOUT,921)
  921 FORMAT('***** INTERNAL ERROR IN DPTYP3 SUBROUTINE')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,922)
  922 FORMAT('ISTAR2 GREATER THAN ISTOP2')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,923)ISTAR2,ISTOP2
  923 FORMAT('ISTAR2, ISTOP2 = ',2I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,924)ICASE
  924 FORMAT('ICASE = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,925)IWIDTH
  925 FORMAT('IWIDTH = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,926)(IANS(I),I=1,IWIDTH)
  926 FORMAT('IANS(.) = ',80A1)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,927)ISTAR1,ISTOP1
  927 FORMAT('ISTAR1, ISTOP1 = ',2I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,928)ILEN2
  928 FORMAT('ILEN2 = ',I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,929)(ISTRI3(I),I=1,ILEN2)
  929 FORMAT('ISTRI3(.) = ',80A1)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,930)ISTRIN,ISTRI2
  930 FORMAT('ISTRIN,ISTRI2 = ',2A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,931)INEX
  931 FORMAT('INEX = ',A4)
      CALL DPWRST('XXX','BUG ')
      IERROR='YES'
      GOTO9000
  990 CONTINUE
C
C               ********************************************************
C               **  STEP 5--                                          **
C               **  CONVERT THE STRING INTO 2 HOLLERITH A4 WORDS.     **
C               **  IF MORE THAN 8 CHARACTERS, CONVERT ONLY           **
C               **  THE FIRST 8 CHARACTERS.                           **
C               **  OUTPUT THESE HOLLERITH WORDS AS IHOL AND IHOL2.   **
C               ********************************************************
C
      ISTEPN='5'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      IHOL ='    '
      IHOL2='    '
      IMAX=2*NUMASC
      J=0
      DO1000I=ISTAR2,ISTOP2
      J=J+1
      K=J
      IF(J.GT.NUMASC)K=J-NUMASC
      ISTAR3=NUMBPC*(K-1)
      ISTAR3=IABS(ISTAR3)
      IF(J.LE.NUMASC)CALL DPCHEX(0,NUMBPC,IANS(I),ISTAR3,NUMBPC,IHOL)
      IF(J.GT.NUMASC)CALL DPCHEX(0,NUMBPC,IANS(I),ISTAR3,NUMBPC,IHOL2)
      IF(J.GE.IMAX)GOTO1050
 1000 CONTINUE
 1050 CONTINUE
C
C               ****************************************************************
C               **  STEP 6--
C               **  CONVERT (IF POSSIBLE) THE STRING INTO AN INTEGER ARGUMENT.
C               **  OUTPUT  THIS INTEGER VALUE IN INT.
C               ****************************************************************
C
      ISTEPN='6'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      IFLUNK='NO'
      ITYPE2='NUMB'
      IDIG=0
      ISIGN=0
      IDECPT=0
      ISUM=0
      DO2700I=ISTAR2,ISTOP2
      IREV=ISTOP2-(I-ISTAR2)
      IF(IANS(IREV).EQ.' ')GOTO2700
      IF(IANS(IREV).EQ.'0')GOTO2710
      IF(IANS(IREV).EQ.'1')GOTO2711
      IF(IANS(IREV).EQ.'2')GOTO2712
      IF(IANS(IREV).EQ.'3')GOTO2713
      IF(IANS(IREV).EQ.'4')GOTO2714
      IF(IANS(IREV).EQ.'5')GOTO2715
      IF(IANS(IREV).EQ.'6')GOTO2716
      IF(IANS(IREV).EQ.'7')GOTO2717
      IF(IANS(IREV).EQ.'8')GOTO2718
      IF(IANS(IREV).EQ.'9')GOTO2719
      IF(IANS(IREV).EQ.'+')GOTO2720
      IF(IANS(IREV).EQ.'-')GOTO2721
      IF(IANS(IREV).EQ.'.')GOTO2722
      IFLUNK='YES'
      GOTO2800
 2710 ITERM=0
      GOTO2725
 2711 ITERM=1
      GOTO2725
 2712 ITERM=2
      GOTO2725
 2713 ITERM=3
      GOTO2725
 2714 ITERM=4
      GOTO2725
 2715 ITERM=5
      GOTO2725
 2716 ITERM=6
      GOTO2725
 2717 ITERM=7
      GOTO2725
 2718 ITERM=8
      GOTO2725
 2719 ITERM=9
      GOTO2725
 2720 ISIGN=ISIGN+1
      GOTO2700
 2721 ISIGN=ISIGN+1
      ISUM=-ISUM
      GOTO2700
 2722 IDECPT=IDECPT+1
      IF(IDECPT.EQ.1.AND.IDIG.EQ.0)GOTO2700
      GOTO2800
 2725 IDIG=IDIG+1
      TERM2=10.0**(IDIG-1)
      ITERM2=TERM2 + 0.01
      ISUM=ISUM+ITERM*ITERM2
 2700 CONTINUE
      IF(IDIG.LE.0)GOTO2800
      IF(ISIGN.GE.2)GOTO2800
      INT=ISUM
 2800 CONTINUE
      IF(IFLUNK.EQ.'YES')ITYPE2='WORD'
 2100 CONTINUE
 2999 CONTINUE
C
C               ********************************************************
C               **  STEP 7--                                          **
C               **  CONVERT (IF POSSIBLE) THE STRING INTO A FLOATING  **
C               **  POINT ARGUMENT.                                   **
C               **  OUTPUT THIS FLOATING POINT VALUE IN FLOAT.        **
C               ********************************************************
C
      ISTEPN='7'
      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
      AMIN=-1000000.
      AMAX=+1000000.
      IFLUNK='NO'
      ITYPE2='NUMB'
      FLOAT=-1.0
C
      ILOC=0
      IDECPT=0
      DO3060I=ISTAR2,ISTOP2
      IF(IANS(I).EQ.'.')ILOC=I
      IF(IANS(I).EQ.'.')IDECPT=IDECPT+1
 3060 CONTINUE
      IF(IDECPT.GE.2)GOTO3900
      IF(IDECPT.EQ.1)GOTO3150
      DO3100I=ISTAR2,ISTOP2
      IREV=ISTOP2-(I-ISTAR2)
      IF(IANS(IREV).EQ.' ')GOTO3100
      IF(IANS(IREV).EQ.'0')GOTO3110
      IF(IANS(IREV).EQ.'1')GOTO3110
      IF(IANS(IREV).EQ.'2')GOTO3110
      IF(IANS(IREV).EQ.'3')GOTO3110
      IF(IANS(IREV).EQ.'4')GOTO3110
      IF(IANS(IREV).EQ.'5')GOTO3110
      IF(IANS(IREV).EQ.'6')GOTO3110
      IF(IANS(IREV).EQ.'7')GOTO3110
      IF(IANS(IREV).EQ.'8')GOTO3110
      IF(IANS(IREV).EQ.'9')GOTO3110
      IFLUNK='YES'
      IF(IANS(IREV).EQ.'+')GOTO3900
      IF(IANS(IREV).EQ.'-')GOTO3900
      GOTO3900
 3100 CONTINUE
      IFLUNK='YES'
      GOTO3900
 3110 ILOC=IREV+1
 3150 CONTINUE
      IF(IBUGA3.EQ.'ON')WRITE(ICOUT,3111)ILOC,IDECPT
 3111 FORMAT('ILOC = ',I8,'    IDECPT = ',I8)
      IF(IBUGA3.EQ.'ON')CALL DPWRST('XXX','BUG ')
C
C     SECONDLY, COMPUTE THE INTEGER PART OF THE VALUE
C
      SIGN=1.0
      IDIGI=0
      ISIGN=0
      SUMI=0
      ILOCM1=ILOC-1
      IF(ILOCM1.LT.ISTAR2)GOTO3250
      DO3200I=ISTAR2,ILOCM1
      IREV=ILOCM1-(I-ISTAR2)
      IF(IANS(IREV).EQ.' ')GOTO3200
      IF(IANS(IREV).EQ.'0')GOTO3210
      IF(IANS(IREV).EQ.'1')GOTO3211
      IF(IANS(IREV).EQ.'2')GOTO3232
      IF(IANS(IREV).EQ.'3')GOTO3213
      IF(IANS(IREV).EQ.'4')GOTO3214
      IF(IANS(IREV).EQ.'5')GOTO3215
      IF(IANS(IREV).EQ.'6')GOTO3216
      IF(IANS(IREV).EQ.'7')GOTO3217
      IF(IANS(IREV).EQ.'8')GOTO3218
      IF(IANS(IREV).EQ.'9')GOTO3219
      IF(IANS(IREV).EQ.'+')GOTO3220
      IF(IANS(IREV).EQ.'-')GOTO3221
      IFLUNK='YES'
      GOTO3900
 3210 ITERM=0
      GOTO3225
 3211 ITERM=1
      GOTO3225
 3232 ITERM=2
      GOTO3225
 3213 ITERM=3
      GOTO3225
 3214 ITERM=4
      GOTO3225
 3215 ITERM=5
      GOTO3225
 3216 ITERM=6
      GOTO3225
 3217 ITERM=7
      GOTO3225
 3218 ITERM=8
      GOTO3225
 3219 ITERM=9
      GOTO3225
 3220 ISIGN=ISIGN+1
      GOTO3200
 3221 ISIGN=ISIGN+1
      SIGN=-SIGN
      GOTO3200
 3225 IDIGI=IDIGI+1
      TERM=ITERM
      IEXP=IDIGI-1
      SUMI=SUMI+TERM*(10.0**IEXP)
 3200 CONTINUE
 3250 CONTINUE
      IF(ISIGN.GE.2)GOTO3900
      IF(IBUGA3.EQ.'ON')WRITE(ICOUT,3255)IDIGI,SUMI
 3255 FORMAT('IDIGI = ',I8,'    SUMI = ',F20.10)
      IF(IBUGA3.EQ.'ON')CALL DPWRST('XXX','BUG ')
C
C     THIRDLY, COMPUTE THE DECIMAL PART OF THE VALUE
C
      IDIGD=0
      SUMD=0.0
      ILOCP1=ILOC+1
      IF(ILOCP1.GT.ISTOP2)GOTO3350
      DO3300I=ILOCP1,ISTOP2
      IF(IANS(I).EQ.' ')GOTO3300
      IF(IANS(I).EQ.'0')GOTO3310
      IF(IANS(I).EQ.'1')GOTO3311
      IF(IANS(I).EQ.'2')GOTO3312
      IF(IANS(I).EQ.'3')GOTO3333
      IF(IANS(I).EQ.'4')GOTO3314
      IF(IANS(I).EQ.'5')GOTO3315
      IF(IANS(I).EQ.'6')GOTO3316
      IF(IANS(I).EQ.'7')GOTO3317
      IF(IANS(I).EQ.'8')GOTO3318
      IF(IANS(I).EQ.'9')GOTO3319
      IFLUNK='YES'
      GOTO3900
 3310 ITERM=0
      GOTO3325
 3311 ITERM=1
      GOTO3325
 3312 ITERM=2
      GOTO3325
 3333 ITERM=3
      GOTO3325
 3314 ITERM=4
      GOTO3325
 3315 ITERM=5
      GOTO3325
 3316 ITERM=6
      GOTO3325
 3317 ITERM=7
      GOTO3325
 3318 ITERM=8
      GOTO3325
 3319 ITERM=9
      GOTO3325
 3325 IDIGD=IDIGD+1
      TERM=ITERM
      SUMD=SUMD+TERM/(10.0**IDIGD)
 3300 CONTINUE
 3350 CONTINUE
      IF(IBUGA3.EQ.'ON')WRITE(ICOUT,3355)IDIGD,SUMD
 3355 FORMAT('IDIGD = ',I8,'    SUMD = ',F20.10)
      IF(IBUGA3.EQ.'ON')CALL DPWRST('XXX','BUG ')
      IDIGT=IDIGI+IDIGD
      IF(IDIGT.LE.0)GOTO3900
      FLOAT=SUMI+SUMD
      IF(SIGN.LT.0.0)FLOAT=-FLOAT
      IF(AMIN.LE.FLOAT.AND.FLOAT.LE.AMAX)GOTO3000
      GOTO3900
C
 3900 CONTINUE
      IF(IFLUNK.EQ.'YES')ITYPE2='WORD'
 3000 CONTINUE
 3999 CONTINUE
      GOTO9000
C
 9000 CONTINUE
      IF(IBUGA3.EQ.'OFF')GOTO9900
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9001)
 9001 FORMAT('****** AT THE END       OF DPTYP3--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9002)IFOUZ2,ISTAR2,ISTOP2
 9002 FORMAT('IFOUZ2, ISTAR2, ISTOP2 = ',A4,I8,I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9003)ITYPE2,IHOL,IHOL2,INT,FLOAT,IERROR
 9003 FORMAT('ITYPE2,IHOL,IHOL2,INT,FLOAT,IERROR = ',A4,2X,A4,A4,2X,
     1I8,F15.7,2X,A4)
      CALL DPWRST('XXX','BUG ')
C
 9900 CONTINUE
      RETURN
      END
      SUBROUTINE DPTYPE(IANSLC,IWIDTH,IBUGTY,
     1ICOM,ICOM2,ICOMT,ICOMI,ACOM,ICOMLC,ICOML2,
     1IHNAME,IHNAM2,IUSE,IVALUE,VALUE,NUMNAM,
     1IHARG,IHARG2,IARGT,IARG,ARG,IHARLC,IHARL2,NUMARG,
     1IHOST1,IHOST2)
C
C     PUTPOSE--TAKE THE COMPONENTS OF AN INPUT COMMAND LINE
C              AND COMPUTE HOLLERITH, INTEGER, AND FLOATING POINT
C              EQUIVALENTS FOR EACH COMPONENT.
C     INPUT  ARGUMENTS--IANSLC   (A HOLLERITH VECTOR)
C                     --IWIDTH (AN INTEGER VARIABLE)
C     OUTPUT ARGUMENTS--ICOM   (AN A4 HOLLERITH VALUE FOR COMMAND)
C                     --ICOM2  (AN A4 HOLLERITH VALUE FOR COMMAND)
C                     --ICOMLC  (AN A4 HOLLERITH VALUE FOR COMMAND)
C                     --ICOML2  (AN A4 HOLLERITH VALUE FOR COMMAND)
C                     --IHARG  (AN A4 HOLLERITH VECTOR)
C                     --IHARG2 (AN A4 HOLLERITH VECTOR)
C                     --IARG   (AN INTEGER VECTOR)
C                     --ARG    (A FLOATING POINT VECTOR)
C                     --IHARLC (AN A4 HOLLERITH VECTOR)
C                     --IHARL2 (AN A4 HOLLERITH VECTOR)
C                     --NUMARG (AN INTEGER VARIABLE)
C      NOTE--A GIVEN ARGUMENT MAY END UP WITH
C            3 DIFFERENT REPRESENTATIONS--
C            HOLLERITH, INTEGER, AND FLOATING POINT.
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 10, 1977.
C     UPDATED         --MAY       1978.
C     UPDATED         --OCTOBER   1978.
C     UPDATED         --SEPTEMBER 1980.
C     UPDATED         --NOVEMBER  1980.
C     UPDATED         --AUGUST    1981.
C     UPDATED         --OCTOBER   1981.
C     UPDATED         --MAY       1982.
C     UPDATED         --NOVEMBER  1982.
C     UPDATED         --SEPTEMBER 1986.
C     UPDATED         --FEBRUARY  1989.  ADJUST <> CASE (ALAN)
C     UPDATED         --AUGUST    1990.  FIX HONEYWELL/PRIME > PROBLEM
C     UPDATED         --OCTOBER   1997.  CHECK FOR EXPONENTIAL NUMBERS
C     UPDATED         --OCTOBER   2001.  BUG ON SUN
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
      CHARACTER*4 IERROR
      CHARACTER*4 IANSLC
      CHARACTER*4 IBUGTY
      CHARACTER*4 ICOM
      CHARACTER*4 ICOM2
      CHARACTER*4 ICOMT
      CHARACTER*4 ICOMLC
      CHARACTER*4 ICOML2
      CHARACTER*4 IHNAME
      CHARACTER*4 IHNAM2
      CHARACTER*4 IUSE
      CHARACTER*4 IHARG
      CHARACTER*4 IHARG2
      CHARACTER*4 IARGT
      CHARACTER*4 IHARLC
      CHARACTER*4 IHARL2
      CHARACTER*4 IHOST1
      CHARACTER*4 IHOST2
C
      CHARACTER*4 IFLUNK
      CHARACTER*4 IB
      CHARACTER*4 IANS1
      CHARACTER*4 IANS2
      CHARACTER*4 IH
      CHARACTER*4 IH2
C
      CHARACTER*4 ISUBN1
      CHARACTER*4 ISUBN2
      CHARACTER*4 ISTEPN
C
      CHARACTER*10 ICJUNK
      CHARACTER*5 IFRMT
C
C---------------------------------------------------------------------
C
      DIMENSION IANSLC(*)
C
      DIMENSION IHNAME(*)
      DIMENSION IHNAM2(*)
      DIMENSION IUSE(*)
      DIMENSION IVALUE(*)
      DIMENSION VALUE(*)
C
      DIMENSION IHARG(*)
      DIMENSION IHARG2(*)
      DIMENSION IARGT(*)
      DIMENSION IARG(*)
      DIMENSION ARG(*)
      DIMENSION IHARLC(*)
      DIMENSION IHARL2(*)
C
      DIMENSION ISTART(160)
      DIMENSION ISTOP(160)
      DIMENSION IB(160)
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='DPTY'
      ISUBN2='PE  '
      IERROR='OFF'
C
      IF(IBUGTY.EQ.'OFF')GOTO90
      WRITE(ICOUT,999)
  999 FORMAT(1X)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,51)
   51 FORMAT('***** AT THE BEGINNING OF DPTYPE--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,52)IWIDTH
   52 FORMAT('IWIDTH = ',I6)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,53)(IANSLC(I),I=1,IWIDTH)
   53 FORMAT('(IANSLC(.) = ',120A1)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,61)IHOST1,IHOST2
   61 FORMAT('IHOST1,IHOST2 = ',A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
   90 CONTINUE
C
C               ************************************************************
C               **  DEFINE NUMASC = NUMBER OF ASCII CHARACTERS PER WORD.  **
C               **  THIS IS 4 REGARDLESS OF THE COMPUTER MAKE AND         **
C               **  REGARDLESS OF THE WORD SIZE.                          **
C               ************************************************************
C
      NUMASC=4
C
C               **********************************
C               **  STEP 1--                    **
C               **  INITIALIZE SOME VARIABLES.  **
C               **********************************
C
      ISTEPN='1'
      IF(IBUGTY.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      ICOM='    '
      ICOM2='    '
      ICOMT='NUMB'
      ICOMI=(-1)
      ACOM=(-1.0)
      ICOMLC='    '
      ICOML2='    '
      DO110I=1,100
      IHARG(I)='    '
      IHARG2(I)='    '
      IARGT(I)='NUMB'
      IARG(I)=(-1)
      ARG(I)=(-1.0)
      IHARLC(I)='    '
      IHARL2(I)='    '
  110 CONTINUE
      NUMARG=(-1)
C
C               ****************************************************************
C               **  STEP 2--
C               **  SEPARATE IANSLC(.) INTO COMPONENTS WHERE
C               **  A COMPONENT IS DEFINED AS THAT SEPARATED BY 1 OR MORE BLANKS
C               **  IN ADDITION, AN EQUAL SIGN (=),
CCCCC --------------------------------------------------------------------
CCCCC THE FOLLOWING DEALING WITH > AND < WAS DEACTIVATED AUGUST 1990
CCCCC DUE TO FACT THAT > IS A DIRECTORY SEPARATOR FOR   AUGUST 1990
CCCCC CERTAIN COMPUTERS (E.G., HONEYWELL, PRIME).  AUGUST 1990
CCCCC AND     CALL DATAPLOT>DPSYSF.TEX    WAS BOMBING      AUGUST 1990
CCCCC WITH ARRAY OVERFLOW.                              AUGUST 1990
CCCCC THEREFORE--USER MUST MANUALLY MAKE SURE THAT > AND < AUGUST 1990
CCCCC            ARE SURROUNDED BY SPACES IN MATH COMMANDS.  AUGUST 1990
C               **  A GREATER-THAN SIGN (>), AND A LESS-THAN SIGN (<)
C               **  ARE ALSO CONSIDERED AS A COMPONENT UNTO ITSELF
C               **  REGARDLESS OF WHETHER OR NOT
C               **  IT HAS PRECEEDING AND SUCCEEDING BLANKS.
CCCCC --------------------------------------------------------------------
C               **  FINALLY, A HYPHEN WHEN IMMEDIATELY PRECEDED
C               **  AND SUCCEEDED BY A NON-BLANK CHARACTER
C               **  WILL ALSO BE CONSIDERED AS A SEPARATOR
C               **  AND SO WILL NOT BE COPIED AS A CHARACTER.
C               **  HOWEVER, IF THERE IS A BLANK BEFORE OR AFTER THE HYPHEN
C               **  (AS IN DEFINING THE    -    AS A PLOT CHARACTER TYPE),
C               **  THEN THE HYPHEN WILL BE TREATED AND COPIED AS A SEPARATE
C               **  COMPONENT.
C               **  OCTOBER 1997: CHECK FOR EXPONENTIAL NOTATION, I.E.
C               **      1.2E02, 1.2E-02, 1.2E+02, 1.2D02, 1.2D-02, 1.2D+02
C               **  TREAT THE CASE WHERE THE ORIGINAL LINE IANSLC(.) WAS NON-EMP
C               **  LOCATE THE START AND STOP COLUMNS FOR EACH 'WORD'.
C               ****************************************************************
C
      ISTEPN='2'
      IF(IBUGTY.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      NUMWD=0
      DO300I=1,IWIDTH
      IM1=I-1
      IM2=I-2
      IP1=I+1
C
      IF(IANSLC(I).EQ.'=')GOTO350
      IF(IHOST1.EQ.'HONE')GOTO321
CCCCC IF(IANSLC(I).EQ.'>')GOTO350
CCCCC IF(IANSLC(I).EQ.'<')GOTO350
  321 CONTINUE
C  ADD "<>  " CASE
      IF(I.LE.1)GOTO346
      IF(IANSLC(I).EQ.'>'.AND.IANSLC(I-1).EQ.'<')GOTO300
  346 CONTINUE
CCCCC THE FOLLOWING LINE WAS COMMENTED OUT AUGUST 1990
CCCCC DUE TO BOMB ON HONEYWELL/PRIME WHEN TRYING TO EXECUTE  AUGUST 1990
CCCCC CALL DATAPLOT>DPSYSF.TEX   (> IS A DIRECTORY SYMBOL   AUGUST 1990
CCCCC ON HONEYWELL AND PRIME)               AUGUST 1990
CCCCC IF(IANSLC(I).EQ.'>')GOTO350
      IF(IANSLC(I).EQ.'<'.AND.IANSLC(I+1).EQ.'>')GOTO345
CCCCC THE FOLLOWING LINE WAS COMMENTED OUT AUGUST 1990
CCCCC TO PARALLEL THE COMMENTING OUT FOR    >   2 LINES ABOVE  AUGUST 1990
CCCCC IF(IANSLC(I).EQ.'<')GOTO350
C  END ADD
      IF(IANSLC(I).NE.' '.AND.I.LE.1)GOTO350
C
      IF(I.LE.1)GOTO360
      IF(IANSLC(I).NE.' '.AND.IANSLC(IM1).EQ.' ')GOTO350
      IF(IANSLC(I).NE.' '.AND.IANSLC(IM1).EQ.'=')GOTO350
      IF(IHOST1.EQ.'HONE')GOTO331
CCCCC IF(IANSLC(I).NE.' '.AND.IANSLC(IM1).EQ.'>')GOTO350
CCCCC IF(IANSLC(I).NE.' '.AND.IANSLC(IM1).EQ.'<')GOTO350
  331 CONTINUE
C
      IF(I.LE.2)GOTO360
CCCCC OCTOBER 1997.  CHECK FOR EXPONENTIAL NOTATION,
CCCCC I.E., IF "-" IS PRECEDED BY AN "E" AND SUCCEDED BY A
CCCCC NUMBER.
      IF(IANSLC(IM1).EQ.'-')THEN
        IF(IANSLC(IM2).EQ.'E' .OR. IANSLC(IM2).EQ.'e')THEN
          CALL DPCOAN(IANSLC(I),IJUNK)
          IF(IJUNK.GE.48 .AND. IJUNK.LE.57)GOTO370
        ENDIF
      ENDIF
C
      IF(IANSLC(I).NE.' '.AND.IANSLC(IM1).EQ.'-')GOTO340
      GOTO360
C
  340 CONTINUE
      IF(IANSLC(IM2).EQ.'=')GOTO360
      IF(IANSLC(IM2).EQ.'-')GOTO355
      IF(IANSLC(IM2).NE.' ')GOTO350
      GOTO360
C
C  ADD "<>  " CASE
  345 CONTINUE
      NUMWD=NUMWD+1
      ISTART(NUMWD)=I
      ISTOP(NUMWD)=I+1
      GOTO390
C  END ADD
  350 CONTINUE
      NUMWD=NUMWD+1
C
  355 CONTINUE
      ISTART(NUMWD)=I
C
  360 CONTINUE
      IF(IANSLC(I).EQ.'=')GOTO370
CCCCC IF(IANSLC(I).EQ.'>')GOTO370
CCCCC IF(IANSLC(I).EQ.'<')GOTO370
      IF(IANSLC(I).NE.' '.AND.I.GE.IWIDTH)GOTO370
C
      IF(I.GE.IWIDTH)GOTO390
      IF(IANSLC(I).NE.' '.AND.IANSLC(IP1).EQ.' ')GOTO370
      IF(IANSLC(I).NE.' '.AND.IANSLC(IP1).EQ.'=')GOTO370
CCCCC IF(IANSLC(I).NE.' '.AND.IANSLC(IP1).EQ.'>')GOTO370
CCCCC IF(IANSLC(I).NE.' '.AND.IANSLC(IP1).EQ.'<')GOTO370
      IF(IANSLC(I).NE.' '.AND.IANSLC(IP1).EQ.'-')GOTO370
C
      GOTO390
C
  370 CONTINUE
      ISTOP(NUMWD)=I
C
  390 CONTINUE
      IF(IBUGTY.EQ.'ON')
     1WRITE(ICOUT,391)NUMWD
  391 FORMAT('NUMWD = ',I8)
      IF(IBUGTY.EQ.'ON')
     1CALL DPWRST('XXX','BUG ')
      IF(IBUGTY.EQ.'ON'.AND.NUMWD.GE.1)
     1WRITE(ICOUT,392)I,NUMWD,ISTART(NUMWD),ISTOP(NUMWD)
  392 FORMAT('I,NUMWD,ISTART(NUMWD),ISTOP(NUMWD) = ',4I8)
      IF(IBUGTY.EQ.'ON'.AND.NUMWD.GE.1)
     1CALL DPWRST('XXX','BUG ')
  300 CONTINUE
      IF(NUMWD.LE.0)GOTO9000
C
C               ***********************************************************
C               **  STEP 3--                                             **
C               **  CONVERT THE FIRST STRING TO A COMMAND                **
C               **  EXTRACT THE FIRST 4 CHARACTERS OF                    **
C               **  THE COMMAND.  PACK THESE 4 CHARACTERS                **
C               **  INTO THE HOLLERITH VARIABLE ICOM.                    **
C               **  ONLY 4 CHARACTERS ARE RETAINED                       **
C               **  REGARDLESS OF THE MAX NUMBER OF                      **
C               **  CHARACTERS PER WORD ON A GIVEN                       **
C               **  COMPUTER (E.G., EVEN THOUGH UNIVAC                   **
C               **  COULD RETAIN 6 CHARACTERS PER WORD,                  **
C               **  IT IS SUFFICIENT              TO RETAIN              **
C               **  ONLY 4 CHARACTERS PER WORD--ON A UNIVAC              **
C               **  OR ANY OTHER COMPUTER.                               **
C               **  OR ANY OTHER COMPUTER.                               **
C               **  ALSO, IF THE NUMBER OF CHARACTERS                    **
C               **  IN THE FIRST WORD IS 5 OR MORE,                      **
C               **  THEN PACK CHARACTERS 5 THROUGH 8                     **
C               **  (OR CHARACTERS 5 THROUGH THE END OF THE WORD         **
C               **  IF THE END OF THE WORD IS BEFORE CHARACTER 8)        **
C               **  INTO THE 4-CHARACTER WORD ICOM2.                     **
C               ***********************************************************
C
      ISTEPN='3'
      IF(IBUGTY.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IWORD=1
      IWID=ISTOP(IWORD)-ISTART(IWORD)+1
      JMIN=ISTART(IWORD)
      JMAX=ISTOP(IWORD)
      I=0
      DO800J=JMIN,JMAX
      I=I+1
      IB(I)=IANSLC(J)
  800 CONTINUE
C
      IANS1='    '
      IANS2='    '
      IMAX=2*NUMASC
      IF(IWID.LT.IMAX)IMAX=IWID
      IF(IBUGTY.EQ.'ON')WRITE(ICOUT,901)IMAX
  901 FORMAT('IMAX = ',I6)
      IF(IBUGTY.EQ.'ON')CALL DPWRST('XXX','BUG ')
      DO900I=1,IMAX
      IF(IB(I).EQ.' ')GOTO910
      IM4=I-4
      IF(I.LE.NUMASC)IANS1(I:I)=IB(I)
      IF(I.GT.NUMASC)IANS2(IM4:IM4)=IB(I)
  900 CONTINUE
  910 CONTINUE
      ICOMLC=IANS1
      ICOML2=IANS2
      CALL DPUPP4(ICOMLC,ICOM,IBUGTY,IERROR)
      CALL DPUPP4(ICOML2,ICOM2,IBUGTY,IERROR)
C
C               ********************************************
C               **  STEP 4--                              **
C               **  CONVERT STRINGS 2 THROUGH END         **
C               **  TO HOLLERITH A4 ARGUMENTS.            **
C               **  IF MORE THAN 8 CHARACTERS,            **
C               **  CONVERT ONLY THE FIRST 8 CHARACTERS   **
C               **  (REGARDLESS OF THE COMPUTER TYPE).    **
C               ********************************************
C
      ISTEPN='4'
      IF(IBUGTY.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      NUMARG=NUMWD-1
      IF(NUMWD.LE.1)GOTO1999
      DO1000IWORD=2,NUMWD
      IWID=ISTOP(IWORD)-ISTART(IWORD)+1
C
      JMIN=ISTART(IWORD)
      JMAX=ISTOP(IWORD)
      I=0
      DO1100J=JMIN,JMAX
      I=I+1
      IB(I)=IANSLC(J)
 1100 CONTINUE
C
      IANS1='    '
      IANS2='    '
      IMAX=2*NUMASC
      IF(IWID.LT.IMAX)IMAX=IWID
      DO1200I=1,IMAX
      IF(IB(I).EQ.' ')GOTO1210
      IM4=I-4
      IF(I.LE.NUMASC)IANS1(I:I)=IB(I)
      IF(I.GT.NUMASC)IANS2(IM4:IM4)=IB(I)
 1200 CONTINUE
 1210 CONTINUE
      IWORM1=IWORD-1
      IHARLC(IWORM1)=IANS1
      IHARL2(IWORM1)=IANS2
C
 1000 CONTINUE
 1999 CONTINUE
C
C               **********************************************************
C               **  STEP 4.5--                                            **
C               **  CONVERT EACH ARGUMENT TO UPPER CASE.            **
C               **********************************************************
C
      ISTEPN='4.5'
      IF(IBUGTY.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(NUMARG.LE.0)GOTO1390
      DO1300I=1,NUMARG
      CALL DPUPP4(IHARLC(I),IHARG(I),IBUGTY,IERROR)
      CALL DPUPP4(IHARL2(I),IHARG2(I),IBUGTY,IERROR)
 1300 CONTINUE
 1390 CONTINUE
C
C               **********************************************************
C               **  STEP 5--                                            **
C               **  CONVERT STRINGS 1 THROUGH END TO INTEGER ARGUMENTS  **
C               **********************************************************
C
      ISTEPN='5'
      IF(IBUGTY.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IF(NUMWD.LE.0)GOTO2999
      DO2000IWORD=1,NUMWD
      IWORM1=IWORD-1
C
      IF(IWORD.LE.1)GOTO2005
      GOTO2006
C
 2005 CONTINUE
      IH=ICOM
      IH2=ICOM2
      GOTO2009
C
 2006 CONTINUE
      IH=IHARG(IWORM1)
      IH2=IHARG2(IWORM1)
      GOTO2009
C
 2009 CONTINUE
      IF(NUMNAM.LE.0)GOTO2040
      DO2010INAME=1,NUMNAM
      IF(IH.EQ.IHNAME(INAME).AND.IH2.EQ.IHNAM2(INAME))GOTO2020
      GOTO2010
 2020 CONTINUE
      IF(IUSE(INAME).EQ.'P')GOTO2030
      GOTO2040
 2030 CONTINUE
      IF(IWORM1.GT.0)IARGT(IWORM1)='NUMB'
      IF(IWORM1.GT.0)IARG(IWORM1)=IVALUE(INAME)
      GOTO2000
 2010 CONTINUE
 2040 CONTINUE
C
      IFLUNK='NO'
      IANS3=(-1)
      IWID=ISTOP(IWORD)-ISTART(IWORD)+1
      JMIN=ISTART(IWORD)
      JMAX=ISTOP(IWORD)
      I=0
      DO2100J=JMIN,JMAX
      I=I+1
      IB(I)=IANSLC(J)
 2100 CONTINUE
C
      IDIG=0
      ISIGN=0
      IDECPT=0
      ISUM=0
      DO2700I=1,IWID
      IREV=IWID-I+1
      IF(IB(IREV).EQ.' ')GOTO2700
      IF(IB(IREV).EQ.'0')GOTO2710
      IF(IB(IREV).EQ.'1')GOTO2711
      IF(IB(IREV).EQ.'2')GOTO2712
      IF(IB(IREV).EQ.'3')GOTO2713
      IF(IB(IREV).EQ.'4')GOTO2714
      IF(IB(IREV).EQ.'5')GOTO2715
      IF(IB(IREV).EQ.'6')GOTO2716
      IF(IB(IREV).EQ.'7')GOTO2717
      IF(IB(IREV).EQ.'8')GOTO2718
      IF(IB(IREV).EQ.'9')GOTO2719
      IF(IB(IREV).EQ.'+')GOTO2720
      IF(IB(IREV).EQ.'-')GOTO2721
      IF(IB(IREV).EQ.'.')GOTO2722
      IFLUNK='YES'
      GOTO2800
 2710 ITERM=0
      GOTO2725
 2711 ITERM=1
      GOTO2725
 2712 ITERM=2
      GOTO2725
 2713 ITERM=3
      GOTO2725
 2714 ITERM=4
      GOTO2725
 2715 ITERM=5
      GOTO2725
 2716 ITERM=6
      GOTO2725
 2717 ITERM=7
      GOTO2725
 2718 ITERM=8
      GOTO2725
 2719 ITERM=9
      GOTO2725
 2720 ISIGN=ISIGN+1
      GOTO2700
 2721 ISIGN=ISIGN+1
      ISUM=-ISUM
      GOTO2700
 2722 IDECPT=IDECPT+1
      IF(IDECPT.EQ.1.AND.IDIG.EQ.0)GOTO2700
      GOTO2800
 2725 IDIG=IDIG+1
      IF(IDIG.EQ.1)THEN
        ISUM=ISUM+ITERM
      ELSE
CCCCC FOLLOWING FIXES WHAT APPEARS TO BE COMPILER BUG ON LAHEY 95
CCCCC COMPILER.  MAY 2001
CCCCC SPECIFICALLY, 10**IPOW SEEMS TO RETURN A 0.
CCCCC   ISUM=ISUM+ITERM*10**(IDIG-1)
        ITERM1=IDIG-1
        ITERM2=INT(10.0**ITERM1 + 0.01)
        ISUM=ISUM+ITERM*ITERM2
      ENDIF
 2700 CONTINUE
      IF(IDIG.LE.0)GOTO2800
      IF(ISIGN.GE.2)GOTO2800
      IANS3=ISUM
 2800 CONTINUE
      IWORM1=IWORD-1
      IF(IWORD.LE.1)ICOMI=IANS3
      IF(IWORD.GE.2)IARG(IWORM1)=IANS3
      IF(IWORD.LE.1.AND.IFLUNK.EQ.'YES')ICOMT='WORD'
      IF(IWORD.GE.2.AND.IFLUNK.EQ.'YES')IARGT(IWORM1)='WORD'
 2000 CONTINUE
 2999 CONTINUE
C
C               ***************************************************************
C               **  STEP 6--                                                 **
C               **  CONVERT STRINGS 2 THROUGH N TO FLOATING POINT ARGUMENTS  **
C               ***************************************************************
C
      ISTEPN='6'
      IF(IBUGTY.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
C               ************************************************************
C               **  STEP 6.1--                                            **
C               **  FIRST OF ALL, LOCATE THE DECIMAL POINT (IF EXISTENT)  **
C               **  OCTOBER 1997.  CHECK FOR EXPONENTIAL NOTATION.   I.E. **
C               **  1.2E02, 1.2E-02, 1.2E+02                              **
C               ************************************************************
C
      ISTEPN='6.1'
      IF(IBUGTY.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CCCCC OCTOBER 1997.  FOR EXPONENTIAL NOTATION, NEED TO ALLOW LARGER NUMBERS
CCCCC AMIN=-1000000.
CCCCC AMAX=+1000000.
      AMIN=CPUMIN
      AMAX=CPUMAX
      NUMARG=NUMWD-1
CCCCC IF(NUMARG.LE.0)GOTO3999
      IF(NUMWD.LE.0)GOTO3999
      DO3000IWORD=1,NUMWD
C
      IWORM1=IWORD-1
C
      IF(IWORD.LE.1)GOTO3005
      GOTO3006
C
 3005 CONTINUE
      IH=ICOM
      IH2=ICOM2
      GOTO3009
C
 3006 CONTINUE
      IH=IHARG(IWORM1)
      IH2=IHARG2(IWORM1)
      GOTO3009
C
 3009 CONTINUE
C
      IF(NUMNAM.LE.0)GOTO3040
      DO3010INAME=1,NUMNAM
      IF(IH.EQ.IHNAME(INAME).AND.IH2.EQ.IHNAM2(INAME))GOTO3020
      GOTO3010
 3020 CONTINUE
      IF(IUSE(INAME).EQ.'P')GOTO3030
      GOTO3040
 3030 CONTINUE
      IF(IWORD.LE.1)ICOMT='NUMB'
      IF(IWORD.GE.2)IARGT(IWORM1)='NUMB'
      IF(IWORD.LE.1)ACOM=VALUE(INAME)
      IF(IWORD.GE.2)ARG(IWORM1)=VALUE(INAME)
      GOTO3000
 3010 CONTINUE
 3040 CONTINUE
C
      IFLUNK='NO'
      ANS2=(-1.0)
      IWID=ISTOP(IWORD)-ISTART(IWORD)+1
      JMIN=ISTART(IWORD)
      JMAX=ISTOP(IWORD)
      I=0
      DO3050J=JMIN,JMAX
      I=I+1
      IB(I)=IANSLC(J)
 3050 CONTINUE
C
      ILOC=0
      IDECPT=0
      ILOCE=0
      IEXPPT=0
      DO3060I=1,IWID
      IF(IB(I).EQ.'.')ILOC=I
      IF(IB(I).EQ.'.')IDECPT=IDECPT+1
      IF(IB(I).EQ.'E'.OR.IB(I).EQ.'e')ILOCE=I
      IF(IB(I).EQ.'E'.OR.IB(I).EQ.'e')IEXPPT=IEXPPT+1
 3060 CONTINUE
      IF(IDECPT.GE.2)GOTO3900
      IF(IEXPPT.GE.2)GOTO3900
C
      IESCAL=0
      IESIGN=1
      IWID2=IWID
      IF(ILOCE+1.GT.IWID)THEN
        IFLUNK='YES'
        GOTO3900
      ENDIF
      IF(IEXPPT.EQ.1)THEN
        IWID=ILOCE-1
        IF(IB(ILOCE+1).EQ.'-')THEN
          IESIGN=-1
          ISTRT2=ILOCE+2
        ELSEIF(IB(ILOCE+1).EQ.'+')THEN
          IESIGN=1
          ISTRT2=ILOCE+2
        ELSE
          IESIGN=1
          ISTRT2=ILOCE+1
        ENDIF
        ICOUNT=0
        ICJUNK='        '
        IF(ISTRT2.GT.IWID2)THEN
          IFLUNK='YES'
          GOTO3900
        ENDIF
        DO13065I=ISTRT2,IWID2
          IF(IB(I).EQ.' ')GOTO13065
          IF(IB(I).EQ.'0')GOTO13060
          IF(IB(I).EQ.'1')GOTO13060
          IF(IB(I).EQ.'2')GOTO13060
          IF(IB(I).EQ.'3')GOTO13060
          IF(IB(I).EQ.'4')GOTO13060
          IF(IB(I).EQ.'5')GOTO13060
          IF(IB(I).EQ.'6')GOTO13060
          IF(IB(I).EQ.'7')GOTO13060
          IF(IB(I).EQ.'8')GOTO13060
          IF(IB(I).EQ.'9')GOTO13060
          IFLUNK='YES'
          GOTO3900
13060     CONTINUE
          ICOUNT=ICOUNT+1
          ICJUNK(ICOUNT:ICOUNT)=IB(I)(1:1)
13065   CONTINUE
CCCCC   FOLLOWING TO ADDRESS BUG ON SUN.  OCTOBER 2001.
        IFRMT(1:5)='(I  )'
        IF(ICOUNT.LE.9)THEN
          WRITE(IFRMT(3:3),'(I1)')ICOUNT
        ELSE
          WRITE(IFRMT(3:4),'(I2)')ICOUNT
        ENDIF
        READ(ICJUNK(1:ICOUNT),IFRMT)IESCAL
      ENDIF
C
      IF(IDECPT.EQ.1)GOTO3150
      DO3100I=1,IWID
      IREV=IWID-I+1
      IF(IB(IREV).EQ.' ')GOTO3100
      IF(IB(IREV).EQ.'0')GOTO3110
      IF(IB(IREV).EQ.'1')GOTO3110
      IF(IB(IREV).EQ.'2')GOTO3110
      IF(IB(IREV).EQ.'3')GOTO3110
      IF(IB(IREV).EQ.'4')GOTO3110
      IF(IB(IREV).EQ.'5')GOTO3110
      IF(IB(IREV).EQ.'6')GOTO3110
      IF(IB(IREV).EQ.'7')GOTO3110
      IF(IB(IREV).EQ.'8')GOTO3110
      IF(IB(IREV).EQ.'9')GOTO3110
      IFLUNK='YES'
      IF(IB(IREV).EQ.'+')GOTO3900
      IF(IB(IREV).EQ.'-')GOTO3900
      GOTO3900
 3100 CONTINUE
      IFLUNK='YES'
      GOTO3900
 3110 ILOC=IREV+1
 3150 CONTINUE
      IF(IBUGTY.NE.'OFF')WRITE(ICOUT,3111)ILOC,IDECPT
 3111 FORMAT('ILOC = ',I8,'    IDECPT = ',I8)
      IF(IBUGTY.NE.'OFF')CALL DPWRST('XXX','BUG ')
C
C               *******************************************************
C               **  STEP 6.2--                                       **
C               **  SECONDLY, COMPUTE THE INTEGER PART OF THE VALUE  **
C               *******************************************************
C
      ISTEPN='6.2'
      IF(IBUGTY.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      SIGN=1.0
      IDIGI=0
      ISIGN=0
      SUMI=0
      ILOCM1=ILOC-1
      IF(ILOCM1.LT.1)GOTO3250
      DO3200I=1,ILOCM1
      IREV=ILOCM1-I+1
      IF(IB(IREV).EQ.' ')GOTO3200
      IF(IB(IREV).EQ.'0')GOTO3210
      IF(IB(IREV).EQ.'1')GOTO3211
      IF(IB(IREV).EQ.'2')GOTO3232
      IF(IB(IREV).EQ.'3')GOTO3213
      IF(IB(IREV).EQ.'4')GOTO3214
      IF(IB(IREV).EQ.'5')GOTO3215
      IF(IB(IREV).EQ.'6')GOTO3216
      IF(IB(IREV).EQ.'7')GOTO3217
      IF(IB(IREV).EQ.'8')GOTO3218
      IF(IB(IREV).EQ.'9')GOTO3219
      IF(IB(IREV).EQ.'+')GOTO3220
      IF(IB(IREV).EQ.'-')GOTO3221
      IFLUNK='YES'
      GOTO3900
 3210 ITERM=0
      GOTO3225
 3211 ITERM=1
      GOTO3225
 3232 ITERM=2
      GOTO3225
 3213 ITERM=3
      GOTO3225
 3214 ITERM=4
      GOTO3225
 3215 ITERM=5
      GOTO3225
 3216 ITERM=6
      GOTO3225
 3217 ITERM=7
      GOTO3225
 3218 ITERM=8
      GOTO3225
 3219 ITERM=9
      GOTO3225
 3220 ISIGN=ISIGN+1
      GOTO3200
 3221 ISIGN=ISIGN+1
      SIGN=-SIGN
      GOTO3200
 3225 IDIGI=IDIGI+1
      TERM=ITERM
      IEXP=IDIGI-1
      SUMI=SUMI+TERM*(10.0          **IEXP)
 3200 CONTINUE
 3250 CONTINUE
      IF(ISIGN.GE.2)GOTO3900
      IF(IBUGTY.NE.'OFF')WRITE(ICOUT,3255)IDIGI,SUMI
 3255 FORMAT('IDIGI = ',I8,'    SUMI = ',F20.10)
      IF(IBUGTY.NE.'OFF')CALL DPWRST('XXX','BUG ')
C
C               ******************************************************
C               **  STEP 6.3--                                      **
C               **  THIRDLY, COMPUTE THE DECIMAL PART OF THE VALUE  **
C               ******************************************************
C
      ISTEPN='6.3'
      IF(IBUGTY.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
      IDIGD=0
      SUMD=0.0
      ILOCP1=ILOC+1
      IF(ILOCP1.GT.IWID)GOTO3350
      DO3300I=ILOCP1,IWID
      IF(IB(I).EQ.' ')GOTO3300
      IF(IB(I).EQ.'0')GOTO3310
      IF(IB(I).EQ.'1')GOTO3311
      IF(IB(I).EQ.'2')GOTO3312
      IF(IB(I).EQ.'3')GOTO3333
      IF(IB(I).EQ.'4')GOTO3314
      IF(IB(I).EQ.'5')GOTO3315
      IF(IB(I).EQ.'6')GOTO3316
      IF(IB(I).EQ.'7')GOTO3317
      IF(IB(I).EQ.'8')GOTO3318
      IF(IB(I).EQ.'9')GOTO3319
      IFLUNK='YES'
      GOTO3900
 3310 ITERM=0
      GOTO3325
 3311 ITERM=1
      GOTO3325
 3312 ITERM=2
      GOTO3325
 3333 ITERM=3
      GOTO3325
 3314 ITERM=4
      GOTO3325
 3315 ITERM=5
      GOTO3325
 3316 ITERM=6
      GOTO3325
 3317 ITERM=7
      GOTO3325
 3318 ITERM=8
      GOTO3325
 3319 ITERM=9
      GOTO3325
 3325 IDIGD=IDIGD+1
      TERM=ITERM
      SUMD=SUMD+TERM/(10.0          **IDIGD)
 3300 CONTINUE
 3350 CONTINUE
      IF(IBUGTY.NE.'OFF')WRITE(ICOUT,3355)IDIGD,SUMD
 3355 FORMAT('IDIGD = ',I8,'    SUMD = ',F20.10)
      IF(IBUGTY.NE.'OFF')CALL DPWRST('XXX','BUG ')
      IDIGT=IDIGI+IDIGD
      IF(IDIGT.LE.0)GOTO3900
      ANS2=SUMI+SUMD
      IF(SIGN.LT.0.0)ANS2=-ANS2
      ANS2=ANS2*10.0**(IESIGN*IESCAL)
      IWORM1=IWORD-1
      IF(IWORD.LE.1)ACOM=ANS2
      IF(IWORD.GE.2)ARG(IWORM1)=ANS2
CCCC OCTOBER 1997.  IF EXPONENTIAL NUMBER, NEED TO RESET IARGT
      IF(AMIN.LE.ANS2.AND.ANS2.LE.AMAX)THEN
        IF(IWORM1.GE.1)IARGT(IWORM1)='NUMB'
        GOTO3000
      ELSE
        GOTO3900
      ENDIF
C
 3900 CONTINUE
      IF(IWORM1.LT.1) GOTO 3000
      IWORM1=IWORD-1
      ARG(IWORM1)=ANS2
      IF(IFLUNK.EQ.'YES')IARGT(IWORM1)='WORD'
 3000 CONTINUE
 3999 CONTINUE
C
C               *****************
C               **  STEP 90--  **
C               **  EXIT       **
C               *****************
C
 9000 CONTINUE
      IF(IBUGTY.EQ.'OFF')GOTO9090
      WRITE(ICOUT,999)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9011)
 9011 FORMAT('***** AT THE END       OF DPTYPE--')
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9012)ICOM,ICOM2,ICOMT,ACOM,ICOMI
 9012 FORMAT('ICOM,ICOM2,ICOMT,ACOM,ICOMI = ',
     1A4,2X,A4,2X,A4,E15.7,I8)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9013)ICOMLC,ICOML2
 9013 FORMAT('ICOMLC,ICOML2 = ',A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9014)NUMARG
 9014 FORMAT('NUMARG = ',I6)
      CALL DPWRST('XXX','BUG ')
      DO9015I=1,NUMARG
      WRITE(ICOUT,9016)I,IHARG(I),IHARG2(I),IARG(I),ARG(I),IARGT(I)
 9016 FORMAT('I,IHARG(I),IHARG2(I),IARG(I),ARG(I),IARGT(I) = ',
     1I6,1X,A4,1X,A4,1X,I6,1X,E15.7,1X,A4)
      CALL DPWRST('XXX','BUG ')
      WRITE(ICOUT,9017)I,IHARLC(I),IHARL2(I)
 9017 FORMAT('I,IHARLC(I),IHARL2(I) = ',I6,1X,A4,1X,A4)
      CALL DPWRST('XXX','BUG ')
 9015 CONTINUE
      WRITE(ICOUT,9021)IHOST1,IHOST2
 9021 FORMAT('IHOST1,IHOST2 = ',A4,2X,A4)
      CALL DPWRST('XXX','BUG ')
 9090 CONTINUE
C
      RETURN
      END