SUBROUTINE DPPROF(NPLOTV,NPLOTP,NS,ICASPL,IAND1,IAND2,
1IBUGG2,IBUGG3,IBUGQ,ISUBRO,IFOUND,IERROR)
C
C PURPOSE--GENERATE A PROFILE PLOT--
C A MULTIVARIATE TECHNICQUE WHICH PLOTS A STANDARDIZED (0 TO 1)
C VARIABLE VERSUS DUMMY VARIABLE NUMBER.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
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 --JUNE 1990. TEMPORARY ARRAYS TO GARBAGE COMMON
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICASPL
CHARACTER*4 IAND1
CHARACTER*4 IAND2
CHARACTER*4 IBUGG2
CHARACTER*4 IBUGG3
CHARACTER*4 IBUGQ
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHWUSE
CHARACTER*4 MESSAG
CHARACTER*4 ICASEQ
CCCCC CHARACTER*4 IH
CCCCC CHARACTER*4 IH2
CCCCC CHARACTER*4 IERRO2
CHARACTER*4 IHRIGH
CHARACTER*4 IHRIG2
CCCCC CHARACTER*4 IHHOR
CCCCC CHARACTER*4 IHHOR2
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
INCLUDE 'DPCOPA.INC'
C
DIMENSION Z1(MAXOBV)
DIMENSION Z2(MAXOBV)
DIMENSION Z3(MAXOBV)
DIMENSION YSUB(MAXOBV)
DIMENSION YFULL(MAXOBV)
DIMENSION XTEMP(MAXOBV)
CCCCC FOLLOWING LINES ADDED JUNE, 1990
INCLUDE 'DPCOZZ.INC'
EQUIVALENCE (GARBAG(IGARB1),Z1(1))
EQUIVALENCE (GARBAG(IGARB2),Z2(1))
EQUIVALENCE (GARBAG(IGARB3),Z3(1))
EQUIVALENCE (GARBAG(IGARB4),YSUB(1))
EQUIVALENCE (GARBAG(IGARB5),YFULL(1))
EQUIVALENCE (GARBAG(IGARB6),XTEMP(1))
CCCCC END CHANGE
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
IERROR='NO'
C
ISUBN1='DPPR'
ISUBN2='OF '
C
MAXCP1=MAXCOL+1
MAXCP2=MAXCOL+2
MAXCP3=MAXCOL+3
MAXCP4=MAXCOL+4
MAXCP5=MAXCOL+5
MAXCP6=MAXCOL+6
C
MAXV2=2
MINN2=2
C
ICOLH=0
C
C ***********************************
C ** TREAT THE PROFILE PLOT CASE **
C ***********************************
C
IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'PROF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPPROF--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGG2,IBUGG3,IBUGQ,ISUBRO
52 FORMAT('IBUGG2,IBUGG3,IBUGQ,ISUBRO = ',A4,2X,A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)ICASPL,IAND1,IAND2
53 FORMAT('ICASPL,IAND1,IAND2 = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C ***************************
C ** STEP 1-- **
C ** EXTRACT THE COMMAND **
C ***************************
C
ISTEPN='11'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PROF')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASPL='PROF'
C
IF(NUMARG.GE.1.AND.IHARG(1).EQ.'PLOT')GOTO111
GOTO119
C
111 CONTINUE
ILASTC=1
CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
GOTO119
C
119 CONTINUE
IFOUND='YES'
GOTO190
C
190 CONTINUE
C
C ***********************************************************
C ** STEP 2-- **
C ** CHECK FOR THE PROPER NUMBER OF INPUT ARGUMENTS. **
C ***********************************************************
C
ISTEPN='2'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PROF')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
MINNA=1
MAXNA=100
CALL CHECKA(NUMARG,MINNA,MAXNA,IANS,IWIDTH,ISUBN1,ISUBN2,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C *****************************************
C ** STEP 11-- **
C ** FOR A PROFILE PLOT, **
C ** WE MUST HAVE A SUBSET OR FOR **
C ** SO AS TO INDICATE EXACTLY WHICH **
C ** CAR, ETC. THE SINGLE PROFILE PLOT **
C ** WILL BE FORMED FOR. **
C ** CHECK TO SEE THE TYPE SUBCASE **
C ** (BASED ON THE QUALIFIER)-- **
C ** 1) UNQUALIFIED (THAT IS, FULL); **
C ** 2) SUBSET/EXCEPT; OR **
C ** 3) FOR. **
C *****************************************
C
ISTEPN='11'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PROF')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='FULL'
ILOCQ=NUMARG+1
IF(NUMARG.LT.1)GOTO1180
DO1100J=1,NUMARG
J1=J
IF(IHARG(J).EQ.'SUBS'.AND.IHARG2(J).EQ.'ET ')GOTO1110
IF(IHARG(J).EQ.'EXCE'.AND.IHARG2(J).EQ.'PT ')GOTO1110
IF(IHARG(J).EQ.'FOR '.AND.IHARG2(J).EQ.' ')GOTO1120
1100 CONTINUE
GOTO1180
1110 CONTINUE
ICASEQ='SUBS'
ILOCQ=J1
GOTO1190
1120 CONTINUE
ICASEQ='FOR'
ILOCQ=J1
GOTO1190
C
1180 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1181)
1181 FORMAT('***** ERROR IN DPPROF')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1182)
1182 FORMAT(' AT BRANCH POINT 481--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1183)
1183 FORMAT(' NUMARG LESS THAN 1.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1184)
1184 FORMAT(' POSSIBLE CAUSE--AN OMITTED (BUT NEEDED)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1185)
1185 FORMAT(' SUBSET/EXCEPT/FOR QUALIIFICATION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1186)
1186 FORMAT(' AT THE END OF THE PROFILE PLOT COMMAND.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1187)
1187 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,1188)(IANS(I),I=1,IWIDTH)
1188 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1190 CONTINUE
IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'PROF')GOTO1195
WRITE(ICOUT,1191)NUMARG,ILOCQ,ICASEQ
1191 FORMAT('NUMARG,ILOCQ,ICASEQ = ',I8,I8,2X,A4)
CALL DPWRST('XXX','BUG ')
1195 CONTINUE
C
C **************************************************
C ** STEP 12-- **
C ** DETERMINE THE NUMBER OF VARIABLES **
C ** TO BE INCLUDED AS PLOT COMPONENTS **
C **************************************************
C
ISTEPN='12'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PROF')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMVAR=ILOCQ-1
IF(NUMVAR.GE.1)GOTO1290
C
WRITE(ICOUT,1211)
1211 FORMAT('***** ERROR IN DPPROF--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1212)
1212 FORMAT(' THE NUMBER OF VARIABLES ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1213)
1213 FORMAT(' TO BE INCLUDED AS COMPONENTS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1214)
1214 FORMAT(' IN A PROFILE PLOT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1215)
1215 FORMAT(' MUST BE 1 OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1216)
1216 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1217)
1217 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,1218)(IANS(I),I=1,IWIDTH)
1218 FORMAT(80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
RETURN
C
1290 CONTINUE
C
C ***************************************
C ** STEP 13-- **
C ** CHECK THE VALIDITY OF EACH **
C ** OF THE VARIABLES. **
C ** ALSO CHECK TO ASSURE THAT EACH **
C ** OF THE VARIABLES HAS AT LEAST **
C ** 2 OBSERVATIONS. **
C ***************************************
C
ISTEPN='13'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PROF')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO1300I=1,NUMVAR
C
IHRIGH=IHARG(I)
IHRIG2=IHARG2(I)
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHRIGH,IHRIG2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
NRIGHT=IN(ILOCV)
IF(NRIGHT.GE.MINN2)GOTO1390
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1311)
1311 FORMAT('***** ERROR IN DPPROF--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1312)
1312 FORMAT(' THE INPUT NUMBER OF OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1321)
1321 FORMAT(' (FOR WHICH A PROFILE PLOT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1325)
1325 FORMAT(' WAS TO HAVE BEEN FORMED)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1326)MINN2
1326 FORMAT(' MUST BE ',I8,' OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1327)
1327 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1328)
1328 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,1329)(IANS(J),J=1,IWIDTH)
1329 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
1390 CONTINUE
C
1300 CONTINUE
C
C *************************************************
C ** STEP 21-- **
C ** BRANCH TO THE APPROPRIATE SUBCASE; **
C ** (BASED ON THE QUALIFIER) **
C ** THEN FOR EACH OF THE RESPONSE VARIABLES **
C ** EXTRACT THE DATA SUBSET **
C ** (USUALLY ONLY 1 OBSERVATION) **
C ** AND ALSO EXTRACT THE **
C ** MIN AND MAX FOR THE FULL VARIABLE **
C *************************************************
C
ISTEPN='21'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PROF')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASEQ.EQ.'FULL')GOTO2110
IF(ICASEQ.EQ.'SUBS')GOTO2120
IF(ICASEQ.EQ.'FOR')GOTO2130
C
2110 CONTINUE
DO2115I=1,NRIGHT
ISUB(I)=1
2115 CONTINUE
NQ=NRIGHT
GOTO2190
C
2120 CONTINUE
NIOLD=NRIGHT
CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR)
NQ=NIOLD
GOTO2190
C
2130 CONTINUE
NIOLD=NRIGHT
CALL DPFOR(NIOLD,NFOR,IROW1,IROWN,
1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
NQ=NFOR
GOTO2190
C
2190 CONTINUE
C
C *************************************************
C ** STEP 22-- **
C ** FOR EACH OF THE RESPONSE VARIABLES, **
C ** EXTRACT THE DATA SUBSET **
C ** (FREQUENTLY ONLY 1 OBSERVATION) **
C ** AND ALSO EXTRACT THE **
C ** MIN AND MAX FOR THE FULL VARIABLE **
C *************************************************
C
ISTEPN='22'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PROF')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO2200K=1,NUMVAR
IHRIGH=IHARG(K)
IHRIG2=IHARG2(K)
C
DO2210I=1,NUMNAM
I2=I
IF(IHRIGH.EQ.IHNAME(I).AND.IHRIG2.EQ.IHNAM2(I).AND.
1IUSE(I).EQ.'V')GOTO2219
2210 CONTINUE
WRITE(ICOUT,2211)
2211 FORMAT('***** INTERNAL ERROR IN DPPROF AT POINT 2210--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2212)
2212 FORMAT(' THE VARIABLE ',I4,I4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2213)
2213 FORMAT(' NOT NOW FOUND IN INTERNAL NAME LIST')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2214)
2214 FORMAT(' ALTHOUGH ALREADY FOUND EARLIER.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2215)
2215 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,2216)(IANS(I),I=1,IWIDTH)
2216 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
2219 CONTINUE
C
ILISTR=I2
ICOLR=IVALUE(ILISTR)
NRIGHT=IN(ILISTR)
C
J=0
IMAX=NRIGHT
IF(NQ.LT.NRIGHT)IMAX=NQ
DO2240I=1,IMAX
IF(ISUB(I).EQ.0)GOTO2240
J=J+1
IJ=MAXN*(ICOLR-1)+I
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PROF')
1WRITE(ICOUT,2241)I,J,MAXN,ICOLR,IJ,NRIGHT,NQ,IMAX
2241 FORMAT('I,J,MAXN,ICOLR,IJ,NRIGHT,NQ,IMAX = ',8I8)
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PROF')
1CALL DPWRST('XXX','BUG ')
IF(ICOLR.LE.MAXCOL)YSUB(J)=V(IJ)
IF(ICOLR.EQ.MAXCP1)YSUB(J)=PRED(I)
IF(ICOLR.EQ.MAXCP2)YSUB(J)=RES(I)
IF(ICOLR.EQ.MAXCP3)YSUB(J)=YPLOT(I)
IF(ICOLR.EQ.MAXCP4)YSUB(J)=XPLOT(I)
IF(ICOLR.EQ.MAXCP5)YSUB(J)=X2PLOT(I)
IF(ICOLR.EQ.MAXCP6)YSUB(J)=TAGPLO(I)
2240 CONTINUE
NLOCAL=J
NSUB=NLOCAL
C
J=0
IMAX=NRIGHT
DO2250I=1,IMAX
J=J+1
IJ=MAXN*(ICOLR-1)+I
IF(ICOLR.LE.MAXCOL)YFULL(J)=V(IJ)
IF(ICOLR.EQ.MAXCP1)YFULL(J)=PRED(I)
IF(ICOLR.EQ.MAXCP2)YFULL(J)=RES(I)
IF(ICOLR.EQ.MAXCP3)YFULL(J)=YPLOT(I)
IF(ICOLR.EQ.MAXCP4)YFULL(J)=XPLOT(I)
IF(ICOLR.EQ.MAXCP5)YFULL(J)=X2PLOT(I)
IF(ICOLR.EQ.MAXCP6)YFULL(J)=TAGPLO(I)
2250 CONTINUE
NFULL=J
C
IWRITE='OFF'
CALL MEDIAN(YSUB,NSUB,IWRITE,XTEMP,MAXN,XMED,IBUGG3,IERROR)
CALL MINIM(YFULL,NFULL,IWRITE,XMIN,IBUGG3,IERROR)
CALL MAXIM(YFULL,NFULL,IWRITE,XMAX,IBUGG3,IERROR)
Z1(K)=XMED
Z2(K)=XMIN
Z3(K)=XMAX
C
2200 CONTINUE
NZ=NUMVAR
C
C *************************************************************
C ** STEP 31-- **
C ** FORM THE VERTICAL AND HORIZONTAL AXIS **
C ** VALUES Y(.) AND X(.) FOR THE PLOT. **
C ** DEFINE THE VECTOR D(.) TO 1'S, 2'S, AND 3'S **
C ** FOR THE PLOTTED VALUE, THE LOWER CONFIDENCE LINE, **
C ** AND THE UPPER CONFIDENCE LINE. **
C ** DEFINE THE NUMBER OF PLOT POINTS (NPLOTP). **
C ** DEFINE THE NUMBER OF PLOT VARIABLES (NPLOTV). **
C *************************************************************
C
ISTEPN='8'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PROF')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CALL DPPRO2(Z1,Z2,Z3,NZ,ICASPL,
1Y,X,D,NPLOTP,NPLOTV,IBUGG3,ISUBRO,IERROR)
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'PROF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPPROF--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGG2,IBUGG3,IBUGQ,ISUBRO
9012 FORMAT('IBUGG2,IBUGG3,IBUGQ,ISUBRO = ',A4,2X,A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)IFOUND,IERROR
9013 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)NPLOTV,NPLOTP,NS,ICASPL,IAND1,IAND2
9014 FORMAT('NPLOTV,NPLOTP,NS,ICASPL,IAND1,IAND2 = ',
1I8,I8,I8,2X,A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9021)NSUB
9021 FORMAT('NSUB = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NSUB.LE.0)GOTO9024
DO9022I=1,NSUB
WRITE(ICOUT,9023)I,YSUB(I)
9023 FORMAT('I,YSUB(I) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
9022 CONTINUE
9024 CONTINUE
WRITE(ICOUT,9031)NFULL
9031 FORMAT('NFULL = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NFULL.LE.0)GOTO9034
DO9032I=1,NFULL
WRITE(ICOUT,9033)I,YFULL(I)
9033 FORMAT('I,YFULL(I) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
9032 CONTINUE
9034 CONTINUE
WRITE(ICOUT,9041)NZ
9041 FORMAT('NZ = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NZ.LE.0)GOTO9044
DO9042I=1,NZ
WRITE(ICOUT,9043)I,Z1(I),Z2(I),Z3(I)
9043 FORMAT('I,Z1(I),Z2(I),Z3(I) = ',I8,3E15.7)
CALL DPWRST('XXX','BUG ')
9042 CONTINUE
9044 CONTINUE
WRITE(ICOUT,9051)NPLOTP
9051 FORMAT('NPLOTP = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NPLOTP.LE.0)GOTO9054
DO9052I=1,NPLOTP
WRITE(ICOUT,9053)I,Y(I),X(I),D(I)
9053 FORMAT('I,Y(I),X(I),D(I) = ',I8,3F12.5)
CALL DPWRST('XXX','BUG ')
9052 CONTINUE
9054 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPPROJ(ICOM,IHARG,NUMARG,I3DPRO,
1IFOUND,IERROR)
C
C PURPOSE--DEFINE THE 3-D PROJECTION SWITCH I3DPRO.
C THE 2 SETTINGS ARE
C 1) ORTHOGRAPHIC (THE DEFAULT)
C 2) PERSPECTIVE
C INPUT ARGUMENTS--ICOM
C --IHARG (A HOLLERITH VECTOR)
C --NUMARG
C OUTPUT ARGUMENTS--I3DPRO ('ORTH' OR 'PERS')
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DI3DPROION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
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/10
C ORIGINAL VERSION--SEPTEMBER 1988.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICOM
CHARACTER*4 IHARG
CHARACTER*4 I3DPRO
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(ICOM.EQ.'ORTH')GOTO1110
IF(ICOM.EQ.'PERS')GOTO1120
IF(ICOM.EQ.'PROJ')GOTO1130
C
1110 CONTINUE
IF(NUMARG.LE.0)GOTO1150
IF(IHARG(1).EQ.'ON')GOTO1150
IF(IHARG(1).EQ.'OFF')GOTO1160
GOTO1199
C
1120 CONTINUE
IF(NUMARG.LE.0)GOTO1160
IF(IHARG(1).EQ.'ON')GOTO1160
IF(IHARG(1).EQ.'OFF')GOTO1150
GOTO1199
C
1130 CONTINUE
IF(NUMARG.LE.0)GOTO1150
IF(IHARG(1).EQ.'ON')GOTO1150
IF(IHARG(1).EQ.'OFF')GOTO1160
IF(IHARG(1).EQ.'AUTO')GOTO1150
IF(IHARG(1).EQ.'DEFA')GOTO1150
IF(IHARG(1).EQ.'ORTH')GOTO1150
IF(IHARG(1).EQ.'PERS')GOTO1160
GOTO1199
C
1150 CONTINUE
I3DPRO='ORTH'
GOTO1180
C
1160 CONTINUE
I3DPRO='PERS'
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)
1181 FORMAT('THE PROJECTION SWITCH (AFFECTING 3-D PLOTS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1182)I3DPRO
1182 FORMAT(' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1189 CONTINUE
GOTO1199
C
1199 CONTINUE
RETURN
END
SUBROUTINE DPPROM(IHARG,NUMARG,IPROSW,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE PROMPT SWITCH IPROSW.
C INPUT ARGUMENTS--IHARG (A HOLLERITH VECTOR)
C --NUMARG
C OUTPUT ARGUMENTS--IPROSW ('ON' OR 'OFF')
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--86/1
C ORIGINAL VERSION--DECEMBER 1985.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IHARG
CHARACTER*4 IPROSW
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.EQ.0)GOTO1150
IF(NUMARG.GE.1)GOTO1110
GOTO1199
C
1110 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
GOTO1199
C
1150 CONTINUE
IPROSW='ON'
GOTO1180
C
1160 CONTINUE
IPROSW='OFF'
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)IPROSW
1181 FORMAT('THE PROMPT SWITCH HAS JUST BEEN TURNED ',
1A4)
CALL DPWRST('XXX','BUG ')
1189 CONTINUE
GOTO1199
C
1199 CONTINUE
RETURN
END
SUBROUTINE DPPRO2(Z1,Z2,Z3,NZ,ICASPL,
1Y2,X2,D2,N2,NPLOTV,IBUGG3,ISUBRO,IERROR)
C
C PURPOSE--GENERATE A PAIR OF COORDINATE VECTORS
C THAT WILL DEFINE
C A PROFILE PLOT
C (USEFUL FOR MULTIVARIATE ANALYSIS).
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
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 --APRIL 1992. DELETE K
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICASPL
CHARACTER*4 IBUGG3
CHARACTER*4 ISUBRO
CHARACTER*4 IERROR
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
C
C---------------------------------------------------------------------
C
DIMENSION Z1(*)
DIMENSION Z2(*)
DIMENSION Z3(*)
C
DIMENSION Y2(*)
DIMENSION X2(*)
DIMENSION D2(*)
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='DPPR'
ISUBN2='O2 '
C
IERROR='NO'
C
C ********************************************
C ** STEP 1-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
IF(NZ.GE.1)GOTO39
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,31)
31 FORMAT('***** ERROR IN DPPRO2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,32)
32 FORMAT(' THE NUMBER OF OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,33)
33 FORMAT(' MUST BE AT LEAST 1;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,34)NZ
34 FORMAT(' THE ENTERED NUMBER OF OBSERVATIONS HERE = ',I6)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
39 CONTINUE
C
IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'PRO2')GOTO90
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,71)
71 FORMAT('***** AT THE BEGINNING OF DPPRO2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,72)ICASPL,NZ,N2,NPLOTV
72 FORMAT('ICASPL,NZ,N2,NPLOTV = ',A4,2X,3I8)
CALL DPWRST('XXX','BUG ')
IF(NZ.LE.0)GOTO83
DO81I=1,NZ
WRITE(ICOUT,82)I,Z1(I),Z2(I),Z3(I)
82 FORMAT('I,Z1(I),Z2(I),Z3(I) = ',I8,2E12.5)
CALL DPWRST('XXX','BUG ')
81 CONTINUE
83 CONTINUE
90 CONTINUE
C
C ****************************************
C ** STEP 11-- **
C ** DETERMINE PLOT COORDINATES **
C ****************************************
C
J=0
DO1100I=1,NZ
ANUM=Z1(I)-Z2(I)
ADEN=Z3(I)-Z2(I)
P=0.0
IF(ADEN.GT.0.0)P=ANUM/ADEN
J=J+1
Y2(J)=P
X2(J)=J
D2(J)=1.0
1100 CONTINUE
N2=J
NPLOTV=2
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'PRO2')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPPRO2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)ICASPL,NZ,N2,IERROR
9012 FORMAT('ICASPL,NZ,N2,IERROR = ',A4,2I8,2X,A4)
CALL DPWRST('XXX','BUG ')
CCCCC THE FOLLOWING 2 LINES WERE FIXED APRIL 1992
CCCCC WRITE(ICOUT,9013)NZ,J,K
C9013 FORMAT('NZ,J,K = ',3I8)
CCCCC CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)NZ,J
9013 FORMAT('NZ,J = ',2I8)
CALL DPWRST('XXX','BUG ')
IF(NZ.LE.0)GOTO9023
DO9021I=1,NZ
WRITE(ICOUT,9022)I,Z1(I),Z2(I),Z3(I)
9022 FORMAT('I,Z1(I),Z2(I),Z3(I) = ',I8,2E12.5)
CALL DPWRST('XXX','BUG ')
9021 CONTINUE
9023 CONTINUE
WRITE(ICOUT,9031)N2,NPLOTV
9031 FORMAT('N2,NPLOTV = ',2I8)
CALL DPWRST('XXX','BUG ')
DO9035I=1,N2
WRITE(ICOUT,9036)I,Y2(I),X2(I),D2(I)
9036 FORMAT('I,Y2(I),X2(I),D2(I) = ',I8,2E15.7,F9.2)
CALL DPWRST('XXX','BUG ')
9035 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPPRPL(NPLOTV,NPLOTP,NS,ICASPL,IAND1,IAND2,
1IANGLU,MAXNPP,
1CLLIMI,CLWIDT,
1ICONT,NUMHPP,NUMVPP,IMANUF,
1XMATN,YMATN,XMITN,YMITN,
1ISQUAR,
1IVGMSW,IHGMSW,
1IMPSW,IMPNR,IMPNC,IMPCO,
1PMXMIN,PMXMAX,PMYMIN,PMYMAX,
1TEMP,TEMP2,TEMP3,XTEMP1,XTEMP2,MAXNXT,
1ALOWFR,ALOWDG,
1IFORSW,
1ANOPL1,ANOPL2,ISEED,IBOOSS,BARHEF,BARWEF,
1ICAPSW,
1IBUGG2,IBUGG3,IBUGCO,IBUGEV,IBUGQ,
1IBUGUG,IBUGU2,IBUGU3,IBUGU4,ISUBRO,
1IFOUND,IERROR)
C
C PURPOSE--GENERATE EITHER
C 1) A PARTIAL REGRESSION PLOT
C 2) A PARTIAL LEVERAGE PLOT
C 3) A PARTIAL RESIDUAL PLOT
C 4) A CCPR PLOT
C FOR EXAMPLE, THE COMMAND
C PARTIAL REGRESSION PLOT Y X1 TO XK
C WILL GENERATE PARTIAL REGRESSION PLOTS OF Y VS X1,
C Y VS X2, ETC. AS A MULTIPLOT ON A SINGLE PAGE.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2899
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2002/6
C ORIGINAL VERSION--JUNE 2002.
C UPDATED --FEBRUARY 2005. CALL LIST TO MAINAN
C UPDATED --MARCH 2006. CALL LIST TO MAINGR
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES---------------
C
INCLUDE 'DPCOPA.INC'
C
CHARACTER*4 ICASPL
CHARACTER*4 ICASP2
CHARACTER*4 ICAPSW
CHARACTER*4 ICASAN
CHARACTER*4 ICASEQ
CHARACTER*4 ICONT
CHARACTER*4 IAND1
CHARACTER*4 IAND2
CHARACTER*4 IANGLU
CHARACTER*4 IFORSW
CHARACTER*4 IFTEXP
CHARACTER*4 IFTORD
CHARACTER*4 ICPSWZ
C
CHARACTER*4 IBUGG2
CHARACTER*4 IBUGG3
CHARACTER*4 IBUGUG
CHARACTER*4 IBUGU2
CHARACTER*4 IBUGU3
CHARACTER*4 IBUGU4
CHARACTER*4 IBUGCO
CHARACTER*4 IBUGEV
CHARACTER*4 IBUGQ
C
CHARACTER*4 ISUBRO
CHARACTER*4 ISUBN0
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IEMPTY
CHARACTER*4 IERAS2
CHARACTER*4 IFENC2
CHARACTER*4 IPPTB2
CHARACTER*4 ISORS2
CHARACTER*4 ISQUAR
CHARACTER*4 IVGMSW
CHARACTER*4 IHGMSW
CHARACTER*4 IREPCH
CHARACTER*4 IMPSW
CHARACTER*4 IMPSW3
CHARACTER*4 IFPLFZ
CHARACTER*4 IFPLTZ
CHARACTER*4 IFPLPZ
CHARACTER*4 IFPLLZ
CHARACTER*4 IFPLL2
CHARACTER*4 IFPLXZ
CHARACTER*4 IFPLYZ
CHARACTER*4 IFPLDZ
CHARACTER*4 IFPLZT
CHARACTER*4 IFPLZ2
CHARACTER*4 IFPLZ3
CHARACTER*4 IFPLZ4
C
CHARACTER*4 IFEED9
C
CHARACTER*4 IMANUF
C
CHARACTER*4 ICHAP2(100)
CHARACTER*4 ILINP2(100)
CHARACTER*4 ISPIS2(100)
CHARACTER*4 IBARS2(100)
CHARACTER*4 IX1TSV
CHARACTER*4 IX2TSV
CHARACTER*4 IY1TSV
CHARACTER*4 IY2TSV
CHARACTER*4 IX1ZSV
CHARACTER*4 IX2ZSV
CHARACTER*4 IY1ZSV
CHARACTER*4 IY2ZSV
CHARACTER*4 IY1MNS
CHARACTER*4 IY1MXS
CHARACTER*4 IY1LJ2
CHARACTER*4 IY1LD2
CHARACTER*4 IY2MNS
CHARACTER*4 IY2MXS
CHARACTER*4 IX1MNS
CHARACTER*4 IX1MXS
CHARACTER*4 IX2MNS
CHARACTER*4 IX2MXS
CHARACTER*4 IX1FSV
CHARACTER*4 IX2FSV
CHARACTER*4 IY1FSV
CHARACTER*4 IY2FSV
CHARACTER*4 ILFLAX
CHARACTER*4 ILFLAY
CHARACTER*4 IFPLLD
CHARACTER*4 IFPLDI
CHARACTER*4 IX1LT2(MAXCH)
CHARACTER*4 IX2LT2(MAXCH)
CHARACTER*4 IY1LT2(MAXCH)
CHARACTER*4 IY2LT2(MAXCH)
CHARACTER*4 ITITSV(MAXCH)
CHARACTER*4 IPLOTT
CCCCC CHARACTER*4 ISUBSZ
C
CHARACTER*80 IFILE5
CHARACTER*12 ISTAT5
CHARACTER*12 IFORM5
CHARACTER*12 IACCE5
CHARACTER*12 IPROT5
CHARACTER*12 ICURS5
CHARACTER*4 IERRF5
CHARACTER*4 IENDF5
CHARACTER*4 IREWI5
INCLUDE 'DPCOF2.INC'
C
CHARACTER*4 ICT
CHARACTER*4 IC2T
CHARACTER*4 IHT(5)
CHARACTER*4 IH2T(5)
CHARACTER*4 ISU2SW(MAXSUB)
C
C MAXY IS THE MAXIMUM NUMBER OF VARIABLES TO USE IN CREATING THE
C PARTIAL REGRESSION PLOT CURVE
C
PARAMETER(MAXY=50)
C
DIMENSION IVARN1(MAXY)
DIMENSION IVARN2(MAXY)
DIMENSION ILIS(MAXY)
DIMENSION ICOLL(MAXY)
C
CHARACTER*4 IHRIGH
CHARACTER*4 IHRIG2
CHARACTER*4 IHWUSE
CHARACTER*4 MESSAG
CHARACTER*4 ISTEPN
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 IVARN1
CHARACTER*4 IVARN2
CCCCC CHARACTER*4 IWRITE
C
DIMENSION TEMP(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DIMENSION XTEMP1(*)
DIMENSION XTEMP2(*)
C
C-----COMMON------------------------------------------------------
C
C
INCLUDE 'DPCOZZ.INC'
INCLUDE 'DPCOPC.INC'
INCLUDE 'DPCOHK.INC'
INCLUDE 'DPCODA.INC'
INCLUDE 'DPCOST.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='YES'
IERROR='NO'
C
ISUBN1='DPPR'
ISUBN2='PL '
C
IF(ICASPL.NE.'CCPR')ICASPL='PRPL'
IFPLLD='ON'
IFPLDI='LINE'
IBOOSS=100
C
IFLAGV=5
C
C ***********************************************
C ** TREAT THE PARTIAL REGRESSION PLOT CASE **
C ***********************************************
C
IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'PRPL')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPPRPL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICASPL,IAND1,IAND2
52 FORMAT('ICASPL,IAND1,IAND2 = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)IBUGG2,IBUGG3,IBUGQ
53 FORMAT('IBUGG2,IBUGG3,IBUGQ = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)NUMARG
54 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NUMARG.LE.0)GOTO69
DO61I=1,NUMARG
WRITE(ICOUT,62)I,IHARG(I),IARGT(I)
62 FORMAT('I,IHARG(I),IARGT(I) = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
61 CONTINUE
69 CONTINUE
WRITE(ICOUT,71)IFPLLA
71 FORMAT('IFPLLA = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,72)IFPLTA
72 FORMAT('IFPLTA = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,73)IFPLPT
73 FORMAT('IFPLPT = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,74)IFPLFI
74 FORMAT('IFPLFI = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,75)IFPLFR
75 FORMAT('IFPLFR = ',A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C ******************************************************
C ** STEP 1-- **
C ** SHIFT COMMAND LINE ARGMENTS **
C ******************************************************
C
ISTEPN='1'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PRPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.GE.2.AND.IHARG(1).EQ.'REGR'.AND.IHARG(2).EQ.'PLOT')THEN
ICASPL='PREG'
ISHIFT=2
CALL SHIFTL(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1 IBUGG2,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
C SYNONYM: ADDED VARIABLE PLOT
C
IF(NUMARG.GE.2.AND.IHARG(1).EQ.'VARI'.AND.IHARG(2).EQ.'PLOT')THEN
ICASPL='PREG'
ISHIFT=2
CALL SHIFTL(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1 IBUGG2,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(NUMARG.GE.2.AND.IHARG(1).EQ.'LEVE'.AND.IHARG(2).EQ.'PLOT')THEN
ICASPL='PLEV'
ISHIFT=2
CALL SHIFTL(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1 IBUGG2,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(NUMARG.GE.2.AND.IHARG(1).EQ.'RESI'.AND.IHARG(2).EQ.'PLOT')THEN
ICASPL='PRES'
ISHIFT=2
CALL SHIFTL(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1 IBUGG2,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IF(ICASPL.EQ.'CCPR'.AND.NUMARG.GE.1.AND.IHARG(1).EQ.'PLOT')THEN
ISHIFT=1
CALL SHIFTL(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1 IBUGG2,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
C SYNONYM: COMPONENT PLUS RESIDUAL PLOT
C
IF(NUMARG.GE.3.AND.IHARG(1).EQ.'PLUS'.AND.IHARG(2).EQ.'RESI'.AND.
1 IHARG(3).EQ.'PLOT')THEN
ICASPL='PRES'
ISHIFT=3
CALL SHIFTL(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1 IBUGG2,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
ICOM='FIT '
ICOM2=' '
IFOUND='YES'
C
C *******************************************************
C ** STEP 2-- **
C ** CHECK FOR THE PROPER NUMBER OF INPUT ARGUMENTS. **
C *******************************************************
C
ISTEPN='2'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PRPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
MINN2=2
MINNA=3
MAXNA=100
CALL CHECKA(NUMARG,MINNA,MAXNA,IANS,IWIDTH,ISUBN1,ISUBN2,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C *****************************************
C ** STEP 11-- **
C ** CHECK TO SEE THE TYPE SUBCASE **
C ** (BASED ON THE QUALIFIER)-- **
C ** 1) UNQUALIFIED (THAT IS, FULL); **
C ** 2) SUBSET/EXCEPT; OR **
C ** 3) FOR. **
C *****************************************
C
ISTEPN='11'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PRPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='FULL'
ILOCQ=NUMARG+1
IF(NUMARG.LT.1)GOTO1180
DO1100J=1,NUMARG
J1=J
IF(IHARG(J).EQ.'SUBS'.AND.IHARG2(J).EQ.'ET ')GOTO1110
IF(IHARG(J).EQ.'EXCE'.AND.IHARG2(J).EQ.'PT ')GOTO1110
IF(IHARG(J).EQ.'FOR '.AND.IHARG2(J).EQ.' ')GOTO1120
1100 CONTINUE
GOTO1180
1110 CONTINUE
ICASEQ='SUBS'
ILOCQ=J1
GOTO1190
1120 CONTINUE
ICASEQ='FOR'
ILOCQ=J1
GOTO1190
C
1180 CONTINUE
GOTO1190
C
1190 CONTINUE
IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'PRPL')GOTO1195
WRITE(ICOUT,1191)NUMARG,ILOCQ,ICASEQ
1191 FORMAT('NUMARG,ILOCQ,ICASEQ = ',I8,I8,2X,A4)
CALL DPWRST('XXX','BUG ')
1195 CONTINUE
C
C **************************************************
C ** STEP 12-- **
C ** DETERMINE THE NUMBER OF VARIABLES **
C ** TO BE INCLUDED AS PLOT COMPONENTS **
C ** IF THE TO FEATURE IS USED IN THE **
C ** ARGUMENT LIST, TRANSLATE THE TO TO **
C ** EXPLICIT VARIABLE NAMES **
C **************************************************
C
ISTEPN='12'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PRPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
JMIN=1
JMAX=ILOCQ-1
CALL EXTVAR(IHARG,IHARG2,NUMARG,JMIN,JMAX,MAXY,
1IHNAME,IHNAM2,IUSE,NUMNAM,
1IVARN1,IVARN2,NUMVAR,IBUGG2,ISUBRO,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 13-- **
C ** CHECK THE VALIDITY OF EACH **
C ** OF THE VARIABLES. **
C ** ALSO CHECK TO ASSURE THAT EACH **
C ** OF THE VARIABLES HAS AT LEAST **
C ** 2 OBSERVATIONS. **
C ***************************************
C
ISTEPN='13'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PRPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
MAXCP1=MAXCOL+1
MAXCP2=MAXCOL+2
MAXCP3=MAXCOL+3
MAXCP4=MAXCOL+4
MAXCP5=MAXCOL+5
MAXCP6=MAXCOL+6
C
IFLAG=0
IFLAG2=0
DO1300I=1,NUMVAR
C
IHRIGH=IVARN1(I)
IHRIG2=IVARN2(I)
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHRIGH,IHRIG2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
NTEMP=IN(ILOCV)
IF(I.EQ.1)THEN
NRIGHT=NTEMP
ELSE
NRIGH2=NTEMP
IF(NTEMP.NE.NRIGHT)IFLAG=1
ENDIF
ILIS(I)=ILOCV
C
IF(NTEMP.GT.MINN2)GOTO1390
C
1309 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1311)
1311 FORMAT('***** ERROR IN DPPRPL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1312)
1312 FORMAT(' THE INPUT NUMBER OF OBSERVATIONS FOR WHICH A')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1321)
1321 FORMAT(' PARTIAL REGRESSION PLOT WAS TO HAVE BEEN FORMED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1326)MINN2
1326 FORMAT(' MUST BE ',I8,' OR LARGER; SUCH WAS NOT THE CASE',
1' HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1327)I,NTEMP
1327 FORMAT(' VARIABLE ',I8,' HAS ',I8,' OBSERVATIONS.')
WRITE(ICOUT,1328)
1328 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,1329)(IANS(J),J=1,MIN(IWIDTH,100))
1329 FORMAT(' ',100A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
1390 CONTINUE
C
1300 CONTINUE
C
C
C ******************************************************
C ** STEP 1.4-- **
C ** CHECK THAT VARIABLES HAVE THE SAME NUMBER OF **
C ** ELEMENTS. **
C ******************************************************
C
1400 CONTINUE
ISTEPN='1.4'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PRPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
1410 CONTINUE
IF(IFLAG.EQ.1)THEN
WRITE(ICOUT,1411)
1411 FORMAT('***** ERROR IN DPPRPL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1413)
1413 FORMAT(' THE NUMBER OF OBSERVATIONS FOR EACH OF THE',
1 'VARIABLES')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1414)
CALL DPWRST('XXX','BUG ')
1414 FORMAT(' MUST BE THE SAME; SUCH WAS NOT THE CASE HERE.')
DO1417I=1,NUMVAR
I2=ILIS(I)
WRITE(ICOUT,1416)IVARN1(I),IVARN2(I),IN(I2)
1416 FORMAT(' VARIABLE ',A4,A4,' HAS ',I8,
1 ' OBSERVATIONS;')
CALL DPWRST('XXX','BUG ')
1417 CONTINUE
WRITE(ICOUT,1420)
1420 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,1421)(IANS(I),I=1,MIN(IWIDTH,100))
1421 FORMAT(' ',100A1)
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO9000
ENDIF
C
C **************************************************
C ** STEP 0.5-- **
C ** PERFORM MULTILINEAR FIT **
C **************************************************
C
ISTEPN='0.5'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PRPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICPSWZ='OFF'
CALL MAINAN(ICASAN,ISEED,ANOPL1,ANOPL2,
1TEMP,TEMP2,XTEMP1,XTEMP2,MAXNXT,
1IFTEXP,IFTORD,
1ALOWFR,ALOWDG,
1IBOOSS,
1ICPSWZ,
1IFORSW,
1IBUGG2,IBUGG2,IBUGG3,
1IBUGCO,IBUGEV,IBUGQ,ISUBRO,IFOUND,IERROR)
C
C **************************************************
C ** STEP 1-- **
C ** SAVE INITIAL SETTINGS **
C **************************************************
C
ISTEPN='1'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PRPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
PXMN2=PXMIN
PXMX2=PXMAX
PYMN2=PYMIN
PYMX2=PYMAX
PWXMN2=PWXMIN
PWXMX2=PWXMAX
PWYMN2=PWYMIN
PWYMX2=PWYMAX
IF(IFPLFR.EQ.'DEFA')THEN
PXMIN=0.0
PXMAX=100.0
PYMIN=0.0
PYMAX=100.0
ENDIF
C
IERAS2=IERASW
IFENC2=IFENSW
IPPTB2=IPPTBI
ISORS2=ISORSW
C
ILFLAX='OFF'
ILFLAY='OFF'
IF(IY1MIN.EQ.'FIXE'.AND.IY1MAX.EQ.'FIXE')THEN
ILFLAY='ON'
ENDIF
IF(IX1MIN.EQ.'FIXE'.AND.IX2MAX.EQ.'FIXE')THEN
ILFLAX='ON'
ENDIF
C
IX1TSV=IX1TSW
IX2TSV=IX2TSW
IY1TSV=IY1TSW
IY2TSV=IY2TSW
IX1ZSV=IX1ZSW
IX2ZSV=IX2ZSW
IY1ZSV=IY1ZSW
IY2ZSV=IY2ZSW
PX1LD2=PX1LDS
PX2LD2=PX2LDS
PY1LD2=PY1LDS
PY1LA2=PY1LAN
IY1LJ2=IY1LJU
IY1LD2=IY1LDI
GY1MNS=GY1MIN
GY1MXS=GY1MAX
GY2MNS=GY2MIN
GY2MXS=GY2MAX
GX1MNS=GX1MIN
GX1MXS=GX1MAX
GX2MNS=GX2MIN
GX2MXS=GX2MAX
IY1MNS=IY1MIN
IY1MXS=IY1MAX
IY2MNS=IY2MIN
IY2MXS=IY2MAX
IX1MNS=IX1MIN
IX1MXS=IX1MAX
IX2MNS=IX2MIN
IX2MXS=IX2MAX
IX1FSV=IX1FSW
IX2FSV=IX2FSW
IY1FSV=IY1FSW
IY2FSV=IY2FSW
PX1ZD2=PX1ZDS
PX2ZD2=PX2ZDS
PY1ZD2=PY1ZDS
PY2ZD2=PY2ZDS
DO1495I=1,100
ICHAP2(I)=ICHAPA(I)
ILINP2(I)=ILINPA(I)
ISPIS2(I)=ISPISW(I)
IBARS2(I)=ISPISW(I)
1495 CONTINUE
C
DO1500I=1,MAXCH
IX1LT2(I)=IX1LTE(I)
IX2LT2(I)=IX2LTE(I)
IY1LT2(I)=IY1LTE(I)
IY2LT2(I)=IY2LTE(I)
1500 CONTINUE
NCX1L2=NCX1LA
NCX2L2=NCX2LA
NCY1L2=NCY1LA
NCY2L2=NCY2LA
C
IFPLL2=IFPLLA
IFPLTZ=IFPLTA
IFPLFZ=IFPLFR
IFPLPZ=IFPLPT
IFPLLZ=IFPLLD
IFPLZT=IFPLST
IFPLZ2=IFPLS2
IFPLZ3=IFPLS3
IFPLZ4=IFPLS4
IFPLXZ=IFPLXA
IFPLYZ=IFPLYA
IFPLDZ=IFPLDI
IF(IFPLFR.EQ.'USER'.AND.IFPLLA.EQ.'BOX')IFPLLA='ON'
IF(IFPLFR.EQ.'CONN')IFPLFR='DEFA'
IF(IFPLLA.EQ.'BOX ')THEN
IFPLLD='ON'
IF(IFPLDI.EQ.'BLAN')IFPLDI='LINE'
ENDIF
C
IFEED9=IFEEDB
C
DO110I=1,MAXCH
ITITSV(I)=ITITTE(I)
110 CONTINUE
NCTITS=NCTITL
PTITDZ=PTITDS
C
DO1530I=1,NUMVAR
IHRIGH=IVARN1(I)
IHRIG2=IVARN2(I)
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHRIGH,IHRIG2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
ICOLL(I)=IVALUE(ILOCV)
1530 CONTINUE
C
IOUNI5=IST5NU
IFILE5=IST5NA
ISTAT5=IST5ST
IFORM5=IST5FO
IACCE5=IST5AC
IPROT5=IST5PR
ICURS5=IST5CS
ISUBN0='SPMA'
IERRF5='NO'
C
IREWI5='ON'
CALL DPOPFI(IOUNI5,IFILE5,ISTAT5,IFORM5,IACCE5,IPROT5,ICURS5,
1IREWI5,ISUBN0,IERRF5,IBUGG3,ISUBRO,IERROR)
IF(IERRF5.EQ.'YES')IOUNI5=0
C
IMPSW3=IMPSW
IMPCO2=IMPCO
IMPNR2=IMPNR
IMPNC2=IMPNC
IMPSW='ON'
IMPCO=1
C
NPLOTS=NUMVAR-1
C
IF(IMPNR*IMPNC.LT.NPLOTS)THEN
IMPNC=INT(SQRT(REAL(NPLOTS-1)))+1
IMPNR=1
IF(NPLOTS.GE.11)THEN
IMPNR=INT(NPLOTS/IMPNC)+1
ELSEIF(NPLOTS.GE.7)THEN
IMPNR=3
ELSEIF(NPLOTS.GE.3)THEN
IMPNR=2
ENDIF
ENDIF
C
IROWT=IMPNR
ICOLT=IMPNC
IF(IFPLLA.EQ.'BOX')THEN
IMPNR=IMPNR+1
IMPNC=IMPNC+1
IROWT=IROWT+1
ICOLT=ICOLT+1
ENDIF
C
C *************************************
C ** STEP 21-- **
C ** GENERATE THE PLOTS **
C *************************************
C
2100 CONTINUE
ISTEPN='21'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'DPPRPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASPL.EQ.'PREG')THEN
ICT='PART'
IC2T='IAL '
NCCOMM=2
IHT(1)='REGR'
IH2T(1)='ESSI'
IHT(2)='PLOT'
IH2T(2)=' '
IPLOTT='PREG'
ELSEIF(ICASPL.EQ.'PLEV')THEN
ICT='PART'
IC2T='IAL '
NCCOMM=2
IHT(1)='LEVE'
IH2T(1)='RAGE'
IHT(2)='PLOT'
IH2T(2)=' '
IPLOTT='PLEV'
ELSEIF(ICASPL.EQ.'PRES')THEN
ICT='PART'
IC2T='IAL '
NCCOMM=2
IHT(1)='RESI'
IH2T(1)='DUAL'
IHT(2)='PLOT'
IH2T(2)=' '
IPLOTT='PRES'
ELSEIF(ICASPL.EQ.'CCPR')THEN
ICT='CCPR'
IC2T=' '
NCCOMM=1
IHT(1)='PLOT'
IH2T(1)=' '
IPLOTT='CCPR'
ELSE
ICT='PART'
IC2T='IAL '
NCCOMM=2
IHT(1)='REGR'
IH2T(1)='ESSI'
IPLOTT='PREG'
ENDIF
GOTO5299
C
C **************************************************
C ** GENERATE ONE OF THE FOLLOWING COMMANDS **
C ** PARTIAL REGRESSION PLOT Y X1 X2 .... XI **
C ** PARTIAL RESIDUAL PLOT Y X1 X2 .... XI **
C ** PARTIAL LEVERAGE PLOT Y X1 X2 .... XI **
C ** WHERE XI IS THE SPECIFIC VARIABLE THE **
C ** PLOT IS BEING GENERATED FOR. **
C **************************************************
5299 CONTINUE
C
IF(NPLOTS.LT.1)GOTO8000
C
ISHIFT=NCCOMM
CALL SHIFTR(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1 IBUGG2,IERROR)
ICOM=ICT
ICOM2=IC2T
IF(NCCOMM.GT.0)THEN
DO5301II=1,NCCOMM
IHARG(II)=IHT(II)
IHARG2(II)=IH2T(II)
IARG(II)=0
ARG(II)=0.0
IARGT(II)='WORD'
5301 CONTINUE
ENDIF
IFRST=NCCOMM+2
NUMARG=NUMARG+1
IHARG(NUMARG)=' '
IHARG2(NUMARG)=' '
IARG(NUMARG)=0
ARG(NUMARG)=0.0
IARGT(NUMARG)=IARGT(IFRST)
NARGT=NUMARG
C
IPLOT=0
IF(IFPLLA.EQ.'BOX')THEN
NPLOTS=NPLOTS+IMPNR+IMPNC-1
ENDIF
DO5300IRES=1,IROWT
DO5400IFAC=1,ICOLT
C
IPLOT=IPLOT+1
IF(IPLOT.GT.NPLOTS)GOTO8000
IHARG(NUMARG)=IHARG(IFRST+IPLOT-1)
IHARG2(NUMARG)=IHARG2(IFRST+IPLOT-1)
IARG(NUMARG)=IARG(IFRST+IPLOT-1)
ARG(NUMARG)=ARG(IFRST+IPLOT-1)
IARGT(NUMARG)=IARGT(IFRST+IPLOT-1)
C
IXLIST=IFAC
IROW=INT(IPLOT/IMPNC)+1
IF(MOD(IPLOT,IMPNC).EQ.0)IROW=IROW-1
ICOL=MOD(IPLOT,IMPNC)
IF(ICOL.EQ.0)ICOL=IMPNC
C
IEMPTY='NO'
ITEMP=IFAC
IF(IFPLLA.EQ.'BOX')THEN
ICOL=ICOL-1
ITEMP=IFAC-1
IF(ITEMP.EQ.0)IEMPTY='YES'
IF(IROW.EQ.IMPNR)IEMPTY='YES'
ENDIF
C
IF(IEMPTY.EQ.'YES')THEN
DO5304I=1,MAXSUB
ISU2SW(I)=ISUBSW(I)
ISUBSW(I)='OFF'
5304 CONTINUE
ENDIF
IOPTN=3
IDX=1
IDY=1
ICASP2='FACT'
C
CCCCC NOTE: DPSPM4 IMPLEMENTS "SUB-REGIONS" ON PLOTS. THESE DON'T
CCCCC SEEM PARTICULARLY RELEVANT FOR THESE PLOTS, SO COMMENT
CCCCC OUT FOR NOW. HOWEVER, LEAVE IN CASE WE DECIDE LATER TO
CCCCC IMPLEMENT THEM.
C
CCCCC CALL DPSPM4(ICASP2,IOPTN,IDX,IDY,
CCCCC1 ISUBNU,ISUBSW,
CCCCC1 ASUBXL,ASUBXU,ASUBYL,ASUBYU,
CCCCC1 ISUBN9,ISUBSZ,
CCCCC1 ASBXL2,ASBXU2,ASBYL2,ASBYU2,
CCCCC1 PFPXSL,PFPXSU,PFPYSL,PFPYSU,
CCCCC1 IBUGG2,ISUBRO,IERROR)
C
ICASP2=ICASPL
IRES2=IRES
IXLST2=IXLIST+1
IX=IFAC+1
CALL DPSPM1(ICASP2,IVARN1,IVARN2,ICOLL,
1 IMPNR,IMPNC,IROW,ICOL,IRES2,IX,IPLOT,
1 NPLOTS,NUMVAR,
1 ICHAP2,ILINP2,
1 GY1MNS,GY1MXS,GY2MNS,GY2MXS,
1 GX1MNS,GX1MXS,GX2MNS,GX2MXS,
1 IY1MNS,IY1MXS,IY2MNS,IY2MXS,
1 IX1MNS,IX1MXS,IX2MNS,IX2MXS,
1 IX1TSV,IX2TSV,IY1TSV,IY2TSV,
1 IX1ZSV,IX2ZSV,IY1ZSV,IY2ZSV,
1 PX1LD2,PX2LD2,
1 IY1LJ2,IY1LD2,PY1LD2,PY1LA2,
1 IX1LT2,IX2LT2,IY1LT2,IY2LT2,
1 NCX1L2,NCX2L2,NCY1L2,NCY2L2,
1 PFPXLL,PFPXUL,PFPYLL,PFPYUL,IXLST2,
1 IFPLLA,IFPLLD,IPLOTT,IFPLFR,IFPLXA,IFPLYA,
1 IFPLDI,
1 IFPLTD,PFPLTD,IVNMEX,
1 IBUGG2,ISUBRO)
C
IF(IEMPTY.EQ.'YES')THEN
DO5306I=1,100
ICHAPA(I)='BLAN'
ILINPA(I)='BLAN'
ISPISW(I)='OFF'
IBARSW(I)='OFF'
5306 CONTINUE
ENDIF
C
CALL MAINGR(ANOPL1,ANOPL2,NPLOTV,NPLOTP,NS,ICASPL,
1 MAXNPP,ISEED,IBOOSS,
1 IX1TSV,IX2TSV,IY1TSV,IY2TSV,
1 IX1ZSV,IX2ZSV,IY1ZSV,IY2ZSV,
1 BARHEF,BARWEF,
1 IRHSTG,IHSTCW,
1 ICAPSW,IFORSW,
1 IAND1,IAND2,ICONT,NUMHPP,NUMVPP,
1 TEMP,TEMP2,TEMP3,XTEMP1,XTEMP2,MAXNXT,
1 ISUBRO,IFOUND,IERROR)
C
CCCCC NOTE: DPSPM3 SETS AN X2LABEL BASED ON CORRELATION, EFFECT
CCCCC SIZE, OR NUMBER OF REJECTIONS. THIS DOESN"T SEEM
CCCCC PARTICULARLY USEFUL FOR THESE PLOTS, SO COMMENT OUT
CCCCC FOR NOW. HOWEVER, LEAVE CODE HERE IN CASE WE DECIDE TO
CCCCC ACTIVATE LATER.
C
CCCCC IF(IEMPTY.EQ.'NO')THEN
CCCCC CALL DPSPM3(ICASPL,IOUNI5,
CCCCC1 IROW,ICOL,
CCCCC1 PX2LD2,NPLOTP,
CCCCC1 IFORSW,
CCCCC1 IFPX2L,ISPX2P,ISPX2S,
CCCCC1 IHRIGH,IHRIG2,IHWUSE,
CCCCC1 ISUBN1,ISUBN2,MESSAG,
CCCCC1 IBUGG2,ISUBRO,IERROR)
CCCCC ENDIF
C
ICONT=IDCONT(1)
NUMHPP=IDNHPP(1)
IMPARG=2
CALL DPGRAP(Y,X,X3D,D,N,NPLOTP,ICASPL,ICONT,NUMHPP,
1 XMATN,YMATN,XMITN,YMITN,
1 ISQUAR,
1 IVGMSW,IHGMSW,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,
1 IVSTAR,IVSTOP,IFUNC,NUMCHF,IREPCH,
1 YPLOT,XPLOT,X2PLOT,TAGPLO,
1 IMPSW,IMPNR,IMPNC,IMPCO,
1 IMPARG,
1 PMXMIN,PMXMAX,PMYMIN,PMYMAX,
1 MAXCOL,
1 DSIZE,DSYMB,DCOLOR,DFILL,
1 ICAPSW,
1 IBUGUG,IBUGU2,IBUGU3,IBUGU4,ISUBRO,
1 IERROR)
IF(IERROR.EQ.'NO')IAND1=IAND2
IF(IERROR.EQ.'YES')GOTO5499
C
IF(IFPLFI.EQ.'NONE')GOTO5499
IF(IEMPTY.EQ.'YES')GOTO5499
C
IMPCO=IMPCO-1
IF(IMPCO.LE.1)IERASW='OFF'
C
CALL DPSPM2(ICASPL,IVARN1,IVARN2,ICOLL,NUMVAR,NPLOTP,
1 IRES,IX,ICHAP2,ILINP2,
1 TEMP,TEMP2,TEMP3,XTEMP1,XTEMP2,MAXNXT,
1 ALOWFR,ALOWDG,
1 IANGLU,MAXNPP,IAND1,IAND2,
1 IFPLFI,IFPLTA,
1 XMATN,YMATN,XMITN,YMITN,
1 ISQUAR,
1 IVGMSW,IHGMSW,
1 IMPSW,IMPNR,IMPNC,IMPCO,
1 IREPCH,
1 PMXMIN,PMXMAX,PMYMIN,PMYMAX,
1 IBUGG2,IBUGG3,IBUGCO,IBUGEV,IBUGQ,
1 IBUGUG,IBUGU2,IBUGU3,IBUGU4,
1 ISUBRO,IFOUND,IERROR)
IF(IERROR.EQ.'YES')GOTO5499
5499 CONTINUE
IERROR='NO'
C
ISHIFT=NCCOMM
CALL SHIFTR(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1 IBUGG2,IERROR)
ICOM=ICT
ICOM2=IC2T
IF(NCCOMM.GT.0)THEN
DO5491II=1,NCCOMM
IHARG(II)=IHT(II)
IHARG2(II)=IH2T(II)
IARG(II)=0
ARG(II)=0.0
IARGT(II)='WORD'
5491 CONTINUE
ENDIF
IFRST=NCCOMM+2
IHARG(NUMARG)=' '
IHARG2(NUMARG)=' '
IARG(NUMARG)=0
ARG(NUMARG)=0.0
IARGT(NUMARG)=IARGT(IFRST)
NARGT=NUMARG
C
5490 CONTINUE
PX1LDS=PX1LD2
GX1MIN=GX1MNS
GX1MAX=GX1MXS
GX2MIN=GX2MNS
GX2MAX=GX2MXS
GY1MIN=GY1MNS
GY1MAX=GY1MXS
GY2MIN=GY2MNS
GY2MAX=GY2MXS
IX1MIN=IX1MNS
IX1MAX=IX1MXS
IX2MIN=IX2MNS
IX2MAX=IX2MXS
IY1MIN=IY1MNS
IY1MAX=IY1MXS
IY2MIN=IY2MNS
IY2MAX=IY2MXS
PX1ZDS=PX1ZD2
PX2ZDS=PX2ZD2
PY1ZDS=PY1ZD2
PY2ZDS=PY2ZD2
IF(IEMPTY.EQ.'YES')THEN
DO5407I=1,MAXSUB
ISUBSW(I)=ISU2SW(I)
5407 CONTINUE
ENDIF
DO5408I=1,100
ICHAPA(I)=ICHAP2(I)
ILINPA(I)=ILINP2(I)
ISPISW(I)=ISPIS2(I)
IBARSW(I)=IBARS2(I)
5408 CONTINUE
IF(IERROR.EQ.'YES')GOTO5400
C
5400 CONTINUE
5300 CONTINUE
GOTO8000
C
C
C **************************************************
C ** STEP 28-- **
C ** REINSTATE INITIAL SETTINGS **
C **************************************************
C
8000 CONTINUE
2800 CONTINUE
ISTEPN='28'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'4PLO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
IF(IBUGG3.EQ.'ON')WRITE(ICOUT,8807)IMANUF,NUMDEV,IDMANU(1)
8807 FORMAT('IMANUF,NUMDEV,IDMANU(1) = ',A4,I8,2X,A4)
IF(IBUGG3.EQ.'ON')CALL DPWRST('XXX','BUG ')
C
PWXMIN=PWXMN2
PWXMAX=PWXMX2
PWYMIN=PWYMN2
PWYMAX=PWYMX2
PXMIN=PXMN2
PXMAX=PXMX2
PYMIN=PYMN2
PYMAX=PYMX2
GX1MIN=GX1MNS
GX1MAX=GX1MXS
GX2MIN=GX2MNS
GX2MAX=GX2MXS
GY1MIN=GY1MNS
GY1MAX=GY1MXS
GY2MIN=GY2MNS
GY2MAX=GY2MXS
IX1MIN=IX1MNS
IX1MAX=IX1MXS
IX2MIN=IX2MNS
IX2MAX=IX2MXS
IY1MIN=IY1MNS
IY1MAX=IY1MXS
IY2MIN=IY2MNS
IY2MAX=IY2MXS
IX1TSW=IX1TSV
IX2TSW=IX2TSV
IY1TSW=IY1TSV
IY2TSW=IY2TSV
IX1ZSW=IX1ZSV
IX2ZSW=IX2ZSV
IY1ZSW=IY1ZSV
IY2ZSW=IY2ZSV
PX1LDS=PX1LD2
PX2LDS=PX2LD2
PY1LDS=PY1LD2
PY1LAN=PY1LA2
IY1LJU=IY1LJ2
IY1LDI=IY1LD2
PX1ZDS=PX1ZD2
PX2ZDS=PX2ZD2
PY1ZDS=PY1ZD2
PY2ZDS=PY2ZD2
C
DO8820I=1,100
ICHAPA(I)=ICHAP2(I)
ILINPA(I)=ILINP2(I)
ISPISW(I)=ISPIS2(I)
IBARSW(I)=IBARS2(I)
8820 CONTINUE
C
IMPSW='OFF'
IMPCO=1
IMPNR=IMPNR2
IMPNC=IMPNC2
C
IERASW='ON'
IFENSW=IFENC2
ISORSW=ISORS2
IPPTBI=IPPTB2
C
DO8500I=1,MAXCH
IX1LTE(I)=IX1LT2(I)
IX2LTE(I)=IX2LT2(I)
IY1LTE(I)=IY1LT2(I)
IY2LTE(I)=IY2LT2(I)
8500 CONTINUE
NCX1LA=NCX1L2
NCX2LA=NCX2L2
NCY1LA=NCY1L2
NCY2LA=NCY2L2
C
IFPLLA=IFPLL2
IFPLTA=IFPLTZ
IFPLFR=IFPLFZ
IFPLPT=IFPLPZ
IFPLLD=IFPLLZ
IFPLXA=IFPLXZ
IFPLYA=IFPLYZ
IFPLDI=IFPLDZ
IFPLST=IFPLZT
IFPLS2=IFPLZ2
IFPLS3=IFPLZ3
IFPLS4=IFPLZ4
C
IFEEDB=IFEED9
C
DO8809I=1,MAXCH
ITITTE(I)=ITITSV(I)
8809 CONTINUE
NCTITL=NCTITS
C
IENDF5='OFF'
IREWI5='ON'
IF(IOUNI5.GT.0)
1CALL DPCLFI(IOUNI5,IFILE5,ISTAT5,IFORM5,IACCE5,IPROT5,ICURS5,
1IENDF5,IREWI5,ISUBN0,IERRF5,IBUGG3,ISUBRO,IERROR)
IF(IERRF5.EQ.'YES')GOTO9000
C
PTITDS=PTITDZ
IF(IERROR.EQ.'YES')GOTO9000
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGG2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPPRPL--')
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)NUMARG
9014 FORMAT('NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NUMARG.LE.0)GOTO9029
DO9021I=1,NUMARG
WRITE(ICOUT,9022)I,IHARG(I),IARGT(I)
9022 FORMAT('I,IHARG(I),IARGT(I) = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
9021 CONTINUE
9029 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPPRPO(ICOM,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1IPPDE1,IPPDE2,
1IBUGS2,ISUBRO,IFOUND,IERROR)
C
C PURPOSE--DEFINE PREPLOT/POSTPLOT DEVICE
C THAT IS, THE CURRENT DEVICE IN WHICH
C THE USER WANTS A USER-SPECIFIED
C PREPLOT LINE TO BE WRITTEN OUT,
C AND A USER-DEFINED POSTPLOT LINE
C TO BE WRITTEN OUT.
C INPUT ARGUMENTS--IHARG (A HOLLERITH VECTOR)
C --NUMARG (AN INTEGER VARIABLE)
C OUTPUT ARGUMENTS--IPPDE1 (A HOLLERITH VARIABLE)
C IPPDE2 (A HOLLERITH VARIABLE)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--86/9
C ORIGINAL VERSION--OCTOBER 1986.
C UPDATED --FEBRUARY 1987.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICOM
CHARACTER*4 IHARG
CHARACTER*4 IHARG2
CCCCC CHARACTER*4 IARG JULY 1987
CCCCC CHARACTER*4 ARG JULY 1987
CHARACTER*4 IARGT
C
CHARACTER*4 IPPDE1
CHARACTER*4 IPPDE2
CHARACTER*4 IBUGS2
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHOLD1
CHARACTER*4 IHOLD2
C
CHARACTER*4 IHARG1
C
C---------------------------------------------------------------------
C
DIMENSION IHARG(*)
DIMENSION IHARG2(*)
DIMENSION IARG(*)
DIMENSION ARG(*)
DIMENSION IARGT(*)
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
IHARG1=IHARG(1)
C
IF(ICOM.EQ.'PRE')GOTO1109
IF(ICOM.EQ.'PREP')GOTO1109
IF(ICOM.EQ.'POST')GOTO1109
ISHIFT=1
CALL SHIFTL(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1IBUGS2,IERROR)
1109 CONTINUE
C
1110 CONTINUE
IF(NUMARG.LE.0)GOTO1120
C
IF(IHARG(NUMARG).EQ.'ON')GOTO1120
IF(IHARG(NUMARG).EQ.'OFF')GOTO1120
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1120
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1120
C
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'POST')GOTO1120
IF(NUMARG.EQ.1.AND.IHARG(1).EQ.'DEVI')GOTO1120
IF(NUMARG.EQ.1)GOTO1130
C
IF(NUMARG.EQ.2.AND.IHARG(1).EQ.'POST'
1 .AND.IHARG(2).EQ.'DEVI')GOTO1120
IF(NUMARG.EQ.2.AND.IHARG(1).EQ.'POST'
1 .AND.IHARG(2).NE.'DEVI')GOTO1130
IF(NUMARG.EQ.2.AND.IHARG(1).EQ.'DEVI')GOTO1130
C
IF(NUMARG.EQ.3.AND.IHARG(1).EQ.'POST'
1 .AND.IHARG(2).EQ.'DEVI')GOTO1130
IF(NUMARG.EQ.3.AND.IHARG(1).EQ.'POST'
1 .AND.IHARG(2).NE.'DEVI')GOTO1140
IF(NUMARG.EQ.3.AND.IHARG(1).EQ.'DEVI')GOTO1140
C
GOTO1140
C
1120 CONTINUE
IHOLD1='NONE'
IHOLD2=' '
GOTO1180
C
1130 CONTINUE
IHOLD1=IHARG(NUMARG)
IHOLD2=' '
GOTO1180
C
1140 CONTINUE
NUMAM1=NUMARG-1
IHOLD1=IHARG(NUMAM1)
IHOLD2=IHARG(NUMARG)
GOTO1180
C
1180 CONTINUE
IPPDE1=IHOLD1
IPPDE2=IHOLD2
C
IF(IFEEDB.EQ.'OFF')GOTO1189
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1188)IPPDE1,IPPDE2
1188 FORMAT('THE PREPLOT/POSTPLOT DEVICE HAS JUST BEEN SET TO ',
1A4,2X,A4)
CALL DPWRST('XXX','BUG ')
1189 CONTINUE
GOTO1199
C
1199 CONTINUE
RETURN
END
SUBROUTINE DPPRSW(IHARG,NUMARG,
1IPRIN2,IFOUND,IERROR)
C
C PURPOSE--SPECIFY THE PRINTING SWITCH WHICH IN TURN
C DETERMINES WHETHER ANY SUBSEQUENT NON-GRAPHICAL OUTPUT
C WILL BE PRINTED OR NOT.
C THIS CAPABILITY IS USEFUL IF ONE WISHES TO SUPPRESS
C OUTPUT FROM ALL PRELIMINARY AND INTERMEDIATE
C CALCULATIONS AND JUST HAVE THE FINAL PLOTS THEMSELVES
C APPEAR ON THE SCREEN.
C THE SPECIFIED PRINTING SWITCH SPECIFICATION
C WILL BE PLACED IN THE HOLLERITH VARIABLE IPRIN2.
C INPUT ARGUMENTS--IHARG (A HOLLERITH VECTOR)
C --NUMARG (AN INTEGER VARIABLE)
C OUTPUT ARGUMENTS--IPRIN2 (A HOLLERITH VARIABLE)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
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 --FEBRUARY 1982.
C UPDATED --MAY 1982.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IHARG
CHARACTER*4 IPRIN2
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
1110 CONTINUE
IF(NUMARG.LE.0)GOTO1150
IF(IHARG(NUMARG).EQ.'ON')GOTO1150
IF(IHARG(NUMARG).EQ.'OFF')GOTO1160
IF(IHARG(NUMARG).EQ.'AUTO')GOTO1150
IF(IHARG(NUMARG).EQ.'DEFA')GOTO1150
GOTO1199
C
1150 CONTINUE
IHOLD='ON'
GOTO1180
C
1160 CONTINUE
IHOLD='OFF'
GOTO1180
C
1180 CONTINUE
IFOUND='YES'
IPRIN2=IHOLD
IPRINT=IPRIN2
C
IF(IFEEDB.EQ.'OFF')GOTO1189
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1181)IPRIN2
1181 FORMAT('THE PRINTING SWITCH HAS JUST BEEN SET TO ',
1A4)
CALL DPWRST('XXX','BUG ')
1189 CONTINUE
GOTO1199
C
1199 CONTINUE
RETURN
END
SUBROUTINE DPPYRA(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 PYRAMIDS
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 FRONT FACE OF THE PYRAMID.
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 PYRAMID 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 PYRAMID.
C NOTE--IF 6 NUMBERS ARE PROVIDED,
C THEN THE DRAWN PYRAMID 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 PYRAMID.
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 CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/5
C ORIGINAL VERSION--APRIL 1987.
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.'PYRA')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPPYRA--')
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='PYRA'
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 DPPYRA--')
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 PYRAMID WITH ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1136)
1136 FORMAT(' FRONT FACE 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(' PYRAMID 20 20 50 20 35 40')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1143)
1143 FORMAT(' PYRAMID 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 DPPYR2(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.'PYRA')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPPYRA--')
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 DPPYR2(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 PYRAMID
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 CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/5
C ORIGINAL VERSION--APRIL 1987.
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.'PYR2')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPPYR2--')
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 ** SET THE SPECS **
C ** WHICH CONTROL THE **
C ** APPEARANCE OF THE **
C ** RESULTING CUBE. **
C *********************************
C
DELX21=ABS(X2-X1)
DELY32=ABS(Y3-Y2)
C
P3DX=0.1
P3DY=0.3
C
C *************************
C ** STEP 2-- **
C ** FILL THE FIGURE **
C ** (IF CALLED FOR) **
C *************************
C
IF(IREFSW(1).EQ.'OFF')GOTO2190
C
IPATT=IREPTY(1)
PTHICK=PREPTH(1)
PXGAP=PREPSP(1)
PYGAP=PREPSP(1)
ICOLF=IREFCO(1)
ICOLP=IREPCO(1)
C
IF(IREFSW(1).EQ.'ON')GOTO2110
IF(IREFSW(1).EQ.'ONF')GOTO2110
IF(IREFSW(1).EQ.'ONS')GOTO2120
IF(IREFSW(1).EQ.'ONFS')GOTO2110
IF(IREFSW(1).EQ.'ONSF')GOTO2110
C
C ********************************
C ** STEP 2.1-- **
C ** FRONT FACE ONLY **
C ********************************
C
2110 CONTINUE
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
IPATT2='SOLI'
CALL DPFIRE(PX,PY,NP,
1IFIG,IPATT,PTHICK,PXGAP,PYGAP,ICOLF,ICOLP,IPATT2)
C
IF(IREFSW(1).EQ.'ON')GOTO2120
IF(IREFSW(1).EQ.'ONF')GOTO2190
IF(IREFSW(1).EQ.'ONS')GOTO2120
IF(IREFSW(1).EQ.'ONFS')GOTO2120
IF(IREFSW(1).EQ.'ONSF')GOTO2120
C
C ********************************
C ** STEP 2.2-- **
C ** SIDE (= RIGHT) FACE ONLY **
C ********************************
C
2120 CONTINUE
PX(1)=X3
PY(1)=Y3
C
PX(2)=X2-P3DX*DELX21
PY(2)=Y2+P3DY*DELY32
C
PX(3)=X2
PY(3)=Y2
C
PX(4)=X3
PY(4)=Y3
C
NP=4
C
IPATT2='SOLI'
CALL DPFIRE(PX,PY,NP,
1IFIG,IPATT,PTHICK,PXGAP,PYGAP,ICOLF,ICOLP,IPATT2)
C
GOTO2190
C
2190 CONTINUE
C
C ***************************
C ** STEP 3-- **
C ** DRAW OUT THE FIGURE **
C ***************************
C
IPATT=ILINPA(1)
PTHICK=PLINTH(1)
ICOL=ILINCO(1)
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
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
PX(1)=X3
PY(1)=Y3
C
PX(2)=X2-0.1*DELX21
PY(2)=Y2+0.3*DELY32
C
PX(3)=X2
PY(3)=Y2
C
NP=3
C
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.'PYR2')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPPYR2--')
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,9021)IREFSW(1),IREFCO(1)
9021 FORMAT('IREFSW(1),IREFCO(1) = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9022)DELX21,DELY32,P3DX,P3DY
9022 FORMAT('DELX21,DELY32,P3DX,P3DY = ',4E15.7)
CALL DPWRST('XXX','BUG ')
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 DPQCC(NPLOTV,NPLOTP,NS,ICASPL,IAND1,IAND2,
1ICONT,IBUGG2,IBUGG3,IBUGQ,ISUBRO,IFOUND,IERROR)
C
C PURPOSE--GENERATE ONE OF THE FOLLOWING Q (= QUESENBERRY)
C CONTROL CHARTS--
C 1) Q MEAN
C 2) Q RANGE
C 3) Q STANDARD DEVIATION
C 4) Q CUSUM
C 5) Q P
C 6) Q PN
C 7) Q C
C 8) Q U
C REFERENCE--QUESENBERRY, CHARLES P. SPC Q CHARTS FOR START-UP
C PROCESSES AND SHORT OR LONG RUNS.
C JOURNAL OF QUALITY TECNOLOGY, JULY 1991,
C PAGES 213-224.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
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--93/12
C ORIGINAL VERSION--DECEMBER 1993.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICASPL
CHARACTER*4 IAND1
CHARACTER*4 IAND2
CHARACTER*4 ICONT
CHARACTER*4 IBUGG2
CHARACTER*4 IBUGG3
CHARACTER*4 IBUGQ
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IHWUSE
CHARACTER*4 MESSAG
CHARACTER*4 ICASEQ
CHARACTER*4 IH
CHARACTER*4 IH2
CHARACTER*4 IERRO2
CHARACTER*4 IHLEFT
CHARACTER*4 IHLEF2
CHARACTER*4 IHHOR
CHARACTER*4 IHHOR2
C
CHARACTER*4 IHEXT
CHARACTER*4 IHEXT2
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
INCLUDE 'DPCOPA.INC'
C
DIMENSION Y1(MAXOBV)
DIMENSION Y2(MAXOBV)
DIMENSION X1(MAXOBV)
C
DIMENSION XIDTEM(MAXOBV)
DIMENSION TEMP(MAXOBV)
DIMENSION TEMP2(MAXOBV)
INCLUDE 'DPCOZZ.INC'
EQUIVALENCE (GARBAG(IGARB1),X1(1))
EQUIVALENCE (GARBAG(IGARB2),Y1(1))
EQUIVALENCE (GARBAG(IGARB3),Y2(1))
EQUIVALENCE (GARBAG(IGARB4),XIDTEM(1))
EQUIVALENCE (GARBAG(IGARB5),TEMP(1))
EQUIVALENCE (GARBAG(IGARB6),TEMP2(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
IERROR='NO'
C
ISUBN1='DPQC'
ISUBN2='C '
C
MAXCP1=MAXCOL+1
MAXCP2=MAXCOL+2
MAXCP3=MAXCOL+3
MAXCP4=MAXCOL+4
MAXCP5=MAXCOL+5
MAXCP6=MAXCOL+6
C
MAXV2=2
MINN2=2
C
ICOLH=0
C
C **************************************
C ** TREAT THE Q CONTROL CHART CASE **
C **************************************
C
IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'PQCC')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPQCC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICASPL,IAND1,IAND2
52 FORMAT('ICASPL,IAND1,IAND2 = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)ICONT,IBUGG2,IBUGG3,IBUGQ
53 FORMAT('ICONT,IBUGG2,IBUGG3,IBUGQ = ',A4,2X,A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)ISUBRO
54 FORMAT('ISUBRO = ',A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C ***************************
C ** STEP 1-- **
C ** EXTRACT THE COMMAND **
C ***************************
C
ISTEPN='1'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICOM=IHARG(1)
ICOM2=IHARG2(1)
ISHIFT=1
CALL SHIFTL(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
1IBUGG2,IERROR)
C
C ***************************************
C ** STEP 1.1-- **
C ** SEARCH FOR Q MEAN CONTROL CHART **
C ***************************************
C
ICASPL='MECC'
C
IF(NUMARG.GE.3.AND.
1ICOM.EQ.'X'.AND.IHARG(1).EQ.'BAR'.AND.IHARG(2).EQ.'CONT'.AND.
1IHARG(3).EQ.'CHAR')GOTO113
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'XBAR'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'MEAN'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'AVER'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'CONT'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'MEAN'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'XBAR'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'AVER'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
C
C ************************************************
C ** STEP 1.2-- **
C ** SEARCH FOR Q STANDARD DEV. CONTROL CHART **
C ************************************************
C
ICASPL='SDCC'
C
IF(NUMARG.GE.3.AND.
1ICOM.EQ.'STAN'.AND.IHARG(1).EQ.'DEVI'.AND.IHARG(2).EQ.'CONT'.AND.
1IHARG(3).EQ.'CHAR')GOTO113
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'SD'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'S'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'SD'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'S'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
C
C ****************************************
C ** STEP 1.3-- **
C ** SEARCH FOR Q RANGE CONTROL CHART **
C ****************************************
C
ICASPL='RACC'
C
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'RANG'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'R'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'RANG'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'R'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
C
C ****************************************
C ** STEP 1.4-- **
C ** SEARCH FOR Q CUSUM CONTROL CHART **
C ****************************************
C
ICASPL='CUCC'
C
IF(NUMARG.GE.3.AND.
1ICOM.EQ.'CUMU'.AND.IHARG(1).EQ.'SUM'.AND.IHARG(2).EQ.'CONT'.AND.
1IHARG(3).EQ.'CHAR')GOTO113
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'CUSU'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
C
C ****************************************
C ** STEP 1.5-- **
C ** SEARCH FOR Q P CONTROL CHART **
C ****************************************
C
ICASPL='PCC'
C
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'P'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'P'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
C
C ****************************************
C ** STEP 1.6-- **
C ** SEARCH FOR Q PN CONTROL CHART **
C ****************************************
C
ICASPL='PNCC'
C
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'PN'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'PN'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'NP'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'NP'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
C
C ****************************************
C ** STEP 1.7-- **
C ** SEARCH FOR Q C CONTROL CHART **
C ****************************************
C
ICASPL='CCC'
C
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'C'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'C'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
C
C ****************************************
C ** STEP 1.8-- **
C ** SEARCH FOR Q U CONTROL CHART **
C ****************************************
C
ICASPL='UCC'
C
IF(NUMARG.GE.2.AND.
1ICOM.EQ.'U'.AND.IHARG(1).EQ.'CONT'.AND.IHARG(2).EQ.'CHAR')
1GOTO112
IF(NUMARG.GE.1.AND.
1ICOM.EQ.'U'.AND.IHARG(1).EQ.'CHAR')
1GOTO111
C
ICASPL=' '
C
IFOUND='NO'
GOTO9000
C
111 CONTINUE
ILASTC=1
CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
GOTO180
C
112 CONTINUE
ILASTC=2
CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
GOTO180
C
113 CONTINUE
ILASTC=3
CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
GOTO180
C
180 CONTINUE
IFOUND='YES'
GOTO190
C
190 CONTINUE
C
C ***********************************************************
C ** STEP 1-- **
C ** CHECK FOR THE PROPER NUMBER OF INPUT ARGUMENTS. **
C ***********************************************************
C
ISTEPN='1'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
MINNA=1
MAXNA=100
CALL CHECKA(NUMARG,MINNA,MAXNA,IANS,IWIDTH,ISUBN1,ISUBN2,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ********************************************
C ** STEP 2-- **
C ** CHECK THE VALIDITY OF ARGUMENT 1 **
C ** (THIS WILL BE THE RESPONSE VARIABLE) **
C ********************************************
C
ISTEPN='2'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')
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)
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')THEN
WRITE(ICOUT,211)IHLEFT,ICOLL,NLEFT
211 FORMAT('IHLEFT,ICOLL,NLEFT = ',A4,I8,I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
C ***************************************************************
C ** STEP 3-- **
C ** CHECK THAT THE INPUT NUMBER OF OBSERVATIONS (NLEFT) **
C ** FOR THE RESPONSE VARIABLE IS 2 OR LARGER. **
C ***************************************************************
C
ISTEPN='3'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')
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 DPQCC--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,312)
312 FORMAT(' THE INPUT NUMBER OF OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'MECC')WRITE(ICOUT,321)
321 FORMAT(' (FOR WHICH A Q MEAN CONTROL CHART ')
IF(ICASPL.EQ.'MECC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'SDCC')WRITE(ICOUT,322)
322 FORMAT(' (FOR WHICH A Q STANDARD DEVIATION CONTROL CHART ')
IF(ICASPL.EQ.'SDCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'RACC')WRITE(ICOUT,323)
323 FORMAT(' (FOR WHICH A Q RANGE CONTROL CHART ')
IF(ICASPL.EQ.'RACC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'CUCC')WRITE(ICOUT,324)
324 FORMAT(' (FOR WHICH A Q CUSUM CONTROL CHART ')
IF(ICASPL.EQ.'CUCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'PCC')WRITE(ICOUT,325)
325 FORMAT(' (FOR WHICH A Q P CONTROL CHART ')
IF(ICASPL.EQ.'PCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'PNCC')WRITE(ICOUT,326)
326 FORMAT(' (FOR WHICH A Q NP CONTROL CHART ')
IF(ICASPL.EQ.'PNCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'CCC')WRITE(ICOUT,327)
327 FORMAT(' (FOR WHICH A Q C CONTROL CHART ')
IF(ICASPL.EQ.'CCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'UCC')WRITE(ICOUT,328)
328 FORMAT(' (FOR WHICH A Q U CONTROL CHART ')
IF(ICASPL.EQ.'UCC')CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,334)
334 FORMAT(' WAS TO HAVE BEEN FORMED)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,335)MINN2
335 FORMAT(' MUST BE ',I8,' OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,336)
336 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,337)
337 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,338)(IANS(I),I=1,IWIDTH)
338 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
390 CONTINUE
C
C *****************************************
C ** STEP 4-- **
C ** CHECK TO SEE THE TYPE SUBCASE **
C ** (BASED ON THE QUALIFIER)-- **
C ** 1) UNQUALIFIED (THAT IS, FULL); **
C ** 2) SUBSET/EXCEPT; OR **
C ** 3) FOR. **
C *****************************************
C
ISTEPN='4'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='FULL'
ILOCQ=NUMARG+1
IF(NUMARG.LT.1)GOTO480
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
C
480 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,481)
481 FORMAT('***** INTERNAL ERROR IN DPQCC')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,482)
482 FORMAT(' AT BRANCH POINT 481--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,483)
483 FORMAT(' NUMARG LESS THAN 1 EVEN THOUGH')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,484)
484 FORMAT(' NUMARG HAD PREVIOUSLY PASSED THIS TEST')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,485)NUMARG
485 FORMAT(' ONCE ALREADY. VALUE OF NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,486)
486 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,487)(IANS(I),I=1,IWIDTH)
487 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
490 CONTINUE
IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'PQCC')GOTO495
WRITE(ICOUT,491)NUMARG,ILOCQ,ICASEQ
491 FORMAT('NUMARG,ILOCQ,ICASEQ = ',I8,I8,2X,A4)
CALL DPWRST('XXX','BUG ')
495 CONTINUE
C
C ************************************************************
C ** STEP 5-- **
C ** IF A SECOND ARGUMENT EXISTS, THEN THIS **
C ** INDICATES THAT THE VALUES IN THE **
C ** FIRST VARIABLE ARE TO BE GROUPED **
C ** BASED ON VALUES OF THE SECOND VARIABLE; **
C ** THAT IS, THE SECOND VARAIBLE DEFINES THE **
C ** GROUP NUMBERS WITHIN WHICH THE MEANS, **
C ** STANDARD DEVIATIONS, RANGES, AND **
C ** CUMULATIVE SUMS ARE TO BE COMPUTED. **
C ** THE VALUES IN THE SECOND VARIABLE **
C ** ARE THE X VALUES FOR EACH MEAN, STANDARD DEVIATION, **
C ** ETC. IN THE RESULTING Q CONTROL CHART. **
C ** THE VALUES IN THE SECOND VARIABLE **
C ** NEED NOT HAVE BEEN PREVIOUSLY **
C ** SORTED OR HAVE COMMON VALUES ADJACENT. **
C ** IF WE HAVE THE 2-VARIABLE CASE, **
C ** CHECK THE VALIDITY OF THE SECOND (X) VARIABLE. **
C ************************************************************
C
ISTEPN='5'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMV2=ILOCQ-1
IF(NUMV2.EQ.1)GOTO599
IF(NUMV2.EQ.2)GOTO530
IF(NUMV2.EQ.3)GOTO540
GOTO510
C
510 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,511)
511 FORMAT('***** ERROR IN DPQCC--')
CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'MECC')WRITE(ICOUT,512)
512 FORMAT(' FOR A Q MEAN CONTROL CHART, ')
IF(ICASPL.EQ.'MECC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'SDCC')WRITE(ICOUT,513)
513 FORMAT(' FOR A Q STANDARD DEVIATION CONTROL CHART, ')
IF(ICASPL.EQ.'SDCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'RACC')WRITE(ICOUT,514)
514 FORMAT(' FOR A Q RANGE CONTROL CHART, ')
IF(ICASPL.EQ.'RACC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'CUCC')WRITE(ICOUT,515)
515 FORMAT(' FOR A Q CUSUM CONTROL CHART, ')
IF(ICASPL.EQ.'CUCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'PCC')WRITE(ICOUT,516)
516 FORMAT(' (FOR WHICH A Q P CONTROL CHART ')
IF(ICASPL.EQ.'PCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'PNCC')WRITE(ICOUT,517)
517 FORMAT(' (FOR WHICH A Q NP CONTROL CHART ')
IF(ICASPL.EQ.'PNCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'CCC')WRITE(ICOUT,518)
518 FORMAT(' (FOR WHICH A Q C CONTROL CHART ')
IF(ICASPL.EQ.'CCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'UCC')WRITE(ICOUT,519)
519 FORMAT(' (FOR WHICH A Q U CONTROL CHART ')
IF(ICASPL.EQ.'UCC')CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,523)
523 FORMAT(' THE NUMBER OF VARIABLES ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,524)
524 FORMAT(' MUST BE EITHER 1 OR 2 ;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,525)
525 FORMAT(' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,526)
526 FORMAT(' THE SPECIFIED NUMBER')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,527)NUMV2
527 FORMAT(' OF VARIABLES WAS ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,528)
528 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,529)(IANS(I),I=1,IWIDTH)
529 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
530 CONTINUE
IHHOR=IHARG(2)
IHHOR2=IHARG2(2)
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHHOR,IHHOR2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ICOLH=IVALUE(ILOCV)
NHOR=IN(ILOCV)
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')THEN
WRITE(ICOUT,531)IHHOR,ICOLH,NHOR
531 FORMAT('IHHOR,ICOLH,NHOR = ',A4,I8,I8)
CALL DPWRST('XXX','BUG ')
ENDIF
IF(NHOR.NE.NLEFT)GOTO570
GOTO599
C
540 CONTINUE
C IHEXT AS IN "EXTRA"
IHEXT=IHARG(2)
IHEXT2=IHARG2(2)
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHEXT,IHEXT2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ICOLE=IVALUE(ILOCV)
NEXT=IN(ILOCV)
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')THEN
WRITE(ICOUT,541)IHEXT,ICOLE,NEXT
541 FORMAT('IHEXT,ICOLE,NEXT = ',A4,I8,I8)
CALL DPWRST('XXX','BUG ')
ENDIF
IF(NEXT.NE.NLEFT)GOTO570
C
IHHOR=IHARG(3)
IHHOR2=IHARG2(3)
IHWUSE='V'
MESSAG='YES'
CALL CHECKN(IHHOR,IHHOR2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ICOLH=IVALUE(ILOCV)
NHOR=IN(ILOCV)
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')THEN
WRITE(ICOUT,542)IHHOR,ICOLH,NHOR
542 FORMAT('IHHOR,ICOLH,NHOR = ',A4,I8,I8)
CALL DPWRST('XXX','BUG ')
ENDIF
IF(NHOR.NE.NLEFT)GOTO570
GOTO599
C
570 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,571)
571 FORMAT('***** ERROR IN DPQCC--')
CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'MECC')WRITE(ICOUT,572)
572 FORMAT(' FOR A Q MEAN CONTROL CHART, ')
IF(ICASPL.EQ.'MECC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'SDCC')WRITE(ICOUT,573)
573 FORMAT(' FOR A Q STANDARD DEVIATION CONTROL CHART,')
IF(ICASPL.EQ.'SDCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'RACC')WRITE(ICOUT,574)
574 FORMAT(' FOR A Q RANGE CONTROL CHART, ')
IF(ICASPL.EQ.'RACC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'CUCC')WRITE(ICOUT,575)
575 FORMAT(' FOR A Q CUSUM CONTROL CHART,')
IF(ICASPL.EQ.'CUCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'PCC')WRITE(ICOUT,576)
576 FORMAT(' (FOR WHICH A P CONTROL CHART ')
IF(ICASPL.EQ.'PCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'PNCC')WRITE(ICOUT,577)
577 FORMAT(' (FOR WHICH A NP CONTROL CHART ')
IF(ICASPL.EQ.'PNCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'CCC')WRITE(ICOUT,578)
578 FORMAT(' (FOR WHICH A Q C CONTROL CHART ')
IF(ICASPL.EQ.'CCC')CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'UCC')WRITE(ICOUT,579)
579 FORMAT(' (FOR WHICH A Q U CONTROL CHART ')
IF(ICASPL.EQ.'UCC')CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,584)
584 FORMAT(' WHEN HAVE 2 (OR 3) VARAIBLES SPECIFIED, ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,585)
585 FORMAT(' THE NUMBER OF ELEMENTS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,586)
586 FORMAT(' IN THE 2 (OR 3) VARIABLES ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,587)
587 FORMAT(' MUST BE THE SAME; ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,588)
588 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,589)
589 FORMAT(' THE FIRST VARIABLE (RESPONSE VALUES)--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,590)IHLEFT,NLEFT
590 FORMAT(' ',A4,' HAS ',I8,' ELEMENTS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,591)
591 FORMAT(' THE 2ND VARIABLE--')
CALL DPWRST('XXX','BUG ')
IF(NUMV2.EQ.3)WRITE(ICOUT,592)IHEXT,NEXT
IF(NUMV2.EQ.3)CALL DPWRST('XXX','BUG ')
IF(NUMV2.EQ.2)WRITE(ICOUT,592)IHHOR,NHOR
592 FORMAT(' ',A4,' HAS ',I8,' ELEMENTS')
IF(NUMV2.EQ.2)CALL DPWRST('XXX','BUG ')
IF(NUMV2.EQ.3)WRITE(ICOUT,593)
593 FORMAT(' THE 3ND VARIABLE (HORIZ. AXIS VALUES)--')
IF(NUMV2.EQ.3)CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,594)IHHOR,NHOR
594 FORMAT(' ',A4,' HAS ',I8,' ELEMENTS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,595)
595 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,596)(IANS(I),I=1,IWIDTH)
596 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
599 CONTINUE
C
C *************************************************
C ** STEP 6-- **
C ** BRANCH TO THE APPROPRIATE SUBCASE; **
C ** (BASED ON THE QUALIFIER) **
C ** THEN FORM THE RESPONSE VARIABLE **
C ** AND THE SECOND VARIABLE (IF EXISTENT) **
C *************************************************
C
ISTEPN='6'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASEQ.EQ.'FULL')GOTO610
IF(ICASEQ.EQ.'SUBS')GOTO620
IF(ICASEQ.EQ.'FOR')GOTO630
C
610 CONTINUE
DO615I=1,NLEFT
ISUB(I)=1
615 CONTINUE
NQ=NLEFT
GOTO650
C
620 CONTINUE
NIOLD=NLEFT
CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR)
NQ=NIOLD
GOTO650
C
630 CONTINUE
NIOLD=NLEFT
CALL DPFOR(NIOLD,NFOR,IROW1,IROWN,
1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
NQ=NFOR
GOTO650
C
650 CONTINUE
J=0
IMAX=NLEFT
IF(NQ.LT.NLEFT)IMAX=NQ
DO660I=1,IMAX
IF(ISUB(I).EQ.0)GOTO660
J=J+1
C
IJ=MAXN*(ICOLL-1)+I
IF(ICOLL.LE.MAXCOL)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)
IF(NUMV2.LE.1)GOTO660
C
IF(NUMV2.EQ.2)GOTO652
GOTO653
C
652 CONTINUE
IJ=MAXN*(ICOLH-1)+I
IF(ICOLH.LE.MAXCOL)X1(J)=V(IJ)
IF(ICOLH.EQ.MAXCP1)X1(J)=PRED(I)
IF(ICOLH.EQ.MAXCP2)X1(J)=RES(I)
IF(ICOLH.EQ.MAXCP3)X1(J)=YPLOT(I)
IF(ICOLH.EQ.MAXCP4)X1(J)=XPLOT(I)
IF(ICOLH.EQ.MAXCP5)X1(J)=X2PLOT(I)
IF(ICOLH.EQ.MAXCP6)X1(J)=TAGPLO(I)
GOTO660
C
653 CONTINUE
IJ=MAXN*(ICOLE-1)+I
IF(ICOLE.LE.MAXCOL)Y2(J)=V(IJ)
IF(ICOLE.EQ.MAXCP1)Y2(J)=PRED(I)
IF(ICOLE.EQ.MAXCP2)Y2(J)=RES(I)
IF(ICOLE.EQ.MAXCP3)Y2(J)=YPLOT(I)
IF(ICOLE.EQ.MAXCP4)Y2(J)=XPLOT(I)
IF(ICOLE.EQ.MAXCP5)Y2(J)=X2PLOT(I)
IF(ICOLE.EQ.MAXCP6)Y2(J)=TAGPLO(I)
C
IJ=MAXN*(ICOLH-1)+I
IF(ICOLH.LE.MAXCOL)X1(J)=V(IJ)
IF(ICOLH.EQ.MAXCP1)X1(J)=PRED(I)
IF(ICOLH.EQ.MAXCP2)X1(J)=RES(I)
IF(ICOLH.EQ.MAXCP3)X1(J)=YPLOT(I)
IF(ICOLH.EQ.MAXCP4)X1(J)=XPLOT(I)
IF(ICOLH.EQ.MAXCP5)X1(J)=X2PLOT(I)
IF(ICOLH.EQ.MAXCP6)X1(J)=TAGPLO(I)
GOTO660
C
660 CONTINUE
NLOCAL=J
C
C ****************************************************************
C ** STEP 8-- **
C ** DETERMINE IF THE ANALYST **
C ** HAS SPECIFIED
C ** LSL (LOWER SPEC LIMIT)
C ** USL (UPPER SPEC LIMIT)
C ** USLCOST (UPPER SPEC LIMIT COST)
C ** TARGET
C ** FOR THE Q CONTROL CHART ANALYSIS. **
C ****************************************************************
C
ISTEPN='8'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CCLSL=CPUMIN
IH='LSL '
IH2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IH,IH2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERRO2)
IF(IERRO2.EQ.'NO')CCLSL=VALUE(ILOCP)
C
CCUSL=CPUMIN
IH='USL '
IH2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IH,IH2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERRO2)
IF(IERRO2.EQ.'NO')CCUSL=VALUE(ILOCP)
C
CCTARG=CPUMIN
IH='TARG'
IH2='ET '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IH,IH2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERRO2)
IF(IERRO2.EQ.'NO')CCTARG=VALUE(ILOCP)
C
C *************************************************************
C ** STEP 9-- **
C ** COMPUTE THE APPROPRIATE Q CONTROL CHART STATISTIC-- **
C ** MEAN, STANDARD DEVIATION, RANGE, CUSUM, **
C ** P, NP, C, U. **
C ** COMPUTE CONFIDENCE LINES. **
C ** FORM THE VERTICAL AND HORIZONTAL AXIS **
C ** VALUES Y(.) AND X(.) FOR THE PLOT. **
C ** DEFINE THE VECTOR D(.) TO 1'S, 2'S, AND 3'S **
C ** FOR THE PLOTTED VALUE, THE LOWER CONFIDENCE LINE, **
C ** AND THE UPPER CONFIDENCE LINE. **
C ** DEFINE THE NUMBER OF PLOT POINTS (NPLOTP). **
C ** DEFINE THE NUMBER OF PLOT VARIABLES (NPLOTV). **
C *************************************************************
C
ISTEPN='8'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'PQCC')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
809 CONTINUE
CALL DPQCC2(Y1,Y2,X1,NLOCAL,NUMV2,ICASPL,ISIZE,ICONT,
1XIDTEM,TEMP,TEMP2,CCLSL,CCUSL,CCTARG,
1Y,X,D,NPLOTP,NPLOTV,IBUGG3,ISUBRO,IERROR)
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGG2.EQ.'OFF'.AND.ISUBRO.NE.'PQCC')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPQCC--')
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('PNLOTV,NPLOTP,NS,ICASPL,IAND1,IAND2 = ',
1I8,I8,I8,2X,A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)ISIZE
9014 FORMAT('ISIZE = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NPLOTP.LE.0)GOTO9090
DO9015I=1,NPLOTP
WRITE(ICOUT,9016)I,Y(I),X(I),D(I)
9016 FORMAT('I,Y(I),X(I),D(I) = ',I8,3F12.5)
CALL DPWRST('XXX','BUG ')
9015 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPQCC2(Y,YN,X,N,NUMV2,ICASPL,ISIZE,ICONT,
1XIDTEM,TEMP,TEMP2,CCLSL,CCUSL,CCTARG,
1Y2,X2,D2,N2,NPLOTV,IBUGG3,ISUBRO,IERROR)
C
C PURPOSE--GENERATE A PAIR OF COORDINATE VECTORS
C THAT WILL DEFINE A Q (= QUESENBERRY) CONTROL CHART
C OF THE FOLLOWING TYPES--
C 1) Q MEAN CONTROL CHART Y X
C 2) Q STANDARD DEVIATION CONTROL CHART Y X
C 3) Q RANGE CONTROL CHART Y X
C 4) Q CUSUM CONTROL CHART Y X
C 5) Q P CONTROL CHART NUMDEF NUMTOT X
C 6) Q PN CONTROL CHART NUMDEF NUMTOT X
C 7) Q U CONTROL CHART NUMDEF SIZE X
C 8) Q P CONTROL CHART NUMDEF SIZE X
C NOTE--USE P AND PN CHARTS IF KNOW HOW MANY ITEMS HAVE DEFECTS
C --USE U AND C CHARTS IF KNOW HOW MANY DEFECTS
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C REFERENCE--QUESENBERRY, CHARLES P. SPC Q CHARTS FOR START-UP
C PROCESSES AND SHORT OR LONG RUNS.
C JOURNAL OF QUALITY TECNOLOGY, JULY 1991,
C PAGES 213-224.
C REFERENCE--ASTM MANUAL STP-15D, PAGES 78-84, 100-105
C REFERENCE--ISHIKAWA, GUIDE TO QUALITY CONTROL
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--93/12
C ORIGINAL VERSION--DECEMBER 1993.
C UPDATED --OCTOBER 2006. CALL LIST TO TCDF
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICASPL
CHARACTER*4 ICONT
CHARACTER*4 IBUGG3
CHARACTER*4 ISUBRO
CHARACTER*4 IERROR
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION YN(*)
DIMENSION X(*)
DIMENSION Y2(*)
DIMENSION X2(*)
DIMENSION D2(*)
C
DIMENSION XIDTEM(*)
DIMENSION TEMP(*)
DIMENSION TEMP2(*)
C
DIMENSION A3(30)
DIMENSION C4(30)
DIMENSION B3(30)
DIMENSION B4(30)
DIMENSION D22(30)
DIMENSION D3(30)
DIMENSION D4(30)
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(A3(I),I= 1, 25)
1/9.999,2.659,1.954,1.628,1.427,
1 1.287,1.182,1.099,1.032,0.975,
1 0.927,0.886,0.850,0.817,0.789,
1 0.763,0.739,0.718,0.698,0.680,
1 0.663,0.647,0.633,0.619,0.606/
DATA(C4(I),I= 1, 25)
1/9.9999,0.7979,0.8862,0.9213,0.9400,
1 0.9515,0.9594,0.9650,0.9693,0.9727,
1 0.9754,0.9776,0.9794,0.9810,0.9823,
1 0.9835,0.9845,0.9854,0.9862,0.9869,
1 0.9876,0.9882,0.9887,0.9892,0.9896/
DATA(B3(I),I= 1, 25)
1/0.000,0.000,0.000,0.000,0.000,0.030,0.118,0.185,0.239,0.284,
1 0.321,0.354,0.382,0.406,0.428,0.448,0.466,0.482,0.497,0.510,
1 0.523,0.534,0.545,0.555,0.565/
DATA(B4(I),I= 1, 25)
1/9.999,3.267,2.568,2.266,2.089,1.970,1.882,1.815,1.761,1.716,
1 1.679,1.646,1.618,1.594,1.572,1.552,1.534,1.518,1.503,1.490,
1 1.477,1.466,1.455,1.445,1.435/
DATA(D22(I),I= 1, 25)
1/9.999,3.686,4.358,4.698,4.918,5.078,5.203,5.307,5.394,5.469,
1 5.534,5.592,5.646,5.693,5.737,5.779,5.817,5.854,5.888,5.922,
1 5.950,5.979,6.006,6.031,6.058/
DATA(D3(I),I= 1, 25)
1/0.000,0.000,0.000,0.000,0.000,0.000,0.076,0.136,0.184,0.223,
1 0.256,0.284,0.308,0.329,0.348,0.364,0.379,0.392,0.404,0.414,
1 0.425,0.434,0.443,0.452,0.459/
DATA(D4(I),I= 1, 25)
1/9.999,3.267,2.575,2.282,2.115,2.004,1.924,1.864,1.816,1.777,
1 1.744,1.716,1.692,1.671,1.652,1.636,1.621,1.608,1.596,1.586,
1 1.575,1.566,1.557,1.548,1.541/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPQC'
ISUBN2='C2 '
C
I2=0
ISIZE2=0
C
AN=0.0
XBARG=0.0
SDG=0.0
RANGEG=0.0
YUPPER=0.0
YLOWER=0.0
C
ANUMSE=0.0
SDI=0.0
SIGMAE=0.0
RANGEE=0.0
SADJ=0.0
RADJ=0.0
C
C CHECK THE INPUT ARGUMENTS FOR ERRORS
C
IF(N.GE.1)GOTO39
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,31)
31 FORMAT('***** ERROR IN DPQCC2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,32)
32 FORMAT(' THE NUMBER OF OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,33)
33 FORMAT(' MUST BE AT LEAST 1;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,34)N
34 FORMAT(' THE ENTERED NUMBER OF OBSERVATIONS HERE = ',I6)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
39 CONTINUE
C
IF(N.GE.2)GOTO49
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,46)
46 FORMAT('***** ERROR IN DPQCC2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,47)
47 FORMAT(' THE NUMBER OF OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,48)
48 FORMAT(' WAS EXACTLY EQUAL TO 1.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
49 CONTINUE
C
HOLD=Y(1)
DO60I=1,N
IF(Y(I).NE.HOLD)GOTO69
60 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,61)
61 FORMAT('***** ERROR IN DPQCC2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,62)
62 FORMAT(' ALL RESPONSE VARIABLE ELEMENTS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,63)HOLD
63 FORMAT(' ARE IDENTICALLY EQUAL TO ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
69 CONTINUE
C
IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'QCC2')GOTO90
WRITE(ICOUT,70)
70 FORMAT('AT THE BEGINNING OF DPQCC2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,71)N,ICASPL,NUMV2,ISIZE,ICONT
71 FORMAT('N,ICASPL,NUMV2,ISIZE,ICONT = ',I8,2X,A4,I8,I8,2X,A4)
CALL DPWRST('XXX','BUG ')
DO72I=1,N
WRITE(ICOUT,73)I,Y(I),X(I)
73 FORMAT('I, Y(I), X(I) = ',I8,3F15.7)
CALL DPWRST('XXX','BUG ')
72 CONTINUE
IF(NUMV2.LE.2)GOTO79
DO75I=1,N
WRITE(ICOUT,76)I,YN(I),X(I)
76 FORMAT('I,YN(I),X(I) = ',I8,2E15.7)
CALL DPWRST('XXX','BUG ')
75 CONTINUE
79 CONTINUE
90 CONTINUE
C
C ********************************************************
C ** STEP 1-- **
C ** DETERMINE THE NUMBER OF DISTINCT VALUES **
C ** FOR VARIABLE 2 (THE GROUP VARIABLE). **
C ** IF ALL VALUES ARE DISTINCT, THEN THIS **
C ** IMPLIES WE HAVE THE NO REPLICATION CASE **
C ** WHICH IS AN ERROR CONDITION FOR A Q CONTROL CHART. **
C ********************************************************
C
ISTEPN='1'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMSET=(-999)
IF(NUMV2.EQ.1)GOTO199
IF(NUMV2.EQ.2)GOTO150
C
150 CONTINUE
NUMSET=0
DO160I=1,N
IF(NUMSET.EQ.0)GOTO165
DO170J=1,NUMSET
IF(X(I).EQ.XIDTEM(J))GOTO160
170 CONTINUE
165 CONTINUE
NUMSET=NUMSET+1
XIDTEM(NUMSET)=X(I)
160 CONTINUE
CALL SORT(XIDTEM,NUMSET,XIDTEM)
C
190 CONTINUE
C
IF(NUMSET.GE.1)GOTO194
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,191)
191 FORMAT('***** ERROR IN DPQCC2 SUBROUTINE--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,192)
192 FORMAT(' NUMBER OF SETS NUMSET = 0 ')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
194 CONTINUE
C
IF(ICASPL.EQ.'PCC')GOTO199
IF(ICASPL.EQ.'PNCC')GOTO199
IF(ICASPL.EQ.'UCC')GOTO199
IF(ICASPL.EQ.'CCC')GOTO199
C
IF(NUMSET.NE.N)GOTO199
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,195)
195 FORMAT('***** ERROR IN DPQCC2 SUBROUTINE--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,196)
196 FORMAT(' NUMBER OF SETS NUMSET IDENTICAL TO ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,197)
197 FORMAT(' NUMBER OF OBSERVATIONS N .')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,198)NUMSET
198 FORMAT(' NUMSET = N = ',I8)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
199 CONTINUE
C
AN=N
ANUMSE=NUMSET
C
C *******************************************
C ** STEP 3.0-- **
C ** DETERMINE STATISTICS FOR THE ENTIRE **
C ** DATA SET **
C *******************************************
C
1000 CONTINUE
C
ISTEPN='3.0'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMV2.EQ.1)GOTO1090
C
SUMXBG=0.0
SUMSDG=0.0
SUMRAG=0.0
SUMSIE=0.0
SUMRIE=0.0
J=0
DO1010ISET=1,NUMSET
J=J+1
C
K=0
DO1020I=1,N
IF(X(I).EQ.XIDTEM(ISET))K=K+1
IF(X(I).EQ.XIDTEM(ISET))TEMP(K)=Y(I)
1020 CONTINUE
NI=K
ANI=NI
C
SUM=0.0
IF(NI.LE.0)GOTO1040
DO1030I=1,NI
SUM=SUM+TEMP(I)
1030 CONTINUE
XBARI=SUM/ANI
C
SUM=0.0
DO1032I=1,NI
SUM=SUM+(TEMP(I)-XBARI)**2
1032 CONTINUE
DENOM=ANI-1.0
VARI=0.0
IF(NI.GE.2)VARI=SUM/DENOM
SDI=0.0
IF(VARI.GT.0.0)SDI=SQRT(VARI)
C
XTMIN=TEMP(1)
XTMAX=TEMP(1)
DO1034I=1,NI
IF(TEMP(I).LT.XTMIN)XTMIN=TEMP(I)
IF(TEMP(I).GT.XTMAX)XTMAX=TEMP(I)
1034 CONTINUE
RANGEI=XTMAX-XTMIN
GOTO1049
C
1040 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1041)
1041 FORMAT('***** INTERNAL ERROR IN DPQCC2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1042)
1042 FORMAT('NI FOR SOME CLASS = 0')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1043)ISET,XIDTEM(ISET),NI
1043 FORMAT('ISET,XIDTEM(ISET),NI = ',I8,E15.7,I8)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
1049 CONTINUE
C
SUMXBG=SUMXBG+ANI*XBARI
SUMSDG=SUMSDG+ANI*SDI
SUMRAG=SUMRAG+ANI*RANGEI
C4LARG=1.0
IF(NI.LE.25)SUMSIE=SUMSIE+SDI/C4(NI)
IF(NI.GE.26)SUMSIE=SUMSIE+SDI/C4LARG
D22LAR=2.0*SQRT(2.0*ALOG(2.0*ANI))
IF(NI.LE.25)SUMRIE=SUMRIE+RANGEI/D22(NI)
IF(NI.GE.26)SUMRIE=SUMRIE+RANGEI/D22LAR
C
IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'QCC2')GOTO1069
WRITE(ICOUT,1061)ISET,NI,ANI
1061 FORMAT('ISET,NI,ANI = ',I8,I8,E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1062)XBARI
1062 FORMAT('XBARI = ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1063)SDI,C4(NI),C4LARG,SUMSIE
1063 FORMAT('SDI,C4(NI),C4LARG,SUMSIE = ',4E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1064)RANGEI,D22(NI),D22LAR,SUMRIE
1064 FORMAT('RANGEI,D22(NI),D22LAR,SUMRIE = ',4E15.7)
CALL DPWRST('XXX','BUG ')
1069 CONTINUE
C
1010 CONTINUE
C
XBARG=SUMXBG/AN
SDG=SUMSDG/AN
RANGEG=SUMRAG/AN
SIGMAE=SUMSIE/ANUMSE
RANGEE=SUMRIE/ANUMSE
C
1090 CONTINUE
C
C **************************************************************
C ** STEP 4-- **
C ** IN ORDER TO DETERMINE THE PROPER PLOT COOORDINATES **
C ** FOR THE DESIRED PLOT, **
C ** BRANCH TO THE PROPER SUBCASE-- **
C ** 1) Q MEAN CONTROL CHART; **
C ** 2) Q STANDARD DEVIATION CONTROL CHART; **
C ** 3) Q RANGE CONTROL CHART; **
C ** 4) Q CUSUM CONTROL CHART; **
C ** 5) Q P CONTROL CHART; **
C ** 6) Q PN CONTROL CHART; **
C ** 7) Q C CONTROL CHART; **
C ** 8) Q U CONTROL CHART; **
C **************************************************************
C
ISTEPN='4'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASPL.EQ.'MECC')GOTO1100
IF(ICASPL.EQ.'SDCC')GOTO1200
IF(ICASPL.EQ.'RACC')GOTO1300
IF(ICASPL.EQ.'CUCC')GOTO1400
IF(ICASPL.EQ.'PCC')GOTO1500
IF(ICASPL.EQ.'PNCC')GOTO1600
IF(ICASPL.EQ.'UCC')GOTO1700
IF(ICASPL.EQ.'CCC')GOTO1800
C
1050 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1051)
1051 FORMAT('***** INTERNAL ERROR IN DPQCC2')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1052)
1052 FORMAT(' AT BRANCH POINT 261--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1053)
1053 FORMAT(' ICASPL NOT EQUAL ONE OF THE ALLOWABLE 8--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1054)
1054 FORMAT(' MECC, SDCC, RACC, CSCC, PCC, PNCC, UCC, CCC.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1056)ICASPL
1056 FORMAT(' ICASPL = ',A4)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
C *******************************************
C ** STEP 5.1-- **
C ** TREAT THE Q MEAN CONTROL CHART CASE **
C *******************************************
C
1100 CONTINUE
C
ISTEPN='5.1'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
J=0
DO1110K=3,N
KM1=K-1
AKM1=KM1
KM2=K-2
C
SUM=0.0
DO1120I=1,KM1
SUM=SUM+Y(I)
1120 CONTINUE
XBAKM1=SUM/AKM1
C
SUM=0.0
DO1130I=1,KM1
SUM=SUM+(Y(I)-XBAKM1)**2
1130 CONTINUE
SKM1=SQRT(SUM/(AKM1-1.0))
C
ANUM=Y(K)-XBAKM1
ADENOM=SKM1*SQRT((1.0/AKM1)+1.0)
RATIO=ANUM/ADENOM
CCCCC CALL TCDF(RATIO,KM2,CDF)
CALL TCDF(RATIO,REAL(KM2),CDF)
CALL NORPPF(CDF,PPF)
J=J+1
Y2(J)=PPF
X2(J)=J
D2(J)=1.0
1110 CONTINUE
N2=J
NPLOTV=2
GOTO9000
C
C **********************************************************
C ** STEP 5.2-- **
C ** TREAT THE Q STANDARD DEVIATION CONTROL CHART CASE **
C **********************************************************
C
1200 CONTINUE
C
ISTEPN='5.2'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
J=0
DO1210ISET=1,NUMSET
C
K=0
DO1220I=1,N
IF(X(I).EQ.XIDTEM(ISET))K=K+1
IF(X(I).EQ.XIDTEM(ISET))TEMP(K)=Y(I)
1220 CONTINUE
NI=K
ANI=NI
C
IF(NI.GE.1)GOTO1239
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1231)
1231 FORMAT('***** INTERNAL ERROR IN DPQCC2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1232)
1232 FORMAT('NI FOR SOME CLASS = 0')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1233)ISET,XIDTEM(ISET),NI
1233 FORMAT('ISET,XIDTEM(ISET),NI = ',I8,E15.7,I8)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
1239 CONTINUE
C
SUM=0.0
DO1240I=1,NI
SUM=SUM+TEMP(I)
1240 CONTINUE
XBARI=SUM/ANI
C
IF(NI.LE.1)GOTO1210
C
SUM=0.0
DO1250I=1,NI
SUM=SUM+(TEMP(I)-XBARI)**2
1250 CONTINUE
DENOM=ANI-1.0
VARI=0.0
IF(NI.GE.2)VARI=SUM/DENOM
SDI=0.0
IF(VARI.GT.0.0)SDI=SQRT(VARI)
C
C4LARG=1.0
IF(NI.LE.25)SADJ=C4(NI)*SIGMAE
IF(NI.GE.26)SADJ=C4LARG*SIGMAE
C
YMID=SADJ
C
B4LARG=1.0+3.0/SQRT(2.0*(ANI-1.0))
IF(NI.LE.25)YUPPER=B4(NI)*SADJ
IF(NI.GE.26)YUPPER=B4LARG*SADJ
C
B3LARG=1.0-3.0/SQRT(2.0*(ANI-1.0))
IF(NI.LE.25)YLOWER=B3(NI)*SADJ
IF(NI.GE.26)YLOWER=B3LARG*SADJ
C
IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'QCC2')GOTO1269
WRITE(ICOUT,1261)ISET,NI,ANI
1261 FORMAT('ISET,NI,ANI = ',I8,I8,E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1262)XBARI
1262 FORMAT('XBARI = ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1263)SDI,C4(NI),C4LARG,SIGMAE,SADJ
1263 FORMAT('SDI,C4(NI),C4LARG,SIGMAE,SADJ = ',5E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1264)SADJ,YMID
1264 FORMAT('SADJ,YMID = ',2E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1265)NI,ANI,B4(NI),B4LARG,YUPPER
1265 FORMAT('NI,ANI,B4(NI),B4LARG,YUPPER = ',I8,4E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1266)NI,ANI,B3(NI),B3LARG,YLOWER
1266 FORMAT('NI,ANI,B3(NI),B3LARG,YLOWER = ',I8,4E15.7)
CALL DPWRST('XXX','BUG ')
1269 CONTINUE
C
J=J+1
Y2(J)=SDI
X2(J)=XIDTEM(ISET)
D2(J)=1.0
C
J=J+1
Y2(J)=YMID
X2(J)=XIDTEM(ISET)
D2(J)=2.0
C
J=J+1
Y2(J)=YUPPER
X2(J)=XIDTEM(ISET)
D2(J)=3.0
C
J=J+1
Y2(J)=YLOWER
X2(J)=XIDTEM(ISET)
D2(J)=4.0
C
IF(CCTARG.EQ.CPUMIN)GOTO1271
J=J+1
Y2(J)=CCTARG
X2(J)=XIDTEM(ISET)
D2(J)=5.0
1271 CONTINUE
C
IF(CCUSL.EQ.CPUMIN)GOTO1272
J=J+1
Y2(J)=CCUSL
X2(J)=XIDTEM(ISET)
D2(J)=6.0
1272 CONTINUE
C
IF(CCLSL.EQ.CPUMIN)GOTO1273
J=J+1
Y2(J)=CCLSL
X2(J)=XIDTEM(ISET)
D2(J)=7.0
1273 CONTINUE
C
1210 CONTINUE
N2=J
NPLOTV=3
GOTO9000
C
C ********************************************
C ** STEP 5.3-- **
C ** TREAT THE Q RANGE CONTROL CHART CASE **
C ********************************************
C
1300 CONTINUE
C
ISTEPN='5.3'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
D4FACT=1.25
D3FACT=1.0/1.25
C
J=0
DO1310ISET=1,NUMSET
C
K=0
DO1320I=1,N
IF(X(I).EQ.XIDTEM(ISET))K=K+1
IF(X(I).EQ.XIDTEM(ISET))TEMP(K)=Y(I)
1320 CONTINUE
NI=K
ANI=NI
C
IF(NI.GE.1)GOTO1339
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1331)
1331 FORMAT('***** INTERNAL ERROR IN DPQCC2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1332)
1332 FORMAT('NI FOR SOME CLASS = 0')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1333)ISET,XIDTEM(ISET),NI
1333 FORMAT('ISET,XIDTEM(ISET),NI = ',I8,E15.7,I8)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
1339 CONTINUE
C
IF(NI.LE.1)GOTO1310
C
XTMIN=TEMP(1)
XTMAX=TEMP(1)
DO1340I=1,NI
IF(TEMP(I).LT.XTMIN)XTMIN=TEMP(I)
IF(TEMP(I).GT.XTMAX)XTMAX=TEMP(I)
1340 CONTINUE
RANGEI=XTMAX-XTMIN
C
D22LAR=2.0*SQRT(2.0*ALOG(2.0*ANI))
IF(NI.LE.25)RADJ=D22(NI)*RANGEE
IF(NI.GE.26)RADJ=D22LAR*RANGEE
C
YMID=RADJ
C
D4LARG=1.0+3.0*D4FACT/SQRT(2.0*(ANI-1.0))
IF(NI.LE.25)YUPPER=D4(NI)*RADJ
IF(NI.GE.26)YUPPER=D4LARG*RADJ
C
D3LARG=1.0-3.0*D3FACT/SQRT(2.0*(ANI-1.0))
IF(NI.LE.25)YLOWER=D3(NI)*RADJ
IF(NI.GE.26)YLOWER=D3LARG*RADJ
C
IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'QCC2')GOTO1369
WRITE(ICOUT,1361)ISET,NI,ANI
1361 FORMAT('ISET,NI,ANI = ',I8,I8,E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1362)RANGEI
1362 FORMAT('RANGEI = ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1363)RANGEI,D22(NI),D22LAR,RANGEE,SADJ
1363 FORMAT('RANGEI,D22(NI),D22LAR,RANGEE,SADJ = ',5E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1364)RADJ,YMID
1364 FORMAT('RADJ,YMID = ',2E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1365)NI,ANI,D4(NI),D4LARG,YUPPER
1365 FORMAT('NI,ANI,D4(NI),D4LARG,YUPPER = ',I8,4E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1366)NI,ANI,D3(NI),D3LARG,YLOWER
1366 FORMAT('NI,ANI,D3(NI),D3LARG,YLOWER = ',I8,4E15.7)
CALL DPWRST('XXX','BUG ')
1369 CONTINUE
C
J=J+1
Y2(J)=RANGEI
X2(J)=XIDTEM(ISET)
D2(J)=1.0
C
J=J+1
Y2(J)=YMID
X2(J)=XIDTEM(ISET)
D2(J)=2.0
C
J=J+1
Y2(J)=YUPPER
X2(J)=XIDTEM(ISET)
D2(J)=3.0
C
J=J+1
Y2(J)=YLOWER
X2(J)=XIDTEM(ISET)
D2(J)=4.0
C
IF(CCTARG.EQ.CPUMIN)GOTO1371
J=J+1
Y2(J)=CCTARG
X2(J)=XIDTEM(ISET)
D2(J)=5.0
1371 CONTINUE
C
IF(CCUSL.EQ.CPUMIN)GOTO1372
J=J+1
Y2(J)=CCUSL
X2(J)=XIDTEM(ISET)
D2(J)=6.0
1372 CONTINUE
C
IF(CCLSL.EQ.CPUMIN)GOTO1373
J=J+1
Y2(J)=CCLSL
X2(J)=XIDTEM(ISET)
D2(J)=7.0
1373 CONTINUE
C
1310 CONTINUE
N2=J
NPLOTV=3
GOTO9000
C
C ******************************************************
C ** STEP 5.4-- **
C ** DETERMINE PLOT COORDINATES **
C ** FOR THE Q CUSUM CONTROL CHART PLOT SUBCASE. **
C ******************************************************
C
1400 CONTINUE
C
ISTEPN='3.4'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
WRITE(ICOUT,1405)
1405 FORMAT('CUSUM CAPABILITY NOT YET AVAILABLE.')
CALL DPWRST('XXX','BUG ')
GOTO9000
C
C ********************************************************
C ** STEP 5.5-- **
C ** TREAT THE Q P CONTROL CHART CASE **
C ** PROPORTION DEFECTIVE PER BATCH (SUBSAMPLE) **
C ** NUMBER DEFECTIVE PER BATCH / TOTAL NUMBER IN BATCH
C ** THE INPUT IS A DUAL SERIES--
C ** 1) NUMBER OF DEFECTIVE ITEMS IN THE SUBSAMPLE
C ** 2) TOTAL NUMBER OF ITEMS IN THE SAMPLE
C ** THE CONFIDENCE BAND IS GOTTEN BY ASSUMING BINOMIAL**
C ********************************************************
C
1500 CONTINUE
C
ISTEPN='5.5'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM1=0.0
SUM2=0.0
DO1510ISET=1,NUMSET
SUM1=SUM1+Y(ISET)
SUM2=SUM2+YN(ISET)
1510 CONTINUE
CTOTAL=SUM1
ANTOT=SUM2
PBARG=CTOTAL/ANTOT
PRBARG=100.0*PBARG
C
J=0
DO1550ISET=1,NUMSET
C
CI=Y(ISET)
ANI=YN(ISET)
NI=ANI+0.5
IF(NI.LE.0)GOTO1550
C
PI=CI/ANI
PROPI=100.0*PI
TAGI=XIDTEM(ISET)
C
J=J+1
Y2(J)=PROPI
X2(J)=TAGI
D2(J)=1.0
C
J=J+1
YMID=PRBARG
Y2(J)=YMID
X2(J)=TAGI
D2(J)=2.0
C
J=J+1
VARPI=0.0
IF(ANI.GT.0.0)VARPI=PBARG*(1.0-PBARG)/ANI
SDPI=0.0
IF(VARPI.GT.0.0)SDPI=SQRT(VARPI)
SDPRI=100.0*SDPI
YUPPER=YMID+3.0*SDPRI
IF(YUPPER.GT.100.0)YUPPER=100.0
Y2(J)=YUPPER
X2(J)=TAGI
D2(J)=3.0
C
J=J+1
YLOWER=YMID-3.0*SDPRI
IF(YLOWER.LT.0.0)YLOWER=0.0
Y2(J)=YLOWER
X2(J)=TAGI
D2(J)=4.0
C
IF(CCTARG.EQ.CPUMIN)GOTO1571
J=J+1
Y2(J)=CCTARG
X2(J)=XIDTEM(ISET)
D2(J)=5.0
1571 CONTINUE
C
IF(CCUSL.EQ.CPUMIN)GOTO1572
J=J+1
Y2(J)=CCUSL
X2(J)=XIDTEM(ISET)
D2(J)=6.0
1572 CONTINUE
C
IF(CCLSL.EQ.CPUMIN)GOTO1573
J=J+1
Y2(J)=CCLSL
X2(J)=XIDTEM(ISET)
D2(J)=7.0
1573 CONTINUE
C
1550 CONTINUE
N2=J
NPLOTV=3
GOTO9000
C
C ********************************************************
C ** STEP 5.6-- **
C ** TREAT THE Q PN CONTROL CHART CASE **
C ** TOTAL NUMBER DEFECTIVE IN A BATCH (SUBSAMPLE) **
C ** SUM UP THE NUMBER OF DEFECTIVES PER BATCH (SUBSAMPLE)
C ** THE NUMBER WILL BE A NON-NEGATIVE INTEGER
C ** THE INPUT IS A DUAL SERIES--
C ** 1) NUMBER OF DEFECTIVE ITEMS IN THE SUBSAMPLE
C ** 2) TOTAL NUMBER OF ITEMS IN THE SAMPLE
C ** THE CONFIDENCE BAND IS GOTTEN BY ASSUMING BINOMIAL**
C ** NOTE--THE PN CHART SHOULD BE USED ONLY WHEN
C ** THE SUBSAMPLE SIZE IS CONSTANT.
C ** FOR VARYING SUBSAMPLE SIZE, USE THE P CHART
C ** (ISHIKAWA, GUIDE TO QUALITY CONTROL, PAGE 77)
C ********************************************************
C
1600 CONTINUE
C
ISTEPN='5.6'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM1=0.0
SUM2=0.0
ANUMSE=NUMSET
DO1610ISET=1,NUMSET
SUM1=SUM1+Y(ISET)
SUM2=SUM2+YN(ISET)
1610 CONTINUE
CTOTAL=SUM1
ANTOT=SUM2
PBARG=CTOTAL/ANTOT
ANBARG=ANTOT/ANUMSE
CBARG=PBARG*ANBARG
C
J=0
DO1650ISET=1,NUMSET
C
CI=Y(ISET)
ANI=YN(ISET)
NI=ANI+0.5
IF(NI.LE.0)GOTO1650
C
PI=CI/ANI
TAGI=XIDTEM(ISET)
C
J=J+1
Y2(J)=CI
X2(J)=TAGI
D2(J)=1.0
C
J=J+1
YMID=CBARG
Y2(J)=YMID
X2(J)=TAGI
D2(J)=2.0
C
J=J+1
VARCI=0.0
IF(ANBARG.GT.0.0)VARCI=ANBARG*PBARG*(1.0-PBARG)
SDCI=0.0
IF(VARCI.GT.0.0)SDCI=SQRT(VARCI)
YUPPER=YMID+3.0*SDCI
Y2(J)=YUPPER
X2(J)=TAGI
D2(J)=3.0
C
J=J+1
YLOWER=YMID-3.0*SDCI
IF(YLOWER.LT.0.0)YLOWER=0.0
Y2(J)=YLOWER
X2(J)=TAGI
D2(J)=4.0
C
IF(CCTARG.EQ.CPUMIN)GOTO1671
J=J+1
Y2(J)=CCTARG
X2(J)=XIDTEM(ISET)
D2(J)=5.0
1671 CONTINUE
C
IF(CCUSL.EQ.CPUMIN)GOTO1672
J=J+1
Y2(J)=CCUSL
X2(J)=XIDTEM(ISET)
D2(J)=6.0
1672 CONTINUE
C
IF(CCLSL.EQ.CPUMIN)GOTO1673
J=J+1
Y2(J)=CCLSL
X2(J)=XIDTEM(ISET)
D2(J)=7.0
1673 CONTINUE
C
1650 CONTINUE
N2=J
NPLOTV=3
GOTO9000
C
C ********************************************************
C ** STEP 5.7-- **
C ** TREAT THE Q U CONTROL CHART CASE (POISSON) **
C ** DEFECTIVE PER UNIT
C ** DEFECTIVE PER UNIT AREA
C ** NUMBER DEFECTIVE PER SUB-BATCH / LENGTH OR AREA
C ** THE INPUT IS A DUAL SERIES--
C ** 1) NUMBER OF DEFECTIVE ITEMS IN THE SUBSAMPLE
C ** 2) LENGTH OR AREA OF THE ITEM
C ** THE CONFIDENCE BAND IS GOTTEN BY ASSUMING POISSON**
C ********************************************************
C
1700 CONTINUE
C
ISTEPN='5.7'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM1=0.0
SUM2=0.0
DO1710ISET=1,NUMSET
SUM1=SUM1+Y(ISET)
SUM2=SUM2+YN(ISET)
1710 CONTINUE
CTOTAL=SUM1
SIZTOT=SUM2
CBARG=CTOTAL/SIZTOT
C
J=0
DO1750ISET=1,NUMSET
C
CI=Y(ISET)
SIZEI=YN(ISET)
NSIZEI=SIZEI+0.5
IF(NSIZEI.LE.0)GOTO1750
C
TAGI=XIDTEM(ISET)
C
J=J+1
Y2(J)=(-1.0)
IF(SIZEI.NE.0.0)Y2(J)=CI/SIZEI
X2(J)=TAGI
D2(J)=1.0
C
J=J+1
YMID=CBARG
Y2(J)=YMID
X2(J)=TAGI
D2(J)=2.0
C
J=J+1
VARCI=0.0
IF(ANI.GT.0.0)VARCI=CBARG/SIZEI
SDCI=0.0
IF(VARCI.GT.0.0)SDCI=SQRT(VARCI)
YUPPER=YMID+3.0*SDCI
Y2(J)=YUPPER
X2(J)=TAGI
D2(J)=3.0
C
J=J+1
YLOWER=YMID-3.0*SDCI
IF(YLOWER.LT.0.0)YLOWER=0.0
Y2(J)=YLOWER
X2(J)=TAGI
D2(J)=4.0
C
IF(CCTARG.EQ.CPUMIN)GOTO1771
J=J+1
Y2(J)=CCTARG
X2(J)=XIDTEM(ISET)
D2(J)=5.0
1771 CONTINUE
C
IF(CCUSL.EQ.CPUMIN)GOTO1772
J=J+1
Y2(J)=CCUSL
X2(J)=XIDTEM(ISET)
D2(J)=6.0
1772 CONTINUE
C
IF(CCLSL.EQ.CPUMIN)GOTO1773
J=J+1
Y2(J)=CCLSL
X2(J)=XIDTEM(ISET)
D2(J)=7.0
1773 CONTINUE
C
1750 CONTINUE
N2=J
NPLOTV=3
GOTO9000
C
C ********************************************************
C ** STEP 5.8-- **
C ** TREAT THE Q C CONTROL CHART CASE (POISSON) **
C ** TOTAL NUMBER DEFECTIVE IN A BATCH (SUBSAMPLE) **
C ** SUM OF DEFECTIVES IN A BATCH (SUBSAMPLE) **
C ** THE INPUT IS USUALLY A SERIES OF INTEGERS **
C ** THE VALUE WILL BE A NON-NEGATIVE INTEGER **
C ** THE CONFIDENCE BAND IS GOTTEN BY ASSUMING POISSON**
C ** NOTE--THE C CHART SHOULD BE USED ONLY WHEN
C ** THE SUBSAMPLE SIZE IS CONSTANT.
C ** FOR VARYING SUBSAMPLE SIZE, USE THE U CHART
C ** (ISHIKAWA, GUIDE TO QUALITY CONTROL, PAGE 77)
C ********************************************************
C
1800 CONTINUE
C
ISTEPN='5.8'
IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'QCC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
SUM1=0.0
SUM2=0.0
ANUMSE=NUMSET
DO1810ISET=1,NUMSET
SUM1=SUM1+Y(ISET)
IF(NUMV2.LE.2)SUM2=SUM2+1
IF(NUMV2.GE.3)SUM2=SUM2+YN(ISET)
1810 CONTINUE
CTOTAL=SUM1
CBARG=CTOTAL/ANUMSE
C
J=0
DO1850ISET=1,NUMSET
C
CI=Y(ISET)
SIZEI=YN(ISET)
NSIZEI=SIZEI+0.5
IF(NSIZEI.LE.0)GOTO1850
C
TAGI=XIDTEM(ISET)
C
J=J+1
Y2(J)=CI
X2(J)=TAGI
D2(J)=1.0
C
J=J+1
YMID=CBARG
Y2(J)=YMID
X2(J)=TAGI
D2(J)=2.0
C
J=J+1
VARCI=0.0
IF(ANI.GT.0.0)VARCI=CBARG
SDCI=0.0
IF(VARCI.GT.0.0)SDCI=SQRT(VARCI)
YUPPER=YMID+3.0*SDCI
Y2(J)=YUPPER
X2(J)=TAGI
D2(J)=3.0
C
J=J+1
YLOWER=YMID-3.0*SDCI
IF(YLOWER.LT.0.0)YLOWER=0.0
Y2(J)=YLOWER
X2(J)=TAGI
D2(J)=4.0
C
IF(CCTARG.EQ.CPUMIN)GOTO1871
J=J+1
Y2(J)=CCTARG
X2(J)=XIDTEM(ISET)
D2(J)=5.0
1871 CONTINUE
C
IF(CCUSL.EQ.CPUMIN)GOTO1872
J=J+1
Y2(J)=CCUSL
X2(J)=XIDTEM(ISET)
D2(J)=6.0
1872 CONTINUE
C
IF(CCLSL.EQ.CPUMIN)GOTO1873
J=J+1
Y2(J)=CCLSL
X2(J)=XIDTEM(ISET)
D2(J)=7.0
1873 CONTINUE
C
1850 CONTINUE
N2=J
NPLOTV=3
GOTO9000
C
C ******************
C ** STEP 90-- **
C ** EXIT **
C ******************
C
9000 CONTINUE
IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'QCC2')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPQCC2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)ICASPL,N,NUMSET,N2,IERROR
9012 FORMAT('ICASPL,N,NUMSET,N2,IERROR = ',A4,3I8,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)NUMV2,ISIZE
9013 FORMAT('NUMV2,ISIZE = ',2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)AN,XBARG,SDG,RANGEG
9014 FORMAT('AN,XBARG,SDG,RANGEG = ',4E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)ANUMSE,SIGMAE,RANGEE
9015 FORMAT('ANUMSE,SIGMAE,RANGEE = ',3E15.7)
CALL DPWRST('XXX','BUG ')
DO9020I=1,N2
WRITE(ICOUT,9021)I,Y2(I),X2(I),D2(I)
9021 FORMAT('I,Y2(I),X2(I),D2(I) = ',I8,2E15.7,F9.2)
CALL DPWRST('XXX','BUG ')
9020 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPQUAD(IHARG,NUMARG,IDEFPR,IHMXPR,
1IPREC,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE PREICSION SWITCH
C AS QUADRUPLE PRECISION.
C THIS IN TURN SPECIFIES THAT SUBSEQUENT
C CALCULATIONS WILL ALL BE CARRIED OUT
C IN QUADRUPLE 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 CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
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='QUAD'
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 DPQUAD--')
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 DPQUAN(NPLOTV,NPLOTP,NS,ICASPL,IAND1,IAND2,
1IANGLU,MAXNPP,
1IBUGG2,IBUGG3,IBUGQ,ISUBRO,IFOUND,IERROR)
C
C PURPOSE--FORM A QUANTILE PLOT
C (USEFUL FOR DISTRIBUTIONALLY COMPARING 2 DATA SETS).
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/5
C ORIGINAL VERSION--MAY 1987.
C UPDATED --MARCH 1988. ACTIVATE QUANTILE-QUANTILE
C UPDATED --JUNE 1990. TEMPORARY ARRAYS TO GARBAGE COMMON
C MOVE SOME DIMENSIONS FROM DPQUA2
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)
CCCCC FOLLOWING LINES ADDED JUNE, 1990
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))
CCCCC END CHANGE
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='DPQU'
ISUBN2='AN '
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.'QUAN')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPQUAN--')
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 QUANTILE PLOT CASE **
C ***********************************
C
C ***************************
C ** STEP 11-- **
C ** EXTRACT THE COMMAND **
C ***************************
C
ISTEPN='11'
IF(IBUGG2.EQ.'ON'.OR.ISUBRO.EQ.'QUAN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CCCCC IF(NUMARG.GE.1.AND.IHARG(1).EQ.'PLOT')GOTO1111 MARCH 1988
IF(NUMARG.GE.2.AND.IHARG(1).EQ.'QUAN'.AND.
1 IHARG(2).EQ.'PLOT')GOTO1112
GOTO9000
C
C1111 CONTINUE
CCCCC ILASTC=1
CCCCC CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
CCCCC GOTO1190
C
1112 CONTINUE
ILASTC=2
CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
GOTO1190
C
1190 CONTINUE
IFOUND='YES'
ICASPL='QUAN'
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.'QUAN')
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.'QUAN')
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.'QUAN')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.'QUAN')
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 DPQUAN--')
CALL DPWRST('XXX','BUG ')
IF(ICASPL.EQ.'MECC')WRITE(ICOUT,1412)
1412 FORMAT(' FOR A QUANTILE PLOT, ')
IF(ICASPL.EQ.'MECC')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,IWIDTH)
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.'QUAN')
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 DPQUAN--')
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,IWIDTH)
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 DPQUAN--')
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,IWIDTH)
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.'QUAN')
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 DPQUAN--')
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 QUANTILE PLOT ')
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.'QUAN')
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.'QUAN')
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 DPQUAN--')
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 QUANTILE 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,IWIDTH)
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 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.'QUAN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NS=NS1
IF(NS2.GT.NS1)NS=NS2
CCCCC JUNE, 1990. MOVE DIMENSION OF YLARGE, YSMALL FROM DPQUA2
CALL DPQUA2(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.'QUAN')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPQUAN--')
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 DPQUA2(Y,NY,X,NX,ICASPL,MAXN,
1Y2,X2,D2,N2,NPLOTV,
1YLARGE,YSMALL,
1IBUGG3,ISUBRO,IERROR)
CCCCC JUNE, 1990. MOVE DIMENSION OF YLARGE, YSMALL TO DPQUA2
C
C PURPOSE--GENERATE A PAIR OF COORDINATE VECTORS
C THAT WILL DEFINE
C A QUANTILE PLOT
C (USEFUL FOR DISTRIBUTIONALLY COMPARING 2 DATA SETS).
C NOTE--THE QUANTILES FOR THE FIRST ARGUMENT WILL APPEAR VERTICALLY;
C THE QUANTILES FOR THE SECOND ARGUMENT WILL APPEAR HORIZONTALLY.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/6
C ORIGINAL VERSION--JUNE 1987.
C UPDATED --MARCH 1988. PUT IN DIAGONAL REFERENCE LINE
C UPDATED --JUNE 1990. MOVE SOME DIMENSIONS TO DPQUAN
C UPDATED --APRIL 1992. N TO NX IN DEBUG STATEMENTS
C UPDATED --NOVEMBER 1994. EQUATE ICASE TO ICASPL
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IBUGG3
CHARACTER*4 ISUBRO
CHARACTER*4 IERROR
C
CHARACTER*4 ICASE
CCCCC ADD FOLLOWING LINE NOVEMBER 1994.
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
CCCCC MOVE DIMENSION TO DPQUAN (JUNE, 1990)
CCCCC DIMENSION YLARGE(MAXOBV)
CCCCC DIMENSION YSMALL(MAXOBV)
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
CCCCC ADD FOLLOWING LINE NOVEMBER 1994.
ICASE=ICASPL
C
ANY=NY
ANX=NX
C
IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'QUA2')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPQUA2--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGG3,ISUBRO
52 FORMAT('IBUGG3,ISUBRO = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
CCCCC THE FOLLOWING 2 LINES WERE FIXED APRIL 1992
CCCCC WRITE(ICOUT,53)ICASPL,MAXN,N,NPLOTV
CCC53 FORMAT('ICASPL,MAXN,N,NPLOTV = ',A4,2X,I8,I8,I8)
CCCCC 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 DPQUA2--')
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 DPQUA2--')
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 DPQUA2--')
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 DPQUA2--')
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.'QUA2')
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.'QUA2')
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
Y2(J)=Y(J)
X2(J)=X(J)
D2(J)=1.0
5111 CONTINUE
CCCCC N2=J MARCH 1988
CCCCC NPLOTV=2 MARCH 1988
GOTO5180
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
5121 CONTINUE
CCCCC N2=J MARCH 1988
CCCCC NPLOTV=2 MARCH 1988
GOTO5180
C
CCCCC THE FOLLOWING SECTION WAS INSERTED MARCH 1988
5180 CONTINUE
AMIN=X(1)
IF(Y(1).LT.X(1))AMIN=Y(1)
J=J+1
Y2(J)=AMIN
X2(J)=AMIN
D2(J)=2.0
C
AMAX=X(NX)
IF(Y(NY).GT.X(NX))AMAX=Y(NY)
J=J+1
Y2(J)=AMAX
X2(J)=AMAX
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 DPQUA2--')
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 ')
WRITE(ICOUT,9053)AMIN,AMAX
9053 FORMAT('AMIN,AMAX = ',2E15.7)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPQUCO(XTEMP1,XTEMP2,MAXNXT,ICASAN,
1ICAPSW,
1IBUGA2,IBUGA3,IBUGQ,ISUBRO,IFOUND,IERROR)
C
C PURPOSE--GENERATE CONFIDENCE LIMITS FOR QUANTILES (MEDIAN IS
C A SPECIAL CASE). METHOD BASED ON MARITZ-JARRETT
C ESTIMATE FOR STANDARD ERROR.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
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 BUREAU OF STANDARDS.
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. SUPPORT FOR HTML, LATEX 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
CCCCC CHARACTER*4 IH21
CCCCC 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=3
C
IFOUND='YES'
C
NLEFT=0
N2=0
C
ICASEQ='UNKN'
C
C *****************************************************
C ** TREAT THE QUANTILE CONFIDENCE LIMITS CASE **
C *****************************************************
C
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'QUCO')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPQUCO--')
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.'QUCO')
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.'QUCO')
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.'QUCO')
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 DPQUCO--')
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 QUANTILE 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.'QUCO')
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 DPQUCO--')
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 QUANTILE 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 DPQUC2--
C ** SET THE WEIGHT VECTOR TO UNITY THROUGHOUT.
C ******************************************************
C
ISTEPN='8'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'QUCO')
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 PARAMETER P100) **
C ******************************************************
C
IF(ICASAN.EQ.'MECI')THEN
P100=0.50
ELSE
IHP='P100'
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
P100=VALUE(ILOCP)
IF(P100.GE.1.0 .AND. P100.LE.100.0)P100=P100/100.0
ENDIF
C
IF(0.0.LE.P100.AND.P100.LE.1.0)GOTO11589
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11581)
11581 FORMAT('***** ERROR IN DPQUCO--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11582)
11582 FORMAT('THE QUANTILE FOR WHICH THE CONFIDENCE INTERVAL IS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11583)
11583 FORMAT('MTO BE COMPUTED MUST BE BETWEEN 0 AND 1, BUT WAS NOT.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11584)P100
11584 FORMAT('PARAMETER P100 = ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11586)
11586 FORMAT('USE THE LET COMMAND TO PRE-DEFINE P100:')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11587)
11587 FORMAT(' LET P1 = 0.5')
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.'QUCO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'QUCO')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1211)
1211 FORMAT('***** FROM DPQUCO, AS WE ARE ABOUT TO CALL DPBWC2--')
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 DPQUC2(Y,W,NS,X,NS2,XTEMP1,XTEMP2,MAXNXT,
1P100,
1ICAPSW,ICAPTY,
1ICASAN,IBUGA3,ISUBRO,IERROR)
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'QUCO')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPQUCO--')
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 DPQUC2(Y,W,N,X,N2,XTEMP1,XTEMP2,MAXNXT,
1P100,
1ICAPSW,ICAPTY,
1ICASAN,IBUGA3,ISUBRO,IERROR)
C
C PURPOSE--THIS ROUTINE GENERATES QUANTILE CONFIDENCE LIMITS
C FOR THE DATA IN THE INPUT VECTOR Y.
C THE MEDIAN IS A SPECIAL CASE. SPECIFICALLY,
C X(0.5) +/- NORPPF(1-ALPHA/2)*QUASE
C WHERE QUASE IS THE MARITZ-JARRETT ESTIMATE OF
C THE QUANTILE STANDARD ERROR.
C METHOD FROM PAGE 87 OF THE RAND WILCOX BOOK
C "INTRODUCTION TO ROBUST ESTIMATION AND HYPOTHESIS
C TESTING", ACADEMIC PRESS, 1997.
C ALSO VIA THE HETTMANSPERGER-SHEATHER INTERPOLATION
C METHOD (ALSO PAGE 87 OF WILCOX).
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 CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
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. SUPPORT FOR HTML, LATEX OUTPUT
C
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 IQUASE
CHARACTER*4 IQUAME
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*1 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)
DIMENSION ALOWE2(10)
DIMENSION AUPPE2(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='DPQU'
ISUBN2='C2 '
C
IQUAME='ORDE'
IQUASE='MJ'
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'QUC2')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPQUC2--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)N,P100,IBUGA3
52 FORMAT('N,P100,IBUGA3 = ',I8,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.'QUC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.GT.3)GOTO119
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,111)
111 FORMAT('***** ERROR IN DPQUC2--THE NUMBER OF OBSERVATIONS ',
1'IN THE RESPONSE VARIABLE IS LESS THAN 3')
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 DPQUC2--THE RESPONSE VARIABLE ',
1'HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
139 CONTINUE
C
C ***************************************************
C ** STEP 3-- **
C ** COMPUTE THE QUANTILE ESTIMATE **
C ** COMPUTE THE QUANTILE STANDARD ERROR **
C ***************************************************
C
C
ISTEPN='3'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'QUC2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IWRITE='OFF'
C
IF(ICASAN.EQ.'MECI')THEN
CALL MEDIAN(Y,N,IWRITE,XTEMP1,MAXNXT,XQUANT,IBUGA3,IERROR)
ELSE
CALL QUANT(P100,Y,N,IWRITE,XTEMP1,MAXNXT,IQUAME,XQUANT,
1 IBUGA3,IERROR)
ENDIF
CALL QUANSE(P100,Y,N,IWRITE,XTEMP1,MAXNXT,IQUASE,XQUASE,
1IBUGA3,IERROR)
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.'QUC2')
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 NORPPF(CDF,T(I))
TSDM(I)=T(I)*XQUASE
ALOWER(I)=XQUANT-TSDM(I)
AUPPER(I)=XQUANT+TSDM(I)
1400 CONTINUE
C
C ***************************************
C ** STEP 5-- **
C ** COMPUTE CONFIDENCE LIMITS **
C ** FOR HETTMANSPERGER-SHEATHER **
C ** INTERPOLATION METHOD. **
C ***************************************
C
IF(ICASAN.EQ.'MECI')THEN
P=0.5
AN=REAL(N)
CALL SORT(Y,N,Y)
DO2010I=1,8
ALPHA=(100.0-CONF(I))/100.
CALL BINPPF(ALPHA/2.0,P,N,AK)
CALL BINCDF(AN-AK,P,N,CDF1)
CALL BINCDF(AK-1.0,P,N,CDF2)
GK=CDF1-CDF2
IF(GK.GE.1.0-ALPHA)THEN
CALL BINCDF(AN-AK-1.0,P,N,CDF1)
CALL BINCDF(AK-1.0,P,N,CDF2)
GKP1=CDF1-CDF2
AKP=AK+1.0
ELSE
AK=AK-1.0
CALL BINCDF(AN-AK,P,N,CDF1)
CALL BINCDF(AK-1.0,P,N,CDF2)
GKP1=CDF1-CDF2
AKP=AK+1.0
ENDIF
ANMK=AN-AK
ANMKP=ANMK+1.0
AIVAR=(GK-1.0+ALPHA)/(GK-GKP1)
ALAMB=((AN-AK)*AIVAR)/(AK+(AN-2.0*AK)*AIVAR)
ALOWE2(I)=ALAMB*Y(INT(AKP)) + (1.0-ALAMB)*Y(INT(AK))
AUPPE2(I)=ALAMB*Y(INT(ANMK)) + (1.0-ALAMB)*Y(INT(ANMKP))
2010 CONTINUE
ENDIF
C
C ****************************
C ** STEP 7-- **
C ** WRITE EVERYTHING OUT **
C ****************************
C
ISTEPN='7'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'QUC2')
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('
')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Confidence Limits for Median
')
5018 FORMAT(' (Based on Maritz-Jarrett Standard Error for ',
1 'Quantiles)')
5019 FORMAT(' ')
5021 FORMAT(' Confidence Limits for Quantile ',
1 '(Q0 = ',F6.3,')
')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
IF(ICASAN.EQ.'MECI')THEN
WRITE(ICOUT,5017)
ELSE
WRITE(ICOUT,5021)P100
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5018)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5031 FORMAT(' ',G15.7)
5033 FORMAT(' ',I8)
5039 FORMAT(' |
')
5051 FORMAT(' Estimate of Median:')
5052 FORMAT(' Estimate of Quantile:')
5053 FORMAT(' Quantile Standard Error:')
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5033)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5039)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(ICASAN.EQ.'MECI')THEN
WRITE(ICOUT,5051)
ELSE
WRITE(ICOUT,5052)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5031)XQUANT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5039)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5031)XQUASE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5039)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT('
')
5093 FORMAT('
')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
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(' Z
Value')
5133 FORMAT(' Z 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 Median }',2X,A1,A1)
8013 FORMAT(A1,'end{center}')
8016 FORMAT(5X,'{',A1,'bf Confidence Limits for Quantile ($Q_0$ = ',
1 F6.3,'}',2X,A1,A1)
8017 FORMAT(5X,'{',A1,'bf (Based on the Maritz-Jarrett Standard ',
1 'Error)}')
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')
IF(ICASAN.EQ.'MECI')THEN
WRITE(ICOUT,8011)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8016)IBASLC,P100,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8017)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,'Estimate of the Median: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Estimate of the Quantile: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Quantile Standard Error: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Degrees of Freedom: & ',I8,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')
IF(ICASAN.EQ.'MECI')THEN
WRITE(ICOUT,8022)XQUANT,IBASLC,IBASLC
ELSE
WRITE(ICOUT,8023)XQUANT,IBASLC,IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XQUASE,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 Z } & & ',
1 '{',A1,'bf Lower } & {',A1,'bf Upper}',2X,A1,A1)
8122 FORMAT(5X,'{',A1,'bf Value (',A1,'%) } & {',A1,'bf Value} & {',A1,
1 'bf Z 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')
IF(ICASAN.EQ.'MECI')THEN
WRITE(ICOUT,810)
810 FORMAT(
1' CONFIDENCE LIMITS FOR MEDIAN')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,811)P100
811 FORMAT(
1' CONFIDENCE LIMITS FOR QUANTILE (Q0 = ',
1F6.3,')')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,812)
812 FORMAT(
1' (BASED ON MARITZ-JARRETT STANDARD ERROR ',
1'FOR QUANTILES)')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,815)N
815 FORMAT(
1' NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
IF(ICASAN.EQ.'MECI')THEN
WRITE(ICOUT,821)XQUANT
821 FORMAT(
1' ESTIMATE OF MEDIAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,822)XQUANT
822 FORMAT(
1' ESTIMATE OF QUANTILE = ',G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,823)XQUASE
823 FORMAT(
1' QUANTILE STANDARD ERROR = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,832)
832 FORMAT(
1' CONFIDENCE Z Z 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
IF(ICASAN.NE.'MECI')GOTO9000
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
5501 FORMAT('')
5504 FORMAT('
')
WRITE(ICOUT,5501)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5504)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5561 FORMAT('')
5563 FORMAT('')
5565 FORMAT(' ')
5567 FORMAT(' Confidence Limits for the Median
')
5568 FORMAT(' (Based on Hettmansperger-Sheather)')
5569 FORMAT(' ')
WRITE(ICOUT,5561)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5563)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5565)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5567)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5568)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5569)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE DATA ROW
C
5541 FORMAT(' ')
5543 FORMAT(' | ')
5545 FORMAT(' Number of Observations:')
5547 FORMAT(' | ')
5549 FORMAT(' ')
5531 FORMAT(' ',G15.7)
5533 FORMAT(' ',I8)
5539 FORMAT(' |
')
5556 FORMAT(' Estimate of Median:')
WRITE(ICOUT,5541)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5543)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5545)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5547)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5549)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5533)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5547)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5539)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5541)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5543)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5556)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5547)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5549)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5531)XQUANT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5547)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5539)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5591 FORMAT('
')
5593 FORMAT('
')
5599 FORMAT('')
WRITE(ICOUT,5591)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5593)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2B: START TABLE AND DEFINE A CAPTION
C
WRITE(ICOUT,5504)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5561)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5563)
CALL DPWRST('XXX','WRIT')
C
C STEP 3B: DEFINE HEADER ROW
C
5621 FORMAT(' ')
5623 FORMAT(' | ')
5627 FORMAT(' | ')
5639 FORMAT('
')
5631 FORMAT(' Confidence
Value (%)')
5634 FORMAT(' Lower
Limit')
5635 FORMAT(' Upper
Limit')
5661 FORMAT(' ')
5662 FORMAT(' ')
WRITE(ICOUT,5621)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5623)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5631)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5627)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5623)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5634)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5627)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5623)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5635)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5627)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5639)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5541)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5661)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5662)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5547)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5539)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5641 FORMAT(' | ')
5643 FORMAT(' | ')
5647 FORMAT(' | ')
5651 FORMAT(' ',F8.3)
5652 FORMAT(' ',G12.6)
5649 FORMAT('
')
DO5680I=1,8
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5651)CONF(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5652)ALOWE2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5652)AUPPE2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
5680 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5691 FORMAT('')
5693 FORMAT('')
5699 FORMAT('')
WRITE(ICOUT,5691)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5693)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5699)
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 Confidence Limits for the Median }',
1 2X,A1,A1)
8517 FORMAT(5X,'{',A1,'bf (Based on Hettmansperger-Sheather)}')
8513 FORMAT(A1,'end{center}')
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,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8509)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8511)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8517)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} {lr}')
8521 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8522 FORMAT(5X,'Estimate of the Median: & ',G15.7,2X,A1,A1)
8549 FORMAT(5X,A1,'end{tabular}')
WRITE(ICOUT,8509)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8520)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8521)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8522)XQUANT,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{table}')
8593 FORMAT(A1,'end{center}')
WRITE(ICOUT,8593)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
8620 FORMAT(5X,A1,'begin{tabular} {ccc}')
8621 FORMAT(5X,'{',A1,'bf Confidence} & {',A1,'bf Lower} & {',A1,
1 'bf Upper}',2X,A1,A1)
8622 FORMAT(5X,'{',A1,'bf Value (',A1,'%)} & {',A1,
1 'bf Limit} & {',A1,'bf Limit}',2X,A1,A1)
8623 FORMAT(5X,F8.3,' & ',G12.6,' & ',G12.6,2X,A1,A1)
8630 FORMAT(5X,A1,'hline')
WRITE(ICOUT,8509)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,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8630)IBASLC
CALL DPWRST('XXX','WRIT')
DO8660I=1,8
WRITE(ICOUT,8623)CONF(I),ALOWE2(I),AUPPE2(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8660 CONTINUE
WRITE(ICOUT,8549)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8699 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8593)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8591)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8699)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,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,910)
910 FORMAT(
1' CONFIDENCE LIMITS FOR MEDIAN')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,912)
912 FORMAT(
1 ' (BASED ON HETTMANSPERGER-SHEATHER ',
1 ' INTERPOLATION)')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,915)N
915 FORMAT(
1 ' NUMBER OF OBSERVATIONS = ',I9)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,921)XQUANT
921 FORMAT(
1 ' ESTIMATE OF MEDIAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,932)
932 FORMAT(
1' CONFIDENCE LOWER UPPER ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,933)
933 FORMAT(
1' VALUE (%) LIMIT LIMIT ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,934)
934 FORMAT(
1'---------------------------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO940I=1,8
WRITE(ICOUT,941)CONF(I),ALOWE2(I),AUPPE2(I)
941 FORMAT(
1' ',F9.3,2X,G12.6,2X,G12.6)
CALL DPWRST('XXX','WRIT')
940 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.'QUC2')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPQUC2--')
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 DPQUER(IANSLC,IWIDTH,IBUGS2,ISUBRO,IFOUND,IERROR)
C
C PURPOSE--ENTER A QUERY AT THE END OF THE DATAPLOT QUERY FILE
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--86/1
C ORIGINAL VERSION--OCTOBER 1981.
C UPDATED --NOVEMBER 1981.
C UPDATED --MAY 1982.
C UPDATED --DECEMBER 1985.
C UPDATED --JANUARY 1989. GENERALIZE APPEND OPERATION (ALAN)
C UPDATED --APRIL 1989. FIX ILLEGAL TRANSFER TO END OF LOOP
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IANSLC
CHARACTER*4 IBUGS2
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*80 IFILE
CHARACTER*12 ISTAT
CHARACTER*12 IFORM
CHARACTER*12 IACCES
CHARACTER*12 IPROT
CHARACTER*12 ICURST
CHARACTER*4 IENDFI
CHARACTER*4 IREWIN
CHARACTER*4 ISUBN0
CHARACTER*4 IERRFI
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*4 IANSI
CHARACTER*80 ICANS
CHARACTER*80 ICQUER
CHARACTER*1 ICJUNK
C AUGUST,1987 BUG FIX: SOME MACHINES DO NOT ALLOW FILES TO BE
C APPENDED TO (CAN NOT READ AND WRITE TO THE SAME FILE). IN
C PARTICULAR, THE UNIVAC 1100/80'S AND CYBER MACHINES.
C SOLUTION IS TO STORE THE QUERY, CLOSE AND RE-OPEN THE FILE
C AND WRITE OUT THE STORED LINES.
PARAMETER (MAXQRY=100)
CHARACTER*80 ICJNK2(MAXQRY)
C END FIX
C
DIMENSION IANSLC(*)
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOF2.INC'
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPQU'
ISUBN2='ER '
C
IFOUND='YES'
IERROR='NO'
C
IF(IBUGS2.EQ.'OFF'.AND.ISUBRO.NE.'QUER')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPQUER--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)IBUGS2,ISUBRO,IERROR
53 FORMAT('IBUGS2,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,54)IWIDTH
54 FORMAT('IWIDTH = ',I8)
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,55)(IANSLC(I),I=1,IWIDTH)
55 FORMAT('(IANSLC(I),I=1,IWIDTH) = ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,61)IQUENU
61 FORMAT('IQUENU = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,62)IQUENA
62 FORMAT('IQUENA = ',A80)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,63)IQUEST
63 FORMAT('IQUEST = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,64)IQUEFO
64 FORMAT('IQUEFO = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,65)IQUEAC
65 FORMAT('IQUEAC = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,66)IQUEFO
66 FORMAT('IQUEFO = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,67)IQUECS
67 FORMAT('IQUECS = ',A12)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************
C ** STEP 11-- **
C ** COPY OVER VARIABLES **
C **************************
C
ISTEPN='11'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'QUER')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IOUNIT=IQUENU
IFILE=IQUENA
ISTAT=IQUEST
IFORM=IQUEFO
IACCES=IQUEAC
IPROT=IQUEPR
ICURST=IQUECS
C
ISUBN0='QUER'
IERRFI='NO'
C
IF(IBUGS2.EQ.'OFF'.AND.ISUBRO.NE.'QUER')GOTO1199
WRITE(ICOUT,1193)IOUNIT
1193 FORMAT('IOUNIT = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1194)IFILE
1194 FORMAT('IFILE = ',A80)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1195)ISTAT,IFORM,IACCES,IPROT,ICURST
1195 FORMAT('ISTAT,IFORM,IACCES,IPROT,ICURST = ',
1A12,2X,A12,2X,A12,2X,A12,2X,A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1196)ISUBN0,IERRFI
1196 FORMAT('ISUBN0,IERRFI = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
1199 CONTINUE
C
C ********************************************
C ** STEP 12-- **
C ** CHECK TO SEE IF QUERY FILE EXISTS **
C ********************************************
C
ISTEPN='12'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'QUER')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ISTAT.EQ.'NONE')GOTO1200
GOTO1290
1200 CONTINUE
IERROR='YES'
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1211)
1211 FORMAT('***** ERROR IN DPQUER--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1212)
1212 FORMAT(' THE ENTERED QUERY')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1213)
1213 FORMAT(' CANNOT BE RECORDED BECAUSE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1214)
1214 FORMAT(' THE REQUIRED SYSTEM MASS STORAGE FILE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1215)
1215 FORMAT(' WHICH STORES SUCH QUERIES')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1216)
1216 FORMAT(' IS NOT AVAILABLE AT THIS INSTALLATION.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1217)ISTAT,IQUEST
1217 FORMAT('ISTAT,IQUEST = ',A12,2X,A12)
CALL DPWRST('XXX','BUG ')
GOTO9000
1290 CONTINUE
C
C ****************************
C ** STEP 13-- **
C ** EXTRACT THE QUERY **
C ****************************
C
ISTEPN='13'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'MAIL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO1310I=1,80
IANSI=IANSLC(I)
ICANS(I:I)=IANSI(1:1)
1310 CONTINUE
C
ISTART=1
ISTOP=IWIDTH
IWORD=2
CALL DPEXWO(ICANS,ISTART,ISTOP,IWORD,
1ICOL1,ICOL2,ICQUER,NCQUER,
1IBUGS2,ISUBRO,IERROR)
C
IF(NCQUER.GE.1)GOTO1329
IERROR='YES'
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1321)
1321 FORMAT('***** ERROR IN DPQUER--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1322)
1322 FORMAT(' A MESSAGE IS REQUIRED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1323)
1323 FORMAT(' IN THE QUERY COMMAND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1324)
1324 FORMAT(' (FOR EXAMPLE, QUERY WHAT IS DEFAULT COLOR?)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1325)
1325 FORMAT(' BUT NO MESSAGE WAS GIVEN HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1326)
1326 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,1327)(IANSLC(I),I=1,IWIDTH)
1327 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IF(IWIDTH.LE.0)WRITE(ICOUT,999)
IF(IWIDTH.LE.0)CALL DPWRST('XXX','BUG ')
GOTO9000
1329 CONTINUE
C
J=0
IF(ICOL1.GT.IWIDTH)GOTO1339
DO1330I=ICOL1,IWIDTH
J=J+1
ICQUER(J:J)=ICANS(I:I)
1330 CONTINUE
NCQUER=J
1339 CONTINUE
C
CALL DPDB80(ICQUER,JMAX,IBUGS2,ISUBRO,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
NCQUER=JMAX
C
IF(NCQUER.GE.1)GOTO1349
IERROR='YES'
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1341)
1341 FORMAT('***** ERROR IN DPQUER--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1342)
1342 FORMAT(' A MESSAGE IS REQUIRED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1343)
1343 FORMAT(' IN THE QUERY COMMAND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1344)
1344 FORMAT(' (FOR EXAMPLE, QUERY HOW DO I GENERATE ',
1'3-D PLOTS?)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1345)
1345 FORMAT(' BUT NONE WAS GIVEN HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1346)
1346 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,1347)(IANSLC(I),I=1,IWIDTH)
1347 FORMAT(' ',80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IF(IWIDTH.LE.0)WRITE(ICOUT,999)
IF(IWIDTH.LE.0)CALL DPWRST('XXX','BUG ')
GOTO9000
1349 CONTINUE
C
1390 CONTINUE
C
C *********************
C ** STEP 31-- **
C ** OPEN THE FILE **
C *********************
C
ISTEPN='31'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'QUER')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IREWIN='ON'
CALL DPOPFI(IOUNIT,IFILE,ISTAT,IFORM,IACCES,IPROT,ICURST,
1IREWIN,ISUBN0,IERRFI,IBUGS2,ISUBRO,IERROR)
IF(IERRFI.EQ.'YES')GOTO9000
C
C **********************************************
C ** STEP 41-- **
C ** READ THE FILE. **
C ** FIND THE LAST LINE OF THE FILE. **
C **********************************************
C
ISTEPN='41'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'QUER')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMLIN=0
DO4120I=1,100000
I2=I
READ(IOUNIT,4121,END=4129)ICJUNK
4121 FORMAT(A1)
4120 CONTINUE
4129 CONTINUE
NUMLIN=I2-1
IF(NUMLIN.LE.0)NUMLIN=0
4190 CONTINUE
C BUG FIX
NUMSKP=0
IF(NUMLIN.LE.MAXQRY)GOTO4195
NUMSKP=NUMLIN-MAXQRY
4195 CONTINUE
C END FIX
C
C ************************
C ** STEP 42-- **
C ** REWIND THE FILE. **
C ************************
C
ISTEPN='42'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'QUER')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
REWIND IOUNIT
C
C **********************************************
C ** STEP 43-- **
C ** READ THE FILE **
C ** DOWN TO THE LAST LINE OF THE FILE. **
C **********************************************
C
ISTEPN='43'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'QUER')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMLIN.LE.0)GOTO4390
C BUG FIX
CCCCC THE FOLLOWING LINE WAS FIXED APRIL 1989
CCCCC IF(NUMSKP.LT.1)GOTO4310
IF(NUMSKP.LT.1)GOTO4311
DO4310I=1,NUMSKP
READ(IOUNIT,4321,END=4390)ICJUNK
4300 CONTINUE
4310 CONTINUE
CCCCC THE FOLLOWING LINE WAS INSERTED APRIL 1989
4311 CONTINUE
DO4315I=NUMSKP+1,NUMLIN
READ(IOUNIT,4316,END=4390)ICJNK2(I)
4315 CONTINUE
4316 FORMAT(A80)
CCCCC DO4320I=1,NUMLIN
CCCCC READ(IOUNIT,4321,END=4390)ICJUNK
4321 FORMAT(A1)
C4320 CONTINUE
C END FIX
4390 CONTINUE
C BUG FIX: CLOSE THE FILE, OPEN IT AND WRITE OUT STORED LINES
C
C ***********************
C ** STEP 431-- **
C ** CLOSE THE FILE. **
C ***********************
C
ISTEPN='431'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'QUER')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IENDFI='ON'
IREWIN='ON'
CALL DPCLFI(IOUNIT,IFILE,ISTAT,IFORM,IACCES,IPROT,ICURST,
1IENDFI,IREWIN,ISUBN0,IERRFI,IBUGS2,ISUBRO,IERROR)
C
C *********************
C ** STEP 432- **
C ** OPEN THE FILE **
C *********************
C
ISTEPN='432'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'QUER')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IREWIN='ON'
CALL DPOPFI(IOUNIT,IFILE,ISTAT,IFORM,IACCES,IPROT,ICURST,
1IREWIN,ISUBN0,IERRFI,IBUGS2,ISUBRO,IERROR)
IF(IERRFI.EQ.'YES')GOTO9000
C
NTEMP=NUMLIN-NUMSKP
DO4350I=1,NTEMP
WRITE(IOUNIT,4351)ICJNK2(I)
4350 CONTINUE
4351 FORMAT(A80)
C END FIX
C
C
C **********************************************
C ** STEP 44-- **
C ** WRITE TO THE FILE. **
C ** APPEND THE QUERY TO THE FILE. **
C **********************************************
C
ISTEPN='44'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'QUER')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
WRITE(IOUNIT,4421)(ICQUER(J:J),J=1,NCQUER)
4421 FORMAT(80A1)
C
C ***********************
C ** STEP 51-- **
C ** CLOSE THE FILE. **
C ***********************
C
ISTEPN='51'
IF(IBUGS2.EQ.'ON'.OR.ISUBRO.EQ.'QUER')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IENDFI='ON'
IREWIN='ON'
CALL DPCLFI(IOUNIT,IFILE,ISTAT,IFORM,IACCES,IPROT,ICURST,
1IENDFI,IREWIN,ISUBN0,IERRFI,IBUGS2,ISUBRO,IERROR)
C
C ****************
C ** STEP 90-- **
C ** EXIT. **
C ****************
C
9000 CONTINUE
IF(IBUGS2.EQ.'OFF'.AND.ISUBRO.NE.'QUER')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPQUER--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGS2,ISUBRO,IERROR
9012 FORMAT('IBUGS2,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9021)IOUNIT
9021 FORMAT('IOUNIT = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9022)IFILE
9022 FORMAT('IFILE = ',A80)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9023)ISTAT
9023 FORMAT('ISTAT = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9024)IFORM
9024 FORMAT('IFORM = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9025)IACCES
9025 FORMAT('IACCES = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9026)IPROT
9026 FORMAT('IPROT = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9027)ICURST
9027 FORMAT('ICURST = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9028)IENDFI
9028 FORMAT('IENDFI = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9029)IREWIN
9029 FORMAT('IREWIN = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9031)ISUBN0
9031 FORMAT('ISUBN0 = ',A12)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9032)IERRFI
9032 FORMAT('IERRFI = ',A12)
CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,9041)IQUERY
C9041 FORMAT('IQUERY = ',A4)
CCCCC CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRAND(ICASRA,ISEED,ILOCNU,
1IBUGA3,IBUGQ,IFOUND,IERROR)
C
C PURPOSE--GENERATE RANDOM NUMBERS
C FROM ONE OF THE FOLLOWING DISTRIBUTIONS--
C 1 ) UNIFORM
C 2 ) NORMAL
C 3 ) LOGISTIC
C 4 ) DOUBLE EXPONENTIAL
C 5 ) CAUCHY
C 6 ) TUKEY LAMBDA
C 7 ) LOGNORMAL
C 8 ) HALFNORMAL
C 9 ) T
C 10) CHI-SQUARED
C 11) F
C 12) EXPONENTIAL
C 13) GAMMA
C 14) BETA
C 15) WEIBULL
C 16) EXTREME VALUE TYPE 1
C 17) EXTREME VALUE TYPE 2
C 18) PARETO
C 19) BINOMIAL
C 20) GEOMETRIC
C 21) POISSON
C 22) NEGATIVE BINOMIAL
C 23) SEMI-CIRCULAR
C 24) TRIANGULAR
C 25) INVERSE GAUSSIAN MAY 1990
C 26) WALD MAY 1990
C 27) RECIPROCAL INVERSE GAUSSIAN MAY 1990
C 28) FATIGUE LIFE MAY 1990
C 29) GENERALIZED PARETO DECEMBER 1993
C 30) POWER FUNCTION APRIL 1995
C 31) HYPERGEOMETRIC AUGUST 1995
C 32) NON-CENTRAL CHI-SQUARE AUGUST 1995
C 33) NON-CENTRAL F AUGUST 1995
C 34) DOUBLY NON-CENTRAL F AUGUST 1995
C 35) FOLDED NORMAL OCTOBER 1995
C 36) HALF-CAUCHY OCTOBER 1995
C 37) NORMAL MIXTURE MAY 1998
C 38) POWER LAW JUNE 1998
C 39) GENERALIZED TUKEY-LAMBDA AUGUST 2001
C 40) INVERTED WEIBULL SEPTEMBER 2001
C 41) DOUBLE WEIBULL OCTOBER 2001
C 42) DOUBLE GAMMA OCTOBER 2001
C 43) LOG GAMMA OCTOBER 2001
C 44) INVERTED GAMMA OCTOBER 2001
C 45) COSINE OCTOBER 2001
C 46) ANGLIT OCTOBER 2001
C 47) HYPERBOLIC SECANT OCTOBER 2001
C 48) ARCSIN OCTOBER 2001
C 49) LOG DOUBLE EXPONENTIAL OCTOBER 2001
C 50) GENERALIZED EXTREM VALU OCTOBER 2001
C 51) EXPONENTIATED WEIBULL OCTOBER 2001
C 52) GOMPERTZ OCTOBER 2001
C 53) HALF-LOGISTIC OCTOBER 2001
C 54) POWER EXPONENTIAL OCTOBER 2001
C 55) ALPHA OCTOBER 2001
C 56) BRADFORD OCTOBER 2001
C 57) RECIPROCAL OCTOBER 2001
C 58) JOHNSON SB OCTOBER 2001
C 59) JOHNSON SU OCTOBER 2001
C 60) POWER NORMAL OCTOBER 2001
C 61) LOG-LOGISTIC OCTOBER 2001
C 62) GEOMETRIC EXTR EXPO NOVEMBER 2001
C 63) POWER LOGNORMAL NOVEMBER 2001
C 64) BETA-BINOMIAL DECEMBER 2001
C 65) TWO-SIDED POWER MAY 2002
C 66) BIWEIBULL MAY 2002
C 66) LOGARITHMIC SERIES AUGUST 2002
C 67) G-AND-H JANUARY 2003
C 68) SLASH JANUARY 2003
C 69) LANDAU APRIL 2003
C 70) INVERTED BETA MAY 2003
C 71) ERROR (=SUBBOTIN MAY 2003
C =EXPONENTIAL POWER
C =GENERAL ERROR)
C 72) TRAPEZOID JUNE 2003
C 73) VON MISES JUNE 2003
C 74) PARETO SECOND KIND JUNE 2003
C 75) WRAPPED CAUCHY JUNE 2003
C 76) GENERALIZED TRAPEZOID JUNE 2003
C 77) TRUNCATED NORMAL JULY 2003
C 78) CHI JULY 2003
C 79) FOLDED CAUCHY JULY 2003
C 80) MIELKE'S BETA-KAPPA JULY 2003
C 81) GENERALIZED EXPONENTIAL JULY 2003
C 82) TRUNCATED EXPONENTIAL JULY 2003
C 83) GENERALIZED GAMMA SEPTEMBER 2003
C 84) FOLDED T NOVEMBER 2003
C 85) SKEWED NORMAL NOVEMBER 2003
C 86) SKEWED T NOVEMBER 2003
C 87) ZIPF NOVEMBER 2003
C (RENAME AS ZETA) MAY 2006
C 88) GOMPERTZ-MAKEHAM DECEMBER 2003
C 89) GENERALIZED INVERSE GAUSSIAN DECEMBER 2003
C (NOT ACTIVATED YET)
C 90) LOG SKEWED NORMAL MARCH 2004
C 91) LOG SKEWED T MARCH 2004
C 92) NON-CENTRAL T MARCH 2004
C 93) DOUBLY NON-CENTRAL T MARCH 2004
C 94) GENERALIZED HALF-LOGISTIC MARCH 2004
C 95) GENERALIZED LOGISTIC MARCH 2004
C 96) POLYA MARCH 2004
C 97) HERMITE APRIL 2004
C 98) YULE APRIL 2004
C 99) WARING APRIL 2004
C 100) GENERALIZED WARING APRIL 2004
C 101) NON-CENTRAL BETA MAY 2004
C 102) DOUBLY NON-CENTRAL BETA MAY 2004
C 103) SKEW DOUBLE EXPONENTIAL JUNE 2004
C 104) ASYMMETRIC DOUBLE EXPONENTIAL JUNE 2004
C 105) MAXWELL JUNE 2004
C 106) RAYLEIGH JUNE 2004
C 107) MCLEISH AUGUST 2004
C 108) BESSEL I-FUNCTION AUGUST 2004
C 109) BESSEL K-FUNCTION AUGUST 2004 (NOT WORK)
C 110) GENERALIZED MCLEISH SEPTEMBER 2004
C 111) HYPERBOLIC SEPTEMBER 2004 (NOT WORK)
C 112) GENERALIZED LOGISTIC TYPE 5 FEBRUARY 2006
C 113) WAKEBY FEBRUARY 2006
C 114) BETA NORMAL MARCH 2006
C 115) GENERALIZED LOGISTIC TYPE 2 MARCH 2006
C 116) GENERALIZED LOGISTIC TYPE 3 MARCH 2006
C 117) GENERALIZED LOGISTIC TYPE 4 MARCH 2006
C 118) ASYMMETRIC LOG DOUBLE EXPONENTIAL MARCH 2006
C 119) BETA GEOMETRIC MAY 2006
C 120) BOREL TANNER MAY 2006
C 121) LAGRANGE POISSON JUNE 2006
C 122) LEADS IN COIN TOSSING JUNE 2006
C (DISCRETE ARCSINE)
C 123) MATCHING JUNE 2006
C 124) CLASSICAL OCCUPANCY JUNE 2006 (NOT ACTIVE)
C 125) LOG BETA JUNE 2006
C 126) POLYA AEPPLI JUNE 2006
C 127) LOST GAMES JUNE 2006
C 128) NEYMAN TYPE A JUNE 2006 (NOT ACTIVE)
C 129) DXG JUNE 2006 (NOT ACTIVE)
C 130) GENERALIZED LOGARITHMIC SERIES JUNE 2006
C 131) GENERALIZED NEGATIVE BINOMIAL JULY 2006
C 132) GEETA JULY 2006
C 133) QUASI BINOMIAL TYPE I JULY 2006
C 134) CONSUL AUGUST 2006
C 135) LAGRANGE KATZ AUGUST 2006 (NOT ACTIVE)
C 136) KATZ SEPTEMBER 2006 (NOT ACTIVE)
C 137) DISCRETE WEIBULL NOVEMBER 2006
C 138) GENERALIZED LOST GAMES NOVEMBER 2006
C
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 BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--82/7
C ORIGINAL VERSION--APRIL 1978.
C UPDATED --MAY 1978.
C UPDATED --JUNE 1978.
C UPDATED --MAY 1978.
C UPDATED --NOVEMBER 1978.
C UPDATED --JUNE 1981.
C UPDATED --SEPTEMBER 1981.
C UPDATED --OCTOBER 1981.
C UPDATED --MARCH 1982.
C UPDATED --MAY 1982.
C UPDATED --DECEMBER 1988. DISCRETE UNIFORM
C UPDATED --DECEMBER 1988. BOOTSTRAP INDEX
C UPDATED --DECEMBER 1988. RANDOM PERMUTATION
C UPDATED --JANUARY 1989. JACKNIFE INDEX
C UPDATED --MAY 1993. MINMAX FOR EV1/EV2/WEIB DIST.
C UPDATED --OCTOBER 1993. JACKNIFE INDEX TO DPMATC
C UPDATED --DECEMBER 1993. GENERALIZED PARETO
C UPDATED --MARCH 1994. DPCOS2.INC
C UPDATED --APRIL 1995. POWER FUNCTION
C UPDATED --AUGUST 1995. HYPERGEOMETRIC, NON-CENTRAL
C CHI-SQUARE, SINGLY AND DOUBLY
C NON-CENTRAL F
C UPDATED --MAY 1998. NORMAL MIXTURE
C UPDATED --JUNE 1998. POWER LAW
C UPDATED --AUGUST 2001. GENERALIZED LAMBDA
C UPDATED --SEPTEMBER 2001. INVERTED WEIBULL
C UPDATED --OCTOBER 2001. DOUBLE WEIBULL
C UPDATED --OCTOBER 2001. DOUBLE GAMMA
C UPDATED --OCTOBER 2001. LOG GAMMA
C UPDATED --OCTOBER 2001. INVERTED GAMMA
C UPDATED --OCTOBER 2001. COSINE
C UPDATED --OCTOBER 2001. ANGLIT
C UPDATED --OCTOBER 2001. HYPERBOLIC SECANT
C UPDATED --OCTOBER 2001. ARCSIN
C UPDATED --OCTOBER 2001. LOG DOUBLE EXPONENTIAL
C UPDATED --OCTOBER 2001. GENERALIZED EXTREME VALUE
C UPDATED --OCTOBER 2001. EXPONENTIATED WEIBULL
C UPDATED --OCTOBER 2001. GOMPERTZ
C UPDATED --OCTOBER 2001. HALF-LOGISTIC
C UPDATED --OCTOBER 2001. POWER EXPONENTIAL
C UPDATED --OCTOBER 2001. ALPHA
C UPDATED --OCTOBER 2001. BRADFORD
C UPDATED --OCTOBER 2001. RECIPROCAL
C UPDATED --OCTOBER 2001. JOHNSON SU
C UPDATED --OCTOBER 2001. JOHNSON SB
C UPDATED --OCTOBER 2001. POWER NORMAL
C UPDATED --OCTOBER 2001. LOG-LOGISTIC
C UPDATED --NOVEMBER 2001. GEOMETRIC EXTREME EXPO
C UPDATED --NOVEMBER 2001. POWER LOGNORMAL
C UPDATED --DECEMBER 2001. BETA-BINOMIAL
C UPDATED --MAY 2002. TWO-SIDED POWER
C UPDATED --MAY 2002. BIWEIBULL
C UPDATED --AUGUST 2002. LOGARITHMIC SERIES
C UPDATED --JANUARY 2003. G-AND-H, SLASH
C UPDATED --APRIL 2003. ADD SHAPE PARAMETER FOR
C LOGNORMAL
C UPDATED --APRIL 2003. LANDAU
C UPDATED --MAY 2003. INVERTED BETA
C UPDATED --MAY 2003. ERROR (=SUBBOTIN=EXPOENTIAL
C POWER=GENERAL ERROR)
C UPDATED --JUNE 2003. TRAPEZOID, VON MISES,
C PARETO SECOND KIND,
C WRAPPED CAUCHY,
C GENERALIZED TRAPEZOID
C UPDATED --JULY 2003. CHI, TRUNCATED NORMAL,
C FOLDED CAUCHY,
C MIELKE'S BETA-KAPPA,
C GENERALIZED EXPONENTIAL,
C TRUNCATED EXPONENTIAL
C UPDATED --SEPTEMBER 2003. GENERALIZED GAMMA
C UPDATED --NOVEMBER 2003. FOLDED T
C UPDATED --NOVEMBER 2003. SKEWED NORMAL
C UPDATED --NOVEMBER 2003. SKEWED T
C UPDATED --NOVEMBER 2003. ZIPF
C UPDATED --DECEMBER 2003. GOMPERTZ-MAKEHAM
C UPDATED --DECEMBER 2003. GENERALIZED INVERSE GAUSSIAN
C (NOT IMPLEMENTED YET)
C UPDATED --MARCH 2004. LOG SKEWED NORMAL
C UPDATED --MARCH 2004. LOG SKEWED T
C UPDATED --MARCH 2004. ALTERNATE DEFINITION OF
C GEOMETRIC
C UPDATED --MARCH 2004. NON-CENTRAL T
C UPDATED --MARCH 2004. DOUBLY NON-CENTRAL T
C UPDATED --MARCH 2004. GENERALIZED HALF-LOGISTIC
C UPDATED --MARCH 2004. GENERALIZED LOGISTIC
C UPDATED --MARCH 2004. POLYA
C UPDATED --APRIL 2004. HERMITE
C UPDATED --APRIL 2004. YULE
C UPDATED --APRIL 2004. WARING
C UPDATED --APRIL 2004. GENERALIZED WARING
C UPDATED --MAY 2004. NON-CENTRAL BETA
C UPDATED --MAY 2004. DOUBLY NON-CENTRAL BETA
C UPDATED --MAY 2004. REAL VALUES FOR CHI-SQUARE
C RANDOM NUMBERS
C UPDATED --MAY 2004. NON-CENTRAL CHI-SQUARE AS
C SEPARATE SUBROUTINE
C UPDATED --JUNE 2004. SKEW DOUBLE EXPONENTIAL
C UPDATED --JUNE 2004. ASYMMETRIC DOUBLE EXPONENTIAL
C UPDATED --JUNE 2004. ARGUMENT LIST TO GEPRAN
C UPDATED --JUNE 2004. MAXWELL, RAYLEIGH
C UPDATED --JULY 2004. ALTERNATE DEFINITIION FOR
C GOMPERTZ-MAKEHAM
C UPDATED --OCTOBER 2004. FOR PARETO, TREAT A AS A
C SHAPE PARAMETER
C UPDATED --JULY 2005. CALL LIST TO LGARAN AND SNRAN
C UPDATED --FEBRUARY 2006. GENERALIZED LOGISTIC TYPE 5
C UPDATED --FEBRUARY 2006. WAKEBY
C UPDATED --FEBRUARY 2006. ARGUMENT LIST TO GLDRAN
C UPDATED --MARCH 2006. BETA-NORMAL
C UPDATED --MARCH 2006. GENERALIZED LOGISTIC TYPE 2
C UPDATED --MARCH 2006. GENERALIZED LOGISTIC TYPE 3
C UPDATED --MARCH 2006. GENERALIZED LOGISTIC TYPE 4
C UPDATED --MARCH 2006. ASYMMETRIC DOUBLE EXPONENTIAL
C UPDATED --MAY 2006. BETA GEOMETRIC
C UPDATED --MAY 2006. RENAME ZIPF AS ZETA
C UPDATED --MAY 2006. BOREL-TANNER
C UPDATED --MAY 2006. BETA-NEGATIVE BINOMIAL AS
C SYNOMYM FOR GENERALIZED
C WARING
C UPDATED --JUNE 2006. LAGRANGE-POISSON
C UPDATED --JUNE 2006. LEADS IN COIN TOSSING
C UPDATED --JUNE 2006. MATCHING
C UPDATED --JUNE 2006. CLASSICAL OCCUPANCY
C UPDATED --JUNE 2006. LOG BETA
C UPDATED --JUNE 2006. GENERALIZED LOGARITHMIC
C SERIES
C UPDATED --JULY 2006. GENERALIZED NEGATIVE
C BINOMIAL
C UPDATED --JULY 2006. GEETA
C UPDATED --JULY 2006. QUASI BINOMIAL TYPE 1
C UPDATED --AUGUST 2006. CONSUL
C UPDATED --AUGUST 2006. LAGRANGE KATZ
C UPDATED --SEPTEMBER 2006. KATZ
C UPDATED --OCTOBER 2006. FRACTIONAL DEGREES OF
C FREEDOM FOR T DISTRIBUTION
C UPDATED --NOVEMBER 2006. DISCRETE WEIBULL
C UPDATED --NOVEMBER 2006. GENERALIZED LOST GAMES
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICASRA
CHARACTER*4 IBUGA3
CHARACTER*4 IBUGQ
CHARACTER*4 IWRITE
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 NEWNAM
CHARACTER*4 NEWCOL
CHARACTER*4 MESSAG
CHARACTER*4 ICASEQ
CHARACTER*4 IHWUSE
CHARACTER*4 IHP
CHARACTER*4 IHP2
CHARACTER*4 ILEFT
CHARACTER*4 ILEFT2
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*26 IDIST
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOPA.INC'
INCLUDE 'DPCOHK.INC'
INCLUDE 'DPCODA.INC'
CCCCC THE FOLLOWING LINE WAS ADDED (FOR MINMAX) MAY 1993
INCLUDE 'DPCOSU.INC'
CCCCC THE FOLLOWING LINE WAS ADDED (FOR MINMAX) MARCH 1994
INCLUDE 'DPCOS2.INC'
CCCCC AUGUST 1995. ADD FOLLOWING LINE
DIMENSION XTEMP(1)
CCCCC MARCH 2004. ADD FOLLOWING LINE
INCLUDE 'DPCOST.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-----DATA STATEMENTS-------------------------------------------------
C
DATA EPS/0.000001/
DATA ALAMLG/0.00001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPRA'
ISUBN2='N '
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
IFOUND='YES'
C
NS2=0
C
C ***********************************************
C ** TREAT THE RANDOM NUMBER GENERATION CASE **
C ** 1) FOR A FULL VARIABLE, OR **
C ** 2) FOR PART OF A VARIABLE. **
C ***********************************************
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 DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGA3,IBUGQ
52 FORMAT('IBUGA3,IBUGQ = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)ICASRA,ISEED,ILOCNU
53 FORMAT('ICASRA,ISEED,ILOCNU = ',A4,I8,I8)
CALL DPWRST('XXX','BUG ')
CCCCC THE FOLLOWING 2 LINES WERE ADDED MAY 1993
WRITE(ICOUT,61)MINMAX
61 FORMAT('MINMAX = ',I8)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **********************************
C ** STEP 1-- **
C ** INITIALIZE SOME VARIABLES. **
C **********************************
C
ISTEPN='1'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NEWNAM='NO'
NEWCOL='NO'
C
C *******************************************************
C ** STEP 2-- **
C ** CHECK FOR THE PROPER NUMBER OF INPUT ARGUMENTS. **
C *******************************************************
C
ISTEPN='2'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
MINNA=3
MAXNA=100
CALL CHECKA(NUMARG,MINNA,MAXNA,IANS,IWIDTH,ISUBN1,ISUBN2,
1IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ****************************************************************
C ** STEP 3-- *
C ** EXAMINE THE LEFT-HAND SIDE-- *
C ** IS THE PARAMETER OR VARIABLE NAME TO LEFT OF = SIGN *
C ** ALREADY IN THE NAME LIST? *
C ** NOTE THAT ILEFT IS THE NAME OF THE VARIABLE *
C ** ON THE LEFT. *
C ** NOTE THAT ILISTL IS THE LINE IN THE TABLE *
C ** OF THE NAME ON THE LEFT. *
C ** NOTE THAT ICOLL IS THE DATA COLUMN (1 TO 12) *
C ** FOR THE NAME OF THE LEFT. *
C ****************************************************************
C
ISTEPN='3'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CCCCC ILEFT=IHOL(2)
CCCCC ILEFT2=IHOL2(2)
ILEFT=IHARG(1)
ILEFT2=IHARG2(1)
DO310I=1,NUMNAM
I2=I
IF(ILEFT.EQ.IHNAME(I).AND.ILEFT2.EQ.IHNAM2(I).AND.
1IUSE(I).EQ.'P')GOTO329
IF(ILEFT.EQ.IHNAME(I).AND.ILEFT2.EQ.IHNAM2(I).AND.
1IUSE(I).EQ.'V')GOTO380
310 CONTINUE
NEWNAM='YES'
ILISTL=NUMNAM+1
IF(ILISTL.GT.MAXNAM)GOTO320
GOTO330
C
320 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,321)
321 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,322)
322 FORMAT(' THE NUMBER OF VARIABLE AND/OR PARAMETER')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,323)MAXNAM
323 FORMAT(' NAMES HAS JUST EXCEEDED THE MAX ALLOWABLE ',
1I8,' .')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,324)
324 FORMAT(' SUGGESTED ACTION--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,325)
325 FORMAT(' ENTER STAT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,326)
326 FORMAT(' TO FIND OUT THE FULL LIST OF USED NAMES,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,327)
327 FORMAT(' AND THEN REDEFINE (REUSE) SOME OF THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,328)
328 FORMAT(' ALREADY-USED NAMES')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
329 CONTINUE
ILISTL=I2
GOTO330
C
330 CONTINUE
NLEFT=0
ICOLL=NUMCOL+1
IF(ICOLL.GT.MAXCOL)GOTO340
GOTO390
C
340 CONTINUE
WRITE(ICOUT,341)
341 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,342)
342 FORMAT(' THE NUMBER OF DATA COLUMNS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,343)MAXCOL
343 FORMAT(' HAS JUST EXCEEDED THE MAX ALLOWABLE ',I8,' .')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,344)
344 FORMAT(' SUGGESTED ACTION--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,345)
345 FORMAT(' ENTER STAT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,346)
346 FORMAT(' TO FIND OUT THE FULL LIST OF USED COLUMNS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,347)
347 FORMAT(' AND THEN OVERWRITE SOME COLUMNS. EXAMPLE--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,348)
348 FORMAT(' IF LET X(I) = 3.14 FAILED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,349)
349 FORMAT(' THEN ONE MIGHT ENTER NAME X 7')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,350)
350 FORMAT(' (THEREBY EQUATING THE NAME X WITH COLUMN 7')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,351)
351 FORMAT(' FOLLOWED BY LET X = 3.14')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,352)
352 FORMAT(' (WHICH WILL ACTUALLY OVERWRITE COLUMN 7')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,353)
353 FORMAT(' WITH THE NUMERIC CONSTANTS 3.14)')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
380 CONTINUE
ILISTL=I2
ICOLL=IVALUE(ILISTL)
NLEFT=IN(ILISTL)
C
390 CONTINUE
C
C *******************************************************
C ** STEP 4-- **
C ** CHECK THAT THE INPUT CASE (ICASRA) **
C ** IS ONE OF THE ALLOWABLE 100+ DISTRIBUTIONS **
C *******************************************************
C
ISTEPN='2'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASRA.EQ.'UNIF')GOTO490
IF(ICASRA.EQ.'NORM')GOTO490
IF(ICASRA.EQ.'LOGI')GOTO490
IF(ICASRA.EQ.'DOUB')GOTO490
IF(ICASRA.EQ.'CAUC')GOTO490
IF(ICASRA.EQ.'LAMB')GOTO490
IF(ICASRA.EQ.'LOGN')GOTO490
IF(ICASRA.EQ.'HALF')GOTO490
IF(ICASRA.EQ.'T')GOTO490
IF(ICASRA.EQ.'CHIS')GOTO490
IF(ICASRA.EQ.'F')GOTO490
IF(ICASRA.EQ.'EXPO')GOTO490
IF(ICASRA.EQ.'GAMM')GOTO490
IF(ICASRA.EQ.'BETA')GOTO490
IF(ICASRA.EQ.'WEIB')GOTO490
IF(ICASRA.EQ.'EXV1')GOTO490
IF(ICASRA.EQ.'EXV2')GOTO490
IF(ICASRA.EQ.'PARE')GOTO490
IF(ICASRA.EQ.'BINO')GOTO490
IF(ICASRA.EQ.'GEOM')GOTO490
IF(ICASRA.EQ.'POIS')GOTO490
IF(ICASRA.EQ.'NEGB')GOTO490
IF(ICASRA.EQ.'SEMI')GOTO490
IF(ICASRA.EQ.'TRIA')GOTO490
IF(ICASRA.EQ.'DIUN')GOTO490
IF(ICASRA.EQ.'BOOT')GOTO490
IF(ICASRA.EQ.'PERM')GOTO490
CCCCC OCTOBER 1993. JACKNIFE INDEX IN DPMATC
CCCCC IF(ICASRA.EQ.'JACK')GOTO490
IF(ICASRA.EQ.'IG')GOTO490
IF(ICASRA.EQ.'WALD')GOTO490
IF(ICASRA.EQ.'RIG')GOTO490
IF(ICASRA.EQ.'FL')GOTO490
CCCCC THE FOLLOWING LINE WAS ADDED DECEMBER 1993
IF(ICASRA.EQ.'GEP')GOTO490
CCCCC THE FOLLOWING LINE WAS ADDED APRIL 1995
IF(ICASRA.EQ.'POWF')GOTO490
CCCCC THE FOLLOWING 4 LINES WERE ADDED AUGUST 1995
IF(ICASRA.EQ.'HYPE')GOTO490
IF(ICASRA.EQ.'NCCS')GOTO490
IF(ICASRA.EQ.'NCF ')GOTO490
IF(ICASRA.EQ.'DNCF')GOTO490
CCCCC THE FOLLOWING 2 LINES WERE ADDED OCTOBER 1995
IF(ICASRA.EQ.'FNRM')GOTO490
IF(ICASRA.EQ.'HFCA')GOTO490
CCCCC THE FOLLOWING LINE WAS ADDED MAY 1998
IF(ICASRA.EQ.'NMRM')GOTO490
CCCCC THE FOLLOWING LINE WAS ADDED JUNE 1998
IF(ICASRA.EQ.'POWL')GOTO490
CCCCC THE FOLLOWING LINE WAS ADDED AUGUST 2001
IF(ICASRA.EQ.'GLAM')GOTO490
CCCCC THE FOLLOWING LINE WAS ADDED SEPTEMBER 2001
IF(ICASRA.EQ.'IWEI')GOTO490
CCCCC THE FOLLOWING 10 LINES WERE ADDED OCTOBER 2001
IF(ICASRA.EQ.'DWEI')GOTO490
IF(ICASRA.EQ.'DGAM')GOTO490
IF(ICASRA.EQ.'LGAM')GOTO490
IF(ICASRA.EQ.'IGAM')GOTO490
IF(ICASRA.EQ.'COSI')GOTO490
IF(ICASRA.EQ.'ANGL')GOTO490
IF(ICASRA.EQ.'HSEC')GOTO490
IF(ICASRA.EQ.'ARCS')GOTO490
IF(ICASRA.EQ.'LDEX')GOTO490
IF(ICASRA.EQ.'GEVA')GOTO490
IF(ICASRA.EQ.'EWEI')GOTO490
IF(ICASRA.EQ.'GOMP')GOTO490
IF(ICASRA.EQ.'HALO')GOTO490
IF(ICASRA.EQ.'POEX')GOTO490
IF(ICASRA.EQ.'ALPH')GOTO490
IF(ICASRA.EQ.'BRAD')GOTO490
IF(ICASRA.EQ.'RECI')GOTO490
IF(ICASRA.EQ.'JOSB')GOTO490
IF(ICASRA.EQ.'JOSU')GOTO490
IF(ICASRA.EQ.'PNOR')GOTO490
IF(ICASRA.EQ.'LLOG')GOTO490
CCCCC THE FOLLOWING 2 LINES WERE ADDED NOVEMBER 2001
IF(ICASRA.EQ.'GEEE')GOTO490
IF(ICASRA.EQ.'PLNO')GOTO490
IF(ICASRA.EQ.'BBIN')GOTO490
IF(ICASRA.EQ.'POLY')GOTO490
IF(ICASRA.EQ.'STSP')GOTO490
IF(ICASRA.EQ.'BIWE')GOTO490
IF(ICASRA.EQ.'LOGS')GOTO490
IF(ICASRA.EQ.'GH ')GOTO490
IF(ICASRA.EQ.'SLAS')GOTO490
IF(ICASRA.EQ.'LAND')GOTO490
IF(ICASRA.EQ.'IBET')GOTO490
IF(ICASRA.EQ.'ERRO')GOTO490
IF(ICASRA.EQ.'TRAP')GOTO490
IF(ICASRA.EQ.'VONM')GOTO490
IF(ICASRA.EQ.'WRCA')GOTO490
IF(ICASRA.EQ.'PAR2')GOTO490
IF(ICASRA.EQ.'GTRA')GOTO490
IF(ICASRA.EQ.'TNOR')GOTO490
IF(ICASRA.EQ.'CHI ')GOTO490
IF(ICASRA.EQ.'FCAU')GOTO490
IF(ICASRA.EQ.'BKAP')GOTO490
IF(ICASRA.EQ.'GEXP')GOTO490
IF(ICASRA.EQ.'TEXP')GOTO490
IF(ICASRA.EQ.'GGD ')GOTO490
IF(ICASRA.EQ.'FT ')GOTO490
IF(ICASRA.EQ.'SKWN')GOTO490
IF(ICASRA.EQ.'SKWT')GOTO490
IF(ICASRA.EQ.'ZIPF')GOTO490
IF(ICASRA.EQ.'ZETA')GOTO490
IF(ICASRA.EQ.'GMAK')GOTO490
IF(ICASRA.EQ.'GIG ')GOTO490
IF(ICASRA.EQ.'SKLN')GOTO490
IF(ICASRA.EQ.'SKLT')GOTO490
IF(ICASRA.EQ.'NCT ')GOTO490
IF(ICASRA.EQ.'DNCT')GOTO490
IF(ICASRA.EQ.'GHLO')GOTO490
IF(ICASRA.EQ.'GLOG')GOTO490
IF(ICASRA.EQ.'HERM')GOTO490
IF(ICASRA.EQ.'YULE')GOTO490
IF(ICASRA.EQ.'WARI')GOTO490
IF(ICASRA.EQ.'GWAR')GOTO490
IF(ICASRA.EQ.'BENB')GOTO490
IF(ICASRA.EQ.'NCBE')GOTO490
IF(ICASRA.EQ.'DNCB')GOTO490
IF(ICASRA.EQ.'SKDE')GOTO490
IF(ICASRA.EQ.'ASDE')GOTO490
IF(ICASRA.EQ.'MAXW')GOTO490
IF(ICASRA.EQ.'RAYL')GOTO490
IF(ICASRA.EQ.'GASD')GOTO490
IF(ICASRA.EQ.'MCLE')GOTO490
IF(ICASRA.EQ.'BESI')GOTO490
IF(ICASRA.EQ.'BESK')GOTO490
IF(ICASRA.EQ.'GMCL')GOTO490
IF(ICASRA.EQ.'HBOL')GOTO490
IF(ICASRA.EQ.'G5LO')GOTO490
IF(ICASRA.EQ.'WAKE')GOTO490
IF(ICASRA.EQ.'BNOR')GOTO490
IF(ICASRA.EQ.'G2LO')GOTO490
IF(ICASRA.EQ.'G3LO')GOTO490
IF(ICASRA.EQ.'G4LO')GOTO490
IF(ICASRA.EQ.'ALDE')GOTO490
IF(ICASRA.EQ.'BGEO')GOTO490
IF(ICASRA.EQ.'BTAN')GOTO490
IF(ICASRA.EQ.'LPOI')GOTO490
IF(ICASRA.EQ.'LCTO')GOTO490
IF(ICASRA.EQ.'MATC')GOTO490
IF(ICASRA.EQ.'OCCU')GOTO490
IF(ICASRA.EQ.'LBET')GOTO490
IF(ICASRA.EQ.'PAEP')GOTO490
IF(ICASRA.EQ.'LOST')GOTO490
IF(ICASRA.EQ.'GLSE')GOTO490
IF(ICASRA.EQ.'GNBI')GOTO490
IF(ICASRA.EQ.'GEET')GOTO490
IF(ICASRA.EQ.'QBTI')GOTO490
IF(ICASRA.EQ.'CONS')GOTO490
IF(ICASRA.EQ.'LAGK')GOTO490
IF(ICASRA.EQ.'KATZ')GOTO490
IF(ICASRA.EQ.'DISW')GOTO490
IF(ICASRA.EQ.'GLGA')GOTO490
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,401)
401 FORMAT('***** INTERNAL ERROR IN DPRAND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,402)
402 FORMAT(' AT BRANCH POINT 4001--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,403)
403 FORMAT(' ICASRA NOT EQUAL ONE OF THE ALLOWABLE 100+--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,404)
404 FORMAT(' UNIF, NORM, LOGI, DOUB, CAUC, ETC.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,405)ICASRA
405 FORMAT(' VALUE OF ICASRA = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,406)
406 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,407)(IANS(I),I=1,IWIDTH)
407 FORMAT(80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
490 CONTINUE
C
C *****************************************
C ** STEP 6-- **
C ** CHECK TO SEE THE TYPE SUBCASE **
C ** (BASED ON THE QUALIFIER) **
C ** 1) UNQUALIFIED (THAT IS, FULL); **
C ** 2) SUBSET/EXCEPT; OR **
C ** 3) FOR. **
C *****************************************
C
ISTEPN='6'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='FULL'
ILOCQ=NUMARG+1
IF(NUMARG.LT.1)GOTO670
DO610J=1,NUMARG
J1=J
IF(IHARG(J).EQ.'SUBS'.AND.IHARG2(J).EQ.'ET ')GOTO620
IF(IHARG(J).EQ.'EXCE'.AND.IHARG2(J).EQ.'PT ')GOTO620
IF(IHARG(J).EQ.'FOR '.AND.IHARG2(J).EQ.' ')GOTO630
610 CONTINUE
GOTO680
C
620 CONTINUE
ICASEQ='SUBS'
ILOCQ=J1
GOTO680
C
630 CONTINUE
ICASEQ='FOR'
ILOCQ=J1
GOTO680
C
670 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,671)
671 FORMAT('***** INTERNAL ERROR IN DPRAND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,672)
672 FORMAT(' AT BRANCH POINT 5081--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,673)
673 FORMAT(' NUMARG LESS THAN 1 EVEN THOUGH')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,674)
674 FORMAT(' NUMARG HAD PREVIOUSLY PASSED THIS TEST')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,675)NUMARG
675 FORMAT(' ONCE ALREADY. VALUE OF NUMARG = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,676)
676 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,677)(IANS(I),I=1,IWIDTH)
677 FORMAT(80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
680 CONTINUE
IF(IBUGA3.EQ.'OFF')GOTO690
WRITE(ICOUT,681)NUMARG,ILOCQ,ICASEQ
681 FORMAT('NUMARG,ILOCQ,ICASEQ = ',I8,I8,2X,A4)
CALL DPWRST('XXX','BUG ')
C
690 CONTINUE
C
C ******************************************************
C ** STEP 7-- **
C ** BRANCH TO THE APPROPRIATE SUBCASE **
C ** (BASED ON THE QUALIFIER); **
C ** DETERMINE THE NUMBER (= NRAN) **
C ** OF RANDOM NUMBERS TO BE GENERATED. **
C ** NOTE THAT THE VARIABLE NIISUB **
C ** IS THE LENGTH OF THE RESULTING **
C ** VARIABLE ISUB(.). **
C ** NOTE THAT DPFOR AUTOMATICALLY EXTENDS **
C ** THE INPUT LENGTH OF ISUB(.) IF NECESSARY. **
C ** (HENCE THE REDEFINITION OF NIISUB TO NINEW **
C ** AFTER THE CALL TO DPFOR. **
C ******************************************************
C
ISTEPN='7'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CCCCC OCTOBER 1993. JACKNIFE INDEX TO DPMATC.
CCCCC IF(ICASRA.EQ.'JACK')GOTO1280
IF(ICASEQ.EQ.'FULL')GOTO710
IF(ICASEQ.EQ.'SUBS')GOTO720
IF(ICASEQ.EQ.'FOR')GOTO730
C
710 CONTINUE
IF(NEWNAM.EQ.'NO')NIISUB=NLEFT
IF(NEWNAM.EQ.'YES')NIISUB=MAXN
DO715I=1,NIISUB
ISUB(I)=1
715 CONTINUE
NRAN=NIISUB
GOTO750
C
720 CONTINUE
NIISUB=MAXN
CALL DPSUBS(NIISUB,ILOCS,NS,IBUGQ,IERROR)
NRAN=NS
GOTO750
C
730 CONTINUE
IF(NEWNAM.EQ.'NO')NIISUB=NLEFT
IF(NEWNAM.EQ.'YES')NIISUB=MAXN
CALL DPFOR(NIISUB,NINEW,IROW1,IROWN,
1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
NIISUB=NINEW
NRAN=NS
GOTO750
C
750 CONTINUE
C
C ******************************************
C ** STEP 8-- **
C ** GENERATE NRAN RANDOM NUMBERS **
C ** FROM THE SPECIFIED DISTRIBUTION. **
C ** STORE THEM TEMPORARILY IN **
C ** THE VECTOR Y(.). **
C ******************************************
C
ISTEPN='8'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASRA.EQ.'UNIF')GOTO1010
IF(ICASRA.EQ.'NORM')GOTO1020
IF(ICASRA.EQ.'LOGI')GOTO1030
IF(ICASRA.EQ.'DOUB')GOTO1040
IF(ICASRA.EQ.'CAUC')GOTO1050
IF(ICASRA.EQ.'LAMB')GOTO1060
IF(ICASRA.EQ.'LOGN')GOTO1070
IF(ICASRA.EQ.'HALF')GOTO1080
IF(ICASRA.EQ.'T')GOTO1090
IF(ICASRA.EQ.'CHIS')GOTO1100
IF(ICASRA.EQ.'F')GOTO1110
IF(ICASRA.EQ.'EXPO')GOTO1120
IF(ICASRA.EQ.'GAMM')GOTO1130
IF(ICASRA.EQ.'BETA')GOTO1140
IF(ICASRA.EQ.'WEIB')GOTO1150
IF(ICASRA.EQ.'EXV1')GOTO1160
IF(ICASRA.EQ.'EXV2')GOTO1170
IF(ICASRA.EQ.'PARE')GOTO1180
IF(ICASRA.EQ.'BINO')GOTO1190
IF(ICASRA.EQ.'GEOM')GOTO1200
IF(ICASRA.EQ.'POIS')GOTO1210
IF(ICASRA.EQ.'NEGB')GOTO1220
IF(ICASRA.EQ.'SEMI')GOTO1230
IF(ICASRA.EQ.'TRIA')GOTO1240
IF(ICASRA.EQ.'DIUN')GOTO1250
IF(ICASRA.EQ.'BOOT')GOTO1260
IF(ICASRA.EQ.'PERM')GOTO1270
CCCCC OCTOBER 1993. JACKNIFE INDEX TO DPMATC
CCCCC IF(ICASRA.EQ.'JACK')GOTO1280
CCCCC THE FOLLOWING 4 LINES WERE ADDED MAY 1990
IF(ICASRA.EQ.'IG')GOTO1290
IF(ICASRA.EQ.'WALD')GOTO1300
IF(ICASRA.EQ.'RIG')GOTO1310
IF(ICASRA.EQ.'FL')GOTO1320
CCCCC THE FOLLOWING LINE WAS ADDED DECEMBER 1993
IF(ICASRA.EQ.'GEP')GOTO1330
CCCCC THE FOLLOWING LINE WAS ADDED APRIL 1995
IF(ICASRA.EQ.'POWF')GOTO1340
CCCCC THE FOLLOWING 4 LINES WERE ADDED AUGUST 1995
IF(ICASRA.EQ.'HYPE')GOTO1350
IF(ICASRA.EQ.'NCCS')GOTO1360
IF(ICASRA.EQ.'NCF ')GOTO1370
IF(ICASRA.EQ.'DNCF')GOTO1380
CCCCC THE FOLLOWING 2 LINES WERE ADDED OCTOBER 1995
IF(ICASRA.EQ.'FNRM')GOTO1390
IF(ICASRA.EQ.'HFCA')GOTO1400
CCCCC THE FOLLOWING LINE WAS ADDED MAY 1998
IF(ICASRA.EQ.'NMRM')GOTO1410
CCCCC THE FOLLOWING LINE WAS ADDED JUNE 1998
IF(ICASRA.EQ.'POWL')GOTO1440
CCCCC THE FOLLOWING LINE WAS ADDED AUGUST 2001
IF(ICASRA.EQ.'GLAM')GOTO1460
CCCCC THE FOLLOWING LINE WAS ADDED SEPTEMBER 2001
IF(ICASRA.EQ.'IWEI')GOTO1480
CCCCC THE FOLLOWING 10 LINES WERE ADDED OCTOBER 2001
IF(ICASRA.EQ.'DWEI')GOTO1490
IF(ICASRA.EQ.'DGAM')GOTO1500
IF(ICASRA.EQ.'LGAM')GOTO1510
IF(ICASRA.EQ.'IGAM')GOTO1520
IF(ICASRA.EQ.'COSI')GOTO1530
IF(ICASRA.EQ.'ANGL')GOTO1540
IF(ICASRA.EQ.'HSEC')GOTO1550
IF(ICASRA.EQ.'ARCS')GOTO1560
IF(ICASRA.EQ.'LDEX')GOTO1570
IF(ICASRA.EQ.'GEVA')GOTO1580
CCCCC THE FOLLOWING 10 LINES WERE ADDED OCTOBER 2001
IF(ICASRA.EQ.'EWEI')GOTO1590
IF(ICASRA.EQ.'GOMP')GOTO1600
IF(ICASRA.EQ.'HALO')THEN
IFLGHL=0
GOTO1610
ENDIF
IF(ICASRA.EQ.'GHLO')THEN
IFLGHL=1
GOTO1610
ENDIF
IF(ICASRA.EQ.'POEX')GOTO1620
IF(ICASRA.EQ.'ALPH')GOTO1630
IF(ICASRA.EQ.'BRAD')GOTO1640
IF(ICASRA.EQ.'RECI')GOTO1650
IF(ICASRA.EQ.'JOSB')GOTO1660
IF(ICASRA.EQ.'JOSU')GOTO1670
IF(ICASRA.EQ.'PNOR')GOTO1680
IF(ICASRA.EQ.'LLOG')GOTO1690
IF(ICASRA.EQ.'GEEE')GOTO1700
IF(ICASRA.EQ.'PLNO')GOTO1710
IF(ICASRA.EQ.'BBIN')GOTO1730
IF(ICASRA.EQ.'POLY')GOTO1730
IF(ICASRA.EQ.'STSP')GOTO1760
IF(ICASRA.EQ.'BIWE')GOTO1790
IF(ICASRA.EQ.'LOGS')GOTO1850
IF(ICASRA.EQ.'GH ')GOTO1860
IF(ICASRA.EQ.'SLAS')GOTO1880
IF(ICASRA.EQ.'LAND')GOTO1890
IF(ICASRA.EQ.'IBET')GOTO1900
IF(ICASRA.EQ.'ERRO')GOTO1920
IF(ICASRA.EQ.'TRAP')GOTO1930
IF(ICASRA.EQ.'VONM')GOTO1940
IF(ICASRA.EQ.'PAR2')GOTO1950
IF(ICASRA.EQ.'WRCA')GOTO1960
IF(ICASRA.EQ.'GTRA')GOTO1970
IF(ICASRA.EQ.'TNOR')GOTO2010
IF(ICASRA.EQ.'CHI ')GOTO2040
IF(ICASRA.EQ.'FCAU')GOTO2050
IF(ICASRA.EQ.'BKAP')GOTO2060
IF(ICASRA.EQ.'GEXP')GOTO2090
IF(ICASRA.EQ.'TEXP')GOTO2120
IF(ICASRA.EQ.'GGD ')GOTO2150
IF(ICASRA.EQ.'FT ')GOTO2170
IF(ICASRA.EQ.'SKWN')GOTO2180
IF(ICASRA.EQ.'SKWT')GOTO2190
IF(ICASRA.EQ.'ZETA')GOTO2200
IF(ICASRA.EQ.'GMAK')GOTO2210
IF(ICASRA.EQ.'GIG ')GOTO2240
IF(ICASRA.EQ.'SKLN')GOTO2270
IF(ICASRA.EQ.'SKLT')GOTO2280
IF(ICASRA.EQ.'NCT ')GOTO2300
IF(ICASRA.EQ.'DNCT')GOTO2310
IF(ICASRA.EQ.'GLOG')GOTO2330
IF(ICASRA.EQ.'HERM')GOTO2340
IF(ICASRA.EQ.'YULE')GOTO2360
IF(ICASRA.EQ.'WARI')GOTO2370
IF(ICASRA.EQ.'GWAR')GOTO2390
IF(ICASRA.EQ.'BENB')GOTO2390
IF(ICASRA.EQ.'NCBE')GOTO2420
IF(ICASRA.EQ.'DNCB')GOTO2450
IF(ICASRA.EQ.'SKDE')GOTO2490
IF(ICASRA.EQ.'ASDE')GOTO2500
IF(ICASRA.EQ.'MAXW')GOTO2520
IF(ICASRA.EQ.'RAYL')GOTO2530
IF(ICASRA.EQ.'GASD')GOTO2540
IF(ICASRA.EQ.'MCLE')GOTO2560
IF(ICASRA.EQ.'BESI')GOTO2570
IF(ICASRA.EQ.'BESK')GOTO2600
IF(ICASRA.EQ.'GMCL')GOTO2630
IF(ICASRA.EQ.'HBOL')GOTO2650
IF(ICASRA.EQ.'G5LO')GOTO2670
IF(ICASRA.EQ.'WAKE')GOTO2680
IF(ICASRA.EQ.'BNOR')GOTO2700
IF(ICASRA.EQ.'G2LO')GOTO2720
IF(ICASRA.EQ.'G3LO')GOTO2730
IF(ICASRA.EQ.'G4LO')GOTO2740
IF(ICASRA.EQ.'ALDE')GOTO2770
IF(ICASRA.EQ.'BGEO')GOTO2800
IF(ICASRA.EQ.'ZIPF')GOTO2820
IF(ICASRA.EQ.'BTAN')GOTO2840
IF(ICASRA.EQ.'LPOI')GOTO2860
IF(ICASRA.EQ.'LCTO')GOTO2880
IF(ICASRA.EQ.'MATC')GOTO2890
CCCCC IF(ICASRA.EQ.'OCCU')GOTO2900
IF(ICASRA.EQ.'LBET')GOTO2910
IF(ICASRA.EQ.'PAEP')GOTO2950
IF(ICASRA.EQ.'LOST')GOTO2970
IF(ICASRA.EQ.'GLSE')GOTO3010
IF(ICASRA.EQ.'GNBI')GOTO3040
IF(ICASRA.EQ.'GEET')GOTO3070
IF(ICASRA.EQ.'QBTI')GOTO3110
IF(ICASRA.EQ.'CONS')GOTO3140
IF(ICASRA.EQ.'LAGK')GOTO3180
IF(ICASRA.EQ.'KATZ')GOTO3210
IF(ICASRA.EQ.'DISW')GOTO3230
IF(ICASRA.EQ.'GLGA')GOTO3250
C
5950 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5951)
5951 FORMAT('***** INTERNAL ERROR IN DPRAND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5952)
5952 FORMAT(' AT BRANCH POINT 1951--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5953)
5953 FORMAT(' ICASRA NOT EQUAL ONE OF THE ALLOWABLE 24--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5954)
5954 FORMAT(' UNIF, NORM, LOGI, DOUB, CAUC, ETC.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5955)
5955 FORMAT(' EVEN THOUGH ICASRA HAD ALREADY PASSED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5956)ICASRA
5956 FORMAT(' THIS TEST ONCE BEFORE. VALUE OF ICASRA = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5957)
5957 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)WRITE(ICOUT,5958)(IANS(I),I=1,IWIDTH)
5958 FORMAT(80A1)
IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
C
1010 CONTINUE
CALL UNIRAN(NRAN,ISEED,Y)
GOTO2990
C
1020 CONTINUE
CALL NORRAN(NRAN,ISEED,Y)
GOTO2990
C
1030 CONTINUE
CALL LOGRAN(NRAN,ISEED,Y)
GOTO2990
C
1040 CONTINUE
CALL DEXRAN(NRAN,ISEED,Y)
GOTO2990
C
1050 CONTINUE
CALL CAURAN(NRAN,ISEED,Y)
GOTO2990
C
1060 CONTINUE
IHP='LAMB'
IHP2='DA '
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
ALAMBA=VALUE(ILOCP)
C
IF(-ALAMLG.LE.ALAMBA.AND.ALAMBA.LE.ALAMLG)GOTO1065
GOTO1067
C
1065 CONTINUE
CALL LOGRAN(NRAN,ISEED,Y)
GOTO2990
C
1067 CONTINUE
CALL LAMRAN(NRAN,ALAMBA,ISEED,Y)
GOTO2990
C
1070 CONTINUE
C
IHP='SIGM'
IHP2='A '
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')THEN
SIGMA=1.0
ELSE
SIGMA=VALUE(ILOCP)
ENDIF
C
IF(SIGMA.LE.0.0)THEN
WRITE(ICOUT,1071)
1071 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1072)
1072 FORMAT(' THE SPECIFIED SHAPE PARAMETER SIGMA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1073)
1073 FORMAT(' LOGNORMAL DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1075)
1075 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1076)SIGMA
1076 FORMAT(' THE SPECIFIED VALUE OF SIGMA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL LGNRAN(NRAN,SIGMA,ISEED,Y)
GOTO2990
C
1080 CONTINUE
CALL HFNRAN(NRAN,ISEED,Y)
GOTO2990
C
1090 CONTINUE
IHP='NU '
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
ANU=VALUE(ILOCP)
C
IF(ANU.GE.0.0)GOTO1097
WRITE(ICOUT,1091)
1091 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1092)
1092 FORMAT(' THE SPECIFIED TAIL LENGTH PARAMETER NU FOR THE T')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1094)
1094 FORMAT(' DISTRIBUTION MUST BE POSITIVE; SUCH WAS NOT THE ',
1 'CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1096)ANU
1096 FORMAT(' THE SPECIFIED VALUE OF NU = ',F12.5)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1097 CONTINUE
CALL TRAN(NRAN,ANU,ISEED,Y)
GOTO2990
C
1100 CONTINUE
IHP='NU '
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
ANU=VALUE(ILOCP)
C
IF(ANU.GE.0.0)GOTO1107
WRITE(ICOUT,1101)
1101 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1102)
1102 FORMAT(' THE SPECIFIED SHAPE PARAMETER NU FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1103)
1103 FORMAT(' CHI-SQUARED DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1105)
1105 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1106)ANU
1106 FORMAT(' THE SPECIFIED VALUE OF NU = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1107 CONTINUE
CALL CHSRAN(NRAN,ANU,ISEED,Y)
GOTO2990
C
1110 CONTINUE
IHP='NU1 '
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
ANU1=VALUE(ILOCP)
C
IHP='NU2 '
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
ANU2=VALUE(ILOCP)
C
IF(ANU1.GT.0.0.AND.ANU2.GT.0.0)GOTO1117
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1112)
1112 FORMAT(' THE SPECIFIED SHAPE PARAMETERS NU1 AND NU2')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1113)
1113 FORMAT(' FOR THE F DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1115)
1115 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1116)ANU1,ANU2
1116 FORMAT(' THE SPECIFIED VALUES OF NU1 AND NU2 = ',F12.5,
1' AND ',F12.5, '(RESPECTIVELY)')
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1117 CONTINUE
CALL FRAN(NRAN,ANU1,ANU2,ISEED,Y)
GOTO2990
C
1120 CONTINUE
CALL EXPRAN(NRAN,ISEED,Y)
GOTO2990
C
1130 CONTINUE
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.GT.0)GOTO1137
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1132)
1132 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1133)
1133 FORMAT(' FOR THE GAMMA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1134)
1134 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1135)
1135 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1136)GAMMA
1136 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1137 CONTINUE
CALL GAMRAN(NRAN,GAMMA,ISEED,Y)
GOTO2990
C
1140 CONTINUE
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(ALPHA.GT.0.0.AND.BETA.GE.0.0)GOTO1147
WRITE(ICOUT,1141)
1141 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1142)
1142 FORMAT(' THE SPECIFIED SHAPE PARAMETERS ',
1'ALPHA AND BETA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1143)
1143 FORMAT(' FOR THE BETA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1144)
1144 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1146)ALPHA,BETA
1146 FORMAT(' THE SPECIFIED VALUES OF ALPHA AND BETA = ',
1E15.7,' AND ',E15.7, '(RESPECTIVELY)')
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1147 CONTINUE
CALL BETRAN(NRAN,ALPHA,BETA,ISEED,Y)
GOTO2990
C
1150 CONTINUE
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.GT.0)GOTO1157
WRITE(ICOUT,1151)
1151 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1152)
1152 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1153)
1153 FORMAT(' FOR THE WEIBULL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1154)
1154 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1155)
1155 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1156)GAMMA
1156 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1157 CONTINUE
CCCCC THE FOLLOWING LINE WAS CHANGED MAY 1993
CCCCC CALL WEIRAN(NRAN,GAMMA,ISEED,Y)
CALL WEIRAN(NRAN,GAMMA,MINMAX,ISEED,Y)
GOTO2990
C
1160 CONTINUE
CCCCC THE FOLLOWING LINE WAS CHANGED MAY 1993
CCCCC CALL EV1RAN(NRAN,ISEED,Y)
CALL EV1RAN(NRAN,MINMAX,ISEED,Y)
GOTO2990
C
1170 CONTINUE
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.GT.0)GOTO1177
WRITE(ICOUT,1171)
1171 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1172)
1172 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1173)
1173 FORMAT(' FOR THE EXTREME VALUE TYPE 2 DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1174)
1174 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1175)
1175 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1176)GAMMA
1176 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1177 CONTINUE
CCCCC THE FOLLOWING LINE WAS CHANGE MAY 1993
CCCCC CALL EV2RAN(NRAN,GAMMA,ISEED,Y)
CALL EV2RAN(NRAN,GAMMA,MINMAX,ISEED,Y)
GOTO2990
C
1180 CONTINUE
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,1181)
1181 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1182)
1182 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1183)
1183 FORMAT(' FOR THE PARETO DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1184)
1184 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1185)
1185 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1186)GAMMA
1186 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='A '
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
A=1.0
ELSE
A=VALUE(ILOCP)
ENDIF
C
IF(A.LE.0.0)THEN
WRITE(ICOUT,11181)
11181 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11182)
11182 FORMAT(' THE SPECIFIED SHAPE PARAMETER A')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11183)
11183 FORMAT(' FOR THE PARETO DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11184)
11184 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11185)
11185 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11186)A
11186 FORMAT(' THE SPECIFIED VALUE OF A = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL PARRAN(NRAN,GAMMA,A,ISEED,Y)
GOTO2990
C
1190 CONTINUE
IHP='N '
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
NPAR=VALUE(ILOCP)+EPS
C
IHP='P '
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
P=VALUE(ILOCP)
C
IF(NPAR.GE.1.AND.0.0.LT.P.AND.P.LT.1.0)GOTO1197
WRITE(ICOUT,1191)
1191 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1192)
1192 FORMAT(' THE SPECIFIED INTEGER NUMBER OF TRIALS ',
1'PARAMETER N')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1193)
1193 FORMAT(' FOR THE BINOMIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1194)
1194 FORMAT(' MUST BE 1 OR LARGER, AND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1195)
1195 FORMAT(' THE SPECIFIED PROBABILITY OF SUCCESS ',
1'PARAMETER P')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1196)
1196 FORMAT(' MUST BE BETWEEN 0 AND 1 (EXCLUSIVELY);')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8197)
8197 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1199)NPAR,P
1199 FORMAT(' THE SPECIFIED VALUES OF N AND P = ',I8,
1' AND ',E15.7,' (RESPECTIVELY)')
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1197 CONTINUE
CALL BINRAN(NRAN,P,NPAR,ISEED,Y)
GOTO2990
C
1200 CONTINUE
IHP='P '
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
P=VALUE(ILOCP)
C
IF(0.0.LT.P.AND.P.LT.1.0)GOTO1207
WRITE(ICOUT,1201)
1201 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1202)
1202 FORMAT(' THE SPECIFIED PROBABILITY OF SUCCESS ',
1'PARAMETER P')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1203)
1203 FORMAT(' FOR THE GEOMETRIC DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1204)
1204 FORMAT(' MUST BE BETWEEN 0 AND 1 (EXCLUSIVELY);')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1205)
1205 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1206)P
1206 FORMAT(' THE SPECIFIED VALUE OF P = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1207 CONTINUE
IF(IGEODF.EQ.'DLMF')THEN
CALL GE2RAN(NRAN,P,ISEED,Y)
ELSE
CALL GEORAN(NRAN,P,ISEED,Y)
ENDIF
GOTO2990
C
1210 CONTINUE
IHP='LAMB'
IHP2='DA '
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
ALAMBA=VALUE(ILOCP)
C
IF(ALAMBA.GT.0)GOTO1217
WRITE(ICOUT,1211)
1211 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1212)
1212 FORMAT(' THE SPECIFIED SHAPE PARAMETER LAMBDA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1213)
1213 FORMAT(' FOR THE POISSON DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1214)
1214 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1215)
1215 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1216)ALAMBA
1216 FORMAT(' THE SPECIFIED VALUE OF LAMBDA = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1217 CONTINUE
CALL POIRAN(NRAN,ALAMBA,ISEED,Y)
GOTO2990
C
1220 CONTINUE
IHP='P '
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
P=VALUE(ILOCP)
C
IHP='K '
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
AK=VALUE(ILOCP)
C
IF(0.0.LT.P.AND.P.LT.1.0.AND.0.LT.AK)GOTO1227
WRITE(ICOUT,1221)
1221 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1222)
1222 FORMAT(' THE SPECIFIED PROBABILITY OF SUCCESS ',
1'PARAMETER P')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1223)
1223 FORMAT(' FOR THE NEGATIVE BINOMIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1224)
1224 FORMAT(' MUST BE BETWEEN 0 AND 1 (EXCLUSIVELY); AND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1225)
1225 FORMAT(' THE SPECIFIED NUMBER OF SUCCESSES ',
1'PARAMETER K')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1226)
1226 FORMAT(' MUST BE 1 OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8227)
8227 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1229)P,AK
1229 FORMAT(' THE SPECIFIED VALUES OF P AND K = ',F10.5,
1' AND ',F10.5,' (RESPECTIVELY)')
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1227 CONTINUE
CALL NBRAN(NRAN,P,AK,ISEED,Y)
GOTO2990
C
1230 CONTINUE
C
IHP='R '
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
R=1.0
ELSE
R=VALUE(ILOCP)
ENDIF
C
IF(R.LE.0.0)THEN
WRITE(ICOUT,1231)
1231 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1232)
1232 FORMAT(' THE SPECIFIED SHAPE PARAMETER R')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1233)
1233 FORMAT(' FOR THE SEMI-CIRCULAR DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1234)
1234 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1235)
1235 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1236)R
1236 FORMAT(' THE SPECIFIED VALUE OF R = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL SEMRAN(NRAN,R,ISEED,Y)
GOTO2990
C
1240 CONTINUE
C
ZLOWLM=-1.0
ZUPPLM=1.0
C
IHP='LOWL'
IHP2='IMIT'
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
ZLOWLM=-1.0
ELSE
ZLOWLM=VALUE(ILOCP)
ENDIF
C
IHP='UPPL'
IHP2='IMIT'
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
ZUPPLM=1.0
ELSE
ZUPPLM=VALUE(ILOCP)
ENDIF
ALOWLM=MIN(ZLOWLM,ZUPPLM)
AUPPLM=MAX(ZLOWLM,ZUPPLM)
C
IHP='C '
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
C=VALUE(ILOCP)
C
IF(C.LE.ALOWLM .OR. C.GE.AUPPLM)THEN
WRITE(ICOUT,1241)
1241 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1242)
1242 FORMAT(' THE SPECIFIED SHAPE PARAMETER C FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1243)
1243 FORMAT(' TRIANGULAR DISTRIBUTION MUST BE IN THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1244)ALOWLM,AUPPLM
1244 FORMAT(' INTERVAL (',G15.7,',',G15.7,');')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1245)
1245 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1246)C
1246 FORMAT(' THE SPECIFIED VALUE OF C = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL TRIRAN(NRAN,C,ALOWLM,AUPPLM,ISEED,Y)
GOTO2990
C
1250 CONTINUE
IHP='N '
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
NPAR=VALUE(ILOCP)+EPS
C
IF(NPAR.GE.1)GOTO1257
WRITE(ICOUT,1251)
1251 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1252)
1252 FORMAT(' THE SPECIFIED INTEGER NUMBER OF ITEMS ',
1'PARAMETER N')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1253)
1253 FORMAT(' FOR THE DISCRETE UNIFORM DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1254)
1254 FORMAT(' MUST BE 1 OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8197)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1259)NPAR
1259 FORMAT(' THE SPECIFIED VALUE OF N = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1257 CONTINUE
CALL DUNRAN(NRAN,NPAR,ISEED,Y)
GOTO2990
C
1260 CONTINUE
IF(NRAN.GE.1)GOTO1267
WRITE(ICOUT,1261)
1261 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1262)
1262 FORMAT(' THE SPECIFIED INTEGER NUMBER OF ITEMS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1263)
1263 FORMAT(' IN THE BOOTSTRAP INDEX')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1264)
1264 FORMAT(' MUST BE 1 OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8197)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1269)NRAN
1269 FORMAT(' THE SPECIFIED NUMBER OF ITEMS = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1267 CONTINUE
CCCCC CALL DUNRAN(NRAN,NRAN,ISEED,Y)
CALL DUNRA2(NRAN,NRAN,ISEED,Y)
GOTO2990
C
1270 CONTINUE
IF(NRAN.GE.1)GOTO1277
WRITE(ICOUT,1271)
1271 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1272)
1272 FORMAT(' THE SPECIFIED INTEGER NUMBER OF ITEMS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1273)
1273 FORMAT(' IN THE RANDOM PERMUTATION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1274)
1274 FORMAT(' MUST BE 1 OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8197)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1279)NRAN
1279 FORMAT(' THE SPECIFIED NUMBER OF ITEMS = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1277 CONTINUE
CALL RANPER(NRAN,ISEED,Y)
GOTO2990
C
CCCCC OCTOBER 1993. THIS CODE IS NO LONGER ACTIVE. MOVED TO DPMATC.
1280 CONTINUE
IF(NRAN.GE.1)GOTO1287
WRITE(ICOUT,1281)
1281 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1282)
1282 FORMAT(' THE SPECIFIED INTEGER NUMBER OF ITEMS ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1283)
1283 FORMAT(' IN THE (RANDOM) JACKNIFE INDEX')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1284)
1284 FORMAT(' MUST BE 1 OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,8197)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1289)NRAN
1289 FORMAT(' THE SPECIFIED NUMBER OF ITEMS = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1287 CONTINUE
CALL RANPER(NRAN,ISEED,Y)
DO1288I=1,NRAN
AI=I
IYI=Y(I)+0.1
IF(IYI.EQ.NRAN)Y(I)=0.0
IF(IYI.NE.NRAN)Y(I)=AI
1288 CONTINUE
GOTO2990
C
CCCCC THE FOLLOWING SECTION WAS ADDED MAY 1990
1290 CONTINUE
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IHP='MU '
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
AMU=1.0
ELSE
AMU=VALUE(ILOCP)
ENDIF
C
IF(GAMMA.LE.0)THEN
WRITE(ICOUT,1291)
1291 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1292)
1292 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1293)
1293 FORMAT(' INVERSE GAUSSIAN DISTRIBUTION MUST BE STRICTLY')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1294)
1294 FORMAT(' LARGER THAN 0; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1295)GAMMA
1295 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IF(AMU.LE.0)THEN
WRITE(ICOUT,1296)
1296 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1297)
1297 FORMAT(' THE SPECIFIED SHAPE PARAMETER MU FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1298)
1298 FORMAT(' INVERSE GAUSSIAN DISTRIBUTION MUST BE STRICTLY')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1299)
1299 FORMAT(' LARGER THAN 0; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,91299)AMU
91299 FORMAT(' THE SPECIFIED VALUE OF MU = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL IGRAN(NRAN,GAMMA,AMU,ISEED,Y)
GOTO2990
C
CCCCC THE FOLLOWING SECTION WAS ADDED MAY 1990
1300 CONTINUE
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.GT.0)GOTO1307
WRITE(ICOUT,1301)
1301 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1302)
1302 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1303)
1303 FORMAT(' FOR THE WALD DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1304)
1304 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1305)
1305 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1306)GAMMA
1306 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1307 CONTINUE
CALL WALRAN(NRAN,GAMMA,ISEED,Y)
GOTO2990
C
CCCCC THE FOLLOWING SECTION WAS ADDED MAY 1990
1310 CONTINUE
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,1311)
1311 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1312)
1312 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1313)
1313 FORMAT(' RECIPROCAL INVERSE GAUSSIAN DISTRIBUTION MUST')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1314)
1314 FORMAT(' BE STRICTLY LARGER THAN 0; SUCH WAS NOT THE ',
1 'CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1315)GAMMA
1315 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='MU '
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
AMU=1.0
ELSE
AMU=VALUE(ILOCP)
ENDIF
C
IF(AMU.LE.0.0)THEN
WRITE(ICOUT,1316)
1316 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1317)
1317 FORMAT(' THE SPECIFIED SHAPE PARAMETER MU FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1318)
1318 FORMAT(' RECIPROCAL INVERSE GAUSSIAN DISTRIBUTION MUST')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1319)
1319 FORMAT(' BE STRICTLY LARGER THAN 0; SUCH WAS NOT THE ',
1 'CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,91315)AMU
91315 FORMAT(' THE SPECIFIED VALUE OF AMU = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL RIGRAN(NRAN,GAMMA,AMU,ISEED,Y)
GOTO2990
C
CCCCC THE FOLLOWING SECTION WAS ADDED MAY 1990
1320 CONTINUE
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.GT.0)GOTO1327
WRITE(ICOUT,1321)
1321 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1322)
1322 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1323)
1323 FORMAT(' FOR THE FATIGUE LIFE DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1324)
1324 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1325)
1325 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1326)GAMMA
1326 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1327 CONTINUE
CALL FLRAN(NRAN,GAMMA,ISEED,Y)
GOTO2990
C
CCCCC THE FOLLOWING SECTION WAS ADDED DECEMBER 1993
1330 CONTINUE
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
CALL GEPRAN(NRAN,GAMMA,MINMAX,IGEPDF,ISEED,Y)
GOTO2990
C
CCCCC THE FOLLOWING SECTION WAS ADDED APRIL 1995
1340 CONTINUE
IHP='C '
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
C=VALUE(ILOCP)
C
CALL POWRAN(NRAN,C,ISEED,Y)
GOTO2990
C
CCCCC THE FOLLOWING SECTION WAS ADDED AUGUST 1995
1350 CONTINUE
IHP='K '
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
AK=VALUE(ILOCP)
C
IHP='N '
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
AN=VALUE(ILOCP)
C
IHP='M '
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
AM=VALUE(ILOCP)
C
NN1=INT(AN+0.5)
NN2=INT(AM-AN+0.5)
KK=INT(AK+0.5)
DO1352II=1,NRAN
CALL HYPRAN(KK,NN1,NN2,ISEED,JX)
IF(JX.EQ.-1)THEN
WRITE(ICOUT,1354)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1356)INT(AK),INT(AM),INT(AN)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
1354 FORMAT('****** ERROR IN GENERATING HYPERGEOMETRIC RANDOM ',
1'NUMBERS.')
1356 FORMAT(' THE VALUES OF K, M, AND N = ',3I8)
Y(II)=REAL(JX)
1352 CONTINUE
GOTO2990
C
CCCCC THE FOLLOWING SECTION WAS ADDED AUGUST 1995
1360 CONTINUE
IHP='NU '
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
ANU=VALUE(ILOCP)
IF(ANU.LE.0.0)THEN
WRITE(ICOUT,1361)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1362)ANU
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
1361 FORMAT('****** ERROR IN GENERATING NON-CENTRAL CHI-SQUARE ',
1'RANDOM NUMBERS.')
1362 FORMAT(' THE VALUE OF NU (= ',F15.7,') IS NON-POSITIVE')
C
IHP='LAMB'
IHP2='DA '
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
ALAMBA=VALUE(ILOCP)
IF(ALAMBA.LT.0.0)THEN
WRITE(ICOUT,1363)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1364)ALAMBA
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
1363 FORMAT('****** ERROR IN GENERATING NON-CENTRAL CHI-SQUARE ',
1'RANDOM NUMBERS.')
1364 FORMAT(' THE VALUE OF LAMBDA (= ',F15.7,') IS LESS THAN 0.')
C
CALL NCCRAN(NRAN,ANU,ALAMBA,ISEED,Y)
GOTO2990
C
CCCCC THE FOLLOWING SECTION WAS ADDED AUGUST 1995
1370 CONTINUE
IHP='NU1 '
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
ANU1=VALUE(ILOCP)
IF(ANU1.LE.0.0)THEN
WRITE(ICOUT,1371)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1372)ANU1
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
1371 FORMAT('****** ERROR IN GENERATING NON-CENTRAL F RANDOM ',
1'NUMBERS.')
1372 FORMAT(' THE VALUE OF NU1 (= ',F15.7,') IS LESS THAN 1.')
C
IHP='NU2 '
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
ANU2=VALUE(ILOCP)
IF(ANU2.LT.1.0)THEN
WRITE(ICOUT,1373)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1374)ANU
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
1373 FORMAT('****** ERROR IN GENERATING NON-CENTRAL F RANDOM ',
1'NUMBERS.')
1374 FORMAT(' THE VALUE OF NU2 (= ',F15.7,') IS LESS THAN 1.')
C
IHP='LAMB'
IHP2='DA '
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
ALAMB1=VALUE(ILOCP)
IF(ALAMB1.LT.0.0)THEN
WRITE(ICOUT,1375)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1376)ALAMB1
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
1375 FORMAT('****** ERROR IN GENERATING NON-CENTRAL F RANDOM ',
1'NUMBERS.')
1376 FORMAT(' THE VALUE OF LAMBDA (= ',F15.7,') IS LESS THAN ',
1'0.')
C
CALL NCFRAN(NRAN,ANU1,ANU2,ALAMB1,ISEED,Y)
GOTO2990
C
CCCCC THE FOLLOWING SECTION WAS ADDED AUGUST 1995
1380 CONTINUE
IHP='NU1 '
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
ANU1=VALUE(ILOCP)
IF(ANU1.LE.0.0)THEN
WRITE(ICOUT,1381)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1382)ANU1
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
1381 FORMAT('****** ERROR IN GENERATING DOUBLY NON-CENTRAL F RANDOM ',
1'NUMBERS.')
1382 FORMAT(' THE VALUE OF NU1 (= ',F15.7,') IS LESS THAN 1.')
C
IHP='NU2 '
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
ANU2=VALUE(ILOCP)
IF(ANU2.LE.0.0)THEN
WRITE(ICOUT,1383)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1384)ANU2
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
1383 FORMAT('****** ERROR IN GENERATING DOUBLY NON-CENTRAL F RANDOM ',
1'NUMBERS.')
1384 FORMAT(' THE VALUE OF NU2 (= ',F15.7,') IS LESS THAN 1.')
C
IHP='LAMB'
IHP2='DA1 '
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
ALAMB1=VALUE(ILOCP)
IF(ALAMB1.LT.0.0)THEN
WRITE(ICOUT,1385)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1386)ALAMB1
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
1385 FORMAT('****** ERROR IN GENERATING DOUBLY NON-CENTRAL F RANDOM ',
1'NUMBERS.')
1386 FORMAT(' THE VALUE OF LAMBDA1 (= ',F15.7,') IS LESS THAN ',
1'0.')
C
IHP='LAMB'
IHP2='DA2 '
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
ALAMB2=VALUE(ILOCP)
IF(ALAMB2.LT.0.0)THEN
WRITE(ICOUT,1387)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1388)ALAMB2
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
1387 FORMAT('****** ERROR IN GENERATING DOUBLY NON-CENTRAL F RANDOM ',
1'NUMBERS.')
1388 FORMAT(' THE VALUE OF LAMBDA2 (= ',F15.7,') IS LESS THAN ',
1'0.')
C
CALL DNFRAN(NRAN,ANU1,ANU2,ALAMB1,ALAMB2,ISEED,Y)
GOTO2990
C
1390 CONTINUE
IHP='MU '
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
U=VALUE(ILOCP)
C
IHP='SD '
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
SD=VALUE(ILOCP)
C
IF(SD.GT.0.0)GOTO1397
WRITE(ICOUT,1391)
1391 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1392)
1392 FORMAT(' THE SPECIFIED SHAPE PARAMETER SD')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1393)
1393 FORMAT(' FOR THE FOLDED NORMAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1394)
1394 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1395)
1395 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1396)SD
1396 FORMAT(' THE SPECIFIED VALUE OF SD = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1397 CONTINUE
CALL FNRRAN(NRAN,U,SD,ISEED,Y)
GOTO2990
C
1400 CONTINUE
CALL HFCRAN(NRAN,ISEED,Y)
GOTO2990
C
1410 CONTINUE
C
IHP='U1 '
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
U1=VALUE(ILOCP)
C
IHP='U2 '
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
U2=VALUE(ILOCP)
C
IHP='SD1 '
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
SD1=VALUE(ILOCP)
C
IF(SD1.GE.0.0)GOTO1417
WRITE(ICOUT,1411)
1411 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1412)
1412 FORMAT(' THE SPECIFIED SHAPE PARAMETER SD1')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1413)
1413 FORMAT(' FOR THE NORMAL MIXTURE DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1414)
1414 FORMAT(' MUST BE GREATER THAN 0.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1415)
1415 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1416)SD1
1416 FORMAT(' THE SPECIFIED VALUE OF SD1 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1417 CONTINUE
C
IHP='SD2 '
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
SD2=VALUE(ILOCP)
C
IF(SD2.GE.0.0)GOTO1427
WRITE(ICOUT,1421)
1421 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1422)
1422 FORMAT(' THE SPECIFIED SHAPE PARAMETER SD2')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1423)
1423 FORMAT(' FOR THE NORMAL MIXTURE DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1424)
1424 FORMAT(' MUST BE GREATER THAN 0.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1425)
1425 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1426)SD2
1426 FORMAT(' THE SPECIFIED VALUE OF SD2 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1427 CONTINUE
C
IHP='P '
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
P=VALUE(ILOCP)
C
IF(P.GE.0.0.AND.P.LE.1.0)GOTO1437
WRITE(ICOUT,1431)
1431 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1432)
1432 FORMAT(' THE SPECIFIED SHAPE PARAMETER P')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1433)
1433 FORMAT(' FOR THE NORMAL MIXTURE DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1434)
1434 FORMAT(' MUST BE IN THE INTERVAL (0,1).')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1435)
1435 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1436)P
1436 FORMAT(' THE SPECIFIED VALUE OF P = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1437 CONTINUE
C
CALL NMXRAN(NRAN,U1,SD1,U2,SD2,P,ISEED,Y)
GOTO2990
C
1440 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.GT.0.0)GOTO1447
WRITE(ICOUT,1441)
1441 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1442)
1442 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1443)
1443 FORMAT(' FOR THE POWER LAW DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1444)
1444 FORMAT(' MUST BE GREATER THAN 0.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1445)
1445 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1446)ALPHA
1446 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
1447 CONTINUE
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.GT.0.0)GOTO1457
WRITE(ICOUT,1451)
1451 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1452)
1452 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1453)
1453 FORMAT(' FOR THE POWER LAW DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1454)
1454 FORMAT(' MUST BE GREATER THAN 0.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1455)
1455 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1456)BETA
1456 FORMAT(' THE SPECIFIED VALUE OF BETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
1457 CONTINUE
C
CALL PWLRAN(NRAN,ALPHA,BETA,ISEED,Y)
GOTO2990
C
1460 CONTINUE
C
IHP='LAMB'
IHP2='DA3 '
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
ALAMB3=VALUE(ILOCP)
C
IHP='LAMB'
IHP2='DA4 '
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
ALAMB4=VALUE(ILOCP)
C
IF(IGLDDF.EQ.'RAMB')THEN
IWRITE='ERRO'
CALL GLDCHK(ALAMB3,ALAMB4,ALOWER,AUPPER,IFLAG,ISIGN,IWRITE)
IF(IFLAG.EQ.1)THEN
IERROR='YES'
GOTO9000
ENDIF
ENDIF
C
CALL GLDRAN(NRAN,ALAMB3,ALAMB4,IGLDDF,ISEED,Y)
GOTO2990
C
1480 CONTINUE
C
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,1481)
1481 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1482)
1482 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1483)
1483 FORMAT(' FOR THE INVERTED WEIBULL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1484)
1484 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1485)
1485 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1486)GAMMA
1486 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL IWERAN(NRAN,GAMMA,ISEED,Y)
GOTO2990
C
1490 CONTINUE
C
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,1491)
1491 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1492)
1492 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1493)
1493 FORMAT(' FOR THE DOUBLE WEIBULL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1494)
1494 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1495)
1495 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1496)GAMMA
1496 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL DWERAN(NRAN,GAMMA,ISEED,Y)
GOTO2990
C
1500 CONTINUE
C
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,1501)
1501 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1502)
1502 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1503)
1503 FORMAT(' FOR THE DOUBLE GAMMA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1504)
1504 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1505)
1505 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1506)GAMMA
1506 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL DGARAN(NRAN,GAMMA,ISEED,Y)
GOTO2990
C
1510 CONTINUE
C
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,1511)
1511 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1512)
1512 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1513)
1513 FORMAT(' FOR THE LOG GAMMA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1514)
1514 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1515)
1515 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1516)GAMMA
1516 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL LGARAN(NRAN,GAMMA,ILGADF,ISEED,Y)
GOTO2990
C
1520 CONTINUE
C
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,1521)
1521 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1522)
1522 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1523)
1523 FORMAT(' FOR THE INVERTED GAMMA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1524)
1524 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1525)
1525 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1526)GAMMA
1526 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL IGARAN(NRAN,GAMMA,ISEED,Y)
GOTO2990
C
1530 CONTINUE
CALL COSRAN(NRAN,ISEED,Y)
GOTO2990
C
1540 CONTINUE
CALL ANGRAN(NRAN,ISEED,Y)
GOTO2990
C
1550 CONTINUE
CALL HSERAN(NRAN,ISEED,Y)
GOTO2990
C
1560 CONTINUE
CALL ARSRAN(NRAN,ISEED,Y)
GOTO2990
C
1570 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,1571)
1571 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1572)
1572 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1573)
1573 FORMAT(' FOR THE LOG DOUBLE EXPONENTIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1574)
1574 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1575)
1575 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1576)ALPHA
1576 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL LDERAN(NRAN,ALPHA,ISEED,Y)
GOTO2990
C
1580 CONTINUE
C
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
CALL GEVRAN(NRAN,GAMMA,MINMAX,ISEED,Y)
GOTO2990
C
1590 CONTINUE
C
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IHP='THET'
IHP2='A '
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
THETA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,1591)
1591 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1592)
1592 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1593)
1593 FORMAT(' FOR THE EXPONENTIATED WEIBULL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1594)
1594 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1595)
1595 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1596)GAMMA
1596 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
IF(THETA.LE.0.0)THEN
WRITE(ICOUT,11591)
11591 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11592)
11592 FORMAT(' THE SPECIFIED SHAPE PARAMETER THETA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11593)
11593 FORMAT(' FOR THE EXPONENTIATED WEIBULL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11594)
11594 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11595)
11595 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11596)THETA
11596 FORMAT(' THE SPECIFIED VALUE OF THETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL EWERAN(NRAN,GAMMA,THETA,ISEED,Y)
GOTO2990
C
1600 CONTINUE
C
IHP='C '
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
C=VALUE(ILOCP)
C
IHP='B '
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
B=VALUE(ILOCP)
C
IF(C.LE.1.0)THEN
WRITE(ICOUT,1601)
1601 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1602)
1602 FORMAT(' THE SPECIFIED SHAPE PARAMETER C')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1603)
1603 FORMAT(' FOR THE GOMPERTZ DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1604)
1604 FORMAT(' MUST BE STRICTLY LARGER THAN 1;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1605)
1605 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1606)C
1606 FORMAT(' THE SPECIFIED VALUE OF C = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
IF(B.LE.0.0)THEN
WRITE(ICOUT,11601)
11601 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11602)
11602 FORMAT(' THE SPECIFIED SHAPE PARAMETER B')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11603)
11603 FORMAT(' FOR THE GOMPERTZ DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11604)
11604 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11605)
11605 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11606)B
11606 FORMAT(' THE SPECIFIED VALUE OF B = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GOMRAN(NRAN,C,B,ISEED,Y)
GOTO2990
C
1610 CONTINUE
C
IF(IFLGHL.EQ.1)THEN
IHP='GAMM'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,11611)
11611 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11612)
11612 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11613)
11613 FORMAT(' FOR THE GENERALIZED HALF-LOGISTIC ',
1 'DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11614)
11614 FORMAT(' MUST BE IN THE INTERVAL (0,5]')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11615)
11615 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11616)GAMMA
11616 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
ELSE
GAMMA=-1.0
ENDIF
C
CALL HFLRAN(NRAN,GAMMA,ISEED,Y)
GOTO2990
C
1620 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,1621)
1621 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1622)
1622 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1623)
1623 FORMAT(' FOR THE POWER EXPONENTIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1624)
1624 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1625)
1625 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1626)ALPHA
1626 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,11621)
11621 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11622)
11622 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11623)
11623 FORMAT(' FOR THE POWER EXPONENTIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11624)
11624 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11625)
11625 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11626)BETA
11626 FORMAT(' THE SPECIFIED VALUE OF BETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL PEXRAN(NRAN,ALPHA,BETA,ISEED,Y)
GOTO2990
C
1630 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,1631)
1631 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1632)
1632 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1633)
1633 FORMAT(' FOR THE ALPHA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1634)
1634 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1635)
1635 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1636)ALPHA
1636 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,11631)
11631 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11632)
11632 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11633)
11633 FORMAT(' FOR THE ALPHA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11634)
11634 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11635)
11635 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,11636)BETA
11636 FORMAT(' THE SPECIFIED VALUE OF BETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL ALPRAN(NRAN,ALPHA,BETA,ISEED,Y)
GOTO2990
C
1640 CONTINUE
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,1641)
1641 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1642)
1642 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1643)
1643 FORMAT(' FOR THE BRADFORD DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1644)
1644 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1645)
1645 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1646)BETA
1646 FORMAT(' THE SPECIFIED VALUE OF BETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL BRARAN(NRAN,BETA,ISEED,Y)
GOTO2990
C
1650 CONTINUE
C
IHP='B '
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
B=VALUE(ILOCP)
C
IF(B.LE.0.0)THEN
WRITE(ICOUT,1651)
1651 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1652)
1652 FORMAT(' THE SPECIFIED SHAPE PARAMETER B')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1653)
1653 FORMAT(' FOR THE RECIPROCAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1654)
1654 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1655)
1655 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1656)B
1656 FORMAT(' THE SPECIFIED VALUE OF B = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL RECRAN(NRAN,B,ISEED,Y)
GOTO2990
C
1660 CONTINUE
C
IHP='ALPH'
IHP2='A1 '
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
ALPHA1=VALUE(ILOCP)
C
IHP='ALPH'
IHP2='A2 '
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
ALPHA2=VALUE(ILOCP)
C
IF(ALPHA2.LE.0.0)THEN
WRITE(ICOUT,1661)
1661 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1662)
1662 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA2')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1663)
1663 FORMAT(' FOR THE JOHNSON SB DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1664)
1664 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1665)
1665 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1666)ALPHA2
1666 FORMAT(' THE SPECIFIED VALUE OF ALPHA2 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL JSBRAN(NRAN,ALPHA1,ALPHA2,ISEED,Y)
GOTO2990
C
1670 CONTINUE
C
IHP='ALPH'
IHP2='A1 '
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
ALPHA1=VALUE(ILOCP)
C
IHP='ALPH'
IHP2='A2 '
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
ALPHA2=VALUE(ILOCP)
C
IF(ALPHA2.LE.0.0)THEN
WRITE(ICOUT,1671)
1671 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1672)
1672 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA2')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1673)
1673 FORMAT(' FOR THE JOHNSON SB DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1674)
1674 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1675)
1675 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1676)ALPHA2
1676 FORMAT(' THE SPECIFIED VALUE OF ALPHA2 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL JSURAN(NRAN,ALPHA1,ALPHA2,ISEED,Y)
GOTO2990
C
1680 CONTINUE
C
IHP='P '
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
P=VALUE(ILOCP)
C
IF(P.LE.0.0)THEN
WRITE(ICOUT,1681)
1681 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1682)
1682 FORMAT(' THE SPECIFIED SHAPE PARAMETER P')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1683)
1683 FORMAT(' FOR THE POWER NORMAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1684)
1684 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1685)
1685 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1686)P
1686 FORMAT(' THE SPECIFIED VALUE OF P = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL PNRRAN(NRAN,P,ISEED,Y)
GOTO2990
C
1690 CONTINUE
C
IHP='DELT'
IHP2='A '
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
DELTA=VALUE(ILOCP)
C
IF(DELTA.LE.0.0)THEN
WRITE(ICOUT,1691)
1691 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1692)
1692 FORMAT(' THE SPECIFIED SHAPE PARAMETER DELTA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1693)
1693 FORMAT(' FOR THE LOG-LOGISTIC DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1694)
1694 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1695)
1695 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1696)DELTA
1696 FORMAT(' THE SPECIFIED VALUE OF DELTA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL LLGRAN(NRAN,DELTA,ISEED,Y)
GOTO2990
C
1700 CONTINUE
C
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,1701)
1701 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1702)
1702 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1703)
1703 FORMAT(' FOR THE GEOMETRIC EXTREME EXPONENTIAL ',
1 'DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1704)
1704 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1705)
1705 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1706)GAMMA
1706 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GEERAN(NRAN,GAMMA,ISEED,Y)
GOTO2990
C
1710 CONTINUE
C
IHP='P '
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
P=VALUE(ILOCP)
C
IF(P.LE.0.0)THEN
WRITE(ICOUT,1711)
1711 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1712)
1712 FORMAT(' THE SPECIFIED SHAPE PARAMETER P')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1713)
1713 FORMAT(' FOR THE POWER LOGNORMAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1714)
1714 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1715)
1715 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1716)P
1716 FORMAT(' THE SPECIFIED VALUE OF P = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='SD '
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')THEN
SD=1.0
ELSE
SD=VALUE(ILOCP)
ENDIF
C
IF(SD.LE.0.0)THEN
WRITE(ICOUT,1721)
1721 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1722)
1722 FORMAT(' THE SPECIFIED SHAPE PARAMETER SD')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1723)
1723 FORMAT(' FOR THE POWER LOGNORMAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1724)
1724 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1725)
1725 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1726)SD
1726 FORMAT(' THE SPECIFIED VALUE OF SD = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL PLNRAN(NRAN,P,SD,ISEED,Y)
GOTO2990
C
1730 CONTINUE
C
IF(ICASRA.EQ.'POLY')THEN
IDIST='POLYA DISTRIBUTION'
ELSE
IDIST='BETA-BINOMIAL DISTRIBUTION'
ENDIF
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,1731)
1731 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1732)
1732 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1733)IDIST
1733 FORMAT(' FOR THE ',A26)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1734)
1734 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1735)
1735 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1736)ALPHA
1736 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,1741)
1741 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1742)
1742 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1743)IDIST
1743 FORMAT(' FOR THE ',A26)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1744)
1744 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1745)
1745 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1746)BETA
1746 FORMAT(' THE SPECIFIED VALUE OF BETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='N '
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
N=INT(VALUE(ILOCP)+0.5)
C
IF(N.LT.1)THEN
WRITE(ICOUT,1751)
1751 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1752)
1752 FORMAT(' THE SPECIFIED SHAPE PARAMETER N')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1753)IDIST
1753 FORMAT(' FOR THE ',A26)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1754)
1754 FORMAT(' MUST BE AT LEAST 1;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1755)
1755 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1756)N
1756 FORMAT(' THE SPECIFIED VALUE OF N = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IF(ICASRA.EQ.'POLY')THEN
CALL BBNRAN(ALPHA,BETA,N,NRAN,ISEED,Y)
ELSE
CALL BBNRAN(BETA,ALPHA,N,NRAN,ISEED,Y)
ENDIF
GOTO2990
C
1760 CONTINUE
C
IHP='THET'
IHP2='A '
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
THETA=VALUE(ILOCP)
C
IF(THETA.LT.0.0 .OR.THETA.GT.1.0)THEN
WRITE(ICOUT,1761)
1761 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1762)
1762 FORMAT(' THE SPECIFIED SHAPE PARAMETER THETA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1763)
1763 FORMAT(' FOR THE TWO-SIDED POWER DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1764)
1764 FORMAT(' MUST BE IN THE INTERVAL (0,1);')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1765)
1765 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1766)THETA
1766 FORMAT(' THE SPECIFIED VALUE OF THETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='N '
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
AN=VALUE(ILOCP)
C
IF(AN.LE.0.0)THEN
WRITE(ICOUT,1771)
1771 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1772)
1772 FORMAT(' THE SPECIFIED SHAPE PARAMETER N')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1773)
1773 FORMAT(' FOR THE TWO-SIDED POWER DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1774)
1774 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1775)
1775 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1776)AN
1776 FORMAT(' THE SPECIFIED VALUE OF N = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL TSPRAN(NRAN,THETA,AN,ISEED,Y)
GOTO2990
C
1790 CONTINUE
C
IHP='SCAL'
IHP2='E1 '
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
ASCAL1=VALUE(ILOCP)
C
IF(ASCAL1.LE.0.0)THEN
WRITE(ICOUT,1791)
1791 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1792)
1792 FORMAT(' THE SPECIFIED SHAPE PARAMETER SCALE1')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1793)
1793 FORMAT(' FOR THE BIWEIBULL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1794)
1794 FORMAT(' MUST BE STRICTLY POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1795)
1795 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1796)ASCAL1
1796 FORMAT(' THE SPECIFIED VALUE OF SCALE1 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='GAMM'
IHP2='A1 '
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
GAMMA1=VALUE(ILOCP)
C
IF(GAMMA1.LE.0.0)THEN
WRITE(ICOUT,1801)
1801 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1802)
1802 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA1')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1803)
1803 FORMAT(' FOR THE BIWEIBULL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1804)
1804 FORMAT(' MUST BE STRICTLY POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1805)
1805 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1806)GAMMA1
1806 FORMAT(' THE SPECIFIED VALUE OF GAMMA1 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='SCAL'
IHP2='E2 '
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
ASCAL2=VALUE(ILOCP)
C
IF(ASCAL2.LE.0.0)THEN
WRITE(ICOUT,1811)
1811 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1812)
1812 FORMAT(' THE SPECIFIED SHAPE PARAMETER SCALE2')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1813)
1813 FORMAT(' FOR THE BIWEIBULL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1814)
1814 FORMAT(' MUST BE STRICTLY POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1815)
1815 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1816)ASCAL2
1816 FORMAT(' THE SPECIFIED VALUE OF SCALE2 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='GAMM'
IHP2='A2 '
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
GAMMA2=VALUE(ILOCP)
C
IF(GAMMA2.LE.0.0)THEN
WRITE(ICOUT,1821)
1821 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1822)
1822 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA2')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1823)
1823 FORMAT(' FOR THE BIWEIBULL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1824)
1824 FORMAT(' MUST BE STRICTLY POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1825)
1825 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1826)GAMMA2
1826 FORMAT(' THE SPECIFIED VALUE OF GAMMA2 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='LOC2'
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
ALOC2=VALUE(ILOCP)
C
IF(ALOC2.LE.0.0)THEN
WRITE(ICOUT,1831)
1831 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1832)
1832 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALOC2')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1833)
1833 FORMAT(' FOR THE BIWEIBULL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1834)
1834 FORMAT(' MUST BE STRICTLY POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1835)
1835 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1836)ALOC2
1836 FORMAT(' THE SPECIFIED VALUE OF LOC2 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL BWERAN(NRAN,ASCAL1,GAMMA1,ALOC2,ASCAL2,GAMMA2,ISEED,Y)
GOTO2990
C
1850 CONTINUE
IHP='THET'
IHP2='A '
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
THETA=VALUE(ILOCP)
C
IF(0.0.LT.THETA.AND.THETA.LT.1.0)GOTO1857
WRITE(ICOUT,1851)
1851 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1852)
1852 FORMAT(' THE SPECIFIED SHAPE PARAMETER THETA FOR THE ',
1'LOGARITHMIC SERIES DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1854)
1854 FORMAT(' MUST BE BETWEEN 0 AND 1 (EXCLUSIVELY); SUCH WAS',
1' NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1856)THETA
1856 FORMAT(' THE SPECIFIED VALUE OF THETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1857 CONTINUE
CALL DLGRAN(NRAN,THETA,ISEED,Y)
GOTO2990
C
1860 CONTINUE
IHP='G '
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
G=VALUE(ILOCP)
C
IF(G.GE.0.0)GOTO1867
WRITE(ICOUT,1861)
1861 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1862)
1862 FORMAT(' THE SPECIFIED SHAPE PARAMETER G FOR THE ',
1'G-AND-H DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1864)
1864 FORMAT(' MUST BE NON-NEGATIVE; SUCH WAS NOT THE CASE ',
1' HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1866)G
1866 FORMAT(' THE SPECIFIED VALUE OF G = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1867 CONTINUE
C
IHP='H '
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
AH=VALUE(ILOCP)
C
IF(AH.GE.0.0)GOTO1877
WRITE(ICOUT,1871)
1871 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1872)
1872 FORMAT(' THE SPECIFIED SHAPE PARAMETER H FOR THE ',
1'G-AND-H DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1874)
1874 FORMAT(' MUST BE NON-NEGATIVE; SUCH WAS NOT THE CASE ',
1' HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1876)AH
1876 FORMAT(' THE SPECIFIED VALUE OF H = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1877 CONTINUE
CALL GHRAN(NRAN,G,AH,ISEED,Y)
GOTO2990
C
1880 CONTINUE
CALL SLARAN(NRAN,ISEED,Y)
GOTO2990
C
1890 CONTINUE
CALL LANRAN(NRAN,ISEED,Y)
GOTO2990
C
1900 CONTINUE
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,1901)
1901 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1902)
1902 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE ',
1 'INVERTED BETA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1904)
1904 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1906)ALPHA
1906 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,1911)
1911 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1912)
1912 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA FOR THE ',
1 'INVERTED BETA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1914)
1914 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1916)BETA
1916 FORMAT(' THE SPECIFIED VALUE OF BETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
CALL IBRAN(NRAN,ALPHA,BETA,ISEED,Y)
GOTO2990
C
1920 CONTINUE
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LT.1.0)THEN
WRITE(ICOUT,1921)
1921 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1922)
1922 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE ',
1 'ERROR DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1924)
1924 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1926)ALPHA
1926 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL ERRRAN(NRAN,ALPHA,ISEED,Y)
GOTO2990
C
1930 CONTINUE
IHP='A '
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
A=VALUE(ILOCP)
C
IHP='B '
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
B=VALUE(ILOCP)
C
IHP='C '
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
C=VALUE(ILOCP)
C
IHP='D '
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
DZ=VALUE(ILOCP)
C
IF(A.GT.B .OR. B.GT.C .OR. C.GT.DZ)THEN
WRITE(ICOUT,1932)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1933)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1934)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1936)A,B,C,DZ
CALL DPWRST('XXX','BUG ')
PDF=0.0
GOTO9000
ENDIF
1932 FORMAT(
1'***** FATAL ERROR--FOR THE TRAPEZOID DISTRIBUTION, THE FOUR')
1933 FORMAT(
1' SHAPE PARAMETERS (A, B, C, D) MUST SATISFY')
1934 FORMAT(
1' A <= B <= C <= D')
1936 FORMAT(
1' A, B, C, D = ',4E15.7)
C
CALL TRARAN(NRAN,A,B,C,DZ,ISEED,Y)
GOTO2990
C
1940 CONTINUE
IHP='B '
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
B=VALUE(ILOCP)
C
IF(B.LE.0.0)THEN
WRITE(ICOUT,1941)
1941 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1942)
1942 FORMAT(' THE SPECIFIED SHAPE PARAMETER B FOR THE ',
1 'VON MISES DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1944)
1944 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1946)B
1946 FORMAT(' THE SPECIFIED VALUE OF B = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL VONRAN(NRAN,B,ISEED,Y)
GOTO2990
C
1950 CONTINUE
IHP='GAMM'
IHP2='A '
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
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,1951)
1951 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1952)
1952 FORMAT(' THE SPECIFIED SHAPE PARAMETER GAMMA FOR THE ',
1 'PARETO SECOND KIND DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1953)
1953 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1954)GAMMA
1954 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='A '
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
A=1.0
ELSE
A=VALUE(ILOCP)
ENDIF
C
IF(A.LE.0.0)THEN
WRITE(ICOUT,1951)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1956)
1956 FORMAT(' THE SPECIFIED SHAPE PARAMETER A FOR THE ',
1 'PARETO SECOND KIND DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1957)
1957 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1958)A
1958 FORMAT(' THE SPECIFIED VALUE OF A = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL PA2RAN(NRAN,GAMMA,A,ISEED,Y)
GOTO2990
C
1960 CONTINUE
IHP='P '
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
P=VALUE(ILOCP)
C
IF(P.LT.0.0.OR.P.GE.1.0)THEN
WRITE(ICOUT,1961)
1961 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1962)
1962 FORMAT(' THE SPECIFIED SHAPE PARAMETER P FOR THE ',
1 'WRAPPED CAUCHY DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1964)
1964 FORMAT(' MUST BE IN THE INTERVAL (0,1]; SUCH WAS NOT THE ',
1 'CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1966)P
1966 FORMAT(' THE SPECIFIED VALUE OF P = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL WCARAN(NRAN,P,ISEED,Y)
GOTO2990
C
1970 CONTINUE
IHP='A '
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
A=VALUE(ILOCP)
C
IHP='B '
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
B=VALUE(ILOCP)
C
IHP='C '
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
C=VALUE(ILOCP)
C
IHP='D '
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
DZ=VALUE(ILOCP)
C
IHP='NU1 '
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
ANU1=VALUE(ILOCP)
C
IHP='NU3 '
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
ANU3=VALUE(ILOCP)
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(A.GT.B .OR. B.GT.C .OR. C.GT.DZ)THEN
WRITE(ICOUT,1972)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1973)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1974)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1976)A,B,C,DZ
CALL DPWRST('XXX','BUG ')
PDF=0.0
GOTO9000
ENDIF
1972 FORMAT(
1'***** FATAL ERROR--FOR THE GENERALIZED TRAPEZOID DISTRIBUTION,')
1973 FORMAT(
1' THE FOUR SHAPE PARAMETERS (A, B, C, D) MUST SATISFY')
1974 FORMAT(
1' A <= B <= C <= D')
1976 FORMAT(
1' A, B, C, D = ',4E15.7)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,1981)
1981 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1982)
1982 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE ',
1 'GENERALIZED TRAPEZOID DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1984)
1984 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1986)ALPHA
1986 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IF(ANU1.LE.0.0)THEN
WRITE(ICOUT,1991)
1991 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1992)
1992 FORMAT(' THE SPECIFIED SHAPE PARAMETER ANU1 FOR THE ',
1 'GENERALIZED TRAPEZOID DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1994)
1994 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1996)ANU1
1996 FORMAT(' THE SPECIFIED VALUE OF ANU1 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IF(ANU3.LE.0.0)THEN
WRITE(ICOUT,2001)
2001 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2002)
2002 FORMAT(' THE SPECIFIED SHAPE PARAMETER ANU3 FOR THE ',
1 'GENERALIZED TRAPEZOID DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2004)
2004 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2006)ANU3
2006 FORMAT(' THE SPECIFIED VALUE OF ANU3 = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GTRRAN(NRAN,A,B,C,DZ,ANU1,ANU3,ALPHA,ISEED,Y)
GOTO2990
C
2010 CONTINUE
IHP='A '
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
A=VALUE(ILOCP)
C
IHP='B '
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
B=VALUE(ILOCP)
C
IF(A.GT.B)THEN
ATEMP=A
A=B
B=ATEMP
ENDIF
C
IHP='MU '
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
U=VALUE(ILOCP)
C
IHP='SD '
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
SD=VALUE(ILOCP)
C
IF(A.EQ.B)THEN
WRITE(ICOUT,2011)
2011 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2012)
2012 FORMAT(' FOR THE TRUNCATED NORMAL DISTRIBUTION, THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2014)
2014 FORMAT(' TRUNCATION BOUNDS A AND B SHOULD NOT BE EQUAL;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2015)
2015 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2016)A,B
2016 FORMAT(' THE SPECIFIED VALUES OF A, B = ',2E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IF(SD.LE.0.0)THEN
WRITE(ICOUT,2021)
2021 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2022)
2022 FORMAT(' THE SPECIFIED STANDARD DEVIATION PARAMETER SD')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2024)
2024 FORMAT(' FOR THE TRUNCATED NORMAL DISTRIBUTION MUST BE ',
1 'POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2025)
2025 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2026)SD
2026 FORMAT(' THE SPECIFIED VALUE OF SD = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL TNRRAN(NRAN,A,B,U,SD,ISEED,Y)
GOTO2990
C
2040 CONTINUE
IHP='NU '
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
NU=VALUE(ILOCP)+EPS
ANU=REAL(NU)
C
IF(ANU.LT.0.9999)THEN
WRITE(ICOUT,2041)
2041 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2042)
2042 FORMAT(' THE SPECIFIED INTEGER SHAPE PARAMETER NU FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2044)
2044 FORMAT(' CHI DISTRIBUTION MUST BE 1 OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2045)
2045 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2046)NU
2046 FORMAT(' THE SPECIFIED VALUE OF NU = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL CHRAN(NRAN,ANU,ISEED,Y)
GOTO2990
C
2050 CONTINUE
IHP='LOC '
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
ALOC=VALUE(ILOCP)
C
IHP='SCAL'
IHP2='E '
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
ASCALE=VALUE(ILOCP)
C
IF(ASCALE.LE.0.0)THEN
WRITE(ICOUT,2051)
2051 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2052)
2052 FORMAT(' THE SPECIFIED SCALE PARAMETER SCALE FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2054)
2054 FORMAT(' FOLDED CAUCHY DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2055)
2055 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2056)ASCALE
2056 FORMAT(' THE SPECIFIED VALUE OF SCALE = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL FCARAN(NRAN,ALOC,ASCALE,ISEED,Y)
GOTO2990
C
2060 CONTINUE
IHP='K '
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
AK=VALUE(ILOCP)
C
IF(AK.LE.0.0)THEN
WRITE(ICOUT,2061)
2061 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2062)
2062 FORMAT(' THE SPECIFIED SHAPE PARAMETER, K, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2064)
2064 FORMAT(' MIELKE BETA-KAPPA DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2065)
2065 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2066)AK
2066 FORMAT(' THE SPECIFIED VALUE OF K = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,2071)
2071 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2072)
2072 FORMAT(' THE SPECIFIED SHAPE PARAMETER, BETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2074)
2074 FORMAT(' MIELKE BETA-KAPPA DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2075)
2075 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2076)BETA
2076 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='THET'
IHP2='A '
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
THETA=VALUE(ILOCP)
C
IF(THETA.LE.0.0)THEN
WRITE(ICOUT,2081)
2081 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2082)
2082 FORMAT(' THE SPECIFIED SHAPE PARAMETER, THETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2084)
2084 FORMAT(' MIELKE BETA-KAPPA DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2085)
2085 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2086)THETA
2086 FORMAT(' THE SPECIFIED VALUE OF THETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL KAPRAN(NRAN,AK,BETA,THETA,ISEED,Y)
GOTO2990
C
2090 CONTINUE
IHP='LAMB'
IHP2='DA1 '
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
ALAM1=VALUE(ILOCP)
C
IF(ALAM1.LE.0.0)THEN
WRITE(ICOUT,2091)
2091 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2092)
2092 FORMAT(' THE SPECIFIED SHAPE PARAMETER, LAMBDA1, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2094)
2094 FORMAT(' GENERALIZED EXPONENTIAL DISTRIBUTION MUST BE ',
1 'POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2095)
2095 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2096)ALAM1
2096 FORMAT(' THE SPECIFIED VALUE OF LAMBDA1 = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='LAMB'
IHP2='DA12'
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
ALAM12=VALUE(ILOCP)
C
IF(ALAM12.LE.0.0)THEN
WRITE(ICOUT,2101)
2101 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2102)
2102 FORMAT(' THE SPECIFIED SHAPE PARAMETER, LAMBDA12, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2104)
2104 FORMAT(' GENERALIZED EXPONENTIAL DISTRIBUTION MUST BE ',
1 'POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2105)
2105 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2106)ALAM12
2106 FORMAT(' THE SPECIFIED VALUE OF LAMBDA12 = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='S '
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
S=VALUE(ILOCP)
C
IF(S.LE.0.0)THEN
WRITE(ICOUT,2111)
2111 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2112)
2112 FORMAT(' THE SPECIFIED SHAPE PARAMETER, S, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2114)
2114 FORMAT(' GENERALIZED EXPONENTIAL DISTRIBUTION MUST BE ',
1 'POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2115)
2115 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2116)S
2116 FORMAT(' THE SPECIFIED VALUE OF S = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GEXRAN(NRAN,ALAM12,ALAM12,S,ISEED,Y)
GOTO2990
C
2120 CONTINUE
IHP='X0 '
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
X0=VALUE(ILOCP)
C
IF(X0.LE.0.0)THEN
WRITE(ICOUT,2121)
2121 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2122)
2122 FORMAT(' THE SPECIFIED TRUNCATION PARAMETER, X0, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2124)
2124 FORMAT(' TRUNCATED EXPONENTIAL DISTRIBUTION MUST BE ',
1 'POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2125)
2125 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2126)X0
2126 FORMAT(' THE SPECIFIED VALUE OF X0 = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='M '
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
AM=0.0
ELSE
AM=VALUE(ILOCP)
ENDIF
C
IF(AM.LT.0.0)THEN
WRITE(ICOUT,2131)
2131 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2132)
2132 FORMAT(' THE SPECIFIED LOCATION PARAMETER, M, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2134)
2134 FORMAT(' TRUNCATED EXPONENTIAL DISTRIBUTION MUST BE ',
1 'NON-NEGATIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2135)
2135 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2136)AM
2136 FORMAT(' THE SPECIFIED VALUE OF M = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='SD '
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
SD=0.0
ELSE
SD=VALUE(ILOCP)
ENDIF
C
IF(SD.LE.0.0)THEN
WRITE(ICOUT,2141)
2141 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2142)
2142 FORMAT(' THE SPECIFIED SCALE PARAMETER, SD, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2144)
2144 FORMAT(' TRUNCATED EXPONENTIAL DISTRIBUTION MUST BE ',
1 'POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2145)
2145 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2146)SD
2146 FORMAT(' THE SPECIFIED VALUE OF SD = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL TNERAN(NRAN,X0,AM,SD,ISEED,Y)
GOTO2990
C
2150 CONTINUE
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2151)
2151 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2152)
2152 FORMAT(' THE SPECIFIED SHAPE PARAMETER, ALPHA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2154)
2154 FORMAT(' GENERALIZED GAMMA DISTRIBUTION MUST BE ',
1 'POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2155)
2155 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2156)ALPHA
2156 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='C '
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
C=VALUE(ILOCP)
C
IF(C.EQ.0.0)THEN
WRITE(ICOUT,2161)
2161 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2162)
2162 FORMAT(' THE SPECIFIED SHAPE PARAMETER, C, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2164)
2164 FORMAT(' GENERALIZED GAMMA DISTRIBUTION MUST NOT BE ',
1 'ZERO;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2165)
2165 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2166)C
2166 FORMAT(' THE SPECIFIED VALUE OF C = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GGDRAN(NRAN,ALPHA,C,ISEED,Y)
GOTO2990
C
2170 CONTINUE
IHP='NU '
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
ANU=VALUE(ILOCP)
NU=INT(ANU+0.5)
C
IF(NU.LT.1)THEN
WRITE(ICOUT,2171)
2171 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2172)
2172 FORMAT(' THE SPECIFIED SHAPE PARAMETER, NU, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2174)
2174 FORMAT(' FOLDED T DISTRIBUTION MUST BE A POSITIVE ',
1 'INTEGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2175)
2175 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2176)NU
2176 FORMAT(' THE SPECIFIED VALUE OF NU = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL FTRAN(NRAN,NU,ISEED,Y)
GOTO2990
C
2180 CONTINUE
IHP='LAMB'
IHP2='DA '
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
ALMBDA=VALUE(ILOCP)
C
CALL SNRAN(NRAN,ALMBDA,ISKNDF,ISEED,Y)
GOTO2990
C
2190 CONTINUE
IHP='NU '
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
ANU=VALUE(ILOCP)
NU=INT(ANU+0.5)
C
IHP='LAMB'
IHP2='DA '
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
ALMBDA=VALUE(ILOCP)
C
IF(NU.LT.1)THEN
WRITE(ICOUT,2191)
2191 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2192)
2192 FORMAT(' THE SPECIFIED SHAPE PARAMETER, NU, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2194)
2194 FORMAT(' SKEWED T DISTRIBUTION MUST BE A POSITIVE ',
1 'INTEGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2195)
2195 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2196)NU
2196 FORMAT(' THE SPECIFIED VALUE OF NU = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL STRAN(NRAN,NU,ALMBDA,ISEED,Y)
GOTO2990
C
2200 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LT.1.0)THEN
WRITE(ICOUT,2201)
2201 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2202)
2202 FORMAT(' THE SPECIFIED SHAPE PARAMETER, ALPHA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2204)
2204 FORMAT(' ZETA DISTRIBUTION MUST BE > 1. SUCH WAS NOT ',
1 'THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2206)ALPHA
2206 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL ZETRAN(NRAN,ALPHA,ISEED,Y)
GOTO2990
C
2210 CONTINUE
IF(IMAKDF.EQ.'DLMF')THEN
IHP='XI '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
XI=VALUE(ILOCP)
C
IF(XI.LE.0.0)THEN
WRITE(ICOUT,2211)
2211 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2212)
2212 FORMAT(' THE SPECIFIED SHAPE PARAMETER, XI, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2214)
2214 FORMAT(' COMPERTZ-MAKEHAM DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2216)XI
2216 FORMAT(' THE SPECIFIED VALUE OF XI = ',
1 G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='LAMB'
IHP2='DA '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ALAMB=VALUE(ILOCP)
C
IF(ALAMB.LE.0.0)THEN
WRITE(ICOUT,2221)
2221 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2222)
2222 FORMAT(' THE SPECIFIED SHAPE PARAMETER, LAMBDA, ',
1 'FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2224)
2224 FORMAT(' COMPERTZ-MAKEHAM DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2226)ALAMB
2226 FORMAT(' THE SPECIFIED VALUE OF ALAMB = ',
1 G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='THET'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
THETA=VALUE(ILOCP)
C
IF(THETA.LT.0.0)THEN
WRITE(ICOUT,2231)
2231 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2232)
2232 FORMAT(' THE SPECIFIED SHAPE PARAMETER, THETA, ',
1 'FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2234)
2234 FORMAT(' COMPERTZ-MAKEHAM DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2236)THETA
2236 FORMAT(' THE SPECIFIED VALUE OF THETA = ',
1 G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL MAKRAN(NRAN,XI,ALAMB,THETA,ISEED,Y)
ELSEIF(IMAKDF.EQ.'MEEK')THEN
IHP='GAMM'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
GAMMA=VALUE(ILOCP)
C
IF(GAMMA.LE.0.0)THEN
WRITE(ICOUT,22211)
22211 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22212)
22212 FORMAT(' THE SPECIFIED SHAPE PARAMETER, GAMMA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22214)
22214 FORMAT(' COMPERTZ-MAKEHAM DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22216)GAMMA
22216 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',
1 G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='LAMB'
IHP2='DA '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ALAMB=VALUE(ILOCP)
C
IF(ALAMB.LT.0.0)THEN
WRITE(ICOUT,22221)
22221 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22222)
22222 FORMAT(' THE SPECIFIED SHAPE PARAMETER, LAMBDA, ',
1 'FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22224)
22224 FORMAT(' COMPERTZ-MAKEHAM DISTRIBUTION MUST BE ',
1 'NON-NEGATIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22226)ALAMB
22226 FORMAT(' THE SPECIFIED VALUE OF ALAMB = ',
1 G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='K '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
AK=VALUE(ILOCP)
C
IF(AK.LE.0.0)THEN
WRITE(ICOUT,22231)
22231 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22232)
22232 FORMAT(' THE SPECIFIED SHAPE PARAMETER, K, ',
1 'FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22234)
22234 FORMAT(' COMPERTZ-MAKEHAM DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22236)AK
22236 FORMAT(' THE SPECIFIED VALUE OF K = ',
1 G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
XI=GAMMA/AK
THETA=ALAMB/GAMMA
ALAMB=AK
CALL MAKRAN(NRAN,XI,ALAMB,THETA,ISEED,Y)
ELSEIF(IMAKDF.EQ.'REPA')THEN
C
IHP='ZETA'
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ZETA=VALUE(ILOCP)
C
IHP='ETA '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ETA=VALUE(ILOCP)
C
IF(ETA.LT.0.0)THEN
WRITE(ICOUT,32231)
32231 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,32232)
32232 FORMAT(' THE SPECIFIED SHAPE PARAMETER, ETA, ',
1 'FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,32234)
32234 FORMAT(' COMPERTZ-MAKEHAM DISTRIBUTION MUST BE ',
1 'NON-NEGATIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,32236)ETA
32236 FORMAT(' THE SPECIFIED VALUE OF ETA = ',
1 G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL MA2RAN(NRAN,ZETA,ETA,ISEED,Y)
ENDIF
GOTO2990
C
2240 CONTINUE
IHP='CHI '
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
CHI=VALUE(ILOCP)
C
IF(CHI.LE.0.0)THEN
WRITE(ICOUT,2241)
2241 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2242)
2242 FORMAT(' THE SPECIFIED SHAPE PARAMETER, CHI, FOR THE ',
1 'GENERALIZE INVERSE GAUSSIAN')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2244)
2244 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS NOT ',
1 'THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2246)CHI
2246 FORMAT(' THE SPECIFIED VALUE OF CHI = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='LAMB'
IHP2='DA '
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
ALAMB=VALUE(ILOCP)
C
IF(ALAMB.LE.0.0)THEN
WRITE(ICOUT,2251)
2251 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2252)
2252 FORMAT(' THE SPECIFIED SHAPE PARAMETER, LAMBDA, FOR ',
1 'THE GENERALIZED INVERSE GAUSSIAN')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2254)
2254 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS NOT ',
1 'THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2256)ALAMB
2256 FORMAT(' THE SPECIFIED VALUE OF ALAMB = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='THET'
IHP2='A '
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
THETA=VALUE(ILOCP)
C
IF(THETA.LT.0.0)THEN
WRITE(ICOUT,2261)
2261 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2262)
2262 FORMAT(' THE SPECIFIED SHAPE PARAMETER, LAMBDA, FOR THE',
1 ' GENERALIZED INVERSE GAUSSIAN')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2264)
2264 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS NOT ',
1 'THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2266)THETA
2266 FORMAT(' THE SPECIFIED VALUE OF THETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GIGRAN(NRAN,CHI,ALAMB,THETA,ISEED,Y)
GOTO2990
C
2270 CONTINUE
IHP='LAMB'
IHP2='DA '
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
ALMBDA=VALUE(ILOCP)
C
CCCCC DEFAULT SD PARAMETER TO 1
C
IHP='SD '
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
SD=1.0
ELSE
SD=VALUE(ILOCP)
ENDIF
C
IF(SD.LE.0.0)THEN
WRITE(ICOUT,2271)
2271 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2272)
2272 FORMAT(' THE SPECIFIED SHAPE PARAMETER, SD, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2274)
2274 FORMAT(' LOG-SKEW-NORMAL DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2276)SD
2276 FORMAT(' THE SPECIFIED VALUE OF SD = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL LSNRAN(NRAN,ALMBDA,SD,ISEED,Y)
GOTO2990
C
2280 CONTINUE
IHP='LAMB'
IHP2='DA '
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
ALMBDA=VALUE(ILOCP)
C
CCCCC DEFAULT SD PARAMETER TO 1
C
IHP='SD '
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
SD=1.0
ELSE
SD=VALUE(ILOCP)
ENDIF
C
IF(SD.LE.0.0)THEN
WRITE(ICOUT,2281)
2281 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2282)
2282 FORMAT(' THE SPECIFIED SHAPE PARAMETER, SD, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2284)
2284 FORMAT(' LOG-SKEW-T DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2286)SD
2286 FORMAT(' THE SPECIFIED VALUE OF SD = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='NU '
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
NU=INT(VALUE(ILOCP)+0.5)
C
IF(NU.LE.0)THEN
WRITE(ICOUT,2291)
2291 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2292)
2292 FORMAT(' THE SPECIFIED SHAPE PARAMETER, NU, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2294)
2294 FORMAT(' LOG-SKEW-T DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2296)NU
2296 FORMAT(' THE SPECIFIED VALUE OF NU = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
CALL LSTRAN(NRAN,NU,ALMBDA,SD,ISEED,Y)
GOTO2990
C
2300 CONTINUE
C
IHP='LAMB'
IHP2='DA '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALAMB=VALUE(ILOCP)
C
IHP='NU '
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
ANU=VALUE(ILOCP)
C
IF(ANU.LE.0.0)THEN
WRITE(ICOUT,2301)
2301 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2302)
2302 FORMAT(' THE SPECIFIED SHAPE PARAMETER, NU, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2304)
2304 FORMAT(' NON-CENTRAL T DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2306)ANU
2306 FORMAT(' THE SPECIFIED VALUE OF NU = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL NCTRAN(NRAN,ANU,ALAMB,ISEED,Y)
GOTO2990
C
2310 CONTINUE
IHP='LAMB'
IHP2='DA1 '
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
ALAMB1=VALUE(ILOCP)
C
IHP='LAMB'
IHP2='DA2 '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALAMB2=VALUE(ILOCP)
C
IHP='NU '
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
ANU=VALUE(ILOCP)
C
IF(ANU.LE.0.0)THEN
WRITE(ICOUT,2311)
2311 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2312)
2312 FORMAT(' THE SPECIFIED SHAPE PARAMETER, NU, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2314)
2314 FORMAT(' DOUBLY NON-CENTRAL T DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2316)ANU
2316 FORMAT(' THE SPECIFIED VALUE OF ANU = ',F12.5)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
CALL DNTRAN(NRAN,ANU,ALAMB1,ALAMB2,ISEED,Y)
GOTO2990
C
2330 CONTINUE
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2331)
2331 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2332)
2332 FORMAT(' THE SPECIFIED SHAPE PARAMETER, ALPHA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2334)
2334 FORMAT(' GENERALIZED LOGISTIC DISTRIBUTION MUST BE ',
1 'POSITIVE. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2336)ALPHA
2336 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
CALL GLORAN(NRAN,ALPHA,ISEED,Y)
GOTO2990
C
2340 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2341)
2341 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2342)
2342 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2343)IDIST
2343 FORMAT(' FOR THE HERMITE DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2344)
2344 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2345)
2345 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2346)ALPHA
2346 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,2351)
2351 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2352)
2352 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2353)IDIST
2353 FORMAT(' FOR THE ',A26)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2354)
2354 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2355)
2355 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2356)BETA
2356 FORMAT(' THE SPECIFIED VALUE OF BETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL HERRAN(ALPHA,BETA,NRAN,ISEED,Y)
GOTO2990
C
2360 CONTINUE
C
IHP='P '
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
P=VALUE(ILOCP)
C
IF(P.LT.0.1)THEN
WRITE(ICOUT,2361)
2361 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2362)
2362 FORMAT(' THE SPECIFIED SHAPE PARAMETER P')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2363)IDIST
2363 FORMAT(' FOR THE YULE DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2364)
2364 FORMAT(' MUST BE >= 0.1; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2366)P
2366 FORMAT(' THE SPECIFIED VALUE OF P = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL YULRAN(NRAN,P,ISEED,Y)
GOTO2990
C
2370 CONTINUE
C
IHP='A '
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
A=VALUE(ILOCP)
C
IF(A.LE.0.0)THEN
WRITE(ICOUT,2371)
2371 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2372)
2372 FORMAT(' THE SPECIFIED SHAPE PARAMETER KAPPA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2373)IDIST
2373 FORMAT(' FOR THE WARING DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2374)
2374 FORMAT(' MUST BE > 0; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2375)A
2375 FORMAT(' THE SPECIFIED VALUE OF A = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='C '
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
C=VALUE(ILOCP)
C
IF(C.LE.0.0)THEN
WRITE(ICOUT,2376)
2376 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2377)
2377 FORMAT(' THE SPECIFIED SHAPE PARAMETER C')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2378)
2378 FORMAT(' FOR THE WARING DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2379)
2379 FORMAT(' MUST BE > 0; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2380)C
2380 FORMAT(' THE SPECIFIED VALUE OF C = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IF(C.LE.A)THEN
WRITE(ICOUT,2381)
2381 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2382)
2382 FORMAT(' THE SPECIFIED SHAPE PARAMETER C MUST BE GREATER')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2383)
2383 FORMAT(' THAN THE SPECIFIED PARAMETER A FOR THE WARING ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2384)
2384 FORMAT(' DISTRIBUTION; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2386)C
2386 FORMAT(' THE SPECIFIED VALUE OF C = ',E15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2387)A
2387 FORMAT(' THE SPECIFIED VALUE OF A = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
B=1.0
BETA=A
ALPHA=C-A
CALL GWARAN(NRAN,BETA,B,ALPHA,ISEED,Y)
GOTO2990
C
2390 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2391)
2391 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2392)
2392 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2393)IDIST
2393 FORMAT(' FOR THE BETA-NEGATIVE BINOMIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2394)
2394 FORMAT(' MUST BE > 0; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2396)ALPHA
2396 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,2401)
2401 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2402)
2402 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2403)IDIST
2403 FORMAT(' FOR THE BETA-NEGATIVE BINOMIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2404)
2404 FORMAT(' MUST BE >= 0; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2406)BETA
2406 FORMAT(' THE SPECIFIED VALUE OF BETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='K '
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
AK=VALUE(ILOCP)
C
IF(AK.LE.0.0)THEN
WRITE(ICOUT,2411)
2411 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2412)
2412 FORMAT(' THE SPECIFIED SHAPE PARAMETER AK')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2413)IDIST
2413 FORMAT(' FOR THE BETA-NEGATIVE BINOMIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2414)
2414 FORMAT(' MUST BE > 0; SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2416)AK
2416 FORMAT(' THE SPECIFIED VALUE OF K = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GWARAN(NRAN,ALPHA,BETA,AK,ISEED,Y)
GOTO2990
C
2420 CONTINUE
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2421)
2421 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2422)
2422 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2423)
2423 FORMAT(' FOR THE NON-CENTRAL BETA DISTRIBUTION MUST BE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2424)
2424 FORMAT(' POSITIVE; SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2426)ALPHA
2426 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,2431)
2431 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2432)
2432 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2433)
2433 FORMAT(' FOR THE NON-CENTRAL BETA DISTRIBUTION MUST BE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2434)
2434 FORMAT(' POSITIVE; SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2436)BETA
2436 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='LAMB'
IHP2='DA '
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
ALAMB=VALUE(ILOCP)
C
IF(ALAMB.LE.0.0)THEN
WRITE(ICOUT,2441)
2441 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2442)
2442 FORMAT(' THE SPECIFIED NON-CENTRALITY PARAMETER LAMBDA ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2443)
2443 FORMAT(' FOR THE NON-CENTRAL BETA DISTRIBUTION MUST BE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2444)
2444 FORMAT(' POSITIVE; SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2446)ALAMB
2446 FORMAT(' THE SPECIFIED VALUE OF LAMBDA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL NCBRAN(NRAN,ALPHA,BETA,ALAMB,ISEED,Y)
GOTO2990
C
2450 CONTINUE
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2451)
2451 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2452)
2452 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2453)
2453 FORMAT(' FOR THE DOUBLY NON-CENTRAL BETA DISTRIBUTION ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2454)
2454 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2456)ALPHA
2456 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,2461)
2461 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2462)
2462 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2463)
2463 FORMAT(' FOR THE DOUBLY NON-CENTRAL BETA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2464)
2464 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2466)BETA
2466 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='LAMB'
IHP2='DA1 '
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
ALAMB1=VALUE(ILOCP)
C
IF(ALAMB1.LE.0.0)THEN
WRITE(ICOUT,2471)
2471 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2472)
2472 FORMAT(' THE SPECIFIED NON-CENTRALITY PARAMETER LAMBDA1')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2473)
2473 FORMAT(' FOR THE DOUBLY NON-CENTRAL BETA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2474)
2474 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2476)ALAMB1
2476 FORMAT(' THE SPECIFIED VALUE OF LAMBDA1 = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='LAMB'
IHP2='DA2 '
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
ALAMB2=VALUE(ILOCP)
C
IF(ALAMB2.LE.0.0)THEN
WRITE(ICOUT,2481)
2481 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2482)
2482 FORMAT(' THE SPECIFIED NON-CENTRALITY PARAMETER LAMBDA2')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2483)
2483 FORMAT(' FOR THE DOUBLY NON-CENTRAL BETA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2484)
2484 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2486)ALAMB2
2486 FORMAT(' THE SPECIFIED VALUE OF LAMBDA2 = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL DNBRAN(NRAN,ALPHA,BETA,ALAMB1,ALAMB2,ISEED,Y)
GOTO2990
C
2490 CONTINUE
IHP='LAMB'
IHP2='DA '
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
ALMBDA=VALUE(ILOCP)
C
IF(ALMBDA.LT.0.0)THEN
WRITE(ICOUT,2491)
2491 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2492)
2492 FORMAT(' THE SPECIFIED SHAPE PARAMETER LAMBDA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2493)
2493 FORMAT(' FOR THE SKEW DOUBLE EXPONENTIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2494)
2494 FORMAT(' MUST BE NON-NEGATIVE; SUCH WAS NOT THE CASE ',
1 'HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2496)ALMBDA
2496 FORMAT(' THE SPECIFIED VALUE OF LAMBDA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL SDERAN(NRAN,ALMBDA,ISEED,Y)
GOTO2990
C
2500 CONTINUE
IF(IADEDF.EQ.'K')THEN
IHP='K '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
AK=VALUE(ILOCP)
C
IF(AK.LE.0.0)THEN
WRITE(ICOUT,2501)
2501 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2502)
2502 FORMAT(' THE SPECIFIED SHAPE PARAMETER K FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2503)
2503 FORMAT(' ASYMMETIC DOUBLE EXPONENTIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2504)
2504 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE ',
1 'HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2506)AK
2506 FORMAT(' THE SPECIFIED VALUE OF K = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL ADERAN(NRAN,AK,IADEDF,ISEED,Y)
ELSE
IHP='MU '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
AMU=VALUE(ILOCP)
CALL ADERAN(NRAN,AMU,IADEDF,ISEED,Y)
ENDIF
GOTO2990
C
2520 CONTINUE
C
IHP='SIGM'
IHP2='A '
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')THEN
SIGMA=1.0
ELSE
SIGMA=VALUE(ILOCP)
ENDIF
C
IF(SIGMA.LE.0.0)THEN
WRITE(ICOUT,2521)
2521 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2522)
2522 FORMAT(' THE SPECIFIED SHAPE PARAMETER SIGMA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2523)
2523 FORMAT(' MAXWELL DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2525)
2525 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2526)SIGMA
2526 FORMAT(' THE SPECIFIED VALUE OF SIGMA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL MAXRAN(NRAN,SIGMA,ISEED,Y)
GOTO2990
C
2530 CONTINUE
C
CALL RAYRAN(NRAN,ISEED,Y)
GOTO2990
C
2540 CONTINUE
CCCCC IF(IADEDF.EQ.'K')THEN
IHP='K '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
AK=VALUE(ILOCP)
C
IF(AK.LE.0.0)THEN
WRITE(ICOUT,2541)
2541 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2542)
2542 FORMAT(' THE SPECIFIED SHAPE PARAMETER K FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2543)
2543 FORMAT(' GENERALIZED ASYMMETIC DOUBLE EXPONENTIAL ',
1 'DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2544)
2544 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE ',
1 'HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2546)AK
2546 FORMAT(' THE SPECIFIED VALUE OF K = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='TAU '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
TAU=VALUE(ILOCP)
C
IF(TAU.LE.0.0)THEN
WRITE(ICOUT,2551)
2551 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2552)
2552 FORMAT(' THE SPECIFIED SHAPE PARAMETER TAU FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2553)
2553 FORMAT(' GENERALIZED ASYMMETIC DOUBLE EXPONENTIAL ',
1 'DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2554)
2554 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE ',
1 'HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2556)TAU
2556 FORMAT(' THE SPECIFIED VALUE OF TAU = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GALRAN(NRAN,AK,TAU,IADEDF,ISEED,Y)
CCCCC ELSE
CCCCC IHP='MU '
CCCCC IHP2=' '
CCCCC IHWUSE='P'
CCCCC MESSAG='YES'
CCCCC CALL CHECKN(IHP,IHP2,IHWUSE,
CCCCC1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
CCCCC1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
CCCCC IF(IERROR.EQ.'YES')GOTO9000
CCCCC AMU=VALUE(ILOCP)
CCCCC CALL ADERAN(NRAN,AMU,IADEDF,ISEED,Y)
CCCCC ENDIF
GOTO2990
C
2560 CONTINUE
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ALPHA=VALUE(ILOCP)
C
CALL MCLRAN(NRAN,ALPHA,ISEED,Y)
GOTO2990
C
2570 CONTINUE
IF(IBEIDF.EQ.'1')THEN
IHP='SIGM'
IHP2='A1SQ'
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
S1SQ=VALUE(ILOCP)
C
IF(S1SQ.LE.0.0)THEN
WRITE(ICOUT,2571)
2571 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2572)
2572 FORMAT(' THE SPECIFIED SHAPE PARAMETER, SIGMA1SQ, FOR ',
1 'THE BESSEL I-FUNCTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2574)
2574 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2576)S1SQ
2576 FORMAT(' THE SPECIFIED VALUE OF SIGMA1SQ = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='SIGM'
IHP2='A2SQ'
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
S2SQ=VALUE(ILOCP)
C
IF(S2SQ.LE.0.0)THEN
WRITE(ICOUT,2581)
2581 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2582)
2582 FORMAT(' THE SPECIFIED SHAPE PARAMETER, SIGMA1SQ, FOR ',
1 'THE BESSEL I-FUNCTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2584)
2584 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2586)S2SQ
2586 FORMAT(' THE SPECIFIED VALUE OF SIGMA1SQ = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='NU '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ANU=VALUE(ILOCP)
C
IF(ANU.LE.0.0)THEN
WRITE(ICOUT,2591)
2591 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2592)
2592 FORMAT(' THE SPECIFIED SHAPE PARAMETER, NU, FOR ',
1 'THE BESSEL I-FUNCTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2594)
2594 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2596)ANU
2596 FORMAT(' THE SPECIFIED VALUE OF NU = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL BEIRAN(NRAN,S1SQ,S2SQ,ANU,IBEIDF,ISEED,Y)
GOTO2990
ELSE
IHP='B '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
B=VALUE(ILOCP)
C
IF(B.LE.0.0)THEN
WRITE(ICOUT,22571)
22571 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22572)
22572 FORMAT(' THE SPECIFIED SHAPE PARAMETER, B, FOR ',
1 'THE BESSEL I-FUNCTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22574)
22574 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22576)B
22576 FORMAT(' THE SPECIFIED VALUE OF B = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='C '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C=VALUE(ILOCP)
C
IF(C.LE.0.0)THEN
WRITE(ICOUT,22581)
22581 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22582)
22582 FORMAT(' THE SPECIFIED SHAPE PARAMETER, C, FOR ',
1 'THE BESSEL I-FUNCTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22584)
22584 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22586)C
22586 FORMAT(' THE SPECIFIED VALUE OF C = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='M '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
AM=VALUE(ILOCP)
C
IF(AM.LE.0.5)THEN
WRITE(ICOUT,22591)
22591 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22592)
22592 FORMAT(' THE SPECIFIED SHAPE PARAMETER, M, FOR ',
1 'THE BESSEL I-FUNCTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22594)
22594 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,22596)AM
22596 FORMAT(' THE SPECIFIED VALUE OF M = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL BEIRAN(NRAN,B,C,AM,IBEIDF,ISEED,Y)
GOTO2990
ENDIF
C
2600 CONTINUE
IHP='SIGM'
IHP2='A1SQ'
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
S1SQ=VALUE(ILOCP)
C
IF(S1SQ.LE.0.0)THEN
WRITE(ICOUT,2601)
2601 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2602)
2602 FORMAT(' THE SPECIFIED SHAPE PARAMETER, SIGMA1SQ, FOR ',
1 'THE BESSEL K-FUNCTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2604)
2604 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS NOT ',
1 'THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2606)S1SQ
2606 FORMAT(' THE SPECIFIED VALUE OF SIGMA1SQ = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='SIGM'
IHP2='A2SQ'
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
S2SQ=VALUE(ILOCP)
C
IF(S2SQ.LE.0.0)THEN
WRITE(ICOUT,2611)
2611 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2612)
2612 FORMAT(' THE SPECIFIED SHAPE PARAMETER, SIGMA1SQ, FOR ',
1 'THE BESSEL K-FUNCTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2614)
2614 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS NOT ',
1 'THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2616)S2SQ
2616 FORMAT(' THE SPECIFIED VALUE OF SIGMA1SQ = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='NU '
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
ANU=VALUE(ILOCP)
C
IF(ANU.LE.0.0)THEN
WRITE(ICOUT,2621)
2621 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2622)
2622 FORMAT(' THE SPECIFIED SHAPE PARAMETER, NU, FOR ',
1 'THE BESSEL I-FUNCTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2624)
2624 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS NOT ',
1 'THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2626)ANU
2626 FORMAT(' THE SPECIFIED VALUE OF NU = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CCCCC CALL BEKRAN(NRAN,S1SQ,S2SQ,ANU,ISEED,Y)
GOTO2990
C
2630 CONTINUE
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2631)
2631 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2632)
2632 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2633)
2633 FORMAT(' FOR THE GENERALIZED MCLEISH DISTRIBUTION ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2634)
2634 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2636)ALPHA
2636 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='A '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
A=VALUE(ILOCP)
C
IF(ABS(A).GE.1.0)THEN
WRITE(ICOUT,2641)
2641 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2642)
2642 FORMAT(' THE ABSOLUTE VALUE OF THE SPECIFIED SHAPE ',
1 'PARAMETER A FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2643)
2643 FORMAT(' FOR THE GENERALIZED MCLEISH DISTRIBUTION ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2644)
2644 FORMAT(' MUST BE LESS THAN 1; SUCH WAS NOT THE CASE ',
1 'HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2646)A
2646 FORMAT(' THE SPECIFIED VALUE OF A = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GMCRAN(NRAN,ALPHA,A,ISEED,Y)
GOTO2990
C
2650 CONTINUE
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2651)
2651 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2652)
2652 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2653)
2653 FORMAT(' FOR THE HYPERBOLIC DISTRIBUTION ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2654)
2654 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2656)ALPHA
2656 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='XI '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
XI=VALUE(ILOCP)
C
IF(XI.LE.0.0)THEN
WRITE(ICOUT,2661)
2661 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2662)
2662 FORMAT(' THE SPECIFIED SHAPE PARAMETER XI FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2663)
2663 FORMAT(' FOR THE HYPERBOLIC DISTRIBUTION ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2664)
2664 FORMAT(' MUST BE POSITIVE; SUCH WAS NOT THE CASE ',
1 'HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2666)XI
2666 FORMAT(' THE SPECIFIED VALUE OF XI = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CCCCC CALL HBORAN(NRAN,ALPHA,XI,ISEED,Y)
GOTO2990
C
2670 CONTINUE
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ALPHA=VALUE(ILOCP)
C
CALL GL5RAN(NRAN,ALPHA,ISEED,Y)
GOTO2990
C
2680 CONTINUE
C
IHP='BETA'
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
BETA=VALUE(ILOCP)
C
IHP='GAMM'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
GAMMA=VALUE(ILOCP)
C
IHP='DELT'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
DELTA=VALUE(ILOCP)
C
IFLAG=0
SCALE=1.0
IF(BETA+DELTA.LE.0.0.AND.
1 (BETA.NE.0.0.OR.GAMMA.NE.0.0.OR.DELTA.NE.0.0))IFLAG=1
IF(SCALE.EQ.0.0.AND.BETA.NE.0.0)IFLAG=1
IF(GAMMA.EQ.0.0.AND.DELTA.NE.0.0)IFLAG=1
IF(GAMMA.LT.0.0.OR.SCALE+GAMMA.LT.0.0)IFLAG=1
IF(SCALE.EQ.0.0.AND.GAMMA.EQ.0.0)IFLAG=1
C
IF(IFLAG.EQ.1)THEN
WRITE(ICOUT,2681)
2681 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2682)
2682 FORMAT(' THE VALUES FOR THE SPECIFIED SHAPE PARAMETERS ',
1 'BETA, GAMMA, AND DELTA')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2683)
2683 FORMAT(' ARE INVALID FOR THE WAKEBY DISTRIBUTION. THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2684)
2684 FORMAT(' FOLLOWING CONDITIONS ARE INVALID:')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2686)
2686 FORMAT(' 1. BETA + DELTA <= 0 AND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2688)
2688 FORMAT(' BETA <> 0 OR GAMMA <>0 OR DELTA <>0')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2690)
2690 FORMAT(' 2. SCALE = 0 AND BETA <> 0')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2692)
2692 FORMAT(' 3. GAMMA = 0 AND DELTA <> 0')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2694)
2694 FORMAT(' 4. GAMMA < 0 OR SCALE + GAMMA < 0')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2696)
2696 FORMAT(' 5. SCALE = 0 AND GAMMA = 0')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2697)ALPHA
2697 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2698)GAMMA
2698 FORMAT(' THE SPECIFIED VALUE OF GAMMA = ',G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2699)DELTA
2699 FORMAT(' THE SPECIFIED VALUE OF DELTA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL WAKRAN(NRAN,BETA,GAMMA,DELTA,ISEED,Y)
GOTO2990
C
2700 CONTINUE
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2701)
2701 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2702)
2702 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE ',
1 'BETA-NORMAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2704)
2704 FORMAT(' DISTRIBUTION MUST BE POSITIVE; SUCH WAS ',
1 'NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2706)ALPHA
2706 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,2711)
2711 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2712)
2712 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA FOR THE ',
1 'BETA-NORMAL')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2714)
2714 FORMAT(' DISTRIBUTION MUST BE POSITIVE; SUCH WAS ',
1 'NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2716)BETA
2716 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
CALL BNORAN(NRAN,ALPHA,BETA,ISEED,Y)
GOTO2990
C
2720 CONTINUE
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2721)
2721 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2722)
2722 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE ',
1 'GENERALIZED LOGISTIC (TYPE 2)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2724)
2724 FORMAT(' DISTRIBUTION MUST BE POSITIVE; SUCH WAS ',
1 'NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2726)ALPHA
2726 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
CALL GL2RAN(NRAN,ALPHA,ISEED,Y)
GOTO2990
C
2730 CONTINUE
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2731)
2731 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2732)
2732 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE ',
1 'GENERALIZED LOGISTIC (TYPE 3)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2734)
2734 FORMAT(' DISTRIBUTION MUST BE POSITIVE; SUCH WAS ',
1 'NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2736)ALPHA
2736 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
CALL GL3RAN(NRAN,ALPHA,ISEED,Y)
GOTO2990
C
2740 CONTINUE
C
IHP='P '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
P=VALUE(ILOCP)
C
IHP='Q '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
Q=VALUE(ILOCP)
C
IF(P.LE.0.0)THEN
WRITE(ICOUT,2741)
2741 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2742)
2742 FORMAT(' THE SPECIFIED SHAPE PARAMETER P FOR THE ',
1 'GENERALIZED LOGISTIC (TYPE 4)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2744)
2744 FORMAT(' DISTRIBUTION MUST BE POSITIVE; SUCH WAS ',
1 'NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2746)ALPHA
2746 FORMAT(' THE SPECIFIED VALUE OF P = ',G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(Q.LE.0.0)THEN
WRITE(ICOUT,2751)
2751 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2752)
2752 FORMAT(' THE SPECIFIED SHAPE PARAMETER Q FOR THE ',
1 'GENERALIZED LOGISTIC (TYPE 4)')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2754)
2754 FORMAT(' DISTRIBUTION MUST BE POSITIVE; SUCH WAS ',
1 'NOT THE CASE HERE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2756)ALPHA
2756 FORMAT(' THE SPECIFIED VALUE OF Q = ',G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
CALL GL4RAN(NRAN,P,Q,ISEED,Y)
GOTO2990
C
2770 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2771)
2771 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2772)
2772 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2773)
2773 FORMAT(' ASYMMETRIC LOG DOUBLE EXPONENTIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2774)
2774 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2775)
2775 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2776)ALPHA
2776 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,2781)
2781 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2782)
2782 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2783)
2783 FORMAT(' ASYMMETRIC LOG DOUBLE EXPONENTIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2784)
2784 FORMAT(' MUST BE STRICTLY LARGER THAN 0;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2785)
2785 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2786)BETA
2786 FORMAT(' THE SPECIFIED VALUE OF BETA = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL ALDRAN(NRAN,ALPHA,BETA,ISEED,Y)
GOTO2990
C
2800 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2801)
2801 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2802)
2802 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2803)
2803 FORMAT(' BETA-GEOMETRIC DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2805)
2805 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2806)ALPHA
2806 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,2811)
2811 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2812)
2812 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2814)
2814 FORMAT(' BETA-GEOMETRIC DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2815)
2815 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2816)BETA
2816 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL BGERAN(ALPHA,BETA,NRAN,ISEED,Y,IBGEDF)
GOTO2990
C
2820 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LT.1.0)THEN
WRITE(ICOUT,2821)
2821 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2822)
2822 FORMAT(' THE SPECIFIED SHAPE PARAMETER, ALPHA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2824)
2824 FORMAT(' ZIPF DISTRIBUTION MUST BE > 1. SUCH WAS NOT ',
1 'THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2826)ALPHA
2826 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='N '
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
NPAR=INT(VALUE(ILOCP)+0.5)
C
IF(NPAR.LE.1)THEN
WRITE(ICOUT,2831)
2831 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2832)
2832 FORMAT(' THE SPECIFIED SHAPE PARAMETER, N, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2834)
2834 FORMAT(' ZIPF DISTRIBUTION MUST BE > 1. SUCH WAS NOT ',
1 'THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2836)NPAR
2836 FORMAT(' THE SPECIFIED VALUE OF N = ',I15)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL ZIPRAN(NRAN,ALPHA,NPAR,ISEED,Y)
GOTO2990
C
2840 CONTINUE
C
IHP='LAMB'
IHP2='DA '
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
ALAMB=VALUE(ILOCP)
C
IF(ALAMB.LE.0.0 .OR. ALAMB.GE.1.0)THEN
WRITE(ICOUT,2841)
2841 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2842)
2842 FORMAT(' THE SPECIFIED SHAPE PARAMETER, LAMBDA, FOR THE',
1 'BOREL-TANNER')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2844)
2844 FORMAT(' DISTRIBUTION MUST BE IN THE INTERVAL (0,1). ',
1 'SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2846)ALAMB
2846 FORMAT(' THE SPECIFIED VALUE OF LAMBDA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='K '
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
AK=VALUE(ILOCP)
IK=INT(AK+0.5)
C
IF(IK.LT.1)THEN
WRITE(ICOUT,2851)
2851 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2852)
2852 FORMAT(' THE SPECIFIED SHAPE PARAMETER, K, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2854)
2854 FORMAT(' BOREL-TANNER DISTRIBUTION MUST BE >= 1. ',
1 'SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2856)IK
2856 FORMAT(' THE SPECIFIED VALUE OF K = ',I15)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL BTARAN(NRAN,ALAMB,AK,ISEED,Y)
GOTO2990
C
2860 CONTINUE
C
IHP='LAMB'
IHP2='DA '
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
ALAMB=VALUE(ILOCP)
C
IF(ALAMB.LE.0.0 .OR. ALAMB.GE.1.0)THEN
WRITE(ICOUT,2861)
2861 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2862)
2862 FORMAT(' THE SPECIFIED SHAPE PARAMETER, LAMBDA, FOR THE',
1 'LAGRANGE-POISSON')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2864)
2864 FORMAT(' DISTRIBUTION MUST BE IN THE INTERVAL (0,1). ',
1 'SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2866)ALAMB
2866 FORMAT(' THE SPECIFIED VALUE OF LAMBDA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='THET'
IHP2='A '
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
THETA=VALUE(ILOCP)
C
IF(THETA.LE.0.0)THEN
WRITE(ICOUT,2871)
2871 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2872)
2872 FORMAT(' THE SPECIFIED SHAPE PARAMETER, THETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2874)
2874 FORMAT(' LAGRANGE-POISSON DISTRIBUTION MUST BE > 0. ',
1 'SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2876)THETA
2876 FORMAT(' THE SPECIFIED VALUE OF THETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL LPORAN(NRAN,ALAMB,THETA,ISEED,Y)
GOTO2990
C
2880 CONTINUE
C
IHP='N '
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
NPAR=INT(VALUE(ILOCP)+0.5)
C
IF(NPAR.LT.1)THEN
WRITE(ICOUT,2881)
2881 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2882)
2882 FORMAT(' THE SPECIFIED SHAPE PARAMETER, N, FOR THE',
1 'LEADS IN COIN TOSSING')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2884)
2884 FORMAT(' DISTRIBUTION MUST BE >= 1. ',
1 'SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2886)NPAR
2886 FORMAT(' THE SPECIFIED VALUE OF NPAR = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL LCTRAN(NRAN,NPAR,ISEED,Y)
GOTO2990
C
2890 CONTINUE
C
IHP='K '
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
IK=INT(VALUE(ILOCP)+0.5)
C
IF(IK.LT.1)THEN
WRITE(ICOUT,2891)
2891 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2892)
2892 FORMAT(' THE SPECIFIED SHAPE PARAMETER, K, FOR THE',
1 'LEADS IN COIN TOSSING')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2894)
2894 FORMAT(' DISTRIBUTION MUST BE >= 1. ',
1 'SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2896)IK
2896 FORMAT(' THE SPECIFIED VALUE OF K = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL MATRAN(NRAN,IK,ISEED,Y)
GOTO2990
C
2910 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,2911)
2911 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2912)
2912 FORMAT(' THE SPECIFIED SHAPE PARAMETER ALPHA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2913)
2913 FORMAT(' LOG-BETA DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2915)
2915 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2916)ALPHA
2916 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,2921)
2921 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2922)
2922 FORMAT(' THE SPECIFIED SHAPE PARAMETER BETA FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2924)
2924 FORMAT(' LOG-BETA DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2925)
2925 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2926)BETA
2926 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='C '
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
C=VALUE(ILOCP)
C
IF(C.LE.0.0)THEN
WRITE(ICOUT,2931)
2931 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2932)
2932 FORMAT(' THE SPECIFIED LOWER LIMIT PARAMETER C FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2934)
2934 FORMAT(' LOG-BETA DISTRIBUTION MUST BE POSITIVE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2935)
2935 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2936)C
2936 FORMAT(' THE SPECIFIED VALUE OF C = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='D '
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
DVAL=VALUE(ILOCP)
C
IF(DVAL.LE.C)THEN
WRITE(ICOUT,2941)
2941 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2942)
2942 FORMAT(' THE SPECIFIED UPPER LIMIT PARAMETER D FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2944)
2944 FORMAT(' LOG-BETA DISTRIBUTION MUST BE GREATER THAN ',
1 'THE LOWER LIMIT PARAMETER C;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2945)
2945 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2946)C
2946 FORMAT(' THE SPECIFIED VALUE OF C = ',G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2948)D
2948 FORMAT(' THE SPECIFIED VALUE OF D = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL LBERAN(NRAN,ALPHA,BETA,C,DVAL,ISEED,Y)
GOTO2990
C
2950 CONTINUE
C
IHP='THET'
IHP2='A '
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
THETA=VALUE(ILOCP)
C
IF(THETA.LE.0.0)THEN
WRITE(ICOUT,2951)
2951 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2952)
2952 FORMAT(' THE SPECIFIED SHAPE PARAMETER, THETA, FOR THE',
1 'POLYA-AEPPLI')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2954)
2954 FORMAT(' DISTRIBUTION MUST BE POSITIVE. SUCH WAS NOT ',
1 'THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2956)THETA
2956 FORMAT(' THE SPECIFIED VALUE OF THETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='P '
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
P=VALUE(ILOCP)
C
IF(P.LE.0.0 .OR. P.GE.1.0)THEN
WRITE(ICOUT,2961)
2961 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2962)
2962 FORMAT(' THE SPECIFIED SHAPE PARAMETER, P, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2964)
2964 FORMAT(' POLYA-AEPPLI DISTRIBUTION MUST BE IN THE ',
1 'INTERVAL (0,1). SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2966)P
2966 FORMAT(' THE SPECIFIED VALUE OF P = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL PAPRAN(NRAN,THETA,P,ISEED,Y)
GOTO2990
C
2970 CONTINUE
C
IHP='R '
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
IR=INT(VALUE(ILOCP)+0.5)
C
IF(IR.LT.0)THEN
WRITE(ICOUT,2971)
2971 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2972)
2972 FORMAT(' THE SPECIFIED SHAPE PARAMETER, R, FOR THE',
1 'LOST GAMES')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2974)
2974 FORMAT(' DISTRIBUTION MUST BE NON-NEGATIVE. SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2976)IR
2976 FORMAT(' THE SPECIFIED VALUE OF R = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='P '
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
P=VALUE(ILOCP)
C
IF(P.LE.0.5 .OR. P.GE.1.0)THEN
WRITE(ICOUT,2981)
2981 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2982)
2982 FORMAT(' THE SPECIFIED SHAPE PARAMETER, P, FOR THE ',
1 'LOST GAMES')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2984)
2984 FORMAT(' DISTRIBUTION MUST BE IN THE INTERVAL (0.5,1).',
1 ' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2986)P
2986 FORMAT(' THE SPECIFIED VALUE OF P = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL LOSRAN(NRAN,P,IR,ISEED,Y)
GOTO2990
C
3010 CONTINUE
C
IHP='THET'
IHP2='A '
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
THETA=VALUE(ILOCP)
C
IF(THETA.LE.0.0 .OR. THETA.GE.1.0)THEN
WRITE(ICOUT,3011)
3011 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3012)
3012 FORMAT(' THE SPECIFIED SHAPE PARAMETER, THETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3013)
3013 FORMAT(' GENERALIZED LOGARITHMIC SERIES DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3014)
3014 FORMAT(' MUST BE IN THE INTERVAL (0,1). SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3016)THETA
3016 FORMAT(' THE SPECIFIED VALUE OF THETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.1.0 .OR. BETA.GE.1.0/THETA)THEN
WRITE(ICOUT,3021)
3021 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3022)
3022 FORMAT(' THE SPECIFIED SHAPE PARAMETER, BETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3023)
3023 FORMAT(' GENERALIZED LOGARITHMIC SERIES DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3024)1.0/THETA
3024 FORMAT(' MUST BE IN THE INTERVAL (0.5,',G15.7,').',
1 ' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3026)P
3026 FORMAT(' THE SPECIFIED VALUE OF P = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GLSRAN(NRAN,THETA,BETA,ISEED,Y)
GOTO2990
C
3040 CONTINUE
C
IHP='THET'
IHP2='A '
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
THETA=VALUE(ILOCP)
C
IF(THETA.LE.0.0 .OR. THETA.GE.1.0)THEN
WRITE(ICOUT,3041)
3041 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3042)
3042 FORMAT(' THE SPECIFIED SHAPE PARAMETER, THETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3043)
3043 FORMAT(' GENERALIZED NEGATIVE BINOMIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3044)
3044 FORMAT(' MUST BE IN THE INTERVAL (0,1). SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3046)THETA
3046 FORMAT(' THE SPECIFIED VALUE OF THETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.1.0 .OR. BETA.GE.1.0/THETA)THEN
WRITE(ICOUT,3051)
3051 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3052)
3052 FORMAT(' THE SPECIFIED SHAPE PARAMETER, BETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3053)
3053 FORMAT(' GENERALIZED NEGATIVE BINOMIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3054)1.0/THETA
3054 FORMAT(' MUST BE IN THE INTERVAL (0.5,',G15.7,').',
1 ' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3056)BETA
3056 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='M '
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
AM=VALUE(ILOCP)
C
IF(AM.LE.0.0)THEN
WRITE(ICOUT,3061)
3061 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3062)
3062 FORMAT(' THE SPECIFIED SHAPE PARAMETER, M, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3063)
3063 FORMAT(' GENERALIZED NEGATIVE BINOMIAL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3064)
3064 FORMAT(' MUST BE POSITIVE. SUCH WAS NOT THE CASE ',
1 'HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3066)AM
3066 FORMAT(' THE SPECIFIED VALUE OF AM = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GNBRAN(NRAN,THETA,BETA,AM,ISEED,Y)
GOTO2990
C
3070 CONTINUE
C
IF(IGETDF.EQ.'THET')THEN
IHP='THET'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
SHAPE=VALUE(ILOCP)
C
IF(SHAPE.LE.0.0 .OR. SHAPE.GE.1.0)THEN
WRITE(ICOUT,3071)
3071 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3072)
3072 FORMAT(' THE SPECIFIED SHAPE PARAMETER, THETA, FOR ',
1 'THE GEETA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3074)
3074 FORMAT(' MUST BE IN THE INTERVAL (0,1). SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3076)SHAPE
3076 FORMAT(' THE SPECIFIED VALUE OF THETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
ELSE
IHP='MU '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
SHAPE=VALUE(ILOCP)
C
IF(SHAPE.LT.1.0)THEN
WRITE(ICOUT,3081)
3081 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3082)
3082 FORMAT(' THE SPECIFIED SHAPE PARAMETER, MU, FOR ',
1 'THE GEETA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3084)
3084 FORMAT(' MUST BE GREATER THAN OR EQUAL TO 1. SUCH ',
1 'WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3086)SHAPE
3086 FORMAT(' THE SPECIFIED VALUE OF MU = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(IGETDF.EQ.'THET')THEN
IF(BETA.LE.1.0 .OR. BETA.GE.1.0/SHAPE)THEN
WRITE(ICOUT,3091)
3091 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3092)
3092 FORMAT(' THE SPECIFIED SHAPE PARAMETER, BETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3093)
3093 FORMAT(' GEETA DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3094)1.0/SHAPE
3094 FORMAT(' MUST BE IN THE INTERVAL (1,',G15.7,').',
1 ' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3096)BETA
3096 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
ELSE
IF(BETA.LE.1.0)THEN
WRITE(ICOUT,3101)
3101 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3102)
3102 FORMAT(' THE SPECIFIED SHAPE PARAMETER, BETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3103)
3103 FORMAT(' GEETA DISTRIBUTION MUST BE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3104)
3104 FORMAT(' GREATER THAN 1. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3106)BETA
3106 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
ENDIF
C
CALL GETRAN(NRAN,SHAPE,BETA,IGETDF,ISEED,Y)
GOTO2990
C
3110 CONTINUE
C
IHP='P '
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
P=VALUE(ILOCP)
C
IF(P.LT.0.0 .OR. P.GT.1.0)THEN
WRITE(ICOUT,3111)
3111 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3112)
3112 FORMAT(' THE SPECIFIED SHAPE PARAMETER, P, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3113)
3113 FORMAT(' QUASI BINOMIAL TYPE I DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3114)
3114 FORMAT(' MUST BE IN THE INTERVAL (0,1). SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3116)P
3116 FORMAT(' THE SPECIFIED VALUE OF P = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='M '
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
AM=VALUE(ILOCP)
C
IF(AM.LT.0.0)THEN
WRITE(ICOUT,3121)
3121 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3122)
3122 FORMAT(' THE SPECIFIED SHAPE PARAMETER, M, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3123)
3123 FORMAT(' QUASI BINOMIAL TYPE I DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3124)
3124 FORMAT(' MUST BE POSITIVE. SUCH WAS NOT THE CASE ',
1 'HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3126)AM
3126 FORMAT(' THE SPECIFIED VALUE OF AM = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='PHI '
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
PHI=VALUE(ILOCP)
C
IM=INT(AM+0.5)
AM=REAL(IM)
ALOWLM=-P/AM
AUPPLM=(1.0-P)/AM
IF(PHI.LE.ALOWLM .OR. PHI.GE.AUPPLM)THEN
WRITE(ICOUT,3131)
3131 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3132)
3132 FORMAT(' THE SPECIFIED SHAPE PARAMETER, PHI, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3133)
3133 FORMAT(' QUASI BINOMIAL TYPE I DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3134)ALOWLM,AUPPLM
3134 FORMAT(' MUST BE IN THE INTERVAL (',
1 G15.7,',',G15.7,').',
1 ' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3136)PHI
3136 FORMAT(' THE SPECIFIED VALUE OF PHI = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL QBIRAN(NRAN,P,PHI,AM,ISEED,Y)
GOTO2990
C
3140 CONTINUE
C
IF(ICONDF.EQ.'THET')THEN
IHP='THET'
IHP2='A '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
SHAPE=VALUE(ILOCP)
C
IF(SHAPE.LE.0.0 .OR. SHAPE.GE.1.0)THEN
WRITE(ICOUT,3141)
3141 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3142)
3142 FORMAT(' THE SPECIFIED SHAPE PARAMETER, THETA, FOR ',
1 'THE CONSUL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3144)
3144 FORMAT(' MUST BE IN THE INTERVAL (0,1). SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3146)SHAPE
3146 FORMAT(' THE SPECIFIED VALUE OF THETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
ELSE
IHP='MU '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
SHAPE=VALUE(ILOCP)
C
IF(SHAPE.LT.0.0)THEN
WRITE(ICOUT,3151)
3151 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3152)
3152 FORMAT(' THE SPECIFIED SHAPE PARAMETER, MU, FOR ',
1 'THE CONSUL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3154)
3154 FORMAT(' MUST BE GREATER THAN OR EQUAL TO 1. SUCH ',
1 'WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3156)SHAPE
3156 FORMAT(' THE SPECIFIED VALUE OF MU = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
ENDIF
C
IHP='M '
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
AM=VALUE(ILOCP)
C
IF(ICONDF.EQ.'THET')THEN
IF(AM.LE.1.0 .OR. AM.GE.1.0/SHAPE)THEN
WRITE(ICOUT,3161)
3161 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3162)
3162 FORMAT(' THE SPECIFIED SHAPE PARAMETER, M, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3163)
3163 FORMAT(' CONSUL DISTRIBUTION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3164)1.0/SHAPE
3164 FORMAT(' MUST BE IN THE INTERVAL (0.5,',G15.7,').',
1 ' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3166)AM
3166 FORMAT(' THE SPECIFIED VALUE OF M = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
ELSE
IF(AM.LE.1.0)THEN
WRITE(ICOUT,3171)
3171 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3172)
3172 FORMAT(' THE SPECIFIED SHAPE PARAMETER, M, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3173)
3173 FORMAT(' CONSUL DISTRIBUTION MUST BE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3174)
3174 FORMAT(' GREATER THAN 1. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3176)AM
3176 FORMAT(' THE SPECIFIED VALUE OF M = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
ENDIF
C
CALL CONRAN(NRAN,SHAPE,AM,ICONDF,ISEED,Y)
GOTO2990
C
3180 CONTINUE
C
IHP='A '
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
A=VALUE(ILOCP)
C
IF(A.LE.0.0)THEN
WRITE(ICOUT,3181)
3181 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3182)
3182 FORMAT(' THE SPECIFIED SHAPE PARAMETER, A, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3183)
3183 FORMAT(' LAGRANGE KATZ DISTRIBUTION MUST BE POSITIVE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3184)
3184 FORMAT(' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3186)A
3186 FORMAT(' THE SPECIFIED VALUE OF A = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.GE.1.0)THEN
WRITE(ICOUT,3191)
3191 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3192)
3192 FORMAT(' THE SPECIFIED SHAPE PARAMETER, BETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3193)
3193 FORMAT(' LAGRANGE KATZ DISTRIBUTION MUST BE LESS THAN OR')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3194)1.0/THETA
3194 FORMAT(' OR EQUAL TO 1. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3196)BETA
3196 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='B '
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
B=VALUE(ILOCP)
C
IF(B.LE.-BETA)THEN
WRITE(ICOUT,3201)
3201 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3202)
3202 FORMAT(' THE SPECIFIED SHAPE PARAMETER, B, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3203)
3203 FORMAT(' LAGRANGE KATZ DISTRIBUTION MUST BE GREATER')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3204)
3204 FORMAT(' THAN OR EQUAL TO -BETA. SUCH WAS NOT THE ',
1 'CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3206)B
3206 FORMAT(' THE SPECIFIED VALUE OF B = ',G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3208)BETA
3208 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL LKRAN(NRAN,A,B,BETA,ISEED,Y)
GOTO2990
C
3210 CONTINUE
C
IHP='ALPH'
IHP2='A '
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
ALPHA=VALUE(ILOCP)
C
IF(ALPHA.LE.0.0)THEN
WRITE(ICOUT,3211)
3211 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3212)
3212 FORMAT(' THE SPECIFIED SHAPE PARAMETER, ALPHA, FOR')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3213)
3213 FORMAT(' THE KATZ DISTRIBUTION MUST BE POSITIVE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3214)
3214 FORMAT(' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3216)A
3216 FORMAT(' THE SPECIFIED VALUE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.GE.1.0)THEN
WRITE(ICOUT,3221)
3221 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3222)
3222 FORMAT(' THE SPECIFIED SHAPE PARAMETER, BETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3223)
3223 FORMAT(' KATZ DISTRIBUTION MUST BE LESS THAN OR')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3224)1.0/THETA
3224 FORMAT(' OR EQUAL TO 1. SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3226)BETA
3226 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
B=0.0
C
CALL LKRAN(NRAN,ALPHA,B,BETA,ISEED,Y)
GOTO2990
C
3230 CONTINUE
C
IHP='Q '
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
Q=VALUE(ILOCP)
C
IF(Q.LE.0.0 .OR. Q.GE.1.0)THEN
WRITE(ICOUT,3231)
3231 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3232)
3232 FORMAT(' THE SPECIFIED SHAPE PARAMETER, Q, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3233)
3233 FORMAT(' DISCRETE WEIBULL DISTRIBUTION MUST BE IN ',
1 'THE INTERVAL (0,1).')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3234)
3234 FORMAT(' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3236)Q
3236 FORMAT(' THE SPECIFIED VALUE OF Q = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='BETA'
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
BETA=VALUE(ILOCP)
C
IF(BETA.LE.0.0)THEN
WRITE(ICOUT,3241)
3241 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3242)
3242 FORMAT(' THE SPECIFIED SHAPE PARAMETER, BETA, FOR THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3243)
3243 FORMAT(' DISCRETE WEIBULL DISTRIBUTION MUST BE POSITIVE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3244)
3244 FORMAT(' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3246)BETA
3246 FORMAT(' THE SPECIFIED VALUE OF BETA = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL DIWRAN(NRAN,Q,BETA,ISEED,Y)
GOTO2990
C
3250 CONTINUE
C
IHP='J '
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
J=INT(VALUE(ILOCP)+0.5)
C
IF(J.LT.0)THEN
WRITE(ICOUT,3251)
3251 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3252)
3252 FORMAT(' THE SPECIFIED SHAPE PARAMETER, J, FOR THE',
1 'GENERALIZED LOST GAMES')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3254)
3254 FORMAT(' DISTRIBUTION MUST BE NON-NEGATIVE. SUCH WAS ',
1 'NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3256)J
3256 FORMAT(' THE SPECIFIED VALUE OF J = ',I8)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='P '
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
P=VALUE(ILOCP)
C
IF(P.LE.0.5 .OR. P.GE.1.0)THEN
WRITE(ICOUT,3261)
3261 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3262)
3262 FORMAT(' THE SPECIFIED SHAPE PARAMETER, P, FOR THE ',
1 'GENERALIZED LOST GAMES')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3264)
3264 FORMAT(' DISTRIBUTION MUST BE IN THE INTERVAL (0.5,1).',
1 ' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3266)P
3266 FORMAT(' THE SPECIFIED VALUE OF P = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
IHP='A '
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
A=VALUE(ILOCP)
C
IF(A.LE.0.0)THEN
WRITE(ICOUT,3271)
3271 FORMAT('***** ERROR IN DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3272)
3272 FORMAT(' THE SPECIFIED SHAPE PARAMETER, A, FOR THE ',
1 'GENERALIZED LOST GAMES')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3274)
3274 FORMAT(' DISTRIBUTION MUST BE POSITIVE. ',
1 ' SUCH WAS NOT THE CASE HERE;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3276)A
3276 FORMAT(' THE SPECIFIED VALUE OF A = ',G15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
ENDIF
C
CALL GLGRAN(NRAN,P,J,A,ISEED,Y)
GOTO2990
C
2990 CONTINUE
C
C ******************************************************
C ** STEP 8-- **
C ** IF CALLED FOR (THAT IS, IF IBUGA3 IS ON), **
C ** PRINT OUT THE INTERMEDIATE VARIABLE Y(.). **
C ** THIS IS USEFUL FOR DIAGNOSTIC PURPOSES **
C ** IN REVIEWING THE OUTPUT FROM THIS SUBROUTINE. **
C ******************************************************
C
ISTEPN='9'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IBUGA3.EQ.'ON')THEN
WRITE(ICOUT,4011)
4011 FORMAT('OUTPUT FROM MIDDLE OF DPRAND AFTER ALL XXXRAN ',
1 'HAVE BEEN CALLED--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4012)NRAN
4012 FORMAT('NRAN = ',I8)
CALL DPWRST('XXX','BUG ')
IF(NRAN.GE.1)THEN
DO4014I=1,NRAN
WRITE(ICOUT,4015)I,Y(I)
4015 FORMAT('I,Y(I) = ',I8,F12.5)
CALL DPWRST('XXX','BUG ')
4014 CONTINUE
ENDIF
ENDIF
C
C ******************************************************
C ** STEP 9-- **
C ** COPY THE RANDOM NUMBERS **
C ** FROM THE INTERMEDIATE VECTOR Y(.) **
C ** TO THE APPROPRIATE COLUMN **
C ** (BASED ON THE QUALIFIER--FULL, SUBSET, OR FOR) **
C ** IN THE INTERNAL DATAPLOT DATA TABLE. **
C ******************************************************
C
ISTEPN='10'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NS2=0
DO4060I=1,NIISUB
IJ=MAXN*(ICOLL-1)+I
IF(ISUB(I).EQ.0)GOTO4060
NS2=NS2+1
IF(ICOLL.LE.MAXCOL)V(IJ)=Y(NS2)
IF(ICOLL.EQ.MAXCP1)PRED(I)=Y(NS2)
IF(ICOLL.EQ.MAXCP2)RES(I)=Y(NS2)
IF(ICOLL.EQ.MAXCP3)YPLOT(I)=Y(NS2)
IF(ICOLL.EQ.MAXCP4)XPLOT(I)=Y(NS2)
IF(ICOLL.EQ.MAXCP5)X2PLOT(I)=Y(NS2)
IF(ICOLL.EQ.MAXCP6)TAGPLO(I)=Y(NS2)
IF(NS2.EQ.1)IROW1=I
IROWN=I
4060 CONTINUE
C
C *******************************************
C ** STEP 10-- **
C ** CARRY OUT THE LIST UPDATING AND **
C ** GENERATE THE INFORMATIVE PRINTING. **
C *******************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASEQ.EQ.'FULL'.AND.NEWNAM.EQ.'NO')NINEW=NLEFT
IF(ICASEQ.EQ.'FULL'.AND.NEWNAM.EQ.'YES')NINEW=MAXN
IF(ICASEQ.EQ.'SUBS'.AND.NEWNAM.EQ.'NO'.AND.
1NLEFT.GE.IROWN)NINEW=NLEFT
IF(ICASEQ.EQ.'SUBS'.AND.NEWNAM.EQ.'NO'.AND.
1NLEFT.LT.IROWN)NINEW=IROWN
IF(ICASEQ.EQ.'SUBS'.AND.NEWNAM.EQ.'YES')NINEW=IROWN
IF(ICASEQ.EQ.'FOR'.AND.NEWNAM.EQ.'NO'.AND.
1NLEFT.GE.IROWN)NINEW=NLEFT
IF(ICASEQ.EQ.'FOR'.AND.NEWNAM.EQ.'NO'.AND.
1NLEFT.LT.IROWN)NINEW=IROWN
IF(ICASEQ.EQ.'FOR'.AND.NEWNAM.EQ.'YES')NINEW=IROWN
C
IHNAME(ILISTL)=ILEFT
IHNAM2(ILISTL)=ILEFT2
IUSE(ILISTL)='V'
IVALUE(ILISTL)=ICOLL
VALUE(ILISTL)=ICOLL
IN(ILISTL)=NINEW
C
CCCCC IUSE(ICOLL)='V'
CCCCC IVALUE(ICOLL)=ICOLL
CCCCC VALUE(ICOLL)=ICOLL
CCCCC IN(ICOLL)=NINEW
C
IF(NEWNAM.EQ.'YES')NUMNAM=NUMNAM+1
IF(NEWNAM.EQ.'YES')NUMCOL=NUMCOL+1
C
DO4600J4=1,NUMNAM
IF(IUSE(J4).EQ.'V'.AND.IVALUE(J4).EQ.ICOLL)GOTO4605
GOTO4600
4605 CONTINUE
IUSE(J4)='V'
IVALUE(J4)=ICOLL
VALUE(J4)=ICOLL
IN(J4)=NINEW
4600 CONTINUE
C
IF(IPRINT.EQ.'OFF')GOTO4559
IF(IFEEDB.EQ.'OFF')GOTO4559
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4511)ILEFT,ILEFT2,NS2
4511 FORMAT('THE NUMBER OF VALUES GENERATED FOR ',
1'THE VARIABLE ',A4,A4,' = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
IJ=MAXN*(ICOLL-1)+IROW1
IF(ICOLL.LE.MAXCOL)THEN
WRITE(ICOUT,4521)ILEFT,ILEFT2,V(IJ),IROW1
4521 FORMAT('THE FIRST COMPUTED VALUE OF ',
1 A4,A4,' = ',E15.7,' (ROW ',I6,')')
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP1)THEN
WRITE(ICOUT,4521)ILEFT,ILEFT2,PRED(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP2)THEN
WRITE(ICOUT,4521)ILEFT,ILEFT2,RES(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP3)THEN
WRITE(ICOUT,4521)ILEFT,ILEFT2,YPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP4)THEN
WRITE(ICOUT,4521)ILEFT,ILEFT2,XPLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP5)THEN
WRITE(ICOUT,4521)ILEFT,ILEFT2,X2PLOT(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP6)THEN
WRITE(ICOUT,4521)ILEFT,ILEFT2,TAGPLO(IROW1),IROW1
CALL DPWRST('XXX','BUG ')
ENDIF
C
IJ=MAXN*(ICOLL-1)+IROWN
IF(NS2.NE.1)THEN
IF(ICOLL.LE.MAXCOL)THEN
WRITE(ICOUT,4531)NS2,ILEFT,ILEFT2,V(IJ),IROWN
4531 FORMAT('THE LAST (',I5,'-TH) COMPUTED VALUE OF ',
1 A4,A4,' = ',E15.7,' (ROW ',I6,')')
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP1)THEN
WRITE(ICOUT,4531)NS2,ILEFT,ILEFT2,PRED(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP2)THEN
WRITE(ICOUT,4531)NS2,ILEFT,ILEFT2,RES(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP3)THEN
WRITE(ICOUT,4531)NS2,ILEFT,ILEFT2,YPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP4)THEN
WRITE(ICOUT,4531)NS2,ILEFT,ILEFT2,XPLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP5)THEN
WRITE(ICOUT,4531)NS2,ILEFT,ILEFT2,X2PLOT(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ELSE IF(ICOLL.EQ.MAXCP6)THEN
WRITE(ICOUT,4531)NS2,ILEFT,ILEFT2,TAGPLO(IROWN),IROWN
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
IF(NS2.NE.1)GOTO4590
WRITE(ICOUT,4546)
4546 FORMAT('SINCE THE GENERATED SAMPLE SIZE WAS ONLY 1,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4542)
4542 FORMAT('THE ABOVE VALUE WAS THE SOLE VALUE COMPUTED.')
CALL DPWRST('XXX','BUG ')
4590 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4612)ILEFT,ILEFT2,ICOLL
4612 FORMAT('THE CURRENT COLUMN FOR ',
1'THE VARIABLE ',A4,A4,' = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4613)ILEFT,ILEFT2,NINEW
4613 FORMAT('THE CURRENT LENGTH OF ',
1'THE VARIABLE ',A4,A4,' = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
4559 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 DPRAND--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IFOUND,IERROR
9012 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)IBUGA3,IBUGQ
9013 FORMAT('IBUGA3,IBUGQ = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)ICASRA,ISEED,ILOCNU
9014 FORMAT('ICASRA,ISEED,ILOCNU = ',A4,I8,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)NS2
9015 FORMAT('NS2 = ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9016)NS,NIISUB,NRAN
9016 FORMAT('NS,NIISUB,NRAN = ',I8,I8,I8)
CALL DPWRST('XXX','BUG ')
CCCCC THE FOLLOWING 2 LINES WERE ADDED MAY 1993
WRITE(ICOUT,9021)MINMAX
9021 FORMAT('MINMAX = ',I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRAW(X,FREQ,NX,IWRITE,MAXNXT,Y,NY,IBUGA3,IERROR)
C
C PURPOSE--SOMETIMES DATA IS MADE AVAILABLE AS A FREQUENCY
C TABLE. HOWEVER, FOR A PARTICULAR TYPE OF ANALSYSIS
C YOU MAY NEED THE DATA IN RAW (I.E., IF YOU HAVE
C A FREQUENCY OF 10 FOR THE VALUE 1, SIMPLY GENERATE
C THE VALUE 1 TEN TIMES). NEED TO CHECK FOR ARRAY
C EXCEEDING MAXIMUM ALLOWABLE.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/4
C ORIGINAL VERSION--APRIL 2004.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IWRITE
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
C
C---------------------------------------------------------------------
C
DIMENSION X(*)
DIMENSION Y(*)
DIMENSION FREQ(*)
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='DPRA'
ISUBN2='W '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPRAW--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,53)NX,MAXNXT
53 FORMAT('NX,MAXNXT = ',2I8)
CALL DPWRST('XXX','BUG ')
DO55I=1,NX
WRITE(ICOUT,56)I,X(I),FREQ(I)
56 FORMAT('I,X(I), FREQ(I) = ',I8,2E15.7)
CALL DPWRST('XXX','BUG ')
55 CONTINUE
ENDIF
C
C **************************************
C ** CONVERT FROM FREQUENCY TO RAW **
C **************************************
C
IF(NX.LT.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,101)
101 FORMAT('***** ERROR--NUMBER OF CLASSES FOR FREQUENCY TO ',
1 'RAW COMMAND IS LESS THAN 1.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
C
NY=0
DO200I=1,NX
C
NTEMP=INT(FREQ(I)+0.5)
IF(NTEMP.LT.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,201)I,FREQ(I)
201 FORMAT('***** ERROR--CLASS ',I8,' HAS NON-POSITIVE ',
1 'FREQUENCY (= ',F12.5,')')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
C
NTOT=NY+NTEMP
IF(NTOT.GT.MAXNXT)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,203)MAXNXT
203 FORMAT('***** ERROR--MAXIMUM NUMBER OF ROWS (',I8,') ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,205)
205 FORMAT(' IN CONVERTING FREQUENCY DATA TO RAW DATA.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
C
DO210J=1,NTEMP
NY=NY+1
Y(NY)=X(I)
210 CONTINUE
200 CONTINUE
C
C *****************
C ** STEP 90-- **
C ** EXIT. **
C *****************
C
9000 CONTINUE
C
IF(IBUGA3.EQ.'ON')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPRAW--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGA3,IERROR
9012 FORMAT('IBUGA3,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)NX,NY
9013 FORMAT('NX,NY = ',2I8)
CALL DPWRST('XXX','BUG ')
DO9015I=1,NY
WRITE(ICOUT,9016)I,Y(I)
9016 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
9015 CONTINUE
ENDIF
C
RETURN
END
SUBROUTINE DPRBCO(IHARG,NUMARG,IDERBC,MAXREG,IREBCO,
1IBUGP2,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE REGION BORDER COLORS = THE COLORS
C OF THE BORDER LINE AROUND THE REGIONS.
C THESE ARE LOCATED IN THE VECTOR IREBCO(.).
C INPUT ARGUMENTS--IHARG (A CHARACTER VECTOR)
C --NUMARG
C --IDERBC
C --MAXREG
C --IBUGP2 ('ON' OR 'OFF' )
C OUTPUT ARGUMENTS--IREBCO (A CHARACTER VECTOR)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
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 --MAY 1994. PRINT MESSAGE STATING THAT
C THIS IS AN OBSOLETE COMMAND
C (USE LINE COLOR COMMAND).
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 IHARG
CHARACTER*4 IDERBC
CHARACTER*4 IREBCO
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 IREBCO(*)
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='DPRB'
ISUBN2='CO '
C
NUMREG=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 DPRBCO--')
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)MAXREG,NUMREG
53 FORMAT('MAXREG,NUMREG = ',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)IDERBC
55 FORMAT('IDERBC = ',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)IREBCO(1)
70 FORMAT('IREBCO(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO75I=1,10
WRITE(ICOUT,76)I,IREBCO(I)
76 FORMAT('I,IREBCO(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
NUMREG=1
IREBCO(1)=IDERBC
GOTO1270
C
1220 CONTINUE
NUMREG=NUMARG-2
IF(NUMREG.GT.MAXREG)NUMREG=MAXREG
DO1225I=1,NUMREG
J=I+2
IHOLD1=IHARG(J)
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2=IDERBC
IF(IHOLD1.EQ.'OFF')IHOLD2=IDERBC
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDERBC
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDERBC
IREBCO(I)=IHOLD2
1225 CONTINUE
GOTO1270
C
1270 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1279
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO1278I=1,NUMREG
WRITE(ICOUT,1276)I,IREBCO(I)
1276 FORMAT('THE COLOR OF REGION BORDER ',I6,
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1278 CONTINUE
1279 CONTINUE
IFOUND='YES'
GOTO9000
C
C **************************
C ** STEP 3-- **
C ** TREAT THE ALL CASE **
C **************************
C
1300 CONTINUE
ISTEPN='3'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMREG=MAXREG
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2=IDERBC
IF(IHOLD1.EQ.'OFF')IHOLD2=IDERBC
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDERBC
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDERBC
DO1315I=1,NUMREG
IREBCO(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)IREBCO(I)
1316 FORMAT('THE COLOR OF ALL REGION BORDERS',
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
IFOUND='YES'
CCCCC FOLLOWING SECTION ADDED MAY 1994.
WRITE(ICOUT,2100)
2100 FORMAT('****** WARNING. THE REGION BORDER COLOR COMMAND IS')
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,2101)
2101 FORMAT(' NOT USED. THE BORDER COLOR FOR REGIONS IS')
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,2102)
2102 FORMAT(' SET WITH THE LINE COLOR COMMAND. ******')
CALL DPWRST('XXX','BUG')
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 DPRBCO--')
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)MAXREG,NUMREG
9013 FORMAT('MAXREG,NUMREG = ',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)IDERBC
9015 FORMAT('IDERBC = ',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)IREBCO(1)
9030 FORMAT('IREBCO(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO9035I=1,10
WRITE(ICOUT,9036)I,IREBCO(I)
9036 FORMAT('I,IREBCO(I) = ',I8,2X,A4)
CALL DPWRST('XXX','BUG ')
9035 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRBLI(IHARG,IHARG2,NUMARG,IDERBL,MAXREG,IREBLI,
CCCCC AUGUST 1995. ADD IHARG2 FOR DASH2, ETC
CCCCC SUBROUTINE DPRBLI(IHARG,NUMARG,IDERBL,MAXREG,IREBLI,
1IBUGP2,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE BORDER LINES = THE LINES TYPES
C OF THE BORDER AROUND THE REGIONS.
C THESE ARE LOCATED IN THE VECTOR IREBLI(.).
C INPUT ARGUMENTS--IHARG (A CHARACTER VECTOR)
C --NUMARG
C --IDERBL
C --MAXREG
C --IBUGP2 ('ON' OR 'OFF' )
C OUTPUT ARGUMENTS--IREBLI (A CHARACTER VECTOR)
C --IFOUND ('YES' OR 'NO' )
C --IERROR ('YES' OR 'NO' )
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
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 --MAY 1994. PRINT MESSAGE SAYING TO USE THE
C LINE COMMAND INSTEAD.
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 IDERBL
CHARACTER*4 IREBLI
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 IREBLI(*)
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='DPRB'
ISUBN2='LI '
C
NUMREG=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 DPRBLI--')
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)MAXREG,NUMREG
53 FORMAT('MAXREG,NUMREG = ',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)IDERBL
55 FORMAT('IDERBL = ',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)IREBLI(1)
70 FORMAT('IREBLI(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO75I=1,10
WRITE(ICOUT,76)I,IREBLI(I)
76 FORMAT('I,IREBLI(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
NUMREG=1
IREBLI(1)=' '
GOTO1270
C
1220 CONTINUE
NUMREG=NUMARG-3
IF(NUMREG.GT.MAXREG)NUMREG=MAXREG
DO1225I=1,NUMREG
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=IDERBL
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDERBL
IREBLI(I)=IHOLD2
1225 CONTINUE
GOTO1270
C
1270 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1279
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO1278I=1,NUMREG
WRITE(ICOUT,1276)I,IREBLI(I)
1276 FORMAT('THE LINE TYPE FOR REGION BORDER ',I6,
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1278 CONTINUE
1279 CONTINUE
IFOUND='YES'
GOTO9000
C
C **************************
C ** STEP 3-- **
C ** TREAT THE ALL CASE **
C **************************
C
1300 CONTINUE
ISTEPN='3'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMREG=MAXREG
IHOLD2=IHOLD1
IF(IHOLD1.EQ.'ON')IHOLD2='SOLI'
IF(IHOLD1.EQ.'OFF')IHOLD2=' '
IF(IHOLD1.EQ.'AUTO')IHOLD2=IDERBL
IF(IHOLD1.EQ.'DEFA')IHOLD2=IDERBL
DO1315I=1,NUMREG
IREBLI(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)IREBLI(I)
1316 FORMAT('THE LINE TYPE FOR ALL REGION BORDERS',
1' HAS JUST BEEN SET TO ',A4)
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
IFOUND='YES'
CCCCC ADD FOLLOWING SECTION MAY 1994.
WRITE(ICOUT,2100)
2100 FORMAT('****** WARNING. THE REGION BORDER LINE COMMAND IS')
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,2101)
2101 FORMAT(' NOT USED. THE BORDER LINE STYLE FOR')
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,2102)
2102 FORMAT(' REGIONS IS SET WITH THE LINE COLOR COMMAND.*****')
CALL DPWRST('XXX','BUG')
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 DPRBLI--')
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)MAXREG,NUMREG
9013 FORMAT('MAXREG,NUMREG = ',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)IDERBL
9015 FORMAT('IDERBL = ',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)IREBLI(1)
9030 FORMAT('IREBLI(1) = ',A4)
CALL DPWRST('XXX','BUG ')
DO9035I=1,10
WRITE(ICOUT,9036)I,IREBLI(I)
9036 FORMAT('I,IREBLI(I) = ',I8,2X,A4)
CALL DPWRST('XXX','BUG ')
9035 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRBTH(IHARG,IARGT,ARG,NUMARG,PDERBT,MAXREG,PREBTH,
1IBUGP2,IFOUND,IERROR)
C
C PURPOSE--DEFINE THE REGION (BORDER) LINE THICKNESSES = THE THICKNESSES
C OF THE BORDER LINE AROUND THE REGIONS.
C THESE ARE LOCATED IN THE VECTOR PREBTH(.).
C INPUT ARGUMENTS--IHARG (A CHARACTER VECTOR)
C --IARGT (A CHARACTER VECTOR)
C --ARG
C --NUMARG
C --PDERBT
C --MAXREG
C --IBUGP2 ('ON' OR 'OFF' )
C OUTPUT ARGUMENTS--PREBTH (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 CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
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 --MAY 1994. PRINT MESSAGE TO USE LINE
C THICKNESS COMMAND INSTEAD.
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 PREBTH(*)
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='DPRB'
ISUBN2='TH '
C
NUMREG=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 DPRBTH--')
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)MAXREG,NUMREG
53 FORMAT('MAXREG,NUMREG = ',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)PDERBT
55 FORMAT('PDERBT = ',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)PREBTH(1)
70 FORMAT('PREBTH(1) = ',E15.7)
CALL DPWRST('XXX','BUG ')
DO75I=1,10
WRITE(ICOUT,76)I,PREBTH(I)
76 FORMAT('I,PREBTH(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=PDERBT
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
NUMREG=1
PREBTH(1)=PDERBT
GOTO1270
C
1220 CONTINUE
NUMREG=NUMARG-2
IF(NUMREG.GT.MAXREG)NUMREG=MAXREG
DO1225I=1,NUMREG
J=I+2
IHOLD1=IHARG(J)
HOLD1=ARG(J)
HOLD2=HOLD1
IF(IHOLD1.EQ.'ON')HOLD2=PDERBT
IF(IHOLD1.EQ.'OFF')HOLD2=PDERBT
IF(IHOLD1.EQ.'AUTO')HOLD2=PDERBT
IF(IHOLD1.EQ.'DEFA')HOLD2=PDERBT
PREBTH(I)=HOLD2
1225 CONTINUE
GOTO1270
C
1270 CONTINUE
IF(IFEEDB.EQ.'OFF')GOTO1279
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
DO1278I=1,NUMREG
WRITE(ICOUT,1276)I,PREBTH(I)
1276 FORMAT('THE THICKNESS OF REGION BORDER ',I6,
1' HAS JUST BEEN SET TO ',E15.7)
CALL DPWRST('XXX','BUG ')
1278 CONTINUE
1279 CONTINUE
IFOUND='YES'
GOTO9000
C
C **************************
C ** STEP 3-- **
C ** TREAT THE ALL CASE **
C **************************
C
1300 CONTINUE
ISTEPN='3'
IF(IBUGP2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMREG=MAXREG
HOLD2=HOLD1
IF(IHOLD1.EQ.'ON')HOLD2=PDERBT
IF(IHOLD1.EQ.'OFF')HOLD2=PDERBT
IF(IHOLD1.EQ.'AUTO')HOLD2=PDERBT
IF(IHOLD1.EQ.'DEFA')HOLD2=PDERBT
DO1315I=1,NUMREG
PREBTH(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)PREBTH(I)
1316 FORMAT('THE THICKNESS OF ALL REGION BORDERS',
1' HAS JUST BEEN SET TO ',E15.7)
CALL DPWRST('XXX','BUG ')
1319 CONTINUE
IFOUND='YES'
CCCCC ADD FOLLOWING SECTION MAY 1994.
WRITE(ICOUT,2100)
2100 FORMAT('****** WARNING. THE REGION THICKNESS COMMAND IS')
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,2101)
2101 FORMAT(' NOT USED. THE BORDER THICKNESS FOR REGIONS')
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,2102)
2102 FORMAT(' IS SET WITH THE LINE THICKNESS COMMAND. ******')
CALL DPWRST('XXX','BUG')
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 DPRBTH--')
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)MAXREG,NUMREG
9013 FORMAT('MAXREG,NUMREG = ',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)PDERBT
9015 FORMAT('PDERBT = ',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)PREBTH(1)
9030 FORMAT('PREBTH(1) = ',E15.7)
CALL DPWRST('XXX','BUG ')
DO9035I=1,10
WRITE(ICOUT,9036)I,PREBTH(I)
9036 FORMAT('I,PREBTH(I) = ',I8,2X,E15.7)
CALL DPWRST('XXX','BUG ')
9035 CONTINUE
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRCIL(ICHAR2,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
C
C PURPOSE--DEFINE AND SET THE HERSHEY CHARACTER SET COORDINATES
C FOR ROMAN COMPLEX ITALIC LOWER CASE.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/4
C ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--MARCH 1981.
C UPDATED --MAY 1982.
C UPDATED --MARCH 1987.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICHAR2
CHARACTER*4 IOP
CHARACTER*4 IBUGD2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IOP(*)
DIMENSION X(*)
DIMENSION Y(*)
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
NUMCO=1
ISTART=1
ISTOP=1
NC=1
C
C ******************************************
C ** TREAT THE ROMAN SIMPLEX UPPER CASE **
C ** HERSHEY CHARACTER SET CASE **
C ******************************************
C
C
IF(IBUGD2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPRCIL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICHAR2
52 FORMAT('ICHAR2 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,59)IBUGD2,IFOUND,IERROR
59 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************************************
C ** STEP 1-- **
C ** SEARCH FOR THE INPUT CHARACTER(S). **
C ** MAP THE CHARACTER(S) INTO A NUMERIC VALUE. **
C **************************************************
C
CALL DPCHAL(ICHAR2,ICHARN,IBUGD2,IFOUND)
IF(IFOUND.EQ.'NO')GOTO9000
C
IF(ICHARN.LE.10)GOTO1010
GOTO1019
1010 CONTINUE
CALL DRCIL1(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1019 CONTINUE
C
IF(11.LE.ICHARN.AND.ICHARN.LE.20)GOTO1020
GOTO1029
1020 CONTINUE
CALL DRCIL2(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1029 CONTINUE
C
IF(ICHARN.GE.21)GOTO1030
GOTO1039
1030 CONTINUE
CALL DRCIL3(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1039 CONTINUE
C
IFOUND='NO'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGD2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPRCIL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGD2,IFOUND,IERROR
9012 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)ICHAR2,ICHARN
9013 FORMAT('ICHAR2,ICHARN = ',A4,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)ISTART,ISTOP,NC,NUMCO
9014 FORMAT('ISTART,ISTOP,NC,NUMCO = ',4I8)
CALL DPWRST('XXX','BUG ')
IF(NUMCO.GE.1.AND.NUMCO.LE.1000)GOTO9019
DO9015I=1,NUMCO
WRITE(ICOUT,9016)I,IOP(I),X(I),Y(I)
9016 FORMAT('I,IOP(I),X(I),Y(I) = ',I8,2X,A4,2F10.2)
CALL DPWRST('XXX','BUG ')
9015 CONTINUE
9019 CONTINUE
WRITE(ICOUT,9021)IXMINS,IXMAXS,IXDELS
9021 FORMAT('IXMINS,IXMAXS,IXDELS = ',3I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRCIN(ICHAR2,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
C
C PURPOSE--DEFINE AND SET THE HERSHEY CHARACTER SET COORDINATES
C FOR ROMAN COMPLEX ITALIC NUMERIC.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/4
C ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--MARCH 1981.
C UPDATED --MAY 1982.
C UPDATED --MARCH 1987.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICHAR2
CHARACTER*4 IOP
CHARACTER*4 IBUGD2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IOP(*)
DIMENSION X(*)
DIMENSION Y(*)
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
NUMCO=1
ISTART=1
ISTOP=1
NC=1
C
C ******************************************
C ** TREAT THE ROMAN SIMPLEX UPPER CASE **
C ** HERSHEY CHARACTER SET CASE **
C ******************************************
C
C
IF(IBUGD2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPRCIN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICHAR2
52 FORMAT('ICHAR2 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,59)IBUGD2,IFOUND,IERROR
59 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************************************
C ** STEP 1-- **
C ** SEARCH FOR THE INPUT CHARACTER(S). **
C ** MAP THE CHARACTER(S) INTO A NUMERIC VALUE. **
C **************************************************
C
CALL DPCHNU(ICHAR2,ICHARN,IBUGD2,IFOUND)
IF(IFOUND.EQ.'NO')GOTO9000
C
IF(ICHARN.LE.8)GOTO1010
GOTO1019
1010 CONTINUE
CALL DRCIN1(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1019 CONTINUE
C
IF(ICHARN.GE.9)GOTO1020
GOTO1029
1020 CONTINUE
CALL DRCIN2(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1029 CONTINUE
C
IFOUND='NO'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGD2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPRCIN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGD2,IFOUND,IERROR
9012 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)ICHAR2,ICHARN
9013 FORMAT('ICHAR2,ICHARN = ',A4,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)ISTART,ISTOP,NC,NUMCO
9014 FORMAT('ISTART,ISTOP,NC,NUMCO = ',4I8)
CALL DPWRST('XXX','BUG ')
IF(NUMCO.GE.1.AND.NUMCO.LE.1000)GOTO9019
DO9015I=1,NUMCO
WRITE(ICOUT,9016)I,IOP(I),X(I),Y(I)
9016 FORMAT('I,IOP(I),X(I),Y(I) = ',I8,2X,A4,2F10.2)
CALL DPWRST('XXX','BUG ')
9015 CONTINUE
9019 CONTINUE
WRITE(ICOUT,9021)IXMINS,IXMAXS,IXDELS
9021 FORMAT('IXMINS,IXMAXS,IXDELS = ',3I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRCIU(ICHAR2,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
C
C PURPOSE--DEFINE AND SET THE HERSHEY CHARACTER SET COORDINATES
C FOR ROMAN COMPLEX ITALIC UPPER CASE.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/4
C ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--MARCH 1981.
C UPDATED --MAY 1982.
C UPDATED --MARCH 1987.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICHAR2
CHARACTER*4 IOP
CHARACTER*4 IBUGD2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IOP(*)
DIMENSION X(*)
DIMENSION Y(*)
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
NUMCO=1
ISTART=1
ISTOP=1
NC=1
C
C ******************************************
C ** TREAT THE ROMAN SIMPLEX UPPER CASE **
C ** HERSHEY CHARACTER SET CASE **
C ******************************************
C
C
IF(IBUGD2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPRCIU--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICHAR2
52 FORMAT('ICHAR2 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,59)IBUGD2,IFOUND,IERROR
59 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************************************
C ** STEP 1-- **
C ** SEARCH FOR THE INPUT CHARACTER(S). **
C ** MAP THE CHARACTER(S) INTO A NUMERIC VALUE. **
C **************************************************
C
CALL DPCHAL(ICHAR2,ICHARN,IBUGD2,IFOUND)
IF(IFOUND.EQ.'NO')GOTO9000
C
IF(ICHARN.LE.14)GOTO1010
GOTO1019
1010 CONTINUE
CALL DRCIU1(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1019 CONTINUE
C
IF(ICHARN.GE.15)GOTO1020
GOTO1029
1020 CONTINUE
CALL DRCIU2(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1029 CONTINUE
C
IFOUND='NO'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGD2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPRCIU--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGD2,IFOUND,IERROR
9012 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)ICHAR2,ICHARN
9013 FORMAT('ICHAR2,ICHARN = ',A4,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)ISTART,ISTOP,NC,NUMCO
9014 FORMAT('ISTART,ISTOP,NC,NUMCO = ',4I8)
CALL DPWRST('XXX','BUG ')
IF(NUMCO.GE.1.AND.NUMCO.LE.1000)GOTO9019
DO9015I=1,NUMCO
WRITE(ICOUT,9016)I,IOP(I),X(I),Y(I)
9016 FORMAT('I,IOP(I),X(I),Y(I) = ',I8,2X,A4,2F10.2)
CALL DPWRST('XXX','BUG ')
9015 CONTINUE
9019 CONTINUE
WRITE(ICOUT,9021)IXMINS,IXMAXS,IXDELS
9021 FORMAT('IXMINS,IXMAXS,IXDELS = ',3I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRCL(ICHAR2,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
C
C PURPOSE--DEFINE AND SET THE HERSHEY CHARACTER SET COORDINATES
C FOR ROMAN COMPLEX LOWER CASE.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/4
C ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--MARCH 1981.
C UPDATED --MAY 1982.
C UPDATED --MARCH 1987.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICHAR2
CHARACTER*4 IOP
CHARACTER*4 IBUGD2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IOP(*)
DIMENSION X(*)
DIMENSION Y(*)
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
NUMCO=1
ISTART=1
ISTOP=1
NC=1
C
C ******************************************
C ** TREAT THE ROMAN SIMPLEX UPPER CASE **
C ** HERSHEY CHARACTER SET CASE **
C ******************************************
C
C
IF(IBUGD2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPRCL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICHAR2
52 FORMAT('ICHAR2 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,59)IBUGD2,IFOUND,IERROR
59 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************************************
C ** STEP 1-- **
C ** SEARCH FOR THE INPUT CHARACTER(S). **
C ** MAP THE CHARACTER(S) INTO A NUMERIC VALUE. **
C **************************************************
C
CALL DPCHAL(ICHAR2,ICHARN,IBUGD2,IFOUND)
IF(IFOUND.EQ.'NO')GOTO9000
C
IF(ICHARN.LE.12)GOTO1010
GOTO1019
1010 CONTINUE
CALL DRCL1(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1019 CONTINUE
C
IF(ICHARN.GE.13)GOTO1020
GOTO1029
1020 CONTINUE
CALL DRCL2(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1029 CONTINUE
C
IFOUND='NO'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGD2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPRCL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGD2,IFOUND,IERROR
9012 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)ICHAR2,ICHARN
9013 FORMAT('ICHAR2,ICHARN = ',A4,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)ISTART,ISTOP,NC,NUMCO
9014 FORMAT('ISTART,ISTOP,NC,NUMCO = ',4I8)
CALL DPWRST('XXX','BUG ')
IF(NUMCO.GE.1.AND.NUMCO.LE.1000)GOTO9019
DO9015I=1,NUMCO
WRITE(ICOUT,9016)I,IOP(I),X(I),Y(I)
9016 FORMAT('I,IOP(I),X(I),Y(I) = ',I8,2X,A4,2F10.2)
CALL DPWRST('XXX','BUG ')
9015 CONTINUE
9019 CONTINUE
WRITE(ICOUT,9021)IXMINS,IXMAXS,IXDELS
9021 FORMAT('IXMINS,IXMAXS,IXDELS = ',3I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRCN(ICHAR2,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
C
C PURPOSE--DEFINE AND SET THE HERSHEY CHARACTER SET COORDINATES
C FOR ROMAN COMPLEX NUMERIC.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/4
C ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--MARCH 1981.
C UPDATED --MAY 1982.
C UPDATED --MARCH 1987.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICHAR2
CHARACTER*4 IOP
CHARACTER*4 IBUGD2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IOP(*)
DIMENSION X(*)
DIMENSION Y(*)
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
NUMCO=1
ISTART=1
ISTOP=1
NC=1
C
C ******************************************
C ** TREAT THE ROMAN SIMPLEX UPPER CASE **
C ** HERSHEY CHARACTER SET CASE **
C ******************************************
C
C
IF(IBUGD2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPRCN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICHAR2
52 FORMAT('ICHAR2 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,59)IBUGD2,IFOUND,IERROR
59 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************************************
C ** STEP 1-- **
C ** SEARCH FOR THE INPUT CHARACTER(S). **
C ** MAP THE CHARACTER(S) INTO A NUMERIC VALUE. **
C **************************************************
C
CALL DPCHNU(ICHAR2,ICHARN,IBUGD2,IFOUND)
IF(IFOUND.EQ.'NO')GOTO9000
C
IF(ICHARN.LE.9)GOTO1010
GOTO1019
1010 CONTINUE
CALL DRCN1(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1019 CONTINUE
C
IF(ICHARN.GE.10)GOTO1020
GOTO1029
1020 CONTINUE
CALL DRCN2(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1029 CONTINUE
C
IFOUND='NO'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGD2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPRCN--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGD2,IFOUND,IERROR
9012 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)ICHAR2,ICHARN
9013 FORMAT('ICHAR2,ICHARN = ',A4,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)ISTART,ISTOP,NC,NUMCO
9014 FORMAT('ISTART,ISTOP,NC,NUMCO = ',4I8)
CALL DPWRST('XXX','BUG ')
IF(NUMCO.GE.1.AND.NUMCO.LE.1000)GOTO9019
DO9015I=1,NUMCO
WRITE(ICOUT,9016)I,IOP(I),X(I),Y(I)
9016 FORMAT('I,IOP(I),X(I),Y(I) = ',I8,2X,A4,2F10.2)
CALL DPWRST('XXX','BUG ')
9015 CONTINUE
9019 CONTINUE
WRITE(ICOUT,9021)IXMINS,IXMAXS,IXDELS
9021 FORMAT('IXMINS,IXMAXS,IXDELS = ',3I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRCS(ICHAR2,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
C
C PURPOSE--DEFINE AND SET THE HERSHEY CHARACTER SET COORDINATES
C FOR ROMAN COMPLEX SYMBOLS.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/4
C ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--MARCH 1981.
C UPDATED --MARCH 1982.
C UPDATED --MAY 1982.
C UPDATED --MARCH 1987.
C UPDATED --MAY 1987.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICHAR2
CHARACTER*4 IOP
CHARACTER*4 IBUGD2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 IOPERA
C
C---------------------------------------------------------------------
C
DIMENSION IOP(*)
DIMENSION X(*)
DIMENSION Y(*)
C
DIMENSION IOPERA(300)
DIMENSION IX(300)
DIMENSION IY(300)
C
DIMENSION IXMIND(30)
DIMENSION IXMAXD(30)
DIMENSION IXDELD(30)
DIMENSION ISTARD(30)
DIMENSION NUMCOO(30)
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
C DEFINE CHARACTER 2210--. (PERIOD)
C
DATA IOPERA( 1),IX( 1),IY( 1)/'MOVE', 0, -7/
DATA IOPERA( 2),IX( 2),IY( 2)/'DRAW', -1, -8/
DATA IOPERA( 3),IX( 3),IY( 3)/'DRAW', 0, -9/
DATA IOPERA( 4),IX( 4),IY( 4)/'DRAW', 1, -8/
DATA IOPERA( 5),IX( 5),IY( 5)/'DRAW', 0, -7/
C
DATA IXMIND( 1)/ -5/
DATA IXMAXD( 1)/ 5/
DATA IXDELD( 1)/ 10/
DATA ISTARD( 1)/ 1/
DATA NUMCOO( 1)/ 5/
C
C DEFINE CHARACTER 2211--, (COMMA)
C
DATA IOPERA( 6),IX( 6),IY( 6)/'MOVE', 0, -9/
DATA IOPERA( 7),IX( 7),IY( 7)/'DRAW', -1, -8/
DATA IOPERA( 8),IX( 8),IY( 8)/'DRAW', 0, -7/
DATA IOPERA( 9),IX( 9),IY( 9)/'DRAW', 1, -8/
DATA IOPERA( 10),IX( 10),IY( 10)/'DRAW', 1, -10/
DATA IOPERA( 11),IX( 11),IY( 11)/'DRAW', 0, -12/
DATA IOPERA( 12),IX( 12),IY( 12)/'DRAW', -1, -13/
C
DATA IXMIND( 2)/ -5/
DATA IXMAXD( 2)/ 5/
DATA IXDELD( 2)/ 10/
DATA ISTARD( 2)/ 6/
DATA NUMCOO( 2)/ 7/
C
C DEFINE CHARACTER 2212--: (COLON)
C
DATA IOPERA( 13),IX( 13),IY( 13)/'MOVE', 0, 5/
DATA IOPERA( 14),IX( 14),IY( 14)/'DRAW', -1, 4/
DATA IOPERA( 15),IX( 15),IY( 15)/'DRAW', 0, 3/
DATA IOPERA( 16),IX( 16),IY( 16)/'DRAW', 1, 4/
DATA IOPERA( 17),IX( 17),IY( 17)/'DRAW', 0, 5/
DATA IOPERA( 18),IX( 18),IY( 18)/'MOVE', 0, -7/
DATA IOPERA( 19),IX( 19),IY( 19)/'DRAW', -1, -8/
DATA IOPERA( 20),IX( 20),IY( 20)/'DRAW', 0, -9/
DATA IOPERA( 21),IX( 21),IY( 21)/'DRAW', 1, -8/
DATA IOPERA( 22),IX( 22),IY( 22)/'DRAW', 0, -7/
C
DATA IXMIND( 3)/ -5/
DATA IXMAXD( 3)/ 5/
DATA IXDELD( 3)/ 10/
DATA ISTARD( 3)/ 13/
DATA NUMCOO( 3)/ 10/
C
C DEFINE CHARACTER 2213--; (SEMICOLON)
C
DATA IOPERA( 23),IX( 23),IY( 23)/'MOVE', 0, 5/
DATA IOPERA( 24),IX( 24),IY( 24)/'DRAW', -1, 4/
DATA IOPERA( 25),IX( 25),IY( 25)/'DRAW', 0, 3/
DATA IOPERA( 26),IX( 26),IY( 26)/'DRAW', 1, 4/
DATA IOPERA( 27),IX( 27),IY( 27)/'DRAW', 0, 5/
DATA IOPERA( 28),IX( 28),IY( 28)/'MOVE', 0, -9/
DATA IOPERA( 29),IX( 29),IY( 29)/'DRAW', -1, -8/
DATA IOPERA( 30),IX( 30),IY( 30)/'DRAW', 0, -7/
DATA IOPERA( 31),IX( 31),IY( 31)/'DRAW', 1, -8/
DATA IOPERA( 32),IX( 32),IY( 32)/'DRAW', 1, -10/
DATA IOPERA( 33),IX( 33),IY( 33)/'DRAW', 0, -12/
DATA IOPERA( 34),IX( 34),IY( 34)/'DRAW', -1, -13/
C
DATA IXMIND( 4)/ -5/
DATA IXMAXD( 4)/ 5/
DATA IXDELD( 4)/ 10/
DATA ISTARD( 4)/ 23/
DATA NUMCOO( 4)/ 12/
C
C DEFINE CHARACTER 2214--! (EXCLAMATION POINT)
C
DATA IOPERA( 35),IX( 35),IY( 35)/'MOVE', 0, 12/
DATA IOPERA( 36),IX( 36),IY( 36)/'DRAW', -1, 10/
DATA IOPERA( 37),IX( 37),IY( 37)/'DRAW', 0, -2/
DATA IOPERA( 38),IX( 38),IY( 38)/'DRAW', 1, 10/
DATA IOPERA( 39),IX( 39),IY( 39)/'DRAW', 0, 12/
DATA IOPERA( 40),IX( 40),IY( 40)/'MOVE', 0, 10/
DATA IOPERA( 41),IX( 41),IY( 41)/'DRAW', 0, 4/
DATA IOPERA( 42),IX( 42),IY( 42)/'MOVE', 0, -7/
DATA IOPERA( 43),IX( 43),IY( 43)/'DRAW', -1, -8/
DATA IOPERA( 44),IX( 44),IY( 44)/'DRAW', 0, -9/
DATA IOPERA( 45),IX( 45),IY( 45)/'DRAW', 1, -8/
DATA IOPERA( 46),IX( 46),IY( 46)/'DRAW', 0, -7/
C
DATA IXMIND( 5)/ -5/
DATA IXMAXD( 5)/ 5/
DATA IXDELD( 5)/ 10/
DATA ISTARD( 5)/ 35/
DATA NUMCOO( 5)/ 12/
C
C DEFINE CHARACTER 2215--? (QUESTION MARK)
C
DATA IOPERA( 47),IX( 47),IY( 47)/'MOVE', -5, 8/
DATA IOPERA( 48),IX( 48),IY( 48)/'DRAW', -4, 7/
DATA IOPERA( 49),IX( 49),IY( 49)/'DRAW', -5, 6/
DATA IOPERA( 50),IX( 50),IY( 50)/'DRAW', -6, 7/
DATA IOPERA( 51),IX( 51),IY( 51)/'DRAW', -6, 8/
DATA IOPERA( 52),IX( 52),IY( 52)/'DRAW', -5, 10/
DATA IOPERA( 53),IX( 53),IY( 53)/'DRAW', -4, 11/
DATA IOPERA( 54),IX( 54),IY( 54)/'DRAW', -2, 12/
DATA IOPERA( 55),IX( 55),IY( 55)/'DRAW', 1, 12/
DATA IOPERA( 56),IX( 56),IY( 56)/'DRAW', 4, 11/
DATA IOPERA( 57),IX( 57),IY( 57)/'DRAW', 5, 10/
DATA IOPERA( 58),IX( 58),IY( 58)/'DRAW', 6, 8/
DATA IOPERA( 59),IX( 59),IY( 59)/'DRAW', 6, 6/
DATA IOPERA( 60),IX( 60),IY( 60)/'DRAW', 5, 4/
DATA IOPERA( 61),IX( 61),IY( 61)/'DRAW', 4, 3/
DATA IOPERA( 62),IX( 62),IY( 62)/'DRAW', 0, 1/
DATA IOPERA( 63),IX( 63),IY( 63)/'DRAW', 0, -2/
DATA IOPERA( 64),IX( 64),IY( 64)/'MOVE', 1, 12/
DATA IOPERA( 65),IX( 65),IY( 65)/'DRAW', 3, 11/
DATA IOPERA( 66),IX( 66),IY( 66)/'DRAW', 4, 10/
DATA IOPERA( 67),IX( 67),IY( 67)/'DRAW', 5, 8/
DATA IOPERA( 68),IX( 68),IY( 68)/'DRAW', 5, 6/
DATA IOPERA( 69),IX( 69),IY( 69)/'DRAW', 4, 4/
DATA IOPERA( 70),IX( 70),IY( 70)/'DRAW', 2, 2/
DATA IOPERA( 71),IX( 71),IY( 71)/'MOVE', 0, -7/
DATA IOPERA( 72),IX( 72),IY( 72)/'DRAW', -1, -8/
DATA IOPERA( 73),IX( 73),IY( 73)/'DRAW', 0, -9/
DATA IOPERA( 74),IX( 74),IY( 74)/'DRAW', 1, -8/
DATA IOPERA( 75),IX( 75),IY( 75)/'DRAW', 0, -7/
C
DATA IXMIND( 6)/ -9/
DATA IXMAXD( 6)/ 9/
DATA IXDELD( 6)/ 18/
DATA ISTARD( 6)/ 47/
DATA NUMCOO( 6)/ 29/
C
C DEFINE CHARACTER 2272--& (AMPERSAND)
C
DATA IOPERA( 76),IX( 76),IY( 76)/'MOVE', 9, 4/
DATA IOPERA( 77),IX( 77),IY( 77)/'DRAW', 8, 3/
DATA IOPERA( 78),IX( 78),IY( 78)/'DRAW', 9, 2/
DATA IOPERA( 79),IX( 79),IY( 79)/'DRAW', 10, 3/
DATA IOPERA( 80),IX( 80),IY( 80)/'DRAW', 10, 4/
DATA IOPERA( 81),IX( 81),IY( 81)/'DRAW', 9, 5/
DATA IOPERA( 82),IX( 82),IY( 82)/'DRAW', 8, 5/
DATA IOPERA( 83),IX( 83),IY( 83)/'DRAW', 7, 4/
DATA IOPERA( 84),IX( 84),IY( 84)/'DRAW', 6, 2/
DATA IOPERA( 85),IX( 85),IY( 85)/'DRAW', 4, -3/
DATA IOPERA( 86),IX( 86),IY( 86)/'DRAW', 2, -6/
DATA IOPERA( 87),IX( 87),IY( 87)/'DRAW', 0, -8/
DATA IOPERA( 88),IX( 88),IY( 88)/'DRAW', -2, -9/
DATA IOPERA( 89),IX( 89),IY( 89)/'DRAW', -5, -9/
DATA IOPERA( 90),IX( 90),IY( 90)/'DRAW', -8, -8/
DATA IOPERA( 91),IX( 91),IY( 91)/'DRAW', -9, -6/
DATA IOPERA( 92),IX( 92),IY( 92)/'DRAW', -9, -3/
DATA IOPERA( 93),IX( 93),IY( 93)/'DRAW', -8, -1/
DATA IOPERA( 94),IX( 94),IY( 94)/'DRAW', -2, 3/
DATA IOPERA( 95),IX( 95),IY( 95)/'DRAW', 0, 5/
DATA IOPERA( 96),IX( 96),IY( 96)/'DRAW', 1, 7/
DATA IOPERA( 97),IX( 97),IY( 97)/'DRAW', 1, 9/
DATA IOPERA( 98),IX( 98),IY( 98)/'DRAW', 0, 11/
DATA IOPERA( 99),IX( 99),IY( 99)/'DRAW', -2, 12/
DATA IOPERA( 100),IX( 100),IY( 100)/'DRAW', -4, 11/
DATA IOPERA( 101),IX( 101),IY( 101)/'DRAW', -5, 9/
DATA IOPERA( 102),IX( 102),IY( 102)/'DRAW', -5, 7/
DATA IOPERA( 103),IX( 103),IY( 103)/'DRAW', -4, 4/
DATA IOPERA( 104),IX( 104),IY( 104)/'DRAW', -2, 1/
DATA IOPERA( 105),IX( 105),IY( 105)/'DRAW', 3, -6/
DATA IOPERA( 106),IX( 106),IY( 106)/'DRAW', 5, -8/
DATA IOPERA( 107),IX( 107),IY( 107)/'DRAW', 8, -9/
DATA IOPERA( 108),IX( 108),IY( 108)/'DRAW', 9, -9/
DATA IOPERA( 109),IX( 109),IY( 109)/'DRAW', 10, -8/
DATA IOPERA( 110),IX( 110),IY( 110)/'DRAW', 10, -7/
DATA IOPERA( 111),IX( 111),IY( 111)/'MOVE', -5, -9/
DATA IOPERA( 112),IX( 112),IY( 112)/'DRAW', -7, -8/
DATA IOPERA( 113),IX( 113),IY( 113)/'DRAW', -8, -6/
DATA IOPERA( 114),IX( 114),IY( 114)/'DRAW', -8, -3/
DATA IOPERA( 115),IX( 115),IY( 115)/'DRAW', -7, -1/
DATA IOPERA( 116),IX( 116),IY( 116)/'DRAW', -5, 1/
DATA IOPERA( 117),IX( 117),IY( 117)/'MOVE', -5, 7/
DATA IOPERA( 118),IX( 118),IY( 118)/'DRAW', -4, 5/
DATA IOPERA( 119),IX( 119),IY( 119)/'DRAW', 4, -6/
DATA IOPERA( 120),IX( 120),IY( 120)/'DRAW', 6, -8/
DATA IOPERA( 121),IX( 121),IY( 121)/'DRAW', 8, -9/
C
DATA IXMIND( 7)/ -12/
DATA IXMAXD( 7)/ 13/
DATA IXDELD( 7)/ 25/
DATA ISTARD( 7)/ 76/
DATA NUMCOO( 7)/ 46/
C
C DEFINE CHARACTER 2274--$ (DOLLAR SIGN)
C
DATA IOPERA( 122),IX( 122),IY( 122)/'MOVE', -2, 16/
DATA IOPERA( 123),IX( 123),IY( 123)/'DRAW', -2, -13/
DATA IOPERA( 124),IX( 124),IY( 124)/'MOVE', 2, 16/
DATA IOPERA( 125),IX( 125),IY( 125)/'DRAW', 2, -13/
DATA IOPERA( 126),IX( 126),IY( 126)/'MOVE', 6, 9/
DATA IOPERA( 127),IX( 127),IY( 127)/'DRAW', 5, 8/
DATA IOPERA( 128),IX( 128),IY( 128)/'DRAW', 6, 7/
DATA IOPERA( 129),IX( 129),IY( 129)/'DRAW', 7, 8/
DATA IOPERA( 130),IX( 130),IY( 130)/'DRAW', 7, 9/
DATA IOPERA( 131),IX( 131),IY( 131)/'DRAW', 5, 11/
DATA IOPERA( 132),IX( 132),IY( 132)/'DRAW', 2, 12/
DATA IOPERA( 133),IX( 133),IY( 133)/'DRAW', -2, 12/
DATA IOPERA( 134),IX( 134),IY( 134)/'DRAW', -5, 11/
DATA IOPERA( 135),IX( 135),IY( 135)/'DRAW', -7, 9/
DATA IOPERA( 136),IX( 136),IY( 136)/'DRAW', -7, 7/
DATA IOPERA( 137),IX( 137),IY( 137)/'DRAW', -6, 5/
DATA IOPERA( 138),IX( 138),IY( 138)/'DRAW', -5, 4/
DATA IOPERA( 139),IX( 139),IY( 139)/'DRAW', -3, 3/
DATA IOPERA( 140),IX( 140),IY( 140)/'DRAW', 3, 1/
DATA IOPERA( 141),IX( 141),IY( 141)/'DRAW', 5, 0/
DATA IOPERA( 142),IX( 142),IY( 142)/'DRAW', 7, -2/
DATA IOPERA( 143),IX( 143),IY( 143)/'MOVE', -7, 7/
DATA IOPERA( 144),IX( 144),IY( 144)/'DRAW', -5, 5/
DATA IOPERA( 145),IX( 145),IY( 145)/'DRAW', -3, 4/
DATA IOPERA( 146),IX( 146),IY( 146)/'DRAW', 3, 2/
DATA IOPERA( 147),IX( 147),IY( 147)/'DRAW', 5, 1/
DATA IOPERA( 148),IX( 148),IY( 148)/'DRAW', 6, 0/
DATA IOPERA( 149),IX( 149),IY( 149)/'DRAW', 7, -2/
DATA IOPERA( 150),IX( 150),IY( 150)/'DRAW', 7, -6/
DATA IOPERA( 151),IX( 151),IY( 151)/'DRAW', 5, -8/
DATA IOPERA( 152),IX( 152),IY( 152)/'DRAW', 2, -9/
DATA IOPERA( 153),IX( 153),IY( 153)/'DRAW', -2, -9/
DATA IOPERA( 154),IX( 154),IY( 154)/'DRAW', -5, -8/
DATA IOPERA( 155),IX( 155),IY( 155)/'DRAW', -7, -6/
DATA IOPERA( 156),IX( 156),IY( 156)/'DRAW', -7, -5/
DATA IOPERA( 157),IX( 157),IY( 157)/'DRAW', -6, -4/
DATA IOPERA( 158),IX( 158),IY( 158)/'DRAW', -5, -5/
DATA IOPERA( 159),IX( 159),IY( 159)/'DRAW', -6, -6/
C
DATA IXMIND( 8)/ -10/
DATA IXMAXD( 8)/ 10/
DATA IXDELD( 8)/ 20/
DATA ISTARD( 8)/ 122/
DATA NUMCOO( 8)/ 38/
C
C DEFINE CHARACTER 2220--/ (SLASH)
C
DATA IOPERA( 160),IX( 160),IY( 160)/'MOVE', 9, 16/
DATA IOPERA( 161),IX( 161),IY( 161)/'DRAW', -9, -16/
C
DATA IXMIND( 9)/ -11/
DATA IXMAXD( 9)/ 11/
DATA IXDELD( 9)/ 22/
DATA ISTARD( 9)/ 160/
DATA NUMCOO( 9)/ 2/
C
C DEFINE CHARACTER 2221--( (LEFT PARENTHESES)
C
DATA IOPERA( 162),IX( 162),IY( 162)/'MOVE', 4, 16/
DATA IOPERA( 163),IX( 163),IY( 163)/'DRAW', 2, 14/
DATA IOPERA( 164),IX( 164),IY( 164)/'DRAW', 0, 11/
DATA IOPERA( 165),IX( 165),IY( 165)/'DRAW', -2, 7/
DATA IOPERA( 166),IX( 166),IY( 166)/'DRAW', -3, 2/
DATA IOPERA( 167),IX( 167),IY( 167)/'DRAW', -3, -2/
DATA IOPERA( 168),IX( 168),IY( 168)/'DRAW', -2, -7/
DATA IOPERA( 169),IX( 169),IY( 169)/'DRAW', 0, -11/
DATA IOPERA( 170),IX( 170),IY( 170)/'DRAW', 2, -14/
DATA IOPERA( 171),IX( 171),IY( 171)/'DRAW', 4, -16/
DATA IOPERA( 172),IX( 172),IY( 172)/'MOVE', 2, 14/
DATA IOPERA( 173),IX( 173),IY( 173)/'DRAW', 0, 10/
DATA IOPERA( 174),IX( 174),IY( 174)/'DRAW', -1, 7/
DATA IOPERA( 175),IX( 175),IY( 175)/'DRAW', -2, 2/
DATA IOPERA( 176),IX( 176),IY( 176)/'DRAW', -2, -2/
DATA IOPERA( 177),IX( 177),IY( 177)/'DRAW', -1, -7/
DATA IOPERA( 178),IX( 178),IY( 178)/'DRAW', 0, -10/
DATA IOPERA( 179),IX( 179),IY( 179)/'DRAW', 2, -14/
C
DATA IXMIND( 10)/ -7/
DATA IXMAXD( 10)/ 7/
DATA IXDELD( 10)/ 14/
DATA ISTARD( 10)/ 162/
DATA NUMCOO( 10)/ 18/
C
C DEFINE CHARACTER 2222--) (RIGHT PARENTHESES)
C
DATA IOPERA( 180),IX( 180),IY( 180)/'MOVE', -4, 16/
DATA IOPERA( 181),IX( 181),IY( 181)/'DRAW', -2, 14/
DATA IOPERA( 182),IX( 182),IY( 182)/'DRAW', 0, 11/
DATA IOPERA( 183),IX( 183),IY( 183)/'DRAW', 2, 7/
DATA IOPERA( 184),IX( 184),IY( 184)/'DRAW', 3, 2/
DATA IOPERA( 185),IX( 185),IY( 185)/'DRAW', 3, -2/
DATA IOPERA( 186),IX( 186),IY( 186)/'DRAW', 2, -7/
DATA IOPERA( 187),IX( 187),IY( 187)/'DRAW', 0, -11/
DATA IOPERA( 188),IX( 188),IY( 188)/'DRAW', -2, -14/
DATA IOPERA( 189),IX( 189),IY( 189)/'DRAW', -4, -16/
DATA IOPERA( 190),IX( 190),IY( 190)/'MOVE', -2, 14/
DATA IOPERA( 191),IX( 191),IY( 191)/'DRAW', 0, 10/
DATA IOPERA( 192),IX( 192),IY( 192)/'DRAW', 1, 7/
DATA IOPERA( 193),IX( 193),IY( 193)/'DRAW', 2, 2/
DATA IOPERA( 194),IX( 194),IY( 194)/'DRAW', 2, -2/
DATA IOPERA( 195),IX( 195),IY( 195)/'DRAW', 1, -7/
DATA IOPERA( 196),IX( 196),IY( 196)/'DRAW', 0, -10/
DATA IOPERA( 197),IX( 197),IY( 197)/'DRAW', -2, -14/
C
DATA IXMIND( 11)/ -7/
DATA IXMAXD( 11)/ 7/
DATA IXDELD( 11)/ 14/
DATA ISTARD( 11)/ 180/
DATA NUMCOO( 11)/ 18/
C
C DEFINE CHARACTER 2219--* (ASTERISK)
C
DATA IOPERA( 198),IX( 198),IY( 198)/'MOVE', 0, 12/
DATA IOPERA( 199),IX( 199),IY( 199)/'DRAW', 0, 0/
DATA IOPERA( 200),IX( 200),IY( 200)/'MOVE', -5, 9/
DATA IOPERA( 201),IX( 201),IY( 201)/'DRAW', 5, 3/
DATA IOPERA( 202),IX( 202),IY( 202)/'MOVE', 5, 9/
DATA IOPERA( 203),IX( 203),IY( 203)/'DRAW', -5, 3/
C
DATA IXMIND( 12)/ -8/
DATA IXMAXD( 12)/ 8/
DATA IXDELD( 12)/ 16/
DATA ISTARD( 12)/ 198/
DATA NUMCOO( 12)/ 6/
C
C DEFINE CHARACTER 2231--- (HYPHEN OR MINUS SIGN)
C
DATA IOPERA( 204),IX( 204),IY( 204)/'MOVE', -9, 0/
DATA IOPERA( 205),IX( 205),IY( 205)/'DRAW', 9, 0/
C
DATA IXMIND( 13)/ -13/
DATA IXMAXD( 13)/ 13/
DATA IXDELD( 13)/ 26/
DATA ISTARD( 13)/ 204/
DATA NUMCOO( 13)/ 2/
C
C DEFINE CHARACTER 2232--+ (PLUS SIGN)
C
DATA IOPERA( 206),IX( 206),IY( 206)/'MOVE', 0, 9/
DATA IOPERA( 207),IX( 207),IY( 207)/'DRAW', 0, -9/
DATA IOPERA( 208),IX( 208),IY( 208)/'MOVE', -9, 0/
DATA IOPERA( 209),IX( 209),IY( 209)/'DRAW', 9, 0/
C
DATA IXMIND( 14)/ -13/
DATA IXMAXD( 14)/ 13/
DATA IXDELD( 14)/ 26/
DATA ISTARD( 14)/ 206/
DATA NUMCOO( 14)/ 4/
C
C DEFINE CHARACTER 2238--= (EQUAL SIGN)
C
DATA IOPERA( 210),IX( 210),IY( 210)/'MOVE', -9, 3/
DATA IOPERA( 211),IX( 211),IY( 211)/'DRAW', 9, 3/
DATA IOPERA( 212),IX( 212),IY( 212)/'MOVE', -9, -3/
DATA IOPERA( 213),IX( 213),IY( 213)/'DRAW', 9, -3/
C
DATA IXMIND( 15)/ -13/
DATA IXMAXD( 15)/ 13/
DATA IXDELD( 15)/ 26/
DATA ISTARD( 15)/ 210/
DATA NUMCOO( 15)/ 4/
C
C DEFINE CHARACTER 2216--' (SINGLE QUOTE)
C
DATA IOPERA( 214),IX( 214),IY( 214)/'MOVE', 0, 12/
DATA IOPERA( 215),IX( 215),IY( 215)/'DRAW', -1, 5/
DATA IOPERA( 216),IX( 216),IY( 216)/'MOVE', 1, 12/
DATA IOPERA( 217),IX( 217),IY( 217)/'DRAW', -1, 5/
C
DATA IXMIND( 16)/ -4/
DATA IXMAXD( 16)/ 4/
DATA IXDELD( 16)/ 8/
DATA ISTARD( 16)/ 214/
DATA NUMCOO( 16)/ 4/
C
C DEFINE CHARACTER 2217-- (DOUBLE QUOTE)
C
DATA IOPERA( 218),IX( 218),IY( 218)/'MOVE', -4, 12/
DATA IOPERA( 219),IX( 219),IY( 219)/'DRAW', -5, 5/
DATA IOPERA( 220),IX( 220),IY( 220)/'MOVE', -3, 12/
DATA IOPERA( 221),IX( 221),IY( 221)/'DRAW', -5, 5/
DATA IOPERA( 222),IX( 222),IY( 222)/'MOVE', 4, 12/
DATA IOPERA( 223),IX( 223),IY( 223)/'DRAW', 3, 5/
DATA IOPERA( 224),IX( 224),IY( 224)/'MOVE', 5, 12/
DATA IOPERA( 225),IX( 225),IY( 225)/'DRAW', 3, 5/
C
DATA IXMIND( 17)/ -8/
DATA IXMAXD( 17)/ 8/
DATA IXDELD( 17)/ 16/
DATA ISTARD( 17)/ 218/
DATA NUMCOO( 17)/ 8/
C
C DEFINE CHARACTER 2218-- (DEGREES)
C
DATA IOPERA( 226),IX( 226),IY( 226)/'MOVE', -1, 12/
DATA IOPERA( 227),IX( 227),IY( 227)/'DRAW', -3, 11/
DATA IOPERA( 228),IX( 228),IY( 228)/'DRAW', -4, 9/
DATA IOPERA( 229),IX( 229),IY( 229)/'DRAW', -4, 7/
DATA IOPERA( 230),IX( 230),IY( 230)/'DRAW', -3, 5/
DATA IOPERA( 231),IX( 231),IY( 231)/'DRAW', -1, 4/
DATA IOPERA( 232),IX( 232),IY( 232)/'DRAW', 1, 4/
DATA IOPERA( 233),IX( 233),IY( 233)/'DRAW', 3, 5/
DATA IOPERA( 234),IX( 234),IY( 234)/'DRAW', 4, 7/
DATA IOPERA( 235),IX( 235),IY( 235)/'DRAW', 4, 9/
DATA IOPERA( 236),IX( 236),IY( 236)/'DRAW', 3, 11/
DATA IOPERA( 237),IX( 237),IY( 237)/'DRAW', 1, 12/
DATA IOPERA( 238),IX( 238),IY( 238)/'DRAW', -1, 12/
C
DATA IXMIND( 18)/ -7/
DATA IXMAXD( 18)/ 7/
DATA IXDELD( 18)/ 14/
DATA ISTARD( 18)/ 226/
DATA NUMCOO( 18)/ 13/
C
C DEFINE CHARACTER 2747-- (NO SPACE BLANK)
C
DATA IOPERA( 239),IX( 239),IY( 239)/'MOVE', 0, -32/
DATA IOPERA( 240),IX( 240),IY( 240)/'MOVE', 0, -32/
C
DATA IXMIND( 19)/ 0/
DATA IXMAXD( 19)/ 0/
DATA IXDELD( 19)/ 0/
DATA ISTARD( 19)/ 239/
DATA NUMCOO( 19)/ 2/
C
C DEFINE CHARACTER 2748-- (HALF SPACE BLANK)
C
DATA IOPERA( 241),IX( 241),IY( 241)/'MOVE', -4, -32/
DATA IOPERA( 242),IX( 242),IY( 242)/'MOVE', 4, -32/
C
DATA IXMIND( 20)/ -4/
DATA IXMAXD( 20)/ 4/
DATA IXDELD( 20)/ 8/
DATA ISTARD( 20)/ 241/
DATA NUMCOO( 20)/ 2/
C
C DEFINE CHARACTER 2749-- (FULL SPACE BLANK)
C
DATA IOPERA( 243),IX( 243),IY( 243)/'MOVE', -8, -32/
DATA IOPERA( 244),IX( 244),IY( 244)/'MOVE', 8, -32/
C
DATA IXMIND( 21)/ -8/
DATA IXMAXD( 21)/ 8/
DATA IXDELD( 21)/ 16/
DATA ISTARD( 21)/ 243/
DATA NUMCOO( 21)/ 2/
C
C DEFINE CHARACTER 2252-- (LEFT APOSTRAPHE)
C
DATA IOPERA( 245),IX( 245),IY( 245)/'MOVE', 1, 12/
DATA IOPERA( 246),IX( 246),IY( 246)/'DRAW', 0, 11/
DATA IOPERA( 247),IX( 247),IY( 247)/'DRAW', -1, 9/
DATA IOPERA( 248),IX( 248),IY( 248)/'DRAW', -1, 7/
DATA IOPERA( 249),IX( 249),IY( 249)/'DRAW', 0, 6/
DATA IOPERA( 250),IX( 250),IY( 250)/'DRAW', 1, 7/
DATA IOPERA( 251),IX( 251),IY( 251)/'DRAW', 0, 8/
C
DATA IXMIND( 22)/ -5/
DATA IXMAXD( 22)/ 5/
DATA IXDELD( 22)/ 10/
DATA ISTARD( 22)/ 245/
DATA NUMCOO( 22)/ 7/
C
C DEFINE CHARACTER 2251-- (RIGHT APOSTRAPHE)
C
DATA IOPERA( 252),IX( 252),IY( 252)/'MOVE', 0, 10/
DATA IOPERA( 253),IX( 253),IY( 253)/'DRAW', -1, 11/
DATA IOPERA( 254),IX( 254),IY( 254)/'DRAW', 0, 12/
DATA IOPERA( 255),IX( 255),IY( 255)/'DRAW', 1, 11/
DATA IOPERA( 256),IX( 256),IY( 256)/'DRAW', 1, 9/
DATA IOPERA( 257),IX( 257),IY( 257)/'DRAW', 0, 7/
DATA IOPERA( 258),IX( 258),IY( 258)/'DRAW', -1, 6/
C
DATA IXMIND( 23)/ -5/
DATA IXMAXD( 23)/ 5/
DATA IXDELD( 23)/ 10/
DATA ISTARD( 23)/ 252/
DATA NUMCOO( 23)/ 7/
C
C DEFINE CHARACTER XXX--| (KEYBOARD VERTICAL BAR)
C
DATA IOPERA( 259),IX( 259),IY( 259)/'MOVE', 0, 12/
DATA IOPERA( 260),IX( 260),IY( 260)/'DRAW', 0, -9/
C
C
DATA IXMIND( 24)/ -4/
DATA IXMAXD( 24)/ 4/
DATA IXDELD( 24)/ 8/
DATA ISTARD( 24)/ 259/
DATA NUMCOO( 24)/ 2/
C
C-----START POINT-----------------------------------------------------
C
IFOUND='NO'
IERROR='NO'
C
NUMCO=1
ISTART=1
ISTOP=1
NC=1
C
C ******************************************
C ******************************************
C ** TREAT THE ROMAN SIMPLEX UPPER CASE **
C ** HERSHEY CHARACTER SET CASE **
C ******************************************
C ******************************************
C
C
IF(IBUGD2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPRCS--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICHAR2
52 FORMAT('ICHAR2 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,59)IBUGD2,IFOUND,IERROR
59 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************************************
C **************************************************
C ** STEP 1-- **
C ** SEARCH FOR THE INPUT CHARACTER(S). **
C ** MAP THE CHARACTER(S) INTO A NUMERIC VALUE. **
C **************************************************
C **************************************************
C
CALL DPCHSY(ICHAR2,ICHARN,IBUGD2,IFOUND)
IF(IFOUND.EQ.'NO')GOTO9000
GOTO1000
C
C **************************************
C **************************************
C ** STEP 2-- **
C ** EXTRACT THE COORDINATES **
C ** FOR THIS PARTICULAR CHARACTER. **
C **************************************
C **************************************
C
1000 CONTINUE
ISTART=ISTARD(ICHARN)
NC=NUMCOO(ICHARN)
ISTOP=ISTART+NC-1
J=0
DO1100I=ISTART,ISTOP
J=J+1
IOP(J)=IOPERA(I)
X(J)=IX(I)
Y(J)=IY(I)
1100 CONTINUE
NUMCO=J
IXMINS=IXMIND(ICHARN)
IXMAXS=IXMAXD(ICHARN)
IXDELS=IXDELD(ICHARN)
C
GOTO9000
C
C *****************
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C *****************
C
9000 CONTINUE
IF(IBUGD2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPRCS--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGD2,IFOUND,IERROR
9012 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)ICHAR2,ICHARN
9013 FORMAT('ICHAR2,ICHARN = ',A4,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)ISTART,ISTOP,NC,NUMCO
9014 FORMAT('ISTART,ISTOP,NC,NUMCO = ',4I8)
CALL DPWRST('XXX','BUG ')
IF(NUMCO.GE.1.AND.NUMCO.LE.1000)GOTO9019
DO9015I=1,NUMCO
WRITE(ICOUT,9016)I,IOP(I),X(I),Y(I)
9016 FORMAT('I,IOP(I),X(I),Y(I) = ',I8,2X,A4,2F10.2)
CALL DPWRST('XXX','BUG ')
9015 CONTINUE
9019 CONTINUE
WRITE(ICOUT,9021)IXMINS,IXMAXS,IXDELS
9021 FORMAT('IXMINS,IXMAXS,IXDELS = ',3I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPRCSL(ICHAR2,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
C
C PURPOSE--DEFINE AND SET THE HERSHEY CHARACTER SET COORDINATES
C FOR ROMAN COMPLEX SCRIPT LOWER CASE.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C CENTER FOR APPLIED MATHEMATICS
C NATIONAL BUREAU OF STANDARDS
C WASHINGTON, D. C. 20234
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL BUREAU OF STANDARDS.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--87/4
C ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--MARCH 1981.
C UPDATED --MAY 1982.
C UPDATED --MARCH 1987.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICHAR2
CHARACTER*4 IOP
CHARACTER*4 IBUGD2
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
C---------------------------------------------------------------------
C
DIMENSION IOP(*)
DIMENSION X(*)
DIMENSION Y(*)
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
NUMCO=1
ISTART=1
ISTOP=1
NC=1
C
C ******************************************
C ** TREAT THE ROMAN SIMPLEX UPPER CASE **
C ** HERSHEY CHARACTER SET CASE **
C ******************************************
C
C
IF(IBUGD2.EQ.'OFF')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPRCSL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)ICHAR2
52 FORMAT('ICHAR2 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,59)IBUGD2,IFOUND,IERROR
59 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
90 CONTINUE
C
C **************************************************
C ** STEP 1-- **
C ** SEARCH FOR THE INPUT CHARACTER(S). **
C ** MAP THE CHARACTER(S) INTO A NUMERIC VALUE. **
C **************************************************
C
CALL DPCHAL(ICHAR2,ICHARN,IBUGD2,IFOUND)
IF(IFOUND.EQ.'NO')GOTO9000
C
IF(ICHARN.LE.12)GOTO1010
GOTO1019
1010 CONTINUE
CALL DRCSL1(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1019 CONTINUE
C
IF(13.LE.ICHARN.AND.ICHARN.LE.23)GOTO1020
GOTO1029
1020 CONTINUE
CALL DRCSL2(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1029 CONTINUE
C
IF(ICHARN.GE.24)GOTO1030
GOTO1039
1030 CONTINUE
CALL DRCSL3(ICHARN,IOP,X,Y,NUMCO,IXMINS,IXMAXS,IXDELS,
1IBUGD2,IFOUND,IERROR)
GOTO9000
1039 CONTINUE
C
IFOUND='NO'
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGD2.EQ.'OFF')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPRCSL--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGD2,IFOUND,IERROR
9012 FORMAT('IBUGD2,IFOUND,IERROR = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)ICHAR2,ICHARN
9013 FORMAT('ICHAR2,ICHARN = ',A4,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)ISTART,ISTOP,NC,NUMCO
9014 FORMAT('ISTART,ISTOP,NC,NUMCO = ',4I8)
CALL DPWRST('XXX','BUG ')
IF(NUMCO.GE.1.AND.NUMCO.LE.1000)GOTO9019
DO9015I=1,NUMCO
WRITE(ICOUT,9016)I,IOP(I),X(I),Y(I)
9016 FORMAT('I,IOP(I),X(I),Y(I) = ',I8,2X,A4,2F10.2)
CALL DPWRST('XXX','BUG ')
9015 CONTINUE
9019 CONTINUE
WRITE(ICOUT,9021)IXMINS,IXMAXS,IXDELS
9021 FORMAT('IXMINS,IXMAXS,IXDELS = ',3I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END