1      COMPLEX FUNCTION C9LGMC(ZIN)
2C***BEGIN PROLOGUE  C9LGMC
3C***DATE WRITTEN   780401   (YYMMDD)
4C***REVISION DATE  820801   (YYMMDD)
5C***CATEGORY NO.  C7A
6C***KEYWORDS  COMPLETE GAMMA FUNCTION,COMPLEX,CORRECTION TERM,
7C             GAMMA FUNCTION,LOGARITHM,SPECIAL FUNCTION
8C***AUTHOR  FULLERTON, W., (LANL)
9C***PURPOSE  Computes the LOG GAMMA correction term for most Z so that
10C            CLOG(CGAMMA(Z)) = 0.5*LOG(2.*PI) + (Z-0.5)*CLOG(Z) - Z
11C            + C9LGMC(Z)
12C***DESCRIPTION
13C
14C Compute the LOG GAMMA correction term for large CABS(Z) when REAL(Z)
15C .GE. 0.0 and for large ABS(AIMAG(Y)) when REAL(Z) .LT. 0.0.  We find
16C C9LGMC so that
17C   CLOG((Z)) = 0.5*LOG(2.*PI) + (Z-0.5)*CLOG(Z) - Z + C9LGMC(Z)
18C***REFERENCES  (NONE)
19C***ROUTINES CALLED  R1MACH,XERROR
20C***END PROLOGUE  C9LGMC
21      COMPLEX ZIN, Z, Z2INV
22      DIMENSION BERN(11)
23C
24      INCLUDE 'DPCOMC.INC'
25      INCLUDE 'DPCOP2.INC'
26C
27      DATA BERN( 1) /    .08333333333 3333333E0   /
28      DATA BERN( 2) /   -.002777777777 7777778E0  /
29      DATA BERN( 3) /    .0007936507936 5079365E0 /
30      DATA BERN( 4) /   -.0005952380952 3809524E0 /
31      DATA BERN( 5) /    .0008417508417 5084175E0 /
32      DATA BERN( 6) /   -.001917526917 5269175E0  /
33      DATA BERN( 7) /    .006410256410 2564103E0  /
34      DATA BERN( 8) /   -.02955065359 4771242E0   /
35      DATA BERN( 9) /    .1796443723 6883057E0    /
36      DATA BERN(10) /  -1.392432216 9059011E0     /
37      DATA BERN(11) /  13.40286404 4168392E0      /
38      DATA NTERM, BOUND, XBIG, XMAX / 0, 3*0.0 /
39C***FIRST EXECUTABLE STATEMENT  C9LGMC
40C
41      C9LGMC = (0.0, 0.0)
42C
43CCCCC IERR2=0
44      IF (NTERM.NE.0) GO TO 10
45C
46      NTERM = INT(-0.30*LOG(R1MACH(3)))
47      BOUND = 0.1170*FLOAT(NTERM)*
48     1  (0.1*R1MACH(3))**(-1./(2.*FLOAT(NTERM)-1.))
49      XBIG = 1.0/SQRT(R1MACH(3))
50      XMAX = EXP (AMIN1(LOG(R1MACH(2)/12.0), -LOG(12.*R1MACH(1))) )
51C
52 10   Z = ZIN
53      X = REAL (Z)
54      Y = AIMAG(Z)
55      CABSZ = CABS(Z)
56C
57      IF (X.LT.0.0 .AND. ABS(Y).LT.BOUND)THEN
58CCCCC CALL XERROR (  'C9LGMC  C9LGMC
59CCCCC1 NOT VALID FOR NEGATIVE REAL(Z) AND SMALL ABS(AIMAG(Z))', 69, 2,2)
60        WRITE(ICOUT,11)
61        CALL DPWRST('XXX','BUG ')
62        WRITE(ICOUT,12)
63        CALL DPWRST('XXX','BUG ')
64CCCCC   IERR2=1
65        RETURN
66      ENDIF
67   11 FORMAT('***** INTERNAL ERROR FROM C9LGMC: C9LGMC NOT ',
68     1       'VALID FOR NEGATIVE REAL(Z) AND')
69   12 FORMAT('      SMALL ABS(AIMZ(Z))')
70C
71      IF (CABSZ.LT.BOUND) THEN
72CCCCC CALL XERROR ( 'C9LGMC  C9LGMC NOT VALID FOR SM
73CCCCC1ALL CABS(Z)', 42, 3, 2)
74        WRITE(ICOUT,21)
75        CALL DPWRST('XXX','BUG ')
76CCCCC   IERR2=1
77        RETURN
78      ENDIF
79   21 FORMAT('***** INTERNAL ERROR FROM C9LGMC: C9LGMC NOT ',
80     1       'VALID FOR SMALL ABS(AIMZ(Z))')
81C
82      IF (CABSZ.GE.XMAX) GO TO 50
83C
84      IF (CABSZ.GE.XBIG) C9LGMC = 1.0/(12.0*Z)
85      IF (CABSZ.GE.XBIG) RETURN
86C
87      Z2INV = 1.0/Z**2
88      C9LGMC = (0.0, 0.0)
89      DO 40 I=1,NTERM
90        NDX = NTERM + 1 - I
91        C9LGMC = BERN(NDX) + C9LGMC*Z2INV
92 40   CONTINUE
93C
94      C9LGMC = C9LGMC/Z
95      RETURN
96C
97 50   C9LGMC = (0.0, 0.0)
98CCCCC CALL XERROR ( 'C9LGMC  Z SO BIG C9LGMC UNDERFLOWS', 34, 1, 1)
99      WRITE(ICOUT,51)
100      CALL DPWRST('XXX','BUG ')
101CCCCC IERR2=2
102   51 FORMAT('***** INTERNAL WARNING FROM C9LGMC: Z SO BIG ',
103     1       'THAT C9LGMC UNDERFLOWS')
104      RETURN
105C
106      END
107      SUBROUTINE CALCPT(PX1,PY1,AX1,AY1,ISUBN0)
108C
109C     THIS ROUTINE IS A MODIFIED VERSION OF CALCPT.  IT IS USED
110C     ONLY BY THE "CALCOMP" DEVICES (CALCOMP, ZETA) USING THE
111C     STANDARD "CALCOMP ROUTINES".
112C     CALCPT CONVERTS FROM DATAPLOT
113C     UNITS TO DEVICE INTEGER UNITS, BUT IT ALSO APPLIES "WINDOW"
114C     TRANSFORMATIONS NEEDED BY THE "MULTI-PLOT" AND "WINDOW
115C     COORDINATE" COMMANDS.  THE CALCOMP COORDINATES NEED TO BE
116C     TRANSLATED TO INCHES.
117C
118C     PURPOSE--TRANSLATE THE STANDARDIZED (0.0 TO 100.0) COORDINATES (PX1,PY1)
119C              INTO (INTEGER PICTURE POINT) DEVICE COORDINATES (AX1,AY1)
120C     ISUBN0 = NAME OF SUBROUTINE WHICH CALLED GRWRST.
121C              (AND THEREBY HAVE WALKBACK INFORMATION).
122C     NOTE--THE ONLY VARIABLES IN THE    PLOT CONTROL COMMON
123C           THAT ARE USED HEREIN ARE THE ONES IN /RWIND/
124C
125C     WRITTEN BY--ALAN HECKERT
126C                 COMPUTER SERVICES DIVISION
127C                 INFORMATION TECHNOLOGY LABORATORY
128C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
129C                 GAITHERSBURG, MD 20899-8980
130C                 PHONE--301-975-2899
131C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
132C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
133C     LANGUAGE--ANSI FORTRAN (1977)
134C     VERSION NUMBER--83.6
135C     ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--MAY       1983.
136C     UPDATED--SEPTEMBER 1986.
137C     UPDATED--APRIL     1992.  COMMENT OUT PWX1 LINES
138C     UPDATED--APRIL     1992.  COMMENT OUT 9000 CONTINUE
139C     UPDATED--APRIL     1992.  GIVE VALUES TO X1 AND Y1
140C
141C-----NON-COMMON VARIABLES (GRAPHICS)-------------------------------------------
142C
143      CHARACTER*4 ISUBN0
144C
145C-----COMMON----------------------------------------------------------
146C
147      INCLUDE 'DPCOPA.INC'
148      INCLUDE 'DPCOPC.INC'
149      INCLUDE 'DPCOGR.INC'
150      INCLUDE 'DPCOBE.INC'
151C
152C-----COMMON VARIABLES (GENERAL)--------------------------------------
153C
154      INCLUDE 'DPCOP2.INC'
155C
156C-----START POINT-----------------------------------------------------
157C
158CCCCC THE FOLLOWING 2 LINES WERE ADDED APRIL 1992
159      X1=-999.0
160      Y1=-999.0
161C
162      IERRG4='NO'
163C
164      IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'LCPT')GOTO90
165      WRITE(ICOUT,999)
166  999 FORMAT(1X)
167      CALL DPWRST('XXX','BUG ')
168      WRITE(ICOUT,51)
169   51 FORMAT('***** AT THE BEGINNING OF CALCPT--')
170      CALL DPWRST('XXX','BUG ')
171      WRITE(ICOUT,52)ISUBN0
172   52 FORMAT('ISUBN0 (NAME OF THE CALLING SUBROUTINE) = ',A4)
173      CALL DPWRST('XXX','BUG ')
174      WRITE(ICOUT,53)IMANUF,IMODEL
175   53 FORMAT('IMANUF,IMODEL = ',A4,2X,A4)
176      CALL DPWRST('XXX','BUG ')
177      WRITE(ICOUT,54)NUMHPP,NUMVPP
178   54 FORMAT('NUMHPP,NUMVPP = ',I8,I8)
179      CALL DPWRST('XXX','BUG ')
180      WRITE(ICOUT,55)ANUMHP,ANUMVP
181   55 FORMAT('ANUMHP,ANUMVP = ',E15.7,E15.7)
182      CALL DPWRST('XXX','BUG ')
183      WRITE(ICOUT,56)PX1,PY1
184   56 FORMAT('PX1,PY1 = ',E15.7,E15.7)
185      CALL DPWRST('XXX','BUG ')
186      WRITE(ICOUT,61)PWXMIN,PWXMAX,PWYMIN,PWYMAX
187   61 FORMAT('PWXMIN,PWXMAX,PWYMIN,PWYMAX = ',4E15.7)
188      CALL DPWRST('XXX','BUG ')
189      WRITE(ICOUT,69)IBUGG4
190   69 FORMAT('IBUGG4 = ',A4)
191      CALL DPWRST('XXX','BUG ')
192   90 CONTINUE
193C
194C              **************************************
195C              **  STEP 0--                        **
196C              **  DETERMINE THE DIMENSION OF THE  **
197C              **  IN INCHES                       **
198C              **************************************
199C
200      DOTPPI=1000.
201      XPAGE=ANUMHP/DOTPPI
202      YPAGE=ANUMVP/DOTPPI
203C
204C               *************************************
205C               **  STEP 1--                       **
206C               **  CARRY OUT THE TRANSFORMATION.  **
207C               *************************************
208C
209      AX1=PWXMIN+(PX1/100.0)*(PWXMAX-PWXMIN)
210      IF(AX1.LE.0.0)AX1=0.0
211      IF(AX1.GE.100.)AX1=100.
212C
213      AY1=PWYMIN+(PY1/100.0)*(PWYMAX-PWYMIN)
214      IF(AY1.LE.0.0)AY1=0.0
215      IF(AY1.GE.100.)AY1=100.
216C
217C              **************************************
218C              **  STEP 2--                        **
219C              **  CONVERT TO INCH FORMAT          **
220C              **************************************
221C
222      AX1=XPAGE*(AX1/100.)
223      AY1=YPAGE*(AY1/100.)
224C
225C               *****************
226C               **  STEP 90--  **
227C               **  EXIT       **
228C               *****************
229C
230CCCCC THE FOLLOWING LINE WAS COMMENTED OUT APRIL 1992
231C9000 CONTINUE
232      IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'LCPT')GOTO9090
233      WRITE(ICOUT,999)
234      CALL DPWRST('XXX','BUG ')
235      WRITE(ICOUT,9011)
236 9011 FORMAT('***** AT THE END       OF CALCPT--')
237      CALL DPWRST('XXX','BUG ')
238      WRITE(ICOUT,9012)IMANUF,IMODEL
239 9012 FORMAT('IMANUF,IMODEL = ',A4,2X,A4)
240      CALL DPWRST('XXX','BUG ')
241      WRITE(ICOUT,9013)NUMHPP,NUMVPP
242 9013 FORMAT('NUMHPP,NUMVPP = ',I8,I8)
243      CALL DPWRST('XXX','BUG ')
244      WRITE(ICOUT,9014)ANUMHP,ANUMVP
245 9014 FORMAT('ANUMHP,ANUMVP = ',E15.7,E15.7)
246      CALL DPWRST('XXX','BUG ')
247      WRITE(ICOUT,9015)PX1,PY1
248 9015 FORMAT('PX1,PY1   = ',E15.7,E15.7)
249      CALL DPWRST('XXX','BUG ')
250CCCCC THE FOLLOWING 2 LINES WERE COMMENTED OUT  APRIL 1992 (ALAN)
251CCCCC WRITE(ICOUT,9016)PWX1,PWY1
252C9016 FORMAT('PWX1,PWY1 = ',E15.7,E15.7)
253CCCCC CALL DPWRST('XXX','BUG ')
254      WRITE(ICOUT,9017)X1,Y1
255 9017 FORMAT('X1,Y1     = ',E15.7,E15.7)
256      CALL DPWRST('XXX','BUG ')
257      WRITE(ICOUT,9018)AX1,AY1
258 9018 FORMAT('AX1,AY1   = ',I8,I8)
259      CALL DPWRST('XXX','BUG ')
260      WRITE(ICOUT,9021)PWXMIN,PWXMAX,PWYMIN,PWYMAX
261 9021 FORMAT('PWXMIN,PWXMAX,PWYMIN,PWYMAX = ',4E15.7)
262      CALL DPWRST('XXX','BUG ')
263      WRITE(ICOUT,9029)IBUGG4,ISUBG4,IERRG4
264 9029 FORMAT('IBUGG4,ISUBG4,IERRG4 = ',A4,2X,A4,2X,A4)
265      CALL DPWRST('XXX','BUG ')
266 9090 CONTINUE
267C
268      RETURN
269      END
270      SUBROUTINE CALCTR(IA,IH,NLEN)
271C
272C  CALCTR WILL CONVERT A CHARACTER VARIABLE OR QUOTED STRING
273C  TO HOLLERITH FORMAT.  IT IS REQUIRED FOR THE CALCOMP LIBRARY
274C  ROUTINES SINCE A FEW FORTRAN COMPILERS WILL NOT ALLOW CHARACTER
275C  VARIABLES TO BE PASSED TO HOLLERITH ARRAYS (E.G., NOS/VE FORTRAN).
276C  THE DIMENSION OF "ITEMP" IS MACHINE DEPENDENT
277C
278C-----COMMON VARIABLES (GENERAL)--------------------------------------
279C
280      INCLUDE 'DPCOP2.INC'
281C
282      CHARACTER*10 FMT1,FMT2
283      CHARACTER*(*) IA
284      INTEGER IH(*)
285C
286C  DIMENSION ITEMP TO "NUMCPW", I.E., THE NUMBER OF CHARACTERS PER WORD
287C
288      CHARACTER*8 ITEMP
289C
290CCCCC NLEN=LEN(IA)
291      NWORDS=NLEN/NUMCPW
292      NREM=MOD(NLEN,NUMCPW)
293      ITEMP=' '
294      IF(NWORDS.GT.99)NWORDS=99
295      IF(NWORDS.LT.0)NWORDS=0
296      IF(NREM.GT.0)ITEMP(1:NREM)=IA(NWORDS*NUMCPW+1:NWORDS*NUMCPW+NREM)
297      FMT1='(  A  )'
298      WRITE(FMT1(2:3),'(I2)')NWORDS
299      WRITE(FMT1(5:6),'(I2)')NUMCPW
300      FMT2='(A  )'
301      WRITE(FMT2(3:4),'(I2)')NREM
302C
303      IF(NWORDS.GE.1)READ(IA,FMT1)(IH(J),J=1,NWORDS)
304      IF(NREM.GT.0)READ(ITEMP,FMT2)IH(NWORDS+1)
305C
306      RETURN
307      END
308      SUBROUTINE CANDIS(X,Y,N,IWRITE,STATVA,IBUGA3,ISUBRO,IERROR)
309C
310C     PURPOSE--THIS SUBROUTINE COMPUTES THE CANBERRA DISTANCE BETWEEN THE
311C              TWO SETS OF DATA IN THE INPUT VECTORS X AND Y.  THE
312C              SAMPLE CANBERRA DISTANCE WILL BE A SINGLE PRECISION VALUE
313C              CALCULATED AS:
314C
315C                 DISTANCE = SUM[i=1 to n][(|X(i) - Y(i)|)/(|X(i)| + |Y(i)|)]
316C
317C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION VECTOR OF
318C                                (UNSORTED) OBSERVATIONS WHICH
319C                                CONSTITUTE THE FIRST SET OF DATA.
320C                     --Y      = THE SINGLE PRECISION VECTOR OF
321C                                (UNSORTED) OBSERVATIONS WHICH
322C                                CONSTITUTE THE SECOND SET OF DATA.
323C                     --N      = THE INTEGER NUMBER OF OBSERVATIONS
324C                                IN THE VECTORS X AND Y.
325C     OUTPUT ARGUMENTS--STATVA = THE SINGLE PRECISION VALUE OF THE
326C                                COMPUTED SAMPLE COSINE DISTANCE
327C                                BETWEEN THE TWO SETS OF DATA IN THE
328C                                INPUT VECTORS X AND Y.  THIS SINGLE
329C                                PRECISION VALUE WILL BE BETWEEN 0.0
330C                                AND 1.0 (INCLUSIVELY).
331C     OUTPUT--THE COMPUTED SINGLE PRECISION VALUE OF THE
332C             SAMPLE CANBERRA DISTANCE BETWEEN THE 2 SETS
333C             OF DATA IN THE INPUT VECTORS X AND Y.
334C     RESTRICTIONS--THERE IS NO RESTRICTION ON THE MAXIMUM VALUE
335C                   OF N FOR THIS SUBROUTINE.
336C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE.
337C     FORTRAN LIBRARY SUBROUTINES NEEDED--ABS.
338C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
339C     LANGUAGE--ANSI FORTRAN (1977)
340C     REFERENCES--Lance, G. N.; Williams, W. T. (1966). "Computer programs for
341C                 hierarchical polythetic classification ("similarity
342C                 analysis")", Computer Journal, Vol. 9, No. 1, pp. 60-64.
343C               --Lance, G. N.; Williams, W. T. (1967). "Mixed-data
344C                 classificatory programs I.) Agglomerative Systems",
345C                 Australian Computer Journal, pp. 15-20.
346C     WRITTEN BY--ALAN HECKERT
347C                 STATISTICAL ENGINEERING DIVISION
348C                 INFORMATION TECHNOLOGY LABORATORY
349C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGYS
350C                 GAITHERSBURG, MD 20899
351C                 PHONE--301-975-2899
352C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
353C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGYS.
354C     LANGUAGE--ANSI FORTRAN (1977)
355C     VERSION NUMBER--2018/08
356C     ORIGINAL VERSION--AUGUST    2018.
357C
358C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
359C
360      CHARACTER*4 IWRITE
361      CHARACTER*4 IBUGA3
362      CHARACTER*4 ISUBRO
363      CHARACTER*4 IERROR
364C
365      CHARACTER*4 ISUBN1
366      CHARACTER*4 ISUBN2
367C
368C---------------------------------------------------------------------
369C
370      DIMENSION X(*)
371      DIMENSION Y(*)
372C
373C---------------------------------------------------------------------
374C
375      INCLUDE 'DPCOP2.INC'
376C
377C-----START POINT-----------------------------------------------------
378C
379      ISUBN1='CAND'
380      ISUBN2='IS  '
381      IERROR='NO'
382      STATVA=CPUMIN
383C
384      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'NDIS')THEN
385        WRITE(ICOUT,999)
386  999   FORMAT(1X)
387        CALL DPWRST('XXX','BUG ')
388        WRITE(ICOUT,51)
389   51   FORMAT('***** AT THE BEGINNING OF CANDIS--')
390        CALL DPWRST('XXX','BUG ')
391        WRITE(ICOUT,52)IBUGA3,ISUBRO,N
392   52   FORMAT('IBUGA3,ISUBRO,N = ',2(A4,2X),I8)
393        CALL DPWRST('XXX','BUG ')
394        DO55I=1,N
395          WRITE(ICOUT,56)I,X(I),Y(I)
396   56     FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
397          CALL DPWRST('XXX','BUG ')
398   55   CONTINUE
399      ENDIF
400C
401C               ********************************************
402C               **  STEP 1--                              **
403C               **  CHECK THE INPUT ARGUMENTS FOR ERRORS  **
404C               ********************************************
405C
406      AN=N
407C
408      IF(N.LT.1)THEN
409        WRITE(ICOUT,999)
410        CALL DPWRST('XXX','BUG ')
411        WRITE(ICOUT,111)
412  111   FORMAT('***** ERROR IN CANBERRA DISTANCE--')
413        CALL DPWRST('XXX','BUG ')
414        WRITE(ICOUT,112)
415  112   FORMAT('      THE NUMBER OF OBSERVATIONS FOR THE RESPONSE')
416        CALL DPWRST('XXX','BUG ')
417        WRITE(ICOUT,113)
418  113   FORMAT('      VARIABLES IS LESS THAN 1.')
419        CALL DPWRST('XXX','BUG ')
420        WRITE(ICOUT,117)N
421  117   FORMAT('      THE NUMBER OF OBSERVATIONS HERE = ',I8,'.')
422        CALL DPWRST('XXX','BUG ')
423        IERROR='YES'
424        GOTO9000
425      ENDIF
426C
427C               ************************************************
428C               **  STEP 2--                                  **
429C               **  COMPUTE THE MANHATTAN DISTANCE.           **
430C               ************************************************
431C
432      STATVA=0.0
433      DO200I=1,N
434        TERM1=ABS(X(I) - Y(I))
435        TERM2=ABS(X(I))
436        TERM3=ABS(Y(I))
437        STATVA=STATVA + TERM1/(TERM2 + TERM3)
438  200 CONTINUE
439C
440C               *******************************
441C               **  STEP 3--                 **
442C               **  WRITE OUT A LINE         **
443C               **  OF SUMMARY INFORMATION.  **
444C               *******************************
445C
446      IF(IFEEDB.EQ.'ON' .AND. IWRITE.EQ.'ON')THEN
447        WRITE(ICOUT,999)
448        CALL DPWRST('XXX','BUG ')
449        WRITE(ICOUT,811)N,STATVA
450  811   FORMAT('THE CANBERRA DISTANCE OF THE ',I8,
451     1           ' OBSERVATIONS = ',G15.7)
452        CALL DPWRST('XXX','BUG ')
453      ENDIF
454C
455C               *****************
456C               **  STEP 90--  **
457C               **  EXIT.      **
458C               *****************
459C
460 9000 CONTINUE
461      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'NDIS')THEN
462        WRITE(ICOUT,999)
463        CALL DPWRST('XXX','BUG ')
464        WRITE(ICOUT,9011)
465 9011   FORMAT('***** AT THE END       OF CANDIS--')
466        CALL DPWRST('XXX','BUG ')
467        WRITE(ICOUT,9012)IERROR,STATVA
468 9012   FORMAT('IERROR,STATVA = ',A4,2X,G15.7)
469        CALL DPWRST('XXX','BUG ')
470      ENDIF
471C
472      RETURN
473      END
474      SUBROUTINE CANTOR(N,X,P,ANUM,IERROR)
475C
476CCCCC ***** NOTE--THIS SUBROUTINE IS CURRENTLY (APRIL 1989)
477CCCCC             ONLY VALID FOR P = 0.33333.
478CCCCC             TO BE DONE--GENERALIZE FOR ALL P BETWEEN 0 AND 1.
479C
480C     PURPOSE--THIS SUBROUTINE GENERATES N CANTOR NUMBERS
481C              (A CLASSIC CHAOS THEORY SET)
482C     INPUT  ARGUMENTS--N      = THE DESIRED INTEGER NUMBER
483C                                OF CANTOR SET NUMBERS
484C                                TO BE GENERATED.
485C     OUTPUT ARGUMENTS--X      = A SINGLE PRECISION VECTOR
486C                                (OF DIMENSION AT LEAST N)
487C                                INTO WHICH THE GENERATED
488C                                CANTOR NUMBERS
489C                                WILL BE PLACED.
490C                     --P      = THE FRACTIONAL SIZE OF THE HOLE
491C                                IN THE MIDDLE OF THE UNIT INTERVAL
492C                                (P MUST BE BETWEEN 0 AND 1).
493C     OUTPUT--N CANTOR SET NUMBERS.
494C     RESTRICTIONS--THERE IS NO RESTRICTION ON THE MAXIMUM VALUE
495C                   OF N FOR THIS SUBROUTINE.
496C     LANGUAGE--ANSI FORTRAN (1977)
497C     WRITTEN BY--JAMES J. FILLIBEN
498C                 STATISTICAL ENGINEERING DIVISION
499C                 INFORMATION TECHNOLOGY LABORATORY
500C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
501C                 GAITHERSBURG, MD 20899-8980
502C                 PHONE--301-975-2855
503C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
504C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
505C     LANGUAGE--ANSI FORTRAN (1977)
506C     VERSION NUMBER--89.6
507C     ORIGINAL VERSION--APRIL 1989.
508C
509C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
510C
511      CHARACTER*4 IERROR
512C
513C---------------------------------------------------------------------
514C
515      DIMENSION X(*)
516      DIMENSION ANUM(*)
517C
518C---------------------------------------------------------------------
519C
520      INCLUDE 'DPCOP2.INC'
521C
522C-----START POINT-----------------------------------------------------
523C
524      CPUMA3=CPUMAX/3.0
525C
526C               ******************************************
527C               **  TREAT THE CANTOR SET CASE    **
528C               ******************************************
529C
530C               *******************************************
531C               **  STEP 1--                             **
532C               **  TEST THE INPUT ARGUMENTS FOR ERRORS  **
533C               *******************************************
534C
535      IF(N.GE.1)GOTO190
536      WRITE(ICOUT,999)
537  999 FORMAT(1X)
538      CALL DPWRST('XXX','BUG ')
539      WRITE(ICOUT,101)
540  101 FORMAT('***** ERROR IN CANTOR--')
541      CALL DPWRST('XXX','BUG ')
542      WRITE(ICOUT,102)
543  102 FORMAT('      THE SIZE OF THE DESIRED SET')
544      CALL DPWRST('XXX','BUG ')
545      WRITE(ICOUT,103)
546  103 FORMAT('      OF CANTOR NUMBERS MUST BE 1 OR LARGER;')
547      CALL DPWRST('XXX','BUG ')
548      WRITE(ICOUT,104)
549  104 FORMAT('      SUCH WAS NOT THE CASE HERE.')
550      CALL DPWRST('XXX','BUG ')
551      WRITE(ICOUT,105)N
552  105 FORMAT('      N = ',I8)
553      CALL DPWRST('XXX','BUG ')
554      IERROR='YES'
555      GOTO9000
556  190 CONTINUE
557C
558C               ******************************
559C               **  STEP 2--                **
560C               **  GENERATE THE SET   **
561C               ******************************
562C
563CCCCC ***** CURRENTLY ONLY VALID FOR P = 1/3
564CCCCC ***** UPDATE THIS FOR GENERAL P
565C
566CCCCC PLOCAL=P
567      IF(P.NE.0.33333)THEN
568        PLOCAL=0.33333
569      ELSE
570        PLOCAL=P
571      ENDIF
572      R=2.0/(1.0-PLOCAL)
573      ICOUNT=0
574C
575      K=1
576      DENOM=R**K
577      ANUM(1)=1.0
578      ICOUNT=ICOUNT+1
579      X(ICOUNT)=ANUM(1)/DENOM
580      IF(N.LE.1)GOTO1900
581C
582      DO1100K=2,20
583      DENOM=R**K
584      LMAX=2**(K-1)
585      LMIN=(LMAX/2)+1
586      L2=0
587      DO1200L=LMIN,LMAX
588      L2=L2+1
589      L3=LMIN-L2
590      AMIRRO=ANUM(L3)
591      ANUM(L)=DENOM-1.0-AMIRRO
592 1200 CONTINUE
593      DO1300L=1,LMAX
594      ICOUNT=ICOUNT+1
595      RATIO=ANUM(L)/DENOM
596      IF(X(ICOUNT).GE.CPUMA3)GOTO1350
597      X(ICOUNT)=RATIO
598      IF(ICOUNT.GE.N)GOTO1900
599 1300 CONTINUE
600 1100 CONTINUE
601C
602 1350 CONTINUE
603      WRITE(ICOUT,999)
604      CALL DPWRST('XXX','BUG ')
605      WRITE(ICOUT,1351)
606 1351 FORMAT('***** ERROR IN CANTOR--')
607      CALL DPWRST('XXX','BUG ')
608      WRITE(ICOUT,1352)
609 1352 FORMAT('      A NUMBER IN THE CANTOR SET')
610      CALL DPWRST('XXX','BUG ')
611      WRITE(ICOUT,1353)
612 1353 FORMAT('      HAS JUST EXCEEDED THE ')
613      CALL DPWRST('XXX','BUG ')
614      WRITE(ICOUT,1354)
615 1354 FORMAT('      LARGEST FLOATING POINT NUMBER')
616      CALL DPWRST('XXX','BUG ')
617      WRITE(ICOUT,1355)
618 1355 FORMAT('      ALLOWABLE FOR THIS COMPUTER (',E15.7,').')
619      CALL DPWRST('XXX','BUG ')
620      WRITE(ICOUT,1356)
621 1356 FORMAT('      THE VALUE CAUSING THE OVERFLOW WAS')
622      CALL DPWRST('XXX','BUG ')
623      WRITE(ICOUT,1357)ICOUNT
624 1357 FORMAT('      THE ',I8,'-TH NUMBER IN THE')
625      CALL DPWRST('XXX','BUG ')
626      WRITE(ICOUT,1358)
627 1358 FORMAT('      CANTOR SET.')
628      CALL DPWRST('XXX','BUG ')
629      IERROR='YES'
630      GOTO9000
631C
632 1900 CONTINUE
633C
634C               *****************
635C               **  STEP 90--  **
636C               **  EXIT       **
637C               *****************
638C
639 9000 CONTINUE
640      RETURN
641      END
642      FUNCTION CARG(Z)
643C***BEGIN PROLOGUE  CARG
644C***DATE WRITTEN   770401   (YYMMDD)
645C***REVISION DATE  820801   (YYMMDD)
646C***CATEGORY NO.  A4A
647C***KEYWORDS  ARGUMENT,COMPLEX,COMPLEX NUMBER,ELEMENTARY FUNCTION
648C***AUTHOR  FULLERTON, W., (LANL)
649C***PURPOSE  Computes the argument of a complex number.
650C***DESCRIPTION
651C
652C CARG(Z) calculates the argument of the complex number Z.  Note
653C that CARG returns a real result.  If Z = X+iY, then CARG is ATAN(Y/X),
654C except when both X and Y are zero, in which case the result
655C will be zero.
656C***REFERENCES  (NONE)
657C***ROUTINES CALLED  (NONE)
658C***END PROLOGUE  CARG
659      COMPLEX Z
660C***FIRST EXECUTABLE STATEMENT  CARG
661      CARG = 0.0
662      IF (REAL(Z).NE.0. .OR. AIMAG(Z).NE.0.) CARG =
663     1  ATAN2 (AIMAG(Z), REAL(Z))
664C
665      RETURN
666      END
667      SUBROUTINE CATCHR(AMAT1,AMAT2,AMAT3,Y1,Y2,INDX,
668     1MAXROM,MAXCOM,NR1,NC1,
669     1IBUGA3,IERROR)
670C
671C     PURPOSE--THIS SUBROUTINE COMPUTES THE
672C              CATCHER MATRIX:
673C              C = X(X'X)**(-1)
674C              THIS MATRIX IS USEFUL FOR MANY REGRESSION DIAGNOSTIC
675C              CAPABILITIES.
676C     INPUT  ARGUMENTS--AMAT1  = THE DESIGN MATRIX (X)
677C                     --AMAT2  = A SCRATCH MATRIX
678C                     --Y1     = A SCRATCH VECTOR
679C                     --Y2     = A SCRATCH VECTOR
680C                     --INDX   = A SCRATCH INTEGER) VECTOR
681C                     --MAXROM = THE INTEGER ROW DIMENSION OF AMAT1
682C                     --MAXCOM = THE INTEGER COUMN DIMENSION OF AMAT1
683C                     --NR1    = THE INTEGER NUMBER OF ROWS OF AMAT1
684C                     --NC1    = THE INTEGER NUMBER OF COLUMNS OF AMAT1
685C     OUTPUT ARGUMENTS--AMAT3  = THE SINGLE PRECISION VALUE OF THE
686C                                COMPUTED CATCHER MATRTIX
687C     OUTPUT--THE COMPUTED SINGLE PRECISION VALUES OF THE
688C             CATCHER MATRIX.
689C     FORTRAN LIBRARY SUBROUTINES NEEDED--NONE.
690C     LANGUAGE--ANSI FORTRAN (1977)
691C     WRITTEN BY--JAMES J. FILLIBEN
692C                 STATISTICAL ENGINEERING DIVISION
693C                 INFORMATION TECHNOLOGY LABORATORY
694C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
695C                 GAITHERSBURG, MD 20899-8980
696C                 PHONE--301-975-2855
697C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
698C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
699C     LANGUAGE--ANSI FORTRAN (1977)
700C     VERSION NUMBER--2002.6
701C     ORIGINAL VERSION--JUNE      2002.
702C
703C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
704C
705      CHARACTER*4 IBUGA3
706      CHARACTER*4 IERROR
707C
708C---------------------------------------------------------------------
709C
710      DIMENSION AMAT1(MAXROM,MAXCOM)
711      DIMENSION AMAT2(MAXROM,MAXCOM)
712      DIMENSION AMAT3(MAXROM,MAXCOM)
713      DIMENSION Y1(*)
714      DIMENSION Y2(*)
715      INTEGER   INDX(*)
716C
717C---------------------------------------------------------------------
718C
719      INCLUDE 'DPCOP2.INC'
720C
721      DATA ZERO /0.0/
722      DATA ONE  /1.0/
723      DATA EPS  /1.0E-20/
724C
725C-----START POINT-----------------------------------------------------
726C
727      IERROR='NO'
728C
729      IF(IBUGA3.EQ.'ON')THEN
730      WRITE(ICOUT,999)
731  999 FORMAT(1X)
732      CALL DPWRST('XXX','BUG ')
733      WRITE(ICOUT,51)
734   51 FORMAT('***** AT THE BEGINNING OF CATCHR--')
735      CALL DPWRST('XXX','BUG ')
736      WRITE(ICOUT,52)IBUGA3
737   52 FORMAT('IBUGA3 = ',A4)
738      CALL DPWRST('XXX','BUG ')
739      WRITE(ICOUT,53)MAXROM,MAXCOM,NR1,NC1
740   53 FORMAT('MAXROM, MAXCOM, NR1, NC1 = ',4I8)
741      CALL DPWRST('XXX','BUG ')
742      ENDIF
743C
744C               **********************************
745C               **  COMPUTE CATCHER MATRIX      **
746C               **  1) COMPUTE X'X              **
747C               **  2) COMPUTE INVERSE OF X'X   **
748C               **  3) COMPUTE X TIMES INVERSE  **
749C               **********************************
750C
751      DO110J=1,MAXCOM
752        DO120I=1,MAXROM
753          AMAT2(I,J)=ZERO
754  120   CONTINUE
755  110 CONTINUE
756C
757      CALL SGEMM ('T', 'N', NC1, NC1, NR1, ONE, AMAT1, MAXROM,
758     $             AMAT1, MAXROM, ZERO, AMAT2, MAXROM, IERROR)
759      IF(IERROR.EQ.'YES')RETURN
760C
761      IF(IBUGA3.EQ.'ON')THEN
762        WRITE(ICOUT,999)
763        CALL DPWRST('XXX','BUG ')
764        WRITE(ICOUT,151)
765  151   FORMAT('***** IN CATCHR, AFTER CALL SGEMM--')
766        CALL DPWRST('XXX','BUG ')
767        DO 152 I=1,NC1
768          WRITE(ICOUT,153)I,(AMAT2(I,J),J=1,MIN(5,NC1))
769  153     FORMAT('***** I,AMAT2(I,1..MIN(NC1,5)',I8,5E15.7)
770          CALL DPWRST('XXX','BUG ')
771  152   CONTINUE
772      ENDIF
773C
774      RCOND=0.0
775      CALL SGECO(AMAT2,MAXROM,NC1,INDX,RCOND,Y1)
776C
777      IF(IBUGA3.EQ.'ON')THEN
778        WRITE(ICOUT,999)
779        CALL DPWRST('XXX','BUG ')
780        WRITE(ICOUT,171)RCOND
781  171   FORMAT('***** IN CATCHR, AFTER CALL SGECO, RCOND=',E15.7)
782        CALL DPWRST('XXX','BUG ')
783        DO 172 I=1,NC1
784          WRITE(ICOUT,173)I,(AMAT2(I,J),J=1,MIN(5,NC1))
785  173     FORMAT('***** I,AMAT2(I,1..MIN(NC1,5)',I8,5E15.7)
786          CALL DPWRST('XXX','BUG ')
787  172   CONTINUE
788      ENDIF
789C
790      IF(RCOND.LE.EPS)THEN
791        WRITE(ICOUT,999)
792        CALL DPWRST('XXX','BUG ')
793        WRITE(ICOUT,5171)
794        CALL DPWRST('XXX','ERRO ')
795        WRITE(ICOUT,5172)
796        CALL DPWRST('XXX','ERRO ')
797        WRITE(ICOUT,5173)
798        CALL DPWRST('XXX','ERRO ')
799        IERROR='YES'
800        GOTO9000
801      ENDIF
802 5171 FORMAT('*** ERROR FROM CATCHR: UNABLE TO COMPUTE THE INVERSE OF ',
803     1       'THE X-TRANSPOSE*X MATRIX.')
804 5172 FORMAT('    PROBLEM: SOME COLUMNS ARE LINEARLY DEPDENDENT ON ',
805     1       ' OTHER COLUMNS.')
806 5173 FORMAT('    SUGGESTED SOLUTION: WORK WITH A SUBSET OF THE ',
807     1       'ORIGINAL COLUMNS.')
808C
809      IJOB=1
810      CALL SGEDI(AMAT2,MAXROM,NC1,INDX,Y1,Y2,IJOB)
811C
812      IF(IBUGA3.EQ.'ON')THEN
813        WRITE(ICOUT,999)
814        CALL DPWRST('XXX','BUG ')
815        WRITE(ICOUT,181)
816  181   FORMAT('***** IN CATCHR, AFTER CALL SGEDI')
817        CALL DPWRST('XXX','BUG ')
818        DO 182 I=1,NC1
819          WRITE(ICOUT,183)I,(AMAT2(I,J),J=1,MIN(5,NC1))
820  183     FORMAT('***** I,AMAT2(I,1..MIN(NC1,5)',I8,5E15.7)
821          CALL DPWRST('XXX','BUG ')
822  182   CONTINUE
823      ENDIF
824C
825      CALL SGEMM ('N', 'N', NR1, NC1, NC1, ONE, AMAT1, MAXROM,
826     $             AMAT2, MAXROM, ZERO, AMAT3, MAXROM, IERROR)
827      IF(IERROR.EQ.'YES')RETURN
828C
829C               *****************
830C               **  STEP 90--  **
831C               **  EXIT.      **
832C               *****************
833C
834 9000 CONTINUE
835      IF(IBUGA3.EQ.'OFF')GOTO9090
836      WRITE(ICOUT,999)
837      CALL DPWRST('XXX','BUG ')
838      WRITE(ICOUT,9011)
839 9011 FORMAT('***** AT THE END       OF CATCHR--')
840      CALL DPWRST('XXX','BUG ')
841      DO9022I=1,NR1
842        WRITE(ICOUT,9023)I,(AMAT3(I,J),J=1,MIN(5,NC1))
843 9023   FORMAT('***** I,AMAT3(I,1..MIN(NC1,5)',I8,5E15.7)
844        CALL DPWRST('XXX','BUG ')
845 9022 CONTINUE
846      WRITE(ICOUT,9012)IBUGA3,IERROR
847 9012 FORMAT('IBUGA3,IERROR = ',A4,2X,A4)
848      CALL DPWRST('XXX','BUG ')
849 9090 CONTINUE
850C
851      RETURN
852      END
853      SUBROUTINE CATLAN(DX,DCATLN)
854C
855C     PURPOSE--THIS SUBROUTINE COMPUTES THE CATLAN BETA FUNCTION
856C              FOR REAL ARGUMENTS GREATER THAN OR EQUAL TO 1 USING
857C              EULER-MACMACLAURIN SUMMATION.
858C              CATLAN(X)=SUM((-1)**(K-1)/(2*K+1)**X)  WHERE THE SUM IS FROM
859C                      0 TO INFINITY
860C              FOR BETTER COMPUTATIONAL ACCURACY, ACTUALLY
861C              COMPUTE CATLAN(X) - 1.
862C     INPUT  ARGUMENTS--DX     = THE DOUBLE PRECISION VALUE AT
863C                                WHICH THE CATLAN
864C                                FUNCTION IS TO BE EVALUATED.
865C     OUTPUT ARGUMENTS--DCATLN  = THE DOUBLE PRECISION ZETA
866C                                FUNCTION VALUE.
867C     OUTPUT--THE DOUBLE PRECISION CATLAN
868C             FUNCTION VALUE DCATLN.
869C     PRINTING--NONE.
870C     RESTRICTIONS--NONE.
871C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE.
872C     FORTRAN LIBRARY SUBROUTINES NEEDED--NONE.
873C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
874C     LANGUAGE--ANSI FORTRAN (1977)
875C     REFERENCES--NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY APPLIED MATHEMATICS
876C                 SERIES 55, 1964.
877C               --THOMPSON, "ATLAS FOR COMPUTING MATHEMATICAL
878C                 FUNCTIONS", WILEY, 1997.  THIS ROUTINE IS A
879C                 FORTRAN TRANSLATION OF THE C FUNCTION ON PAGE 150
880C                 OF THIS BOOK.
881C     WRITTEN BY--JAMES J. FILLIBEN
882C                 STATISTICAL ENGINEERING DIVISION
883C                 INFORMATION TECHNOLOGY LABORATORY
884C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
885C                 GAITHERSBURG, MD 20899-8980
886C                 PHONE--301-975-2855
887C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
888C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
889C     LANGUAGE--ANSI FORTRAN (1966)
890C     VERSION NUMBER--97.9
891C     ORIGINAL VERSION--SEPTEMBER 1997.
892C
893C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
894C
895C---------------------------------------------------------------------
896C
897      IMPLICIT DOUBLE PRECISION (A-H, O-Z)
898C
899      INCLUDE 'DPCOP2.INC'
900C
901C-----DATA STATEMENTS-------------------------------------------------
902C
903      DATA DEPS/1.0D-20/
904C
905C-----START POINT-----------------------------------------------------
906C
907      IF(DX.EQ.1.0D0)THEN
908        DCATLN=-0.214601836603
909        RETURN
910      ENDIF
911      DP=1.0
912      CALL CATLN2(DEPS,DP,DX,DTERM1)
913      DP=-1.0
914      CALL CATLN2(DEPS,DP,DX,DTERM2)
915C
916CCCCC COMPUTE CATLAN(X) - 1 FOR BETTER ACCURACY.
917CCCCC DCATLN=DSUM+1.0D0
918      DCATLN=DTERM1 - DTERM2
919      RETURN
920      END
921      SUBROUTINE CATLN2(DEPS,DP,DX,DSUM)
922C
923C     PURPOSE--THIS SUBROUTINE IS USED THE CATLAN SUBROUTINE
924C              IN COMPUTING THE CATLAN BETA FUNCTION.
925C     INPUT  ARGUMENTS--DX     = THE DOUBLE PRECISION VALUE AT
926C                                WHICH THE CATLAN
927C                                FUNCTION IS TO BE EVALUATED.
928C                       DP     = EITHER +1 OR -1
929C                       DEPS   = USED TO CONTROL PREFISION
930C     OUTPUT ARGUMENTS--DSUM    = SUM RETURNED TO TO THE CATLAN ROUTINE
931C     OUTPUT--THE DOUBLE PRECISION DSUM
932C     PRINTING--NONE.
933C     RESTRICTIONS--NONE.
934C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE.
935C     FORTRAN LIBRARY SUBROUTINES NEEDED--NONE.
936C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
937C     LANGUAGE--ANSI FORTRAN (1977)
938C     REFERENCES--NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY APPLIED MATHEMATICS
939C                 SERIES 55, 1964.
940C               --THOMPSON, "ATLAS FOR COMPUTING MATHEMATICAL
941C                 FUNCTIONS", WILEY, 1997.  THIS ROUTINE IS A
942C                 FORTRAN TRANSLATION OF THE C FUNCTION ON PAGE 150
943C                 OF THIS BOOK.
944C     WRITTEN BY--JAMES J. FILLIBEN
945C                 STATISTICAL ENGINEERING DIVISION
946C                 INFORMATION TECHNOLOGY LABORATORY
947C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
948C                 GAITHERSBURG, MD 20899-8980
949C                 PHONE--301-975-2855
950C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
951C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
952C     LANGUAGE--ANSI FORTRAN (1966)
953C     VERSION NUMBER--97.9
954C     ORIGINAL VERSION--SEPTEMBER 1997.
955C
956C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
957C
958C---------------------------------------------------------------------
959C
960      IMPLICIT DOUBLE PRECISION (A-H, O-Z)
961C
962      INCLUDE 'DPCOP2.INC'
963C
964C-----START POINT-----------------------------------------------------
965C
966      DTERM=32.0D0*DX*(DX+1.0D0)*(DX+2.0D0)*(DX+3.0D0)*
967     1      (DX+4.0D0)/945.0D0
968      DN=(DTERM/DEPS)**(1.0D0/(DX+5.0D0))
969      IF(DN.LE.5.5D0)THEN
970        N=5
971      ELSEIF(DN.GE.9999.5)THEN
972        N=10000
973      ELSE
974        N=INT(DN)
975      ENDIF
976C
977      FN=DBLE(N)
978      FK=0.0D0
979      DNEGX=-DX
980      DSUM=0.0D0
981      DO100K=1,N-1
982        FK=FK+1.0D0
983        DSUM=DSUM + (4.0D0*FK+DP)**DNEGX
984  100 CONTINUE
985C
986C  ADD EULER-MACLAURIN CORRECTION TERMS
987C
988      F4NP=4.0D0*FN+DP
989      DSUM=DSUM + (F4NP**DNEGX)*(0.5D0 + 0.25D0*F4NP/(DX-1.0D0)
990     1     + DX*(1.0D0 -
991     1     4.0D0*(DX+1.0D0)*(DX+2.0D0)/(15.0D0*F4NP*F4NP))/
992     1     (3.0D0*F4NP))+DTERM/(F4NP**(DX+5.0D0))
993C
994      RETURN
995      END
996      SUBROUTINE CAUCDF(X,CDF)
997C
998C     PURPOSE--THIS SUBROUTINE COMPUTES THE CUMULATIVE DISTRIBUTION
999C              FUNCTION VALUE FOR THE CAUCHY DISTRIBUTION
1000C              WITH MEDIAN = 0 AND 75% POINT = 1.
1001C              THIS DISTRIBUTION IS DEFINED FOR ALL X AND HAS
1002C              THE PROBABILITY DENSITY FUNCTION
1003C              F(X) = (1/PI)*(1/(1+X*X)).
1004C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION VALUE AT
1005C                                WHICH THE CUMULATIVE DISTRIBUTION
1006C                                FUNCTION IS TO BE EVALUATED.
1007C     OUTPUT ARGUMENTS--CDF    = THE SINGLE PRECISION CUMULATIVE
1008C                                DISTRIBUTION FUNCTION VALUE.
1009C     OUTPUT--THE SINGLE PRECISION CUMULATIVE DISTRIBUTION
1010C             FUNCTION VALUE CDF.
1011C     PRINTING--NONE.
1012C     RESTRICTIONS--NONE.
1013C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE.
1014C     FORTRAN LIBRARY SUBROUTINES NEEDED--ATAN.
1015C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
1016C     LANGUAGE--ANSI FORTRAN.
1017C     REFERENCES--JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
1018C                 DISTRIBUTIONS--1, 1970, PAGES 154-165.
1019C     WRITTEN BY--JAMES F. FILLIBEN
1020C                 STATISTICAL ENGINEERING LABORATORY (205.03)
1021C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
1022C                 GAITHERSBURG, MD 20899-8980
1023C                 PHONE:  301-921-2315
1024C     ORIGINAL VERSION--APRIL     1994.
1025C
1026C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
1027C
1028C---------------------------------------------------------------------
1029C
1030      INCLUDE 'DPCOP2.INC'
1031C
1032C---------------------------------------------------------------------
1033C
1034      DATA PI/3.14159265358979/
1035C
1036C     CHECK THE INPUT ARGUMENTS FOR ERRORS.
1037C     NO INPUT ARGUMENT ERRORS POSSIBLE
1038C     FOR THIS DISTRIBUTION.
1039C
1040C-----START POINT-----------------------------------------------------
1041C
1042      CDF=0.5+((1.0/PI)*ATAN(X))
1043C
1044      RETURN
1045      END
1046      SUBROUTINE CAUFUN (N, X, FVEC, IFLAG, XDATA, NOBS)
1047C
1048C     PURPOSE--THIS ROUTINE COMPUTES THE FUNCTIONS FOR THE
1049C              CAUCHY MAXIMUM LIKELIHOOD EQUATIONS (FROM
1050C              P. 310 OF JOHNSON, KOTZ, AND BALKRISHNAN (VOLUME 1).
1051C
1052C      SUM[i=1 to n][2*(X(i)-ahat)/(bhat^2+(X(i)-ahat)^2) = 0
1053C
1054C      N/BAT - SUM[i=1 to n][2*bhat/(bhat^2 + (X(i)-ahat))^2)] = 0
1055C
1056C              FOR COMPUTATIONAL PURPOSES, THESE EQUATIONS ARE
1057C              REWRITTEN AS:
1058C
1059C      SUM[i=1 to n][1/(1 + ((X(i) - THETAHAT)/LAMBDA^2)^2)] - N/2 = 0
1060C      SUM[i=1 to n][X(i)/(1 + ((X(i) - THETAHAT)/LAMBDA)^2)]
1061C                    - (N/2)*THETAHAT = 0
1062C
1063C              THE MAXIMUM LIKELIHOOD EQUATIONS GIVEN IN HAAS,
1064C              BAIN, AND ANTLE ARE
1065C
1066C      SUM[i=1 to n][((X(i)-AHAT)/BHAT)/(1+(X(I)-AHAT)/BHAT)^2)] = 0
1067C      SUM[i=1 to n][{1 + (X(i)-AHAT)/BHAT)^2}^(-1)] - (1/2)*N = 0
1068C
1069C              CALLED BY SNSQE ROUTINE FOR SOLVING SIMULTANEOUS
1070C              NONLINEAR EQUATIONS.  NOTE THAT THE CALLING SEQUENCE
1071C              DID NOT ACCOMODATE A DATA ARRAY (AND ASSCIATED NUMBER OF
1072C              OBSERVATIONS), SO THESE WERE ADDED TO THE CALL LIST.
1073C     EXAMPLE--CAUCHY MAXIMUM LIKELIHOOD Y
1074C     REFERENCE--GERALD HAAS, LEE BAIN, CHARLES ANTLE, (1970).
1075C                "INFERENCES FOR THE CAUCHY DISTRIBUTION BASED ON
1076C                MAXIMUM LIKELIHOOD ESTIMATORS", BIOMETRIKA,
1077C                PP. 403-408.
1078C              --"CONTINUOUS UNIVARIATE DISTRIBUTIONS--VOLUME I",
1079C                SECOND EDITION, JOHNSON, KOTZ, AND BALAKRISHNAN,
1080C                WILEY, 1994,, PP. 310-311.
1081C     WRITTEN BY--JAMES J. FILLIBEN
1082C                 STATISTICAL ENGINEERING DIVISION
1083C                 CENTER FOR APPLIED MATHEMATICS
1084C                 NATIONAL BUREAU OF STANDARDS
1085C                 WASHINGTON, D. C. 20234
1086C                 PHONE--301-975-2855
1087C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
1088C           OF THE NATIONAL BUREAU OF STANDARDS.
1089C     LANGUAGE--ANSI FORTRAN (1977)
1090C     VERSION NUMBER--2004/3
1091C     ORIGINAL VERSION--MARCH     2004.
1092C
1093C---------------------------------------------------------------------
1094C
1095      DOUBLE PRECISION X(*)
1096      DOUBLE PRECISION FVEC(*)
1097      REAL XDATA(*)
1098C
1099      DOUBLE PRECISION DN
1100      DOUBLE PRECISION DA
1101      DOUBLE PRECISION DB
1102      DOUBLE PRECISION DX
1103      DOUBLE PRECISION DSUM1
1104      DOUBLE PRECISION DSUM2
1105C
1106C---------------------------------------------------------------------
1107C
1108      INCLUDE 'DPCOP2.INC'
1109C
1110C-----START POINT-----------------------------------------------------
1111C
1112C  SET IFLAG = 0 FOR JOHNSON, KOTZ, BALAKRISHNAN FORM
1113C      IFLAG = 1 FOR HAAS, BAIN, AND ANTLE
1114C
1115C  COMPUTE SOME SUMS
1116C
1117      N=2
1118C
1119      DN=DBLE(NOBS)
1120      DSUM1=0.0D0
1121      DSUM2=0.0D0
1122      DA=X(1)
1123      DB=X(2)
1124      IFLAG=0
1125C
1126      IF(IFLAG.EQ.0)THEN
1127        DO100I=1,NOBS
1128          DX=DBLE(XDATA(I))
1129          DSUM1=DSUM1 + 1.0D0/(1.0D0 + ((DX-DA)/DB)**2)
1130          DSUM2=DSUM2 + DX/(1.0D0 + ((DX-DA)/DB)**2)
1131  100   CONTINUE
1132        FVEC(1) = DSUM1 - DN/2.0D0
1133        FVEC(2) = DSUM2 - (DN/2.0D0)*DA
1134      ELSE
1135        DO200I=1,NOBS
1136          DX=(DBLE(XDATA(I))-DA)/DB
1137          DSUM1=DSUM1 + DX/(1.0D0 + DX*DX)
1138          DSUM2=DSUM2 + 1.0D0/(1.0D0 + DX*DX)
1139  200   CONTINUE
1140        FVEC(1) = DSUM1
1141        FVEC(2) = DSUM2 - 0.5D0*DN
1142      ENDIF
1143C
1144      RETURN
1145      END
1146      SUBROUTINE CAULI1(Y,N,ALOC,SCALE,
1147     1                  ALIK,AIC,AICC,BIC,
1148     1                  ISUBRO,IBUGA3,IERROR)
1149C
1150C     PURPOSE--THIS ROUTINE COMPUTES THE LIKELIHOOD FUNCTION FOR
1151C              THE CAUCHY DISTRIBUTION.  THIS IS FOR THE RAW DATA
1152C              CASE (I.E., NO GROUPING AND NO CENSORING).
1153C
1154C              IT IS ASSUMED THAT BASIC ERROR CHECKING HAS ALREADY BEEN
1155C              PERFORMED.
1156C
1157C     WRITTEN BY--JAMES J. FILLIBEN
1158C                 STATISTICAL ENGINEERING DIVISION
1159C                 INFORMATION TECHNOLOGY LABORATORY
1160C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
1161C                 GAITHERSBURG, MD 20899-8980
1162C                 PHONE--301-975-2855
1163C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
1164C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
1165C     LANGUAGE--ANSI FORTRAN (1977)
1166C     VERSION NUMBER--2010/6
1167C     ORIGINAL VERSION--JUNE      2010.
1168C
1169C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
1170C
1171      CHARACTER*4 ISUBRO
1172      CHARACTER*4 IBUGA3
1173      CHARACTER*4 IERROR
1174C
1175      CHARACTER*4 IWRITE
1176      CHARACTER*4 ISUBN1
1177      CHARACTER*4 ISUBN2
1178      CHARACTER*4 ISTEPN
1179C
1180      DOUBLE PRECISION DX
1181      DOUBLE PRECISION DS
1182      DOUBLE PRECISION DU
1183CCCCC DOUBLE PRECISION DN
1184      DOUBLE PRECISION DPI
1185      DOUBLE PRECISION DNP
1186      DOUBLE PRECISION DLIK
1187      DOUBLE PRECISION DSUM1
1188      DOUBLE PRECISION DTERM1
1189      DOUBLE PRECISION DTERM2
1190      DOUBLE PRECISION DTERM3
1191C
1192C---------------------------------------------------------------------
1193C
1194      DIMENSION Y(*)
1195C
1196C---------------------------------------------------------------------
1197C
1198      INCLUDE 'DPCOP2.INC'
1199C
1200      DATA DPI / 3.1415926535 8979323846 2643383279 503 D0 /
1201C
1202C-----START POINT-----------------------------------------------------
1203C
1204      ISUBN1='CAUL'
1205      ISUBN2='I1  '
1206C
1207      IERROR='NO'
1208C
1209      ALIK=-99.0
1210      AIC=-99.0
1211      AICC=-99.0
1212      BIC=-99.0
1213C
1214      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'ULI1')THEN
1215        WRITE(ICOUT,999)
1216  999   FORMAT(1X)
1217        CALL DPWRST('XXX','WRIT')
1218        WRITE(ICOUT,51)
1219   51   FORMAT('**** AT THE BEGINNING OF CAULI1--')
1220        CALL DPWRST('XXX','WRIT')
1221        WRITE(ICOUT,52)IBUGA3,ISUBRO
1222   52   FORMAT('IBUGA3,ISUBRO = ',A4,2X,A4)
1223        CALL DPWRST('XXX','WRIT')
1224        WRITE(ICOUT,55)N,ALOC,SCALE
1225   55   FORMAT('N,ALOC,SCALE = ',I8,2G15.7)
1226        CALL DPWRST('XXX','WRIT')
1227        DO56I=1,MIN(N,100)
1228          WRITE(ICOUT,57)I,Y(I)
1229   57     FORMAT('I,Y(I) = ',I8,G15.7)
1230          CALL DPWRST('XXX','WRIT')
1231   56   CONTINUE
1232      ENDIF
1233C
1234C               ******************************************
1235C               **  STEP 1--                            **
1236C               **  COMPUTE LIKELIHOOD FUNCTION         **
1237C               ******************************************
1238C
1239      ISTEPN='1'
1240      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'ULI1')
1241     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
1242C
1243      IERFLG=0
1244      IERROR='NO'
1245      IWRITE='OFF'
1246C
1247C     CAUCHY LOG-LIKELIHOOD FUNCTION IS:
1248C
1249C     N*LOG(SCALE) - N*LOG(PI) -
1250C     SUM[i=1 TO N][LOG{SCALE**2 + (X(i) - LOC)**2}]
1251C
1252      DN=DBLE(N)
1253      DS=DBLE(SCALE)
1254      DU=DBLE(ALOC)
1255      DTERM1=DN*DLOG(DS) - DN*DLOG(DPI)
1256      DSUM1=0.0D0
1257      DO1000I=1,N
1258        DX=DBLE(Y(I))
1259        DTERM2=DS**2 + (DX - DU)**2
1260        DSUM1=DSUM1 + DLOG(DTERM2)
1261 1000 CONTINUE
1262C
1263      DLIK=DTERM1 - DSUM1
1264      ALIK=REAL(DLIK)
1265      DNP=2.0D0
1266      AIC=REAL(-2.0D0*DLIK + 2.0D0*DNP)
1267      DTERM3=(2.0D0*DNP*(DNP+1.0D0))/(DN-DNP-1.0D0)
1268      AICC=REAL(-2.0D0*DLIK + 2.0D0*DNP + DTERM3)
1269      BIC=REAL(-2.0D0*DLIK + DNP*LOG(DN))
1270C
1271      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'ULI1')THEN
1272        WRITE(ICOUT,999)
1273        CALL DPWRST('XXX','WRIT')
1274        WRITE(ICOUT,9011)
1275 9011   FORMAT('**** AT THE END OF CAULI1--')
1276        CALL DPWRST('XXX','WRIT')
1277        WRITE(ICOUT,9013)DSUM1,DTERM1,DTERM3
1278 9013   FORMAT('DSUM1,DTERM1,DTERM3 = ',3G15.7)
1279        CALL DPWRST('XXX','WRIT')
1280        WRITE(ICOUT,9014)ALIK,AIC,AICC,BIC
1281 9014   FORMAT('ALIK,AIC,AICC,BIC = ',4G15.7)
1282        CALL DPWRST('XXX','WRIT')
1283      ENDIF
1284C
1285      RETURN
1286      END
1287      SUBROUTINE CAUML1(Y,N,TEMP1,TEMP2,DTEMP1,MAXNXT,
1288     1XMEAN,XMED,XSD,XMAD,XIQ,XMIN,XMAX,
1289     1ALOC,ASCALE,ALOCOS,ASCLOS,ALOWOS,SCAWOS,
1290     1ISUBRO,IBUGA3,IERROR)
1291C
1292C     PURPOSE--THIS ROUTINE COMPUTES THE ORDER STATISTICS, THE WEIGHTED
1293C              ORDER STATISTICS, AND THE MAXIMUM LIKELIHOOD ESTIMATES
1294C              FOR THE CAUCHY DISTRIBUTION FOR THE RAW DATA CASE (I.E.,
1295C              NO CENSORING AND NO GROUPING).  IT WILL OPTIONALLY RETURN
1296C              THE CONFIDENCE INTERVALS FOR THE LOCATION AND SCALE
1297C              PARAMETERS BASED ON THE ANTLE METHOD.
1298C
1299C              IT IS ASSUMED THAT BASIC ERROR CHECKING HAS ALREADY BEEN
1300C              PERFORMED.
1301C
1302C              PUT THIS IN A SEPARATE ROUTINE AS IT MAY BE CALLED
1303C              FROM MULTIPLE PLACES (DPMLDE WILL GENERATE THE OUTPUT
1304C              FOR THE CAUCHY MLE COMMAND).
1305C
1306C     REFERENCE--GERALD HAAS, LEE BAIN, CHARLES ANTLE, (1970).
1307C                "INFERENCES FOR THE CAUCHY DISTRIBUTION BASED ON
1308C                MAXIMUM LIKELIHOOD ESTIMATORS", BIOMETRIKA,
1309C                PP. 403-407.
1310C     WRITTEN BY--ALAN HECKERT
1311C                 STATISTICAL ENGINEERING DIVISION
1312C                 INFORMATION TECHNOLOGY LABORATORY
1313C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
1314C                 GAITHERSBURG, MD 20899-8980
1315C                 PHONE--301-975-2899
1316C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
1317C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
1318C     LANGUAGE--ANSI FORTRAN (1977)
1319C     VERSION NUMBER--2009/10
1320C     ORIGINAL VERSION--OCTOBER   2009. EXTRACTED AS A SEPARATE
1321C                                       SUBROUTINE (FROM DPMLDE)
1322C
1323C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
1324C
1325      CHARACTER*4 ISUBRO
1326      CHARACTER*4 IBUGA3
1327      CHARACTER*4 IERROR
1328C
1329      CHARACTER*4 IWRITE
1330      CHARACTER*40 IDIST
1331C
1332      CHARACTER*4 ISUBN1
1333      CHARACTER*4 ISUBN2
1334      CHARACTER*4 ISTEPN
1335C
1336      INTEGER IFLAG
1337C
1338C---------------------------------------------------------------------
1339C
1340      DIMENSION Y(*)
1341      DIMENSION TEMP1(*)
1342      DIMENSION TEMP2(*)
1343      DOUBLE PRECISION DTEMP1(*)
1344C
1345CCCCC DOUBLE PRECISION DN
1346      DOUBLE PRECISION DSUM1
1347      DOUBLE PRECISION DSUM2
1348      DOUBLE PRECISION TOL
1349      DOUBLE PRECISION XPAR(2)
1350      DOUBLE PRECISION FVEC(2)
1351C
1352      EXTERNAL CAUFUN
1353C
1354C---------------------------------------------------------------------
1355C
1356      INCLUDE 'DPCOP2.INC'
1357C
1358      DATA PI/3.14159265358979/
1359C
1360C-----START POINT-----------------------------------------------------
1361C
1362      ISUBN1='CAUM'
1363      ISUBN2='L1  '
1364      IWRITE='OFF'
1365      IERROR='NO'
1366C
1367      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'UML1')THEN
1368        WRITE(ICOUT,999)
1369  999   FORMAT(1X)
1370        CALL DPWRST('XXX','WRIT')
1371        WRITE(ICOUT,51)
1372   51   FORMAT('**** AT THE BEGINNING OF CAUML1--')
1373        CALL DPWRST('XXX','WRIT')
1374        WRITE(ICOUT,52)IBUGA3,ISUBRO,N,MAXNXT
1375   52   FORMAT('IBUGA3,ISUBRO,N,MAXNXT = ',2(A4,2X),3I8)
1376        CALL DPWRST('XXX','WRIT')
1377        DO56I=1,MIN(N,100)
1378          WRITE(ICOUT,57)I,Y(I)
1379   57     FORMAT('I,Y(I) = ',I8,G15.7)
1380          CALL DPWRST('XXX','WRIT')
1381   56   CONTINUE
1382      ENDIF
1383C
1384C               ******************************************
1385C               **  STEP 1--                            **
1386C               **  CARRY OUT CALCULATIONS              **
1387C               **  FOR CAUCHY MLE ESTIMATE             **
1388C               ******************************************
1389C
1390      ISTEPN='1'
1391      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'UML1')
1392     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
1393C
1394      IDIST='CAUCHY'
1395      IFLAG=0
1396      CALL SUMRAW(Y,N,IDIST,IFLAG,
1397     1            XMEAN,XVAR,XSD,XMIN,XMAX,
1398     1            ISUBRO,IBUGA3,IERROR)
1399C
1400      P1=55.65
1401      CALL PERCEN(P1,Y,N,IWRITE,TEMP2,MAXNXT,XUPPQU,IBUGA3,IERROR)
1402      P2=100.0 - P1
1403      CALL PERCEN(P2,Y,N,IWRITE,TEMP2,MAXNXT,XLOWQU,IBUGA3,IERROR)
1404      CALL MEDIAN(Y,N,IWRITE,TEMP2,MAXNXT,XMED,IBUGA3,IERROR)
1405      CALL MAD(Y,N,IWRITE,TEMP1,TEMP2,MAXNXT,XMAD,IBUGA3,IERROR)
1406      CALL LOWQUA(Y,N,IWRITE,TEMP2,MAXNXT,ALOWQU,IBUGA3,IERROR)
1407      CALL UPPQUA(Y,N,IWRITE,TEMP2,MAXNXT,AUPPQU,IBUGA3,IERROR)
1408      XIQ=AUPPQU - ALOWQU
1409C
1410      ALOCOS=0.5*(XUPPQU + XLOWQU)
1411      P2Q=P2/100.0
1412      ASCLOS=0.5*(XUPPQU - XLOWQU)*TAN(PI*P2Q)
1413      AN=REAL(N)
1414C
1415      CALL SORT(Y,N,Y)
1416      DSUM1=0.0D0
1417      DSUM2=0.0D0
1418      DO3210I=1,N
1419        TERM1=REAL(I)/REAL(N+1) - 0.5
1420        ANUM=SIN(4.0*PI*TERM1)
1421        ADENOM=REAL(N)*SIN(PI*TERM1)/COS(PI*TERM1)
1422        DSUM1=DSUM1 + DBLE(ANUM/ADENOM)*DBLE(Y(I))
1423        ANUM=8.0*SIN(PI*TERM1)/COS(PI*TERM1)
1424        TERM2=COS(PI*TERM1)
1425        IF(TERM2.NE.0.0)THEN
1426          TERM2=1.0/TERM2
1427        ELSE
1428          TERM2=1.0/0.0000001
1429        ENDIF
1430        ADENOM=REAL(N)*TERM2**4
1431        DSUM2=DSUM2 + DBLE(ANUM/ADENOM)*DBLE(Y(I))
1432 3210 CONTINUE
1433      ALOWOS=REAL(DSUM1)
1434      SCAWOS=REAL(DSUM2)
1435C
1436      IF(N.EQ.3)THEN
1437        CALL SORT(Y,N,Y)
1438        X1=Y(1)
1439        X2=Y(2)
1440        X3=Y(3)
1441        TERM1=X1*(X3-X2)**2 + X2*(X3-X1)**2 + X3*(X2-X1)**2
1442        TERM2=(X3-X2)**2 + (X3-X1)**2 + (X2-X1)**2
1443        ALOC=TERM1/TERM2
1444        TERM1=SQRT(3.0)*(X3-X2)*(X3-X1)*(X2-X1)
1445        ASCALE=TERM1/TERM2
1446      ELSEIF(N.EQ.3)THEN
1447        CALL SORT(Y,N,Y)
1448        X1=Y(1)
1449        X2=Y(2)
1450        X3=Y(3)
1451        X4=Y(4)
1452        TERM1=X2*X4 - X1*X3
1453        TERM2=X4 - X3 + X2 - X1
1454        ALOC=TERM1/TERM2
1455        TERM1=(X4-X3)*(X3-X2)*(X2-X1)*(X4-X1)
1456        TERM2=(X4 - X3 + X2 - X1)**2
1457        ASCALE=TERM1/TERM2
1458      ELSE
1459        XPAR(1)=DBLE(XMED)
1460        XPAR(2)=DBLE(XMAD)
1461C
1462        IOPT=2
1463        TOL=1.0D-6
1464        NVAR=2
1465        NPRINT=-1
1466        INFO=0
1467        JAC=0
1468        LWA=MAXNXT
1469        CALL DNSQE(CAUFUN,JAC,IOPT,NVAR,XPAR,FVEC,TOL,NPRINT,INFO,
1470     1             DTEMP1,MAXNXT,Y,N)
1471C
1472        ALOC=REAL(XPAR(1))
1473        ASCALE=REAL(XPAR(2))
1474      ENDIF
1475C
1476      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'UML1')THEN
1477        WRITE(ICOUT,999)
1478        CALL DPWRST('XXX','WRIT')
1479        WRITE(ICOUT,9011)
1480 9011   FORMAT('**** AT THE END OF CAUML1--')
1481        CALL DPWRST('XXX','WRIT')
1482        WRITE(ICOUT,9055)N,XMEAN,XMED,XSD,XMAD,XMIN,XMAX
1483 9055   FORMAT('N,XMEAN,XMED,XSD,XMAD,XMIN,XMAX = ',I8,6G15.7)
1484        CALL DPWRST('XXX','WRIT')
1485        WRITE(ICOUT,9056)ALOC,ASCALE,ALOCOS,ASCLOS,ALOWOS,SCAWOS
1486 9056   FORMAT('ALOC,ASCALE,ALOCOS,ASCLOS,ALOWOS,SCAWOS = ',6G15.7)
1487        CALL DPWRST('XXX','WRIT')
1488      ENDIF
1489C
1490      RETURN
1491      END
1492      SUBROUTINE CAUPDF(X,PDF)
1493C
1494C     PURPOSE--THIS SUBROUTINE COMPUTES THE PROBABILITY DENSITY
1495C              FUNCTION VALUE FOR THE CAUCHY DISTRIBUTION
1496C              WITH MEDIAN = 0 AND 75% POINT = 1.
1497C              THIS DISTRIBUTION IS DEFINED FOR ALL X AND HAS
1498C              THE PROBABILITY DENSITY FUNCTION
1499C              F(X) = (1/PI)*(1/(1+X*X)).
1500C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION VALUE AT
1501C                                WHICH THE PROBABILITY DENSITY
1502C                                FUNCTION IS TO BE EVALUATED.
1503C     OUTPUT ARGUMENTS--PDF    = THE SINGLE PRECISION PROBABILITY
1504C                                DENSITY FUNCTION VALUE.
1505C     OUTPUT--THE SINGLE PRECISION PROBABILITY DENSITY
1506C             FUNCTION VALUE PDF.
1507C     PRINTING--NONE.
1508C     RESTRICTIONS--NONE.
1509C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE.
1510C     FORTRAN LIBRARY SUBROUTINES NEEDED--NONE.
1511C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
1512C     LANGUAGE--ANSI FORTRAN.
1513C     REFERENCES--JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
1514C                 DISTRIBUTIONS--1, 1970, PAGES 154-165.
1515C     WRITTEN BY--JAMES J. FILLIBEN
1516C                 STATISTICAL ENGINEERING LABORATORY (205.03)
1517C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
1518C                 GAITHERSBURG, MD 20899-8980
1519C                 PHONE:  301-921-2315
1520C     ORIGINAL VERSION--APRIL     1994.
1521C
1522C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
1523C
1524C---------------------------------------------------------------------
1525C
1526      INCLUDE 'DPCOP2.INC'
1527C
1528C---------------------------------------------------------------------
1529C
1530      DATA C/.31830988618379/
1531C
1532C     CHECK THE INPUT ARGUMENTS FOR ERRORS.
1533C     NO INPUT ARGUMENT ERRORS POSSIBLE
1534C     FOR THIS DISTRIBUTION.
1535C
1536C-----START POINT-----------------------------------------------------
1537C
1538      PDF=C*(1.0/(1.0+X*X))
1539C
1540      RETURN
1541      END
1542      SUBROUTINE CAUPPF(P,PPF)
1543C
1544C     PURPOSE--THIS SUBROUTINE COMPUTES THE PERCENT POINT
1545C              FUNCTION VALUE FOR THE CAUCHY DISTRIBUTION
1546C              WITH MEDIAN = 0 AND 75% POINT = 1.
1547C              THIS DISTRIBUTION IS DEFINED FOR ALL X AND HAS
1548C              THE PROBABILITY DENSITY FUNCTION
1549C              F(X) = (1/PI)*(1/(1+X*X)).
1550C              NOTE THAT THE PERCENT POINT FUNCTION OF A DISTRIBUTION
1551C              IS IDENTICALLY THE SAME AS THE INVERSE CUMULATIVE
1552C              DISTRIBUTION FUNCTION OF THE DISTRIBUTION.
1553C     INPUT  ARGUMENTS--P      = THE SINGLE PRECISION VALUE
1554C                                (BETWEEN 0.0 AND 1.0)
1555C                                AT WHICH THE PERCENT POINT
1556C                                FUNCTION IS TO BE EVALUATED.
1557C     OUTPUT ARGUMENTS--PPF    = THE SINGLE PRECISION PERCENT
1558C                                POINT FUNCTION VALUE.
1559C     OUTPUT--THE SINGLE PRECISION PERCENT POINT
1560C             FUNCTION VALUE PPF.
1561C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
1562C     RESTRICTIONS--P SHOULD BE BETWEEN 0.0 AND 1.0, EXCLUSIVELY.
1563C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE.
1564C     FORTRAN LIBRARY SUBROUTINES NEEDED--SIN, COS.
1565C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
1566C     LANGUAGE--ANSI FORTRAN (1977)
1567C     REFERENCES--FILLIBEN, SIMPLE AND ROBUST LINEAR ESTIMATION
1568C                 OF THE LOCATION PARAMETER OF A SYMMETRIC
1569C                 DISTRIBUTION (UNPUBLISHED PH.D. DISSERTATION,
1570C                 PRINCETON UNIVERSITY), 1969, PAGES 21-44, 229-231.
1571C               --FILLIBEN, 'THE PERCENT POINT FUNCTION',
1572C                 (UNPUBLISHED MANUSCRIPT), 1970, PAGES 28-31.
1573C               --JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
1574C                 DISTRIBUTIONS--1, 1970, PAGES 154-165.
1575C     WRITTEN BY--JAMES J. FILLIBEN
1576C                 STATISTICAL ENGINEERING DIVISION
1577C                 INFORMATION TECHNOLOGY LABORATORY
1578C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
1579C                 GAITHERSBURG, MD 20899-8980
1580C                 PHONE--301-975-2855
1581C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
1582C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
1583C     LANGUAGE--ANSI FORTRAN (1966)
1584C     VERSION NUMBER--82/7
1585C     ORIGINAL VERSION--JUNE      1972.
1586C     UPDATED         --SEPTEMBER 1975.
1587C     UPDATED         --NOVEMBER  1975.
1588C     UPDATED         --DECEMBER  1981.
1589C     UPDATED         --MAY       1982.
1590C
1591C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
1592C
1593C---------------------------------------------------------------------
1594C
1595      INCLUDE 'DPCOP2.INC'
1596C
1597C-----DATA STATEMENTS-----------------------------------------------------
1598C
1599      DATA PI/3.14159265359/
1600C
1601C-----START POINT-----------------------------------------------------
1602C
1603C     CHECK THE INPUT ARGUMENTS FOR ERRORS
1604C
1605      IF(P.LE.0.0.OR.P.GE.1.0)GOTO50
1606      GOTO90
1607   50 WRITE(ICOUT,1)
1608      CALL DPWRST('XXX','BUG ')
1609      WRITE(ICOUT,46)P
1610      CALL DPWRST('XXX','BUG ')
1611      RETURN
1612   90 CONTINUE
1613    1 FORMAT('***** FATAL ERROR--THE 1ST INPUT ARGUMENT TO THE ',
1614     1' CAUPPF SUBROUTINE IS OUTSIDE THE ALLOWABLE (0,1) INTERVAL')
1615   46 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',E15.8,' *****')
1616C
1617      ARG=PI*P
1618      PPF=-COS(ARG)/SIN(ARG)
1619C
1620      RETURN
1621      END
1622      SUBROUTINE CAURAN(N,ISEED,X)
1623C
1624C     PURPOSE--THIS SUBROUTINE GENERATES A RANDOM SAMPLE OF SIZE N
1625C              FROM THE CAUCHY DISTRIBUTION
1626C              WITH MEDIAN = 0 AND 75% POINT = 1.
1627C              THIS DISTRIBUTION IS DEFINED FOR ALL X AND HAS
1628C              THE PROBABILITY DENSITY FUNCTION
1629C              F(X) = (1/PI)*(1/(1+X*X)).
1630C     INPUT  ARGUMENTS--N      = THE DESIRED INTEGER NUMBER
1631C                                OF RANDOM NUMBERS TO BE
1632C                                GENERATED.
1633C     OUTPUT ARGUMENTS--X      = A SINGLE PRECISION VECTOR
1634C                                (OF DIMENSION AT LEAST N)
1635C                                INTO WHICH THE GENERATED
1636C                                RANDOM SAMPLE WILL BE PLACED.
1637C     OUTPUT--A RANDOM SAMPLE OF SIZE N
1638C             FUNCTION VALUE FOR THE CAUCHY DISTRIBUTION
1639C             WITH MEDIAN = 0 AND 75% POINT = 1.
1640C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
1641C     RESTRICTIONS--THERE IS NO RESTRICTION ON THE MAXIMUM VALUE
1642C                   OF N FOR THIS SUBROUTINE.
1643C     OTHER DATAPAC   SUBROUTINES NEEDED--UNIRAN.
1644C     FORTRAN LIBRARY SUBROUTINES NEEDED--SIN, COS.
1645C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
1646C     LANGUAGE--ANSI FORTRAN (1977)
1647C     REFERENCES--TOCHER, THE ART OF SIMULATION,
1648C                 1963, PAGE 15.
1649C               --HAMMERSLEY AND HANDSCOMB, MONTE CARLO METHODS,
1650C                 1964, PAGE 36.
1651C               --FILLIBEN, SIMPLE AND ROBUST LINEAR ESTIMATION
1652C                 OF THE LOCATION PARAMETER OF A SYMMETRIC
1653C                 DISTRIBUTION (UNPUBLISHED PH.D. DISSERTATION,
1654C                 PRINCETON UNIVERSITY), 1969, PAGE 231.
1655C               --FILLIBEN, 'THE PERCENT POINT FUNCTION',
1656C                 (UNPUBLISHED MANUSCRIPT), 1970, PAGES 28-31.
1657C               --JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
1658C                 DISTRIBUTIONS--1, 1970, PAGES 154-165.
1659C     WRITTEN BY--JAMES J. FILLIBEN
1660C                 STATISTICAL ENGINEERING DIVISION
1661C                 INFORMATION TECHNOLOGY LABORATORY
1662C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
1663C                 GAITHERSBURG, MD 20899-8980
1664C                 PHONE--301-975-2855
1665C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
1666C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
1667C     LANGUAGE--ANSI FORTRAN (1966)
1668C     VERSION NUMBER--82/7
1669C     ORIGINAL VERSION--JUNE      1972.
1670C     UPDATED         --SEPTEMBER 1975.
1671C     UPDATED         --NOVEMBER  1975.
1672C     UPDATED         --DECEMBER  1981.
1673C     UPDATED         --MAY       1982.
1674C
1675C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
1676C
1677C---------------------------------------------------------------------
1678C
1679      DIMENSION X(*)
1680C
1681C---------------------------------------------------------------------
1682C
1683      INCLUDE 'DPCOP2.INC'
1684C
1685C-----DATA STATEMENTS-------------------------------------------------
1686C
1687      DATA PI/3.14159265359/
1688C
1689C-----START POINT-----------------------------------------------------
1690C
1691C     CHECK THE INPUT ARGUMENTS FOR ERRORS
1692C
1693      IF(N.LT.1)GOTO50
1694      GOTO90
1695   50 WRITE(ICOUT, 5)
1696      CALL DPWRST('XXX','BUG ')
1697      WRITE(ICOUT,47)N
1698      CALL DPWRST('XXX','BUG ')
1699      RETURN
1700   90 CONTINUE
1701    5 FORMAT('***** FATAL ERROR--THE 1ST INPUT ARGUMENT TO THE ',
1702     1'CAURAN SUBROUTINE IS NON-POSITIVE *****')
1703   47 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',I8   ,' *****')
1704C
1705C     GENERATE N UNIFORM (0,1) RANDOM NUMBERS;
1706C
1707      CALL UNIRAN(N,ISEED,X)
1708C
1709C     GENERATE N CAUCHY RANDOM NUMBERS
1710C     USING THE PERCENT POINT FUNCTION TRANSFORMATION METHOD.
1711C
1712      DO100I=1,N
1713      ARG=PI*X(I)
1714      X(I)=-COS(ARG)/SIN(ARG)
1715  100 CONTINUE
1716C
1717      RETURN
1718      END
1719      SUBROUTINE CAUSF(P,SF)
1720C
1721C     PURPOSE--THIS SUBROUTINE COMPUTES THE SPARSITY
1722C              FUNCTION VALUE FOR THE CAUCHY DISTRIBUTION
1723C              WITH MEDIAN = 0 AND 75% POINT = 1.
1724C              THIS DISTRIBUTION IS DEFINED FOR ALL X AND HAS
1725C              THE PROBABILITY DENSITY FUNCTION
1726C              F(X) = (1/PI)*(1/(1+X*X)).
1727C              NOTE THAT THE SPARSITY FUNCTION OF A DISTRIBUTION
1728C              IS THE DERIVATIVE OF THE PERCENT POINT FUNCTION,
1729C              AND ALSO IS THE RECIPROCAL OF THE PROBABILITY
1730C              DENSITY FUNCTION (BUT IN UNITS OF P RATHER THAN X).
1731C     INPUT  ARGUMENTS--P      = THE SINGLE PRECISION VALUE
1732C                                (BETWEEN 0.0 AND 1.0)
1733C                                AT WHICH THE SPARSITY
1734C                                FUNCTION IS TO BE EVALUATED.
1735C     OUTPUT ARGUMENTS--SF     = THE SINGLE PRECISION
1736C                                SPARSITY FUNCTION VALUE.
1737C     OUTPUT--THE SINGLE PRECISION SPARSITY
1738C             FUNCTION VALUE SF.
1739C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
1740C     RESTRICTIONS--P SHOULD BE BETWEEN 0.0 AND 1.0, EXCLUSIVELY.
1741C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE.
1742C     FORTRAN LIBRARY SUBROUTINES NEEDED--SIN.
1743C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
1744C     LANGUAGE--ANSI FORTRAN.
1745C     REFERENCES--FILLIBEN, SIMPLE AND ROBUST LINEAR ESTIMATION
1746C                 OF THE LOCATION PARAMETER OF A SYMMETRIC
1747C                 DISTRIBUTION (UNPUBLISHED PH.D. DISSERTATION,
1748C                 PRINCETON UNIVERSITY), 1969, PAGES 21-44, 229-231.
1749C               --FILLIBEN, 'THE PERCENT POINT FUNCTION',
1750C                 (UNPUBLISHED MANUSCRIPT), 1970, PAGES 28-31.
1751C               --JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
1752C                 DISTRIBUTIONS--1, 1970, PAGES 154-165.
1753C     WRITTEN BY--JAMES J. FILLIBEN
1754C                 STATISTICAL ENGINEERING LABORATORY (205.03)
1755C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
1756C                 GAITHERSBURG, MD 20899-8980
1757C                 PHONE:  301-921-2315
1758C     ORIGINAL VERSION--APRIL     1994.
1759C
1760C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
1761C
1762C---------------------------------------------------------------------
1763C
1764      INCLUDE 'DPCOP2.INC'
1765C
1766C---------------------------------------------------------------------
1767C
1768      DATA PI/3.14159265358979/
1769C
1770C     CHECK THE INPUT ARGUMENTS FOR ERRORS
1771C
1772      IF(P.LE.0.0.OR.P.GE.1.0)GOTO50
1773      GOTO90
1774   50 CONTINUE
1775      WRITE(ICOUT,1)
1776      CALL DPWRST('XXX','BUG ')
1777      WRITE(ICOUT,2)
1778      CALL DPWRST('XXX','BUG ')
1779      WRITE(ICOUT,3)
1780      CALL DPWRST('XXX','BUG ')
1781      WRITE(ICOUT,46)P
1782      RETURN
1783    1 FORMAT('***** FATAL ERROR--THE FIRST  INPUT ARGUMENT TO THE')
1784    2 FORMAT('      CAUPPF SUBROUTINE IS OUTSIDE THE ALLOWABLE (0,1)')
1785    3 FORMAT('       INTERVAL *****')
1786   46 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',E15.8,' *****')
1787C
1788   90 CONTINUE
1789C
1790C-----START POINT-----------------------------------------------------
1791C
1792      ARG=PI*P
1793      SF=PI/((SIN(ARG))**2)
1794C
1795      RETURN
1796      END
1797      COMPLEX FUNCTION CBETA(A,B,IERR2)
1798C***BEGIN PROLOGUE  CBETA
1799C***DATE WRITTEN   770701   (YYMMDD)
1800C***REVISION DATE  820801   (YYMMDD)
1801C***CATEGORY NO.  C7B
1802C***KEYWORDS  BETA FUNCTION,COMPLETE BETA FUNCTION,COMPLEX,
1803C             SPECIAL FUNCTION
1804C***AUTHOR  FULLERTON, W., (LANL)
1805C***PURPOSE  CBETA computes the complete Beta function of complex
1806C            parameters A and B.
1807C***DESCRIPTION
1808C
1809C CBETA computes the complete beta function of complex parameters A
1810C and B.
1811C Input Parameters:
1812C       A   complex and the real part of A positive
1813C       B   complex and the real part of B positive
1814C***REFERENCES  (NONE)
1815C***ROUTINES CALLED  CGAMMA,CLBETA,GAMLIM,XERROR
1816C***END PROLOGUE  CBETA
1817C
1818      INCLUDE 'DPCOP2.INC'
1819C
1820      COMPLEX A, B, CGAMMA, CLBETA, CEXP
1821C
1822      DATA XMAX / 0.0 /
1823C
1824C***FIRST EXECUTABLE STATEMENT  CBETA
1825      CBETA = (0.0, 0.0)
1826      IERR2=0
1827      IF (XMAX.EQ.0.0) CALL GAMLIM (XMIN, XMAX)
1828C
1829      IF (REAL(A).LE.0.0 .OR. REAL(B).LE.0.0) THEN
1830CCCCC   CALL XERROR ( 'CBETA   REA
1831CCCCC1L PART OF BOTH ARGUMENTS MUST BE GT 0', 48, 1, 2)
1832        WRITE(ICOUT,11)
1833        CALL DPWRST('XXX','BUG ')
1834      ENDIF
1835   11 FORMAT('***** ERROR FROM CBETA: REAL PARTS OF PARAMETER',
1836     1       'MUST BE POSITIVE')
1837C
1838      IF (REAL(A)+REAL(B).LT.XMAX) CBETA = CGAMMA(A) * (CGAMMA(B)/
1839     1  CGAMMA(A+B) )
1840      IF (REAL(A)+REAL(B).LT.XMAX) RETURN
1841C
1842      CBETA = CEXP (CLBETA(A, B))
1843C
1844      RETURN
1845      END
1846      SUBROUTINE CC(X,N,ENGLSL,ENGUSL,TARGET,IWRITE,XCC,
1847     1IBUGA3,IERROR)
1848C
1849C     PURPOSE--THIS SUBROUTINE COMPUTES THE
1850C              SAMPLE CC (PROCESS CAPABILITY INDEX)
1851C              OF THE DATA IN THE INPUT VECTOR X.
1852C              CC = MAX((TARGET-MU)/(TARGET-LSL),(MU-TARGET)/(USL))
1853C     NOTE--CC IS A MEASURE OF PROCESS ACCURACY--
1854C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION VECTOR OF
1855C                                (UNSORTED OR SORTED) OBSERVATIONS.
1856C                     --N      = THE INTEGER NUMBER OF OBSERVATIONS
1857C                                IN THE VECTOR X.
1858C                     --ENGLSL = LOWER (ENGINEERING) SPEC LIMIT
1859C                     --ENGUSL = UPPER (ENGINEERING) SPEC LIMIT
1860C                     --TARGET = TARGET (ENGINEERING) SPEC LIMIT
1861C     OUTPUT ARGUMENTS--CC    = THE SINGLE PRECISION VALUE OF THE
1862C                                COMPUTED SAMPLE CC
1863C     OUTPUT--THE COMPUTED SINGLE PRECISION VALUE OF THE
1864C             SAMPLE CC INDEX
1865C     RESTRICTIONS--THERE IS NO RESTRICTION ON THE MAXIMUM VALUE
1866C                   OF N FOR THIS SUBROUTINE.
1867C     OTHER DATAPAC   SUBROUTINES NEEDED--MEAN AND SD.
1868C     FORTRAN LIBRARY SUBROUTINES NEEDED--DSQRT.
1869C     MODE OF INTERNAL OPERATIONS--DOUBLE PRECISION.
1870C     LANGUAGE--ANSI FORTRAN (1977)
1871C     REFERENCES--NORMA HUBELE, ARIZONA STATE
1872C     WRITTEN BY--JAMES J. FILLIBEN
1873C                 STATISTICAL ENGINEERING DIVISION
1874C                 INFORMATION TECHNOLOGY LABORATORY
1875C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
1876C                 GAITHERSBURG, MD 20899-8980
1877C                 PHONE--301-975-2899
1878C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
1879C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
1880C     LANGUAGE--ANSI FORTRAN (1977)
1881C     VERSION NUMBER--98.11
1882C     ORIGINAL VERSION--NOVEMBER  1998.
1883C
1884C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
1885C
1886      CHARACTER*4 IWRITE
1887      CHARACTER*4 IBUGA3
1888      CHARACTER*4 IERROR
1889C
1890C---------------------------------------------------------------------
1891C
1892      DOUBLE PRECISION DN
1893      DOUBLE PRECISION DX
1894      DOUBLE PRECISION DSUM
1895      DOUBLE PRECISION DMEAN
1896C
1897      DOUBLE PRECISION DUSL
1898      DOUBLE PRECISION DLSL
1899      DOUBLE PRECISION DTARG
1900      DOUBLE PRECISION DNUM
1901      DOUBLE PRECISION DDEN
1902      DOUBLE PRECISION DCC
1903C
1904      DIMENSION X(*)
1905C
1906C---------------------------------------------------------------------
1907C
1908      INCLUDE 'DPCOP2.INC'
1909C
1910C-----START POINT-----------------------------------------------------
1911C
1912      IERROR='NO'
1913C
1914      DMEAN=0.0D0
1915C
1916      IF(IBUGA3.EQ.'OFF')GOTO90
1917      WRITE(ICOUT,999)
1918  999 FORMAT(1X)
1919      CALL DPWRST('XXX','BUG ')
1920      WRITE(ICOUT,51)
1921   51 FORMAT('***** AT THE BEGINNING OF CC--')
1922      CALL DPWRST('XXX','BUG ')
1923      WRITE(ICOUT,52)IBUGA3
1924   52 FORMAT('IBUGA3 = ',A4)
1925      CALL DPWRST('XXX','BUG ')
1926      WRITE(ICOUT,53)N
1927   53 FORMAT('N = ',I8)
1928      CALL DPWRST('XXX','BUG ')
1929      WRITE(ICOUT,54)ENGUSL,ENGLSL
1930   54 FORMAT('ENGUSL,ENGLSL = ',2E15.7)
1931      CALL DPWRST('XXX','BUG ')
1932      DO55I=1,N
1933      WRITE(ICOUT,56)I,X(I)
1934   56 FORMAT('I,X(I) = ',I8,E15.7)
1935      CALL DPWRST('XXX','BUG ')
1936   55 CONTINUE
1937   90 CONTINUE
1938C
1939C               ********************************************
1940C               **  COMPUTE PROCESS CAPABILITY INDEX CC  **
1941C               ********************************************
1942C
1943C               ********************************************
1944C               **  STEP 1--                              **
1945C               **  CHECK THE INPUT ARGUMENTS FOR ERRORS  **
1946C               ********************************************
1947C
1948      IF(N.GE.1)GOTO119
1949      IERROR='YES'
1950      WRITE(ICOUT,999)
1951      CALL DPWRST('XXX','BUG ')
1952      WRITE(ICOUT,111)
1953  111 FORMAT('***** ERROR IN CC--')
1954      CALL DPWRST('XXX','BUG ')
1955      WRITE(ICOUT,112)
1956  112 FORMAT('      THE INPUT NUMBER OF OBSERVATIONS')
1957      CALL DPWRST('XXX','BUG ')
1958      WRITE(ICOUT,113)
1959  113 FORMAT('      IN THE VARIABLE FOR WHICH')
1960      CALL DPWRST('XXX','BUG ')
1961      WRITE(ICOUT,114)
1962  114 FORMAT('      THE CC STATISTIC IS TO BE COMPUTED')
1963      CALL DPWRST('XXX','BUG ')
1964      WRITE(ICOUT,115)
1965  115 FORMAT('      MUST BE 1 OR LARGER.')
1966      CALL DPWRST('XXX','BUG ')
1967      WRITE(ICOUT,116)
1968  116 FORMAT('      SUCH WAS NOT THE CASE HERE.')
1969      CALL DPWRST('XXX','BUG ')
1970      WRITE(ICOUT,117)N
1971  117 FORMAT('      THE INPUT NUMBER OF OBSERVATIONS HERE = ',I8,
1972     1'.')
1973      CALL DPWRST('XXX','BUG ')
1974      GOTO9000
1975  119 CONTINUE
1976C
1977C               ***************************************
1978C               **  STEP 2--                         **
1979C               **  COMPUTE THE STANDARD DEVIATION.  **
1980C               ***************************************
1981C
1982      DN=N
1983      DSUM=0.0D0
1984      DO200I=1,N
1985      DX=X(I)
1986      DSUM=DSUM+DX
1987  200 CONTINUE
1988      DMEAN=DSUM/DN
1989C
1990C               **************************************************
1991C               **  STEP 3--                                    **
1992C               **  COMPUTE THE CC RATIO                       **
1993C               **************************************************
1994C
1995      DUSL=ENGUSL
1996      DLSL=ENGLSL
1997      DTARG=TARGET
1998C
1999      DNUM=(DTARG-DMEAN)/(DTARG-DLSL)
2000      DDEN=(DMEAN-DTARG)/DUSL
2001C
2002      DCC=MAX(DNUM,DDEN)
2003      XCC=REAL(DCC)
2004C
2005C               *******************************
2006C               **  STEP 3--                 **
2007C               **  WRITE OUT A LINE         **
2008C               **  OF SUMMARY INFORMATION.  **
2009C               *******************************
2010C
2011      IF(IFEEDB.EQ.'OFF')GOTO890
2012      IF(IWRITE.EQ.'OFF')GOTO890
2013      WRITE(ICOUT,999)
2014      CALL DPWRST('XXX','BUG ')
2015      WRITE(ICOUT,811)N,XCC
2016  811 FORMAT('THE CC OF THE ',I8,' OBSERVATIONS = ',
2017     1E15.7)
2018      CALL DPWRST('XXX','BUG ')
2019  890 CONTINUE
2020C
2021C               *****************
2022C               **  STEP 90--  **
2023C               **  EXIT.      **
2024C               *****************
2025C
2026 9000 CONTINUE
2027      IF(IBUGA3.EQ.'OFF')GOTO9090
2028      WRITE(ICOUT,999)
2029      CALL DPWRST('XXX','BUG ')
2030      WRITE(ICOUT,9011)
2031 9011 FORMAT('***** AT THE END       OF CC--')
2032      CALL DPWRST('XXX','BUG ')
2033      WRITE(ICOUT,9012)IBUGA3,IERROR
2034 9012 FORMAT('IBUGA3,IERROR = ',A4,2X,A4)
2035      CALL DPWRST('XXX','BUG ')
2036      WRITE(ICOUT,9013)N
2037 9013 FORMAT('N = ',I8)
2038      CALL DPWRST('XXX','BUG ')
2039      WRITE(ICOUT,9014)DMEAN
2040 9014 FORMAT('DMEAN = ',D15.7)
2041      CALL DPWRST('XXX','BUG ')
2042      WRITE(ICOUT,9016)DUSL,DLSL
2043 9016 FORMAT('DUSL,DLSL = ',2D15.7)
2044      CALL DPWRST('XXX','BUG ')
2045      WRITE(ICOUT,9017)DNUM,DDEN,DCC,XCC
2046 9017 FORMAT('DNUM,DDEN,DCC,XCC = ',3D15.7,E15.7)
2047      CALL DPWRST('XXX','BUG ')
2048 9090 CONTINUE
2049C
2050      RETURN
2051      END
2052      COMPLEX FUNCTION CCOT(Z)
2053C***BEGIN PROLOGUE  CCOT
2054C***DATE WRITTEN   770401   (YYMMDD)
2055C***REVISION DATE  820801   (YYMMDD)
2056C***CATEGORY NO.  C4A
2057C***KEYWORDS  COMPLEX,COTANGENT,ELEMENTARY FUNCTION
2058C***AUTHOR  FULLERTON, W., (LANL)
2059C***PURPOSE  Computes the complex Cotangent.
2060C***DESCRIPTION
2061C
2062C CCOT(Z) calculates the comlex trigonometric cotangent of Z.
2063C***REFERENCES  (NONE)
2064C***ROUTINES CALLED  R1MACH,XERCLR,XERROR
2065C***END PROLOGUE  CCOT
2066      COMPLEX Z
2067C
2068      INCLUDE 'DPCOMC.INC'
2069      INCLUDE 'DPCOP2.INC'
2070C
2071      DATA SQEPS /0./
2072C***FIRST EXECUTABLE STATEMENT  CCOT
2073      CCOT = (0., 0.)
2074C
2075      IF (SQEPS.EQ.0.) SQEPS = SQRT (R1MACH(4))
2076C
2077      X2 = 2.0*REAL(Z)
2078      Y2 = 2.0*AIMAG(Z)
2079C
2080      SN2X = SIN (X2)
2081CCCCC CALL XERCLR
2082C
2083      DEN = COSH(Y2) - COS(X2)
2084      IF (DEN.EQ.0.) THEN
2085CCCCC   CALL XERROR (  'CCOT    COT IS SINGULAR FOR INPUT Z
2086CCCCC1 (X IS 0 OR PI AND Y IS 0)'  , 61, 2, 2)
2087        WRITE(ICOUT,102)
2088        CALL DPWRST('XXX','BUG ')
2089        RETURN
2090      ENDIF
2091 102  FORMAT('***** INTERNAL ERROR FROM CCOT: COT IS SINGULAR')
2092C
2093      IF (ABS(DEN).GT.AMAX1(ABS(X2),1.)*SQEPS) GO TO 10
2094CCCCC CALL XERCLR
2095CCCCC CALL XERROR ( 'CCOT    ANSWER LT HALF PRECISION, ABS(X) TOO BIG OR
2096CCCCC1 X TOO NEAR 0 OR PI', 70, 1, 1)
2097      WRITE(ICOUT,202)
2098      CALL DPWRST('XXX','BUG ')
2099 202  FORMAT('***** INTERNAL WARNING FROM CCOT: ANSWER IS LESS THAN'
2100     1,' HALF PRECISION BECAUSE ABS(X) IS TOO LARGE')
2101      WRITE(ICOUT,203)
2102      CALL DPWRST('XXX','BUG ')
2103 203  FORMAT('      OR X IS TOO NEAR 0 OR PI')
2104C
2105 10   CCOT = CMPLX (SN2X/DEN, -SINH(Y2)/DEN)
2106C
2107      RETURN
2108      END
2109      DOUBLE PRECISION FUNCTION CDFGLO(X,PARA)
2110C===================================================== CDFGLO.FOR
2111C***********************************************************************
2112C*                                                                     *
2113C*  FORTRAN CODE WRITTEN FOR INCLUSION IN IBM RESEARCH REPORT RC20525, *
2114C*  'FORTRAN ROUTINES FOR USE WITH THE METHOD OF L-MOMENTS, VERSION 3' *
2115C*                                                                     *
2116C*  J. R. M. HOSKING                                                   *
2117C*  IBM RESEARCH DIVISION                                              *
2118C*  T. J. WATSON RESEARCH CENTER                                       *
2119C*  YORKTOWN HEIGHTS                                                   *
2120C*  NEW YORK 10598, U.S.A.                                             *
2121C*                                                                     *
2122C*  VERSION 3     AUGUST 1996                                          *
2123C*                                                                     *
2124C***********************************************************************
2125C
2126C  DISTRIBUTION FUNCTION OF THE GENERALIZED LOGISTIC DISTRIBUTION
2127C
2128      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2129      DOUBLE PRECISION PARA(3)
2130C
2131      INCLUDE 'DPCOP2.INC'
2132C
2133      DATA ZERO/0.0D0/,ONE/1.0D0/
2134C
2135C         SMALL IS USED TO TEST WHETHER X IS EFFECTIVELY AT
2136C         THE ENDPOINT OF THE DISTRIBUTION
2137C
2138      DATA SMALL/1.0D-15/
2139C
2140      U=PARA(1)
2141      A=PARA(2)
2142      G=PARA(3)
2143C
2144      IF(A.LE.ZERO)THEN
2145        CDFGLO=ZERO
2146        WRITE(ICOUT,7000)
2147 7000   FORMAT('***** ERROR IN GL5CDF--NON-POSITIVE SCALE ',
2148     1         'PARAMETER IS INVALID.')
2149        CALL DPWRST('XXX','WRIT')
2150        WRITE(ICOUT,7005)
2151 7005   FORMAT('      L-MOMENTS INVALID')
2152        CALL DPWRST('XXX','WRIT')
2153        GOTO 9000
2154      ENDIF
2155C
2156      Y=(X-U)/A
2157      IF(G.EQ.ZERO)GOTO 20
2158      ARG=ONE-G*Y
2159      IF(ARG.GT.SMALL)GOTO 10
2160      IF(G.LT.ZERO)CDFGLO=ZERO
2161      IF(G.GT.ZERO)CDFGLO=ONE
2162      GOTO9000
2163C
2164   10 CONTINUE
2165      Y=-DLOG(ARG)/G
2166   20 CONTINUE
2167      CDFGLO=ONE/(ONE+DEXP(-Y))
2168C
2169 9000 CONTINUE
2170      RETURN
2171      END
2172C===================================================== CDFKAP.FOR
2173      DOUBLE PRECISION FUNCTION CDFKAP(X,PARA)
2174C***********************************************************************
2175C*                                                                     *
2176C*  FORTRAN CODE WRITTEN FOR INCLUSION IN IBM RESEARCH REPORT RC20525, *
2177C*  'FORTRAN ROUTINES FOR USE WITH THE METHOD OF L-MOMENTS, VERSION 3' *
2178C*                                                                     *
2179C*  J. R. M. HOSKING                                                   *
2180C*  IBM RESEARCH DIVISION                                              *
2181C*  T. J. WATSON RESEARCH CENTER                                       *
2182C*  YORKTOWN HEIGHTS                                                   *
2183C*  NEW YORK 10598, U.S.A.                                             *
2184C*                                                                     *
2185C*  VERSION 3     AUGUST 1996                                          *
2186C*                                                                     *
2187C***********************************************************************
2188C
2189C  DISTRIBUTION FUNCTION OF THE KAPPA DISTRIBUTION
2190C
2191      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2192      DOUBLE PRECISION PARA(4)
2193C
2194      INCLUDE 'DPCOP2.INC'
2195C
2196      DATA ZERO/0D0/,ONE/1D0/
2197C
2198C         SMALL IS A SMALL NUMBER, USED TO TEST WHETHER X IS
2199C         EFFECTIVELY AT AN ENDPOINT OF THE DISTRIBUTION
2200C
2201      DATA SMALL/1D-15/
2202C
2203      U=PARA(1)
2204      A=PARA(2)
2205      G=PARA(3)
2206      H=PARA(4)
2207C
2208      IF(A.LE.ZERO)THEN
2209        WRITE(ICOUT,7000)
2210 7000   FORMAT('***** ERROR FROM ROUTINE CDFKAP: SCALE PARAMETER IS ',
2211     1         'NON-POSITIVE.')
2212        CDFKAP=ZERO
2213        GOTO 9000
2214      ENDIF
2215C
2216      Y=(X-U)/A
2217      IF(G.EQ.ZERO)GOTO 20
2218      ARG=ONE-G*Y
2219      IF(ARG.GT.SMALL)GOTO 10
2220      IF(G.LT.ZERO)CDFKAP=ZERO
2221      IF(G.GT.ZERO)CDFKAP=ONE
2222      GOTO9000
2223C
2224   10 Y=-DLOG(ARG)/G
2225   20 Y=DEXP(-Y)
2226      IF(H.EQ.ZERO)GOTO 40
2227      ARG=ONE-H*Y
2228      IF(ARG.GT.SMALL)GOTO 30
2229      CDFKAP=ZERO
2230      GOTO9000
2231   30 Y=-DLOG(ARG)/H
2232   40 CDFKAP=DEXP(-Y)
2233      GOTO9000
2234C
2235 9000 CONTINUE
2236      RETURN
2237      END
2238C===================================================== CDFPE3.FOR
2239      DOUBLE PRECISION FUNCTION CDFPE3(X,PARA)
2240C***********************************************************************
2241C*                                                                     *
2242C*  FORTRAN CODE WRITTEN FOR INCLUSION IN IBM RESEARCH REPORT RC20525, *
2243C*  'FORTRAN ROUTINES FOR USE WITH THE METHOD OF L-MOMENTS, VERSION 3' *
2244C*                                                                     *
2245C*  J. R. M. HOSKING                                                   *
2246C*  IBM RESEARCH DIVISION                                              *
2247C*  T. J. WATSON RESEARCH CENTER                                       *
2248C*  YORKTOWN HEIGHTS                                                   *
2249C*  NEW YORK 10598, U.S.A.                                             *
2250C*                                                                     *
2251C*  VERSION 3     AUGUST 1996                                          *
2252C*                                                                     *
2253C***********************************************************************
2254C
2255C  DISTRIBUTION FUNCTION OF THE PEARSON TYPE 3 DISTRIBUTION
2256C
2257C  OTHER ROUTINES USED: DERF,DLGAMA (DLGADP),GAMIND
2258C
2259      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2260      DOUBLE PRECISION PARA(3)
2261C
2262      INCLUDE 'DPCOP2.INC'
2263C
2264      DATA ZERO/0D0/,HALF/0.5D0/,ONE/1D0/,TWO/2D0/,FOUR/4D0/
2265      DATA RTHALF/0.70710 67811 86547 524D0/
2266C
2267C         SMALL IS USED TO TEST WHETHER SKEWNESS IS EFFECTIVELY ZERO
2268C
2269      DATA SMALL/1D-6/
2270C
2271      CDFPE3=ZERO
2272      IF(PARA(2).LE.ZERO)THEN
2273        WRITE(ICOUT,7000)
2274 7000   FORMAT('***** ERROR FROM ROUTINE CDFPE3: SCALE PARAMETER IS ',
2275     1         'NON-POSITIVE.')
2276        CALL DPWRST('XXX','WRIT')
2277        GOTO9000
2278      ENDIF
2279C
2280      GAMMA=PARA(3)
2281      IF(DABS(GAMMA).LE.SMALL)GOTO 10
2282      ALPHA=FOUR/(GAMMA*GAMMA)
2283      Z=TWO*(X-PARA(1))/(PARA(2)*GAMMA)+ALPHA
2284CCCCC IF(Z.GT.ZERO)CDFPE3=GAMIND(Z,ALPHA,DLGAMA(ALPHA))
2285      IF(Z.GT.ZERO)CDFPE3=GAMIND(Z,ALPHA,DLGADP(ALPHA))
2286      IF(GAMMA.LT.ZERO)CDFPE3=ONE-CDFPE3
2287      GOTO9000
2288C
2289C         ZERO SKEWNESS
2290C
2291   10 Z=(X-PARA(1))/PARA(2)
2292      CDFPE3=HALF+HALF*DERFDP(Z*RTHALF)
2293      GOTO9000
2294C
2295 9000 CONTINUE
2296      RETURN
2297      END
2298      DOUBLE PRECISION FUNCTION CDFWAK(X,PARA)
2299C===================================================== CDFWAK.FOR
2300C***********************************************************************
2301C*                                                                     *
2302C*  FORTRAN CODE WRITTEN FOR INCLUSION IN IBM RESEARCH REPORT RC20525, *
2303C*  'FORTRAN ROUTINES FOR USE WITH THE METHOD OF L-MOMENTS, VERSION 3' *
2304C*                                                                     *
2305C*  J. R. M. HOSKING                                                   *
2306C*  IBM RESEARCH DIVISION                                              *
2307C*  T. J. WATSON RESEARCH CENTER                                       *
2308C*  YORKTOWN HEIGHTS                                                   *
2309C*  NEW YORK 10598, U.S.A.                                             *
2310C*                                                                     *
2311C*  VERSION 3     AUGUST 1996                                          *
2312C*                                                                     *
2313C***********************************************************************
2314C
2315C  CUMULATIVE DISTRIBUTION FUNCTION OF THE WAKEBY DISTRIBUTION
2316C
2317C  OTHER ROUTINES USED: QUAWAK
2318C
2319C  METHOD: THE EQUATION X=G(Z), WHERE G(Z) IS THE WAKEBY QUANTILE
2320C  EXPRESSED AS A FUNCTION OF Z=-LOG(1-F), IS SOLVED USING HALLEY'S
2321C  METHOD (THE 2ND-ORDER ANALOGUE OF NEWTON-RAPHSON ITERATION).
2322C
2323      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2324      DOUBLE PRECISION PARA(5)
2325C
2326      INCLUDE 'DPCOP2.INC'
2327C
2328      DATA ZERO/0.0D0/,HALF/0.5D0/,ONE/1.0D0/
2329      DATA P1/0.1D0/,P7/0.7D0/,P99/0.99D0/
2330C
2331C         EPS,MAXIT CONTROL THE TEST FOR CONVERGENCE OF THE ITERATION
2332C         ZINCMX IS THE LARGEST PERMITTED ITERATIVE STEP
2333C         ZMULT CONTROLS WHAT HAPPENS WHEN THE ITERATION STEPS BELOW ZERO
2334C         UFL SHOULD BE CHOSEN SO THAT DEXP(UFL) JUST DOES NOT CAUSE
2335C           UNDERFLOW
2336C
2337      DATA EPS/1.0D-8/,MAXIT/20/,ZINCMX/3.0D0/,ZMULT/0.2D0/
2338      DATA UFL/-170.0D0/
2339C
2340      XI=PARA(1)
2341      A=PARA(2)
2342      B=PARA(3)
2343      C=PARA(4)
2344      D=PARA(5)
2345C
2346C         TEST FOR VALID PARAMETERS
2347C
2348      IF(B+D.LE.ZERO.AND.(B.NE.ZERO.OR.C.NE.ZERO.OR.D.NE.ZERO))GOTO 1000
2349      IF(A.EQ.ZERO.AND.B.NE.ZERO)GOTO 1000
2350      IF(C.EQ.ZERO.AND.D.NE.ZERO)GOTO 1000
2351      IF(C.LT.ZERO.OR.A+C.LT.ZERO)GOTO 1000
2352      IF(A.EQ.ZERO.AND.C.EQ.ZERO)GOTO 1000
2353C
2354      CDFWAK=ZERO
2355      IF(X.LE.XI)RETURN
2356C
2357C         TEST FOR SPECIAL CASES
2358C
2359      IF(B.EQ.ZERO.AND.C.EQ.ZERO.AND.D.EQ.ZERO)GOTO 100
2360      IF(C.EQ.ZERO)GOTO 110
2361      IF(A.EQ.ZERO)GOTO 120
2362C
2363C         GENERAL CASE
2364C
2365      CDFWAK=ONE
2366      IF(D.LT.ZERO.AND.X.GE.XI+A/B-C/D)GOTO9000
2367C
2368C         INITIAL VALUES FOR ITERATION:
2369C         IF X IS IN THE LOWEST DECILE OF THE DISTRIBUTION, START AT Z=0
2370C           (F=0);
2371C         IF X IS IN THE HIGHEST PERCENTILE OF THE DISTRIBUTION,
2372C           STARTING VALUE IS OBTAINED FROM ASYMPTOTIC FORM OF THE
2373C           DISTRIBUTION FOR LARGE Z (F NEAR 1);
2374C         OTHERWISE START AT Z=0.7 (CLOSE TO F=0.5).
2375C
2376      Z=P7
2377      IF(X.LT.QUAWAK(P1,PARA))Z=ZERO
2378      IF(X.LT.QUAWAK(P99,PARA))GOTO 10
2379      IF(D.LT.ZERO)Z=DLOG((X-XI-A/B)*D/C+ONE)/D
2380      IF(D.EQ.ZERO)Z=(X-XI-A/B)/C
2381      IF(D.GT.ZERO)Z=DLOG((X-XI)*D/C+ONE)/D
2382   10 CONTINUE
2383C
2384C         HALLEY'S METHOD, WITH MODIFICATIONS:
2385C         IF HALLEY ITERATION WOULD MOVE IN WRONG DIRECTION
2386C           (TEMP.LE.ZERO), USE ORDINARY NEWTON-RAPHSON INSTEAD;
2387C         IF STEP GOES TOO FAR (ZINC.GT.ZINCMX OR ZNEW.LE.ZERO),
2388C            LIMIT ITS LENGTH.
2389C
2390      DO 30 IT=1,MAXIT
2391        EB=ZERO
2392        BZ=-B*Z
2393        IF(BZ.GE.UFL)EB=DEXP(BZ)
2394        GB=Z
2395        IF(DABS(B).GT.EPS)GB=(ONE-EB)/B
2396        ED=DEXP(D*Z)
2397        GD=-Z
2398        IF(DABS(D).GT.EPS)GD=(ONE-ED)/D
2399        XEST=XI+A*GB-C*GD
2400        FUNC=X-XEST
2401        DERIV1=A*EB+C*ED
2402        DERIV2=-A*B*EB+C*D*ED
2403        TEMP=DERIV1+HALF*FUNC*DERIV2/DERIV1
2404        IF(TEMP.LE.ZERO)TEMP=DERIV1
2405        ZINC=FUNC/TEMP
2406        IF(ZINC.GT.ZINCMX)ZINC=ZINCMX
2407        ZNEW=Z+ZINC
2408        IF(ZNEW.LE.ZERO)GOTO 20
2409          Z=ZNEW
2410          IF(DABS(ZINC).LE.EPS)GOTO 200
2411          GOTO 30
2412   20   CONTINUE
2413        Z=Z*ZMULT
2414   30 CONTINUE
2415C
2416C         NOT CONVERGED
2417C
2418      WRITE(ICOUT,7010)
2419 7010 FORMAT('***** WARNING IN WAKCDF--')
2420      CALL DPWRST('XXX','WRIT')
2421      WRITE(ICOUT,7012)
2422 7012 FORMAT('      ITERATION HAS NOT CONVERGED.  THE RESULT ',
2423     1       'MAY NOT BE RELIABLE.')
2424      CALL DPWRST('XXX','WRIT')
2425      GOTO 200
2426C
2427C         SPECIAL CASE B=C=D=0: WAKEBY IS EXPONENTIAL
2428C
2429  100 CONTINUE
2430      Z=(X-XI)/A
2431      GOTO 200
2432C
2433C         SPECIAL CASE C=0: WAKEBY IS GENERALIZED PARETO, BOUNDED ABOVE
2434C
2435  110 CONTINUE
2436      CDFWAK=ONE
2437      IF(X.GE.XI+A/B)RETURN
2438      Z=-DLOG(ONE-(X-XI)*B/A)/B
2439      GOTO 200
2440C
2441C         SPECIAL CASE A=0: WAKEBY IS GENERALIZED PARETO, NO UPPER BOUND
2442C
2443  120 CONTINUE
2444      Z=DLOG(ONE+(X-XI)*D/C)/D
2445      GOTO 200
2446C
2447C         CONVERT Z VALUE TO PROBABILITY
2448C
2449  200 CDFWAK=ONE
2450      IF(-Z.LT.UFL)GOTO9000
2451      CDFWAK=ONE-DEXP(-Z)
2452      GOTO9000
2453C
2454 1000 CONTINUE
2455      WRITE(ICOUT,7000)
2456 7000 FORMAT('***** ERROR IN WAKCDF--PARAMETERS INVALID.')
2457      CALL DPWRST('XXX','WRIT')
2458      CDFWAK=ZERO
2459      GOTO9000
2460C
2461 9000 CONTINUE
2462      RETURN
2463      END
2464      SUBROUTINE CHASE(A,X,Y,IMX,JMX,I,J,NS,CN,XC,YC,NMX,N,BOX)
2465C
2466C     PURPOSE--XX
2467C
2468C     WRITTEN BY--DAVID W. BEHRINGER NOAA/AOML (MIAMI).
2469C                 AS PART OF NOAA'S CONCX V.3   MARCH 1988.
2470C     ORIGINAL VERSION (IN DATAPLOT)--AUGUST    1988.
2471C     UPDATED         --JANUARY   1989.  MORE CHANGES TO STANDARD FORTRAN 77--
2472C                                        BYTE TO CHARACTER*1,
2473C                                        DO WHILE/END DO (ALAN HECKERT).
2474C
2475C-----COMMON----------------------------------------------------------
2476C
2477      INCLUDE 'DPCOCP.INC'
2478C
2479C---------------------------------------------------------------------
2480C
2481CCCCC BYTE BOX(4,IMX,JMX)                JANUARY 1989
2482CCCCC DIMENSION A(IMX,JMX),X(IMX),Y(JMX),XC(NMX),YC(NMX)
2483CCCCC DIMENSION XP(3),YP(3),LP(3)
2484C
2485CCCCC BYTE BOX                           JANUARY 1989
2486      CHARACTER*1 BOX
2487      CHARACTER*1 ITEMP
2488C
2489      DIMENSION A(IMX,JMX)
2490      DIMENSION X(*)
2491      DIMENSION Y(*)
2492      DIMENSION XC(*)
2493      DIMENSION YC(*)
2494      DIMENSION BOX(4,MAXIMX,MAXJMX)
2495C
2496      DIMENSION XP(3)
2497      DIMENSION YP(3)
2498      DIMENSION LP(3)
2499C
2500      INCLUDE 'DPCOBE.INC'
2501      INCLUDE 'DPCOP2.INC'
2502C
2503C-----START POINT-----------------------------------------------------
2504C
2505      IF(ISUBG4.EQ.'HASE')THEN
2506        WRITE(ICOUT,101)IMX,JMX,NMX
2507  101   FORMAT('***** SUBROUTINE CHASE: IMX,JMX,NMX = ',3I8)
2508        CALL DPWRST('XXX','WRIT')
2509      ENDIF
2510C
2511      IO=0
2512CCCCC DO WHILE ((BOX(NS,I,J).EQ.0.OR.BOX(NS,I,J).EQ.2).AND.IO.EQ.0)
2513  99  CONTINUE
2514      IF((BOX(NS,I,J).EQ.'0'.OR.BOX(NS,I,J).EQ.'2').AND.IO.EQ.0)GOTO100
2515        GOTO199
2516 100    CONTINUE
2517        ITEMP=BOX(NS,I,J)
2518        CALL DPCOAN(ITEMP,IJUNK)
2519        IJUNK=IJUNK+1
2520        CALL DPCONA(IJUNK,ITEMP)
2521        BOX(NS,I,J)=ITEMP
2522CCCCC   BOX(NS,I,J)=BOX(NS,I,J)+1
2523        DO110L=1,3
2524          XP(L)=0.
2525          YP(L)=0.
2526 110    CONTINUE
2527        NXT=0
2528        DO120LL=NS+1,NS+3
2529          L=MOD((LL-1),4)+1
2530          IF (BOX(L,I,J).EQ.'0'.OR.BOX(L,I,J).EQ.'2') THEN
2531            IF (L.EQ.1) THEN
2532              DNM=A(I,J+1)-A(I,J)
2533              IF (DNM.NE.0.) THEN
2534                R=(CN-A(I,J))/DNM
2535              ELSE
2536                R=-1.
2537              END IF
2538              IF ((R.GT.0..AND.R.LT.1.).OR.
2539     1           (R.EQ.0..AND.DNM.LT.0.).OR.
2540     2           (R.EQ.1..AND.DNM.GT.0.)) THEN
2541                NXT=NXT+1
2542                LP(NXT)=1
2543                XP(NXT)=X(I)
2544                YP(NXT)=Y(J)+R*(Y(J+1)-Y(J))
2545              END IF
2546            ELSE IF (L.EQ.2) THEN
2547              DNM=A(I+1,J+1)-A(I,J+1)
2548              IF (DNM.NE.0.) THEN
2549                R=(CN-A(I,J+1))/DNM
2550              ELSE
2551                R=-1.
2552              END IF
2553              IF ((R.GT.0..AND.R.LT.1.).OR.
2554     1           (R.EQ.0..AND.DNM.LT.0.).OR.
2555     2           (R.EQ.1..AND.DNM.GT.0.)) THEN
2556                NXT=NXT+1
2557                LP(NXT)=2
2558                XP(NXT)=X(I)+R*(X(I+1)-X(I))
2559                YP(NXT)=Y(J+1)
2560              END IF
2561            ELSE IF (L.EQ.3) THEN
2562              DNM=A(I+1,J)-A(I+1,J+1)
2563              IF (DNM.NE.0.) THEN
2564                R=(CN-A(I+1,J+1))/DNM
2565              ELSE
2566                R=-1.
2567              END IF
2568              IF ((R.GT.0..AND.R.LT.1.).OR.
2569     1           (R.EQ.0..AND.DNM.LT.0.).OR.
2570     2           (R.EQ.1..AND.DNM.GT.0.)) THEN
2571                NXT=NXT+1
2572                LP(NXT)=3
2573                XP(NXT)=X(I+1)
2574                YP(NXT)=Y(J+1)+R*(Y(J)-Y(J+1))
2575              END IF
2576            ELSE IF (L.EQ.4) THEN
2577              DNM=A(I,J)-A(I+1,J)
2578              IF (DNM.NE.0.) THEN
2579                R=(CN-A(I+1,J))/DNM
2580              ELSE
2581                R=-1.
2582              END IF
2583              IF ((R.GT.0..AND.R.LT.1.).OR.
2584     1           (R.EQ.0..AND.DNM.LT.0.).OR.
2585     2           (R.EQ.1..AND.DNM.GT.0.)) THEN
2586                NXT=NXT+1
2587                LP(NXT)=4
2588                XP(NXT)=X(I+1)+R*(X(I)-X(I+1))
2589                YP(NXT)=Y(J)
2590              END IF
2591            END IF
2592          END IF
2593 120    CONTINUE
2594        IF (NXT.EQ.0) THEN
2595          NS=-1
2596          GOTO9000
2597        ELSE IF (NXT.EQ.1) THEN
2598          LN=1
2599        ELSE IF (NXT.EQ.2) THEN
2600          LN=1
2601          PRINT *,'  WARNING! CELL HAS 2 EXITS!'
2602        ELSE
2603          D1=(XC(N)-XP(1))**2+(YC(N)-YP(1))**2
2604          D2=(XC(N)-XP(3))**2+(YC(N)-YP(3))**2
2605            IF (D1.LE.D2) THEN
2606            LN=1
2607          ELSE
2608            LN=3
2609          END IF
2610        END IF
2611        N=N+1
2612        XC(N)=XP(LN)
2613        YC(N)=YP(LN)
2614        L=LP(LN)
2615        ITEMP=BOX(L,I,J)
2616        CALL DPCOAN(ITEMP,IJUNK)
2617        IJUNK=IJUNK+1
2618        CALL DPCONA(IJUNK,ITEMP)
2619        BOX(L,I,J)=ITEMP
2620CCCCC   BOX(L,I,J)=BOX(L,I,J)+1
2621        IF (BOX(L,I,J).EQ.'3') THEN
2622          IO=1
2623        ELSE
2624          ML2=MOD(L,2)
2625          I=I+ML2*(L-2)
2626          J=J+(ML2-1)*(L-3)
2627          NS=MOD((L+ML2),4)+2-ML2
2628          IO=0
2629        END IF
2630      GOTO99
2631 199  CONTINUE
2632      NS=-1
2633      GOTO9000
2634C
2635 9000 CONTINUE
2636      RETURN
2637      END
2638      SUBROUTINE CDIV(AR,AI,BR,BI,CR,CI)
2639C***BEGIN PROLOGUE  CDIV
2640C***REFER TO  EISDOC
2641C
2642C     Complex division, (CR,CI) = (AR,AI)/(BR,BI)
2643C***ROUTINES CALLED  (NONE)
2644C***END PROLOGUE  CDIV
2645      REAL AR,AI,BR,BI,CR,CI
2646C
2647      REAL S,ARS,AIS,BRS,BIS
2648C***FIRST EXECUTABLE STATEMENT  CDIV
2649      S = ABS(BR) + ABS(BI)
2650      ARS = AR/S
2651      AIS = AI/S
2652      BRS = BR/S
2653      BIS = BI/S
2654      S = BRS**2 + BIS**2
2655      CR = (ARS*BRS + AIS*BIS)/S
2656      CI = (AIS*BRS - ARS*BIS)/S
2657      RETURN
2658      END
2659      SUBROUTINE CFFTB(N,C,WSAVE)
2660C***BEGIN PROLOGUE  CFFTB
2661C***DATE WRITTEN   790601   (YYMMDD)
2662C***REVISION DATE  860115   (YYMMDD)
2663C***CATEGORY NO.  J1A2
2664C***KEYWORDS  FOURIER TRANSFORM
2665C***AUTHOR  SWARZTRAUBER, P. N., (NCAR)
2666C***PURPOSE  Unnormalized inverse of CFFTF.
2667C***DESCRIPTION
2668C           From the book, "Numerical Methods and Software" by
2669C                D. Kahaner, C. Moler, S. Nash
2670C                Prentice Hall, 1988
2671C
2672C  Subroutine CFFTB computes the backward complex discrete Fourier
2673C  transform (the Fourier synthesis).  Equivalently, CFFTB computes
2674C  a complex periodic sequence from its Fourier coefficients.
2675C  The transform is defined below at output parameter C.
2676C
2677C  A call of CFFTF followed by a call of CFFTB will multiply the
2678C  sequence by N.
2679C
2680C  The array WSAVE which is used by subroutine CFFTB must be
2681C  initialized by calling subroutine CFFTI(N,WSAVE).
2682C
2683C  Input Parameters
2684C
2685C
2686C  N      the length of the complex sequence C.  The method is
2687C         more efficient when N is the product of small primes.
2688C
2689C  C      a complex array of length N which contains the sequence
2690C
2691C  WSAVE   a real work array which must be dimensioned at least 4*N+15
2692C          in the program that calls CFFTB.  The WSAVE array must be
2693C          initialized by calling subroutine CFFTI(N,WSAVE), and a
2694C          different WSAVE array must be used for each different
2695C          value of N.  This initialization does not have to be
2696C          repeated so long as N remains unchanged.  Thus subsequent
2697C          transforms can be obtained faster than the first.
2698C          The same WSAVE array can be used by CFFTF and CFFTB.
2699C
2700C  Output Parameters
2701C
2702C  C      For J=1,...,N
2703C
2704C             C(J)=the sum from K=1,...,N of
2705C
2706C                   C(K)*EXP(I*J*K*2*PI/N)
2707C
2708C                         where I=SQRT(-1)
2709C
2710C  WSAVE   contains initialization calculations which must not be
2711C          destroyed between calls of subroutine CFFTF or CFFTB
2712C
2713C  *   References                                                      *
2714C  *                                                                   *
2715C  *   1. P.N. Swarztrauber, Vectorizing the FFTs, in Parallel         *
2716C  *      Computations (G. Rodrigue, ed.), Academic Press, 1982,       *
2717C  *      pp. 51-83.                                                   *
2718C  *   2. B.L. Buzbee, The SLATEC Common Math Library, in Sources      *
2719C  *      and Development of Mathematical Software (W. Cowell, ed.),   *
2720C  *      Prentice-Hall, 1984, pp. 302-318.                            *
2721C  *                                                                   *
2722C  *********************************************************************
2723C
2724C***REFERENCES  (NONE)
2725C***ROUTINES CALLED  CFFTB1
2726C***END PROLOGUE  CFFTB
2727      DIMENSION       C(*)       ,WSAVE(*)
2728C***FIRST EXECUTABLE STATEMENT  CFFTB
2729      IF (N .EQ. 1) RETURN
2730      IW1 = N+N+1
2731      IW2 = IW1+N+N
2732      CALL CFFTB1 (N,C,WSAVE,WSAVE(IW1),WSAVE(IW2))
2733      RETURN
2734      END
2735      SUBROUTINE CFFTB1(N,C,CH,WA,IFAC)
2736C***BEGIN PROLOGUE  CFFTB1
2737C***REFER TO  CFFTB
2738C***ROUTINES CALLED  PASSB,PASSB2,PASSB3,PASSB4,PASSB5
2739C***END PROLOGUE  CFFTB1
2740CCCCC DECEMBER 2009 (ALAN HECKERT): MAKE IFAC REAL TO AVOID
2741CCCCC COMPILATION ERRORS FOR NEW INTEL 11 COMPILER
2742C
2743      DIMENSION       CH(*)      ,C(*)       ,WA(*)
2744      REAL            IFAC(*)
2745C***FIRST EXECUTABLE STATEMENT  CFFTB1
2746      NF = INT(IFAC(2)+0.01)
2747      NA = 0
2748      L1 = 1
2749      IW = 1
2750      DO 116 K1=1,NF
2751         IP = INT(IFAC(K1+2) + 0.1)
2752         L2 = IP*L1
2753         IDO = N/L2
2754         IDOT = IDO+IDO
2755         IDL1 = IDOT*L1
2756         IF (IP .NE. 4) GO TO 103
2757         IX2 = IW+IDOT
2758         IX3 = IX2+IDOT
2759         IF (NA .NE. 0) GO TO 101
2760         CALL PASSB4 (IDOT,L1,C,CH,WA(IW),WA(IX2),WA(IX3))
2761         GO TO 102
2762  101    CALL PASSB4 (IDOT,L1,CH,C,WA(IW),WA(IX2),WA(IX3))
2763  102    NA = 1-NA
2764         GO TO 115
2765  103    IF (IP .NE. 2) GO TO 106
2766         IF (NA .NE. 0) GO TO 104
2767         CALL PASSB2 (IDOT,L1,C,CH,WA(IW))
2768         GO TO 105
2769  104    CALL PASSB2 (IDOT,L1,CH,C,WA(IW))
2770  105    NA = 1-NA
2771         GO TO 115
2772  106    IF (IP .NE. 3) GO TO 109
2773         IX2 = IW+IDOT
2774         IF (NA .NE. 0) GO TO 107
2775         CALL PASSB3 (IDOT,L1,C,CH,WA(IW),WA(IX2))
2776         GO TO 108
2777  107    CALL PASSB3 (IDOT,L1,CH,C,WA(IW),WA(IX2))
2778  108    NA = 1-NA
2779         GO TO 115
2780  109    IF (IP .NE. 5) GO TO 112
2781         IX2 = IW+IDOT
2782         IX3 = IX2+IDOT
2783         IX4 = IX3+IDOT
2784         IF (NA .NE. 0) GO TO 110
2785         CALL PASSB5 (IDOT,L1,C,CH,WA(IW),WA(IX2),WA(IX3),WA(IX4))
2786         GO TO 111
2787  110    CALL PASSB5 (IDOT,L1,CH,C,WA(IW),WA(IX2),WA(IX3),WA(IX4))
2788  111    NA = 1-NA
2789         GO TO 115
2790  112    IF (NA .NE. 0) GO TO 113
2791         CALL PASSB (NAC,IDOT,IP,L1,IDL1,C,C,C,CH,CH,WA(IW))
2792         GO TO 114
2793  113    CALL PASSB (NAC,IDOT,IP,L1,IDL1,CH,CH,CH,C,C,WA(IW))
2794  114    IF (NAC .NE. 0) NA = 1-NA
2795  115    L1 = L2
2796         IW = IW+(IP-1)*IDOT
2797  116 CONTINUE
2798      IF (NA .EQ. 0) RETURN
2799      N2 = N+N
2800      DO 117 I=1,N2
2801         C(I) = CH(I)
2802  117 CONTINUE
2803      RETURN
2804      END
2805      SUBROUTINE CFFTF(N,C,WSAVE)
2806C***BEGIN PROLOGUE  CFFTF
2807C***DATE WRITTEN   790601   (YYMMDD)
2808C***REVISION DATE  860115   (YYMMDD)
2809C***CATEGORY NO.  J1A2
2810C***KEYWORDS  FOURIER TRANSFORM
2811C***AUTHOR  SWARZTRAUBER, P. N., (NCAR)
2812C***PURPOSE  Forward transform of a complex, periodic sequence.
2813C***DESCRIPTION
2814C           From the book, "Numerical Methods and Software" by
2815C                D. Kahaner, C. Moler, S. Nash
2816C                Prentice Hall, 1988
2817C
2818C  Subroutine CFFTF computes the forward complex discrete Fourier
2819C  transform (the Fourier analysis).  Equivalently, CFFTF computes
2820C  the Fourier coefficients of a complex periodic sequence.
2821C  The transform is defined below at output parameter C.
2822C
2823C  The transform is not normalized.  To obtain a normalized transform
2824C  the output must be divided by N.  Otherwise a call of CFFTF
2825C  followed by a call of CFFTB will multiply the sequence by N.
2826C
2827C  The array WSAVE which is used by subroutine CFFTF must be
2828C  initialized by calling subroutine CFFTI(N,WSAVE).
2829C
2830C  Input Parameters
2831C
2832C
2833C  N      the length of the complex sequence C.  The method is
2834C         more efficient when N is the product of small primes.
2835C
2836C  C      a complex array of length N which contains the sequence
2837C
2838C  WSAVE   a real work array which must be dimensioned at least 4*N+15
2839C          in the program that calls CFFTF.  The WSAVE array must be
2840C          initialized by calling subroutine CFFTI(N,WSAVE), and a
2841C          different WSAVE array must be used for each different
2842C          value of N.  This initialization does not have to be
2843C          repeated so long as N remains unchanged.  Thus subsequent
2844C          transforms can be obtained faster than the first.
2845C          The same WSAVE array can be used by CFFTF and CFFTB.
2846C
2847C  Output Parameters
2848C
2849C  C      for J=1,...,N
2850C
2851C             C(J)=the sum from K=1,...,N of
2852C
2853C                   C(K)*EXP(-I*J*K*2*PI/N)
2854C
2855C                         where I=SQRT(-1)
2856C
2857C  WSAVE   contains initialization calculations which must not be
2858C          destroyed between calls of subroutine CFFTF or CFFTB
2859C
2860C  *   References                                                      *
2861C  *                                                                   *
2862C  *   1. P.N. Swarztrauber, Vectorizing the FFTs, in Parallel         *
2863C  *      Computations (G. Rodrigue, ed.), Academic Press, 1982,       *
2864C  *      pp. 51-83.                                                   *
2865C  *   2. B.L. Buzbee, The SLATEC Common Math Library, in Sources      *
2866C  *      and Development of Mathematical Software (W. Cowell, ed.),   *
2867C  *      Prentice-Hall, 1984, pp. 302-318.                            *
2868C  *                                                                   *
2869C  *********************************************************************
2870C
2871C***REFERENCES  (NONE)
2872C***ROUTINES CALLED  CFFTF1
2873C***END PROLOGUE  CFFTF
2874      DIMENSION       C(*)       ,WSAVE(*)
2875C***FIRST EXECUTABLE STATEMENT  CFFTF
2876      IF (N .EQ. 1) RETURN
2877      IW1 = N+N+1
2878      IW2 = IW1+N+N
2879      CALL CFFTF1 (N,C,WSAVE,WSAVE(IW1),WSAVE(IW2))
2880      RETURN
2881      END
2882      SUBROUTINE CFFTF1(N,C,CH,WA,IFAC)
2883C***BEGIN PROLOGUE  CFFTF1
2884C***REFER TO  CFFTF
2885C***ROUTINES CALLED  PASSF,PASSF2,PASSF3,PASSF4,PASSF5
2886C***END PROLOGUE  CFFTF1
2887CCCCC DECEMBER 2009 (ALAN HECKERT): MAKE IFAC REAL TO AVOID
2888CCCCC COMPILATION ERRORS FOR NEW INTEL 11 COMPILER
2889      DIMENSION       CH(*)      ,C(*)       ,WA(*)
2890      REAL            IFAC(*)
2891C***FIRST EXECUTABLE STATEMENT  CFFTF1
2892      NF = INT(IFAC(2) + 0.01)
2893      NA = 0
2894      L1 = 1
2895      IW = 1
2896      DO 116 K1=1,NF
2897         IP = INT(IFAC(K1+2) + 0.01)
2898         L2 = IP*L1
2899         IDO = N/L2
2900         IDOT = IDO+IDO
2901         IDL1 = IDOT*L1
2902         IF (IP .NE. 4) GO TO 103
2903         IX2 = IW+IDOT
2904         IX3 = IX2+IDOT
2905         IF (NA .NE. 0) GO TO 101
2906         CALL PASSF4 (IDOT,L1,C,CH,WA(IW),WA(IX2),WA(IX3))
2907         GO TO 102
2908  101    CALL PASSF4 (IDOT,L1,CH,C,WA(IW),WA(IX2),WA(IX3))
2909  102    NA = 1-NA
2910         GO TO 115
2911  103    IF (IP .NE. 2) GO TO 106
2912         IF (NA .NE. 0) GO TO 104
2913         CALL PASSF2 (IDOT,L1,C,CH,WA(IW))
2914         GO TO 105
2915  104    CALL PASSF2 (IDOT,L1,CH,C,WA(IW))
2916  105    NA = 1-NA
2917         GO TO 115
2918  106    IF (IP .NE. 3) GO TO 109
2919         IX2 = IW+IDOT
2920         IF (NA .NE. 0) GO TO 107
2921         CALL PASSF3 (IDOT,L1,C,CH,WA(IW),WA(IX2))
2922         GO TO 108
2923  107    CALL PASSF3 (IDOT,L1,CH,C,WA(IW),WA(IX2))
2924  108    NA = 1-NA
2925         GO TO 115
2926  109    IF (IP .NE. 5) GO TO 112
2927         IX2 = IW+IDOT
2928         IX3 = IX2+IDOT
2929         IX4 = IX3+IDOT
2930         IF (NA .NE. 0) GO TO 110
2931         CALL PASSF5 (IDOT,L1,C,CH,WA(IW),WA(IX2),WA(IX3),WA(IX4))
2932         GO TO 111
2933  110    CALL PASSF5 (IDOT,L1,CH,C,WA(IW),WA(IX2),WA(IX3),WA(IX4))
2934  111    NA = 1-NA
2935         GO TO 115
2936  112    IF (NA .NE. 0) GO TO 113
2937         CALL PASSF (NAC,IDOT,IP,L1,IDL1,C,C,C,CH,CH,WA(IW))
2938         GO TO 114
2939  113    CALL PASSF (NAC,IDOT,IP,L1,IDL1,CH,CH,CH,C,C,WA(IW))
2940  114    IF (NAC .NE. 0) NA = 1-NA
2941  115    L1 = L2
2942         IW = IW+(IP-1)*IDOT
2943  116 CONTINUE
2944      IF (NA .EQ. 0) RETURN
2945      N2 = N+N
2946      DO 117 I=1,N2
2947         C(I) = CH(I)
2948  117 CONTINUE
2949      RETURN
2950      END
2951      SUBROUTINE CFFTI(N,WSAVE)
2952C***BEGIN PROLOGUE  CFFTI
2953C***DATE WRITTEN   790601   (YYMMDD)
2954C***REVISION DATE  860115   (YYMMDD)
2955C***CATEGORY NO.  J1A2
2956C***KEYWORDS  FOURIER TRANSFORM
2957C***AUTHOR  SWARZTRAUBER, P. N., (NCAR)
2958C***PURPOSE  Initialize for CFFTF and CFFTB.
2959C***DESCRIPTION
2960C           From the book, "Numerical Methods and Software" by
2961C                D. Kahaner, C. Moler, S. Nash
2962C                Prentice Hall, 1988
2963C
2964C  Subroutine CFFTI initializes the array WSAVE which is used in
2965C  both CFFTF and CFFTB.  The prime factorization of N together with
2966C  a tabulation of the trigonometric functions are computed and
2967C  stored in WSAVE.
2968C
2969C  Input Parameter
2970C
2971C  N       the length of the sequence to be transformed
2972C
2973C  Output Parameter
2974C
2975C  WSAVE   a work array which must be dimensioned at least 4*N+15.
2976C          The same work array can be used for both CFFTF and CFFTB
2977C          as long as N remains unchanged.  Different WSAVE arrays
2978C          are required for different values of N.  The contents of
2979C          WSAVE must not be changed between calls of CFFTF or CFFTB.
2980C***REFERENCES  (NONE)
2981C***ROUTINES CALLED  CFFTI1
2982C***END PROLOGUE  CFFTI
2983      DIMENSION       WSAVE(*)
2984C***FIRST EXECUTABLE STATEMENT  CFFTI
2985C
2986      IF (N .EQ. 1) RETURN
2987      IW1 = N+N+1
2988      IW2 = IW1+N+N
2989      CALL CFFTI1 (N,WSAVE(IW1),WSAVE(IW2))
2990      RETURN
2991      END
2992      SUBROUTINE CFFTI1(N,WA,IFAC)
2993C***BEGIN PROLOGUE  CFFTI1
2994C***REFER TO  CFFTI
2995C***ROUTINES CALLED  (NONE)
2996C***END PROLOGUE  CFFTI1
2997CCCCC DECEMBER 2009 (ALAN HECKERT): MAKE IFAC REAL TO AVOID
2998CCCCC COMPILATION ERRORS FOR NEW INTEL 11 COMPILER
2999      DIMENSION       WA(*)      ,NTRYH(4)
3000      REAL            IFAC(*)
3001      DATA NTRYH(1),NTRYH(2),NTRYH(3),NTRYH(4)/3,4,2,5/
3002C
3003      NTRY = 0
3004C
3005C***FIRST EXECUTABLE STATEMENT  CFFTI1
3006      NL = N
3007      NF = 0
3008      J = 0
3009  101 J = J+1
3010C
3011CCCCC 7/2008: MODIFY FOLLOWING LINE SO THAT IT DOES NOT
3012CCCCC         GENERATE A WARNING MESSAGE FOR FORTRAN 95
3013CCCCC         COMPILER.
3014C
3015CCCCC IF (J-4) 102,102,103
3016      IF (J-4.GT.0) GOTO 103
3017      NTRY = NTRYH(J)
3018      GO TO 104
3019  103 NTRY = NTRY+2
3020  104 NQ = NL/NTRY
3021      NR = NL-NTRY*NQ
3022C
3023CCCCC 7/2008: MODIFY FOLLOWING LINE SO THAT IT DOES NOT
3024CCCCC         GENERATE A WARNING MESSAGE FOR FORTRAN 95
3025CCCCC         COMPILER.
3026C
3027CCCCC IF (NR) 101,105,101
3028      IF (NR.NE.0) GOTO101
3029      NF = NF+1
3030      IFAC(NF+2) = REAL(NTRY)
3031      NL = NQ
3032      IF (NTRY .NE. 2) GO TO 107
3033      IF (NF .EQ. 1) GO TO 107
3034      DO 106 I=2,NF
3035         IB = NF-I+2
3036         IFAC(IB+2) = IFAC(IB+1)
3037  106 CONTINUE
3038      IFAC(3) = REAL(2)
3039  107 IF (NL .NE. 1) GO TO 104
3040      IFAC(1) = REAL(N)
3041      IFAC(2) = REAL(NF)
3042      TPI = 8.*ATAN(1.)
3043      ARGH = TPI/REAL(N)
3044      I = 2
3045      L1 = 1
3046      DO 110 K1=1,NF
3047         IP = INT(IFAC(K1+2) + 0.01)
3048         LD = 0
3049         L2 = L1*IP
3050         IDO = N/L2
3051         IDOT = IDO+IDO+2
3052         IPM = IP-1
3053         DO 109 J=1,IPM
3054            I1 = I
3055            WA(I-1) = 1.
3056            WA(I) = 0.
3057            LD = LD+L1
3058            FI = 0.
3059            ARGLD = REAL(LD)*ARGH
3060            DO 108 II=4,IDOT,2
3061               I = I+2
3062               FI = FI+1.
3063               ARG = FI*ARGLD
3064               WA(I-1) = COS(ARG)
3065               WA(I) = SIN(ARG)
3066  108       CONTINUE
3067            IF (IP .LE. 5) GO TO 109
3068            WA(I1-1) = WA(I-1)
3069            WA(I1) = WA(I)
3070  109    CONTINUE
3071         L1 = L2
3072  110 CONTINUE
3073      RETURN
3074      END
3075      DOUBLE PRECISION FUNCTION CHEVAL(N,A,T)
3076C
3077C   This function evaluates a Chebyshev series, using the
3078C   Clenshaw method with Reinsch modification, as analysed
3079C   in the paper by Oliver.
3080C
3081C   INPUT PARAMETERS
3082C
3083C       N - INTEGER - The no. of terms in the sequence
3084C
3085C       A - DOUBLE PRECISION ARRAY, dimension 0 to N - The coefficients of
3086C           the Chebyshev series
3087C
3088C       T - DOUBLE PRECISION - The value at which the series is to be
3089C           evaluated
3090C
3091C
3092C   REFERENCES
3093C
3094C        "An error analysis of the modified Clenshaw method for
3095C         evaluating Chebyshev and Fourier series" J. Oliver,
3096C         J.I.M.A., vol. 20, 1977, pp379-391
3097C
3098C
3099C MACHINE-DEPENDENT CONSTANTS: NONE
3100C
3101C
3102C INTRINSIC FUNCTIONS USED;
3103C
3104C    ABS
3105C
3106C
3107C AUTHOR:  Dr. Allan J. MacLeod,
3108C          Dept. of Mathematics and Statistics,
3109C          University of Paisley ,
3110C          High St.,
3111C          PAISLEY,
3112C          SCOTLAND
3113C
3114C
3115C LATEST MODIFICATION:   21 December , 1992
3116C
3117C
3118      INTEGER I,N
3119      DOUBLE PRECISION A(0:N),D1,D2,HALF,T,TEST,TT,TWO,U0,U1,U2,ZERO
3120C
3121C-----COMMON----------------------------------------------------------
3122C
3123      INCLUDE 'DPCOMC.INC'
3124      INCLUDE 'DPCOP2.INC'
3125C
3126      DATA ZERO,HALF/ 0.0 D 0 , 0.5 D 0 /
3127      DATA TEST,TWO/ 0.6 D 0 , 2.0 D 0 /
3128C
3129      CHEVAL =  DBLE(CPUMIN)
3130      D1=0.0D0
3131      D2=0.0D0
3132C
3133      U1 = ZERO
3134      U2 = ZERO
3135C
3136C   If ABS ( T )  < 0.6 use the standard Clenshaw method
3137C
3138      IF ( ABS( T ) .LT. TEST ) THEN
3139         U0 = ZERO
3140         TT = T + T
3141         DO 100 I = N , 0 , -1
3142            U2 = U1
3143            U1 = U0
3144            U0 = TT * U1 + A( I ) - U2
3145 100     CONTINUE
3146         CHEVAL =  ( U0 - U2 ) / TWO
3147      ELSE
3148C
3149C   If ABS ( T )  > =  0.6 use the Reinsch modification
3150C
3151         D1 = ZERO
3152C
3153C   T > =  0.6 code
3154C
3155         IF ( T .GT. ZERO ) THEN
3156            TT =  ( T - HALF ) - HALF
3157            TT = TT + TT
3158            DO 200 I = N , 0 , -1
3159               D2 = D1
3160               U2 = U1
3161               D1 = TT * U2 + A( I ) + D2
3162               U1 = D1 + U2
3163 200        CONTINUE
3164            CHEVAL =  ( D1 + D2 ) / TWO
3165         ELSE
3166C
3167C   T < =  -0.6 code
3168C
3169            TT =  ( T + HALF ) + HALF
3170            TT = TT + TT
3171            DO 300 I = N , 0 , -1
3172               D2 = D1
3173               U2 = U1
3174               D1 = TT * U2 + A( I ) - D2
3175               U1 = D1 - U2
3176 300        CONTINUE
3177            CHEVAL =  ( D1 - D2 ) / TWO
3178         ENDIF
3179      ENDIF
3180      RETURN
3181      END
3182      SUBROUTINE CGAMA(X,Y,KF,GR,GI)
3183C
3184C       =========================================================
3185C       Purpose: Compute the gamma function �(z) or ln[�(z)]
3186C                for a complex argument
3187C       Input :  x  --- Real part of z
3188C                y  --- Imaginary part of z
3189C                KF --- Function code
3190C                       KF=0 for ln[�(z)]
3191C                       KF=1 for �(z)
3192C       Output:  GR --- Real part of ln[�(z)] or �(z)
3193C                GI --- Imaginary part of ln[�(z)] or �(z)
3194C       ========================================================
3195C
3196        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3197        DIMENSION A(10)
3198C
3199        DATA A/8.333333333333333D-02,-2.777777777777778D-03,
3200     &         7.936507936507937D-04,-5.952380952380952D-04,
3201     &         8.417508417508418D-04,-1.917526917526918D-03,
3202     &         6.410256410256410D-03,-2.955065359477124D-02,
3203     &         1.796443723688307D-01,-1.39243221690590D+00/
3204C
3205        PI=3.141592653589793D0
3206        X1=0.0
3207        Y1=0.0
3208        NA=0
3209C
3210        IF (Y.EQ.0.0D0.AND.X.EQ.INT(X).AND.X.LE.0.0D0) THEN
3211           GR=1.0D+300
3212           GI=0.0D0
3213           RETURN
3214        ELSE IF (X.LT.0.0D0) THEN
3215           X1=X
3216           Y1=Y
3217           X=-X
3218           Y=-Y
3219        ENDIF
3220        X0=X
3221        IF (X.LE.7.0) THEN
3222           NA=INT(7-X)
3223           X0=X+NA
3224        ENDIF
3225        Z1=DSQRT(X0*X0+Y*Y)
3226        TH=DATAN(Y/X0)
3227        GR=(X0-.5D0)*DLOG(Z1)-TH*Y-X0+0.5D0*DLOG(2.0D0*PI)
3228        GI=TH*(X0-0.5D0)+Y*DLOG(Z1)-Y
3229        DO 10 K=1,10
3230           T=Z1**(1-2*K)
3231           GR=GR+A(K)*T*DCOS((2.0D0*K-1.0D0)*TH)
3232           GI=GI-A(K)*T*DSIN((2.0D0*K-1.0D0)*TH)
323310      CONTINUE
3234        IF (X.LE.7.0) THEN
3235           GR1=0.0D0
3236           GI1=0.0D0
3237           DO 15 J=0,NA-1
3238              GR1=GR1+.5D0*DLOG((X+J)**2+Y*Y)
3239              GI1=GI1+DATAN(Y/(X+J))
324015         CONTINUE
3241           GR=GR-GR1
3242           GI=GI-GI1
3243        ENDIF
3244        IF (X1.LT.0.0D0) THEN
3245           Z1=DSQRT(X*X+Y*Y)
3246           TH1=DATAN(Y/X)
3247           SR=-DSIN(PI*X)*DCOSH(PI*Y)
3248           SI=-DCOS(PI*X)*DSINH(PI*Y)
3249           Z2=DSQRT(SR*SR+SI*SI)
3250           TH2=DATAN(SI/SR)
3251           IF (SR.LT.0.0D0) TH2=PI+TH2
3252           GR=DLOG(PI/(Z1*Z2))-GR
3253           GI=-TH1-TH2-GI
3254           X=X1
3255           Y=Y1
3256        ENDIF
3257        IF (KF.EQ.1) THEN
3258           G0=DEXP(GR)
3259           GR=G0*DCOS(GI)
3260           GI=G0*DSIN(GI)
3261        ENDIF
3262      RETURN
3263      END
3264      COMPLEX FUNCTION CGAMMA(Z)
3265C***FOR DATAPLOT, THIS ROUTINE IS USED IN CALCULATION OF CBETA FUNCTION,
3266C***WE USE CGAMA ABOVE FOR CGAMMA FUNCTION.
3267C***BEGIN PROLOGUE  CGAMMA
3268C***DATE WRITTEN   770701   (YYMMDD)
3269C***REVISION DATE  820801   (YYMMDD)
3270C***CATEGORY NO.  C7A
3271C***KEYWORDS  COMPLETE GAMMA FUNCTION,COMPLEX,GAMMA FUNCTION,
3272C             SPECIAL FUNCTION
3273C***AUTHOR  FULLERTON, W., (LANL)
3274C***PURPOSE  Computes the Gamma function of complex argument.
3275C***DESCRIPTION
3276C
3277C CGAMMA(Z) calculates the complete gamma function for COMPLEX
3278C argument Z.  This is a preliminary version that is portable
3279C but not accurate.
3280C***REFERENCES  (NONE)
3281C***ROUTINES CALLED  CLNGAM
3282C***END PROLOGUE  CGAMMA
3283      COMPLEX Z, CLNGAM, CEXP
3284C***FIRST EXECUTABLE STATEMENT  CGAMMA
3285      CGAMMA = CEXP (CLNGAM(Z))
3286C
3287      RETURN
3288      END
3289      SUBROUTINE CHEBT(X,AN,CN)
3290C
3291C     PURPOSE--THIS SUBROUTINE COMPUTES THE CHEBYSHEV T
3292C              POLYNOMIAL OF ORDER N.
3293C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION INPUT ARGUMENT
3294C                       CN     = THE SINGLE PRECISION VALUE FOR THE
3295C                                ORDER OF THE FUNCTION (SHOULD BE
3296C                                NON-NEGATIVE ORDER)
3297C     OUTPUT ARGUMENTS--CN    = THE SINGLE PRECISION VALUE OF THE
3298C                                CHEBYSHEV T POLYNOMIAL.
3299C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
3300C     RESTRICTIONS--
3301C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE
3302C     FORTRAN LIBRARY SUBROUTINES NEEDED--NONE
3303C     MODE OF INTERNAL OPERATIONS--SOME DOUBLE PRECISION.
3304C     LANGUAGE--ANSI FORTRAN.
3305C     REFERENCES--"HANDBOOK OF MATHEMATICAL FUNCTIONS, AMS 55",
3306C                 ABRAMOWITZ AND STEGUM.
3307C                 USE FOLLOWING RECURRENCE FORMULA:
3308C                    T(N+1) = 2.0*X*T(N-1)-T(N-2)
3309C                 FIRST FEW TERMS ARE FROM TABLE 22.3 OF ABRAMOWITZ
3310C                 AND STEGUM.
3311C     WRITTEN BY--JAMES J. FILLIBEN
3312C                 STATISTICAL ENGINEERING LABORATORY (205.03)
3313C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
3314C                 GAITHERSBURG, MD 20899-8980
3315C                 PHONE:  301-975-2855
3316C     ORIGINAL VERSION--JULY       1995.
3317C
3318C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
3319C
3320C---------------------------------------------------------------------
3321C
3322      INCLUDE 'DPCOP2.INC'
3323C
3324      DOUBLE PRECISION DX
3325      DOUBLE PRECISION DCN, DCN1, DCN2
3326C
3327C-----START POINT-----------------------------------------------------
3328C
3329      IF(X.LT.-1.0.OR.X.GT.1.0)THEN
3330        WRITE(ICOUT,4)
3331        CALL DPWRST('XXX','BUG ')
3332        WRITE(ICOUT,46)X
3333        CALL DPWRST('XXX','BUG ')
3334        GOTO9999
3335      ENDIF
3336    4 FORMAT('***** NON-FATAL DIAGNOSTIC--THE 1ST INPUT ARGUMENT ',
3337     1'TO THE CHEBT SUBROUTINE IS OUTSIDE THE (-1,1) INTERVAL *****')
3338   46 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',E15.8,' *****')
3339      N=INT(AN+0.5)
3340      IF(N.LT.0)THEN
3341        WRITE(ICOUT,6)
3342        CALL DPWRST('XXX','BUG ')
3343        WRITE(ICOUT,47)N
3344        CALL DPWRST('XXX','BUG ')
3345        GOTO9999
3346      ENDIF
3347    6 FORMAT('***** NON-FATAL DIAGNOSTIC--THE 2ND INPUT ARGUMENT ',
3348     1'TO THE CHEBT SUBROUTINE IS NEGATIVE *****')
3349   47 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',I8,' *****')
3350C
3351      DX=DBLE(X)
3352C
3353      IF(N.LE.0)THEN
3354        CN=1.0
3355      ELSEIF(N.EQ.1)THEN
3356        CN=X
3357      ELSEIF(N.EQ.2)THEN
3358        CN=2.0*X**2-1.0
3359      ELSEIF(N.EQ.3)THEN
3360        DCN=4.0D0*DX**3 - 3.0*DX
3361        CN=REAL(DCN)
3362      ELSE
3363        DCN1=4.0D0*DX**3 - 3.0*DX
3364        DCN2=2.0D0*DX**2-1.0D0
3365        DO1000I=4,N
3366          DCN=2.0D0*DX*DCN1-DCN2
3367          DCN2=DCN1
3368          DCN1=DCN
3369 1000   CONTINUE
3370        CN=REAL(DCN)
3371      ENDIF
3372C
3373 9999 CONTINUE
3374      RETURN
3375      END
3376      SUBROUTINE CHEBU(X,AN,CN)
3377C
3378C     PURPOSE--THIS SUBROUTINE COMPUTES THE CHEBYSHEV U
3379C              POLYNOMIAL OF ORDER N.
3380C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION INPUT ARGUMENT
3381C                       CN     = THE SINGLE PRECISION VALUE FOR THE
3382C                                ORDER OF THE FUNCTION (SHOULD BE
3383C                                NON-NEGATIVE ORDER)
3384C     OUTPUT ARGUMENTS--CN    = THE SINGLE PRECISION VALUE OF THE
3385C                                CHEBYSHEV U POLYNOMIAL.
3386C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
3387C     RESTRICTIONS--
3388C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE
3389C     FORTRAN LIBRARY SUBROUTINES NEEDED--NONE
3390C     MODE OF INTERNAL OPERATIONS--SOME DOUBLE PRECISION.
3391C     LANGUAGE--ANSI FORTRAN.
3392C     REFERENCES--"HANDBOOK OF MATHEMATICAL FUNCTIONS, AMS 55",
3393C                 ABRAMOWITZ AND STEGUM.
3394C                 USE FOLLOWING RECURRENCE FORMULA:
3395C                    U(N+1) = 2.0*X*U(N-1)-U(N-2)
3396C                 FIRST FEW TERMS ARE FROM TABLE 22.5 OF ABRAMOWITZ
3397C                 AND STEGUM.
3398C     WRITTEN BY--JAMES J. FILLIBEN
3399C                 STATISTICAL ENGINEERING LABORATORY (205.03)
3400C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
3401C                 GAITHERSBURG, MD 20899-8980
3402C                 PHONE:  301-975-2855
3403C     ORIGINAL VERSION--JULY       1995.
3404C
3405C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
3406C
3407C---------------------------------------------------------------------
3408C
3409      INCLUDE 'DPCOP2.INC'
3410C
3411      DOUBLE PRECISION DX
3412      DOUBLE PRECISION DCN, DCN1, DCN2
3413C
3414C-----START POINT-----------------------------------------------------
3415C
3416      IF(X.LT.-1.0.OR.X.GT.1.0)THEN
3417        WRITE(ICOUT,4)
3418        CALL DPWRST('XXX','BUG ')
3419        WRITE(ICOUT,46)X
3420        CALL DPWRST('XXX','BUG ')
3421        GOTO9999
3422      ENDIF
3423    4 FORMAT('***** NON-FATAL DIAGNOSTIC--THE 1ST INPUT ARGUMENT ',
3424     1'TO THE CHEBU SUBROUTINE IS OUTSIDE THE (-1,1) INTERVAL *****')
3425   46 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',E15.8,' *****')
3426      N=INT(AN+0.5)
3427      IF(N.LT.0)THEN
3428        WRITE(ICOUT,6)
3429        CALL DPWRST('XXX','BUG ')
3430        WRITE(ICOUT,47)N
3431        CALL DPWRST('XXX','BUG ')
3432        GOTO9999
3433      ENDIF
3434    6 FORMAT('***** NON-FATAL DIAGNOSTIC--THE 2ND INPUT ARGUMENT ',
3435     1'TO THE CHEBU SUBROUTINE IS NEGATIVE *****')
3436   47 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',I8,' *****')
3437C
3438      DX=DBLE(X)
3439C
3440      IF(N.LE.0)THEN
3441        CN=1.0
3442      ELSEIF(N.EQ.1)THEN
3443        CN=2.0*X
3444      ELSEIF(N.EQ.2)THEN
3445        CN=4.0*X**2-1.0
3446      ELSEIF(N.EQ.3)THEN
3447        DCN=8.0D0*DX**3 - 4.0*DX
3448        CN=REAL(DCN)
3449      ELSE
3450        DCN1=8.0D0*DX**3 - 4.0*DX
3451        DCN2=4.0D0*DX**2-1.0D0
3452        DO1000I=4,N
3453          DCN=2.0D0*DX*DCN1-DCN2
3454          DCN2=DCN1
3455          DCN1=DCN
3456 1000   CONTINUE
3457        CN=REAL(DCN)
3458      ENDIF
3459C
3460 9999 CONTINUE
3461      RETURN
3462      END
3463      SUBROUTINE CHEDI2(X,Y,N,IWRITE,STATVA,IBUGA3,ISUBRO,IERROR)
3464C
3465C     PURPOSE--THIS SUBROUTINE COMPUTES THE CHEBYCHEV DISTANCE BETWEEN THE
3466C              TWO SETS OF DATA IN THE INPUT VECTORS X AND Y.  THE
3467C              SAMPLE CHEBYSHEV DISTANCE WILL BE A SINGLE PRECISION VALUE
3468C              CALCULATED AS:
3469C
3470C                 D = MAX[i=1 to N][ABS|(X(i) - Y(i))|]
3471C
3472C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION VECTOR OF
3473C                                (UNSORTED) OBSERVATIONS WHICH
3474C                                CONSTITUTE THE FIRST SET OF DATA.
3475C                     --Y      = THE SINGLE PRECISION VECTOR OF
3476C                                (UNSORTED) OBSERVATIONS WHICH
3477C                                CONSTITUTE THE SECOND SET OF DATA.
3478C                     --N      = THE INTEGER NUMBER OF OBSERVATIONS
3479C                                IN THE VECTORS X AND Y.
3480C     OUTPUT ARGUMENTS--STATVA = THE SINGLE PRECISION VALUE OF THE
3481C                                COMPUTED SAMPLE CHEBYSHEV DISTANCE
3482C                                BETWEEN THE TWO SETS OF DATA IN THE
3483C                                INPUT VECTORS X AND Y.  THIS SINGLE
3484C                                PRECISION VALUE WILL BE BETWEEN 0.0
3485C                                AND 1.0 (INCLUSIVELY).
3486C     OUTPUT--THE COMPUTED SINGLE PRECISION VALUE OF THE
3487C             SAMPLE CHEBYSHEV DISTANCE BETWEEN THE 2 SETS
3488C             OF DATA IN THE INPUT VECTORS X AND Y.
3489C     RESTRICTIONS--THERE IS NO RESTRICTION ON THE MAXIMUM VALUE
3490C                   OF N FOR THIS SUBROUTINE.
3491C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE.
3492C     FORTRAN LIBRARY SUBROUTINES NEEDED--ABS.
3493C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
3494C     LANGUAGE--ANSI FORTRAN (1977)
3495C     REFERENCES--XXX
3496C     WRITTEN BY--ALAN HECKERT
3497C                 STATISTICAL ENGINEERING DIVISION
3498C                 INFORMATION TECHNOLOGY LABORATORY
3499C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGYS
3500C                 GAITHERSBURG, MD 20899
3501C                 PHONE--301-975-2899
3502C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
3503C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGYS.
3504C     LANGUAGE--ANSI FORTRAN (1977)
3505C     VERSION NUMBER--2017/08
3506C     ORIGINAL VERSION--AUGUST    2017.
3507C
3508C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
3509C
3510      CHARACTER*4 IWRITE
3511      CHARACTER*4 IBUGA3
3512      CHARACTER*4 ISUBRO
3513      CHARACTER*4 IERROR
3514C
3515      CHARACTER*4 ISUBN1
3516      CHARACTER*4 ISUBN2
3517C
3518C---------------------------------------------------------------------
3519C
3520      DIMENSION X(*)
3521      DIMENSION Y(*)
3522C
3523C---------------------------------------------------------------------
3524C
3525      INCLUDE 'DPCOP2.INC'
3526C
3527C-----START POINT-----------------------------------------------------
3528C
3529      ISUBN1='CHED'
3530      ISUBN2='I2  '
3531      IERROR='NO'
3532      STATVA=CPUMIN
3533C
3534      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'EDI2')THEN
3535        WRITE(ICOUT,999)
3536  999   FORMAT(1X)
3537        CALL DPWRST('XXX','BUG ')
3538        WRITE(ICOUT,51)
3539   51   FORMAT('***** AT THE BEGINNING OF CHEDI2--')
3540        CALL DPWRST('XXX','BUG ')
3541        WRITE(ICOUT,52)IBUGA3,ISUBRO,N,P
3542   52   FORMAT('IBUGA3,ISUBRO,N,P = ',2(A4,2X),I8,F7.2)
3543        CALL DPWRST('XXX','BUG ')
3544        DO55I=1,N
3545          WRITE(ICOUT,56)I,X(I),Y(I)
3546   56     FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
3547          CALL DPWRST('XXX','BUG ')
3548   55   CONTINUE
3549      ENDIF
3550C
3551C               ********************************************
3552C               **  STEP 1--                              **
3553C               **  CHECK THE INPUT ARGUMENTS FOR ERRORS  **
3554C               ********************************************
3555C
3556      IF(N.LT.1)THEN
3557        WRITE(ICOUT,999)
3558        CALL DPWRST('XXX','BUG ')
3559        WRITE(ICOUT,111)
3560  111   FORMAT('***** ERROR IN CHEBYSHEV DISTANCE--')
3561        CALL DPWRST('XXX','BUG ')
3562        WRITE(ICOUT,112)
3563  112   FORMAT('      THE NUMBER OF OBSERVATIONS FOR THE RESPONSE')
3564        CALL DPWRST('XXX','BUG ')
3565        WRITE(ICOUT,113)
3566  113   FORMAT('      VARIABLES IS LESS THAN 1.')
3567        CALL DPWRST('XXX','BUG ')
3568        WRITE(ICOUT,117)N
3569  117   FORMAT('      THE NUMBER OF OBSERVATIONS = ',I8,'.')
3570        CALL DPWRST('XXX','BUG ')
3571        IERROR='YES'
3572        GOTO9000
3573      ENDIF
3574C
3575C               ************************************************
3576C               **  STEP 2--                                  **
3577C               **  COMPUTE THE MINKOWSKI DISTANCE.           **
3578C               ************************************************
3579C
3580      STATVA=CPUMIN
3581      DO200I=1,N
3582        AVAL=ABS(X(I) - Y(I))
3583        IF(AVAL.GT.STATVA)STATVA=AVAL
3584  200 CONTINUE
3585C
3586C               *******************************
3587C               **  STEP 3--                 **
3588C               **  WRITE OUT A LINE         **
3589C               **  OF SUMMARY INFORMATION.  **
3590C               *******************************
3591C
3592      IF(IFEEDB.EQ.'ON' .AND. IWRITE.EQ.'ON')THEN
3593        WRITE(ICOUT,999)
3594        CALL DPWRST('XXX','BUG ')
3595        WRITE(ICOUT,811)N,STATVA
3596  811   FORMAT('THE CHEBYSHEV DISTANCE OF THE ',I8,
3597     1           ' OBSERVATIONS  = ',G15.7)
3598        CALL DPWRST('XXX','BUG ')
3599      ENDIF
3600C
3601C               *****************
3602C               **  STEP 90--  **
3603C               **  EXIT.      **
3604C               *****************
3605C
3606 9000 CONTINUE
3607      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'EDI2')THEN
3608        WRITE(ICOUT,999)
3609        CALL DPWRST('XXX','BUG ')
3610        WRITE(ICOUT,9011)
3611 9011   FORMAT('***** AT THE END       OF CHEDIS--')
3612        CALL DPWRST('XXX','BUG ')
3613        WRITE(ICOUT,9012)IERROR,STATVA
3614 9012   FORMAT('IERROR,STATVA = ',A4,2X,G15.7)
3615        CALL DPWRST('XXX','BUG ')
3616      ENDIF
3617C
3618      RETURN
3619      END
3620      SUBROUTINE CHCDF(X,ANU,CDF)
3621C
3622C     PURPOSE--THIS SUBROUTINE COMPUTES THE CUMULATIVE DISTRIBUTION
3623C              FUNCTION VALUE FOR THE CHI DISTRIBUTION
3624C              WITH POSITIVE DEGREES OF FREEDOM PARAMETER = NU.
3625C              THIS DISTRIBUTION IS DEFINED FOR ALL NON-NEGATIVE X.
3626C              THE PROBABILITY DENSITY FUNCTION IS GIVEN
3627C              IN THE REFERENCES BELOW.
3628C              THE CDF IS CAN BE COMPUTED WITH THE SLATEC ROUTINE
3629C              DGAMIC.
3630C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION VALUE AT
3631C                                WHICH THE CUMULATIVE DISTRIBUTION
3632C                                FUNCTION IS TO BE EVALUATED.
3633C                                X SHOULD BE NON-NEGATIVE.
3634C                     --ANU    = THE POSITIVE NUMBER OF DEGREES
3635C                                OF FREEDOM.
3636C     OUTPUT ARGUMENTS--CDF    = THE SINGLE PRECISION CUMULATIVE
3637C                                DISTRIBUTION FUNCTION VALUE.
3638C     OUTPUT--THE SINGLE PRECISION CUMULATIVE DISTRIBUTION
3639C             FUNCTION VALUE CDF FOR THE CHI DISTRIBUTION
3640C             WITH DEGREES OF FREEDOM PARAMETER = ANU.
3641C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
3642C     RESTRICTIONS--X SHOULD BE NON-NEGATIVE.
3643C                 --NU SHOULD BE A POSITIVE INTEGER VARIABLE.
3644C     OTHER DATAPAC   SUBROUTINES NEEDED--NORCDF.
3645C     FORTRAN LIBRARY SUBROUTINES NEEDED--DSQRT, DEXP.
3646C     MODE OF INTERNAL OPERATIONS--DOUBLE PRECISION.
3647C     LANGUAGE--ANSI FORTRAN (1977)
3648C     REFERENCES--JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
3649C                 DISTRIBUTIONS--1, 1994, PAGE 417.
3650C     WRITTEN BY--JAMES J. FILLIBEN
3651C                 STATISTICAL ENGINEERING DIVISION
3652C                 INFORMATION TECHNOLOGY LABORATORY
3653C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
3654C                 GAITHERSBURG, MD 20899-8980
3655C                 PHONE--301-975-2855
3656C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
3657C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
3658C     LANGUAGE--ANSI FORTRAN (1966)
3659C     VERSION NUMBER--95/4
3660C     ORIGINAL VERSION--APRIL     1995.
3661C
3662C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
3663C
3664C---------------------------------------------------------------------
3665C
3666      DOUBLE PRECISION DTERM1, DTERM2
3667      DOUBLE PRECISION DCDF
3668      DOUBLE PRECISION DGAMIP
3669C
3670C---------------------------------------------------------------------
3671C
3672      INCLUDE 'DPCOMC.INC'
3673      INCLUDE 'DPCOP2.INC'
3674C
3675C-----DATA STATEMENTS-------------------------------------------------
3676C
3677C-----START POINT-----------------------------------------------------
3678C
3679C     CHECK THE INPUT ARGUMENTS FOR ERRORS
3680C
3681      IF(ANU.LE.0.0)THEN
3682        WRITE(ICOUT,15)
3683        CALL DPWRST('XXX','BUG ')
3684        WRITE(ICOUT,47)ANU
3685        CALL DPWRST('XXX','BUG ')
3686        CDF=0.0
3687        GOTO9000
3688      ENDIF
3689   15 FORMAT('***** ERROR--THE SECOND INPUT ARGUMENT TO CHCDF ',
3690     1'IS NON-POSITIVE')
3691      IF(X.LT.0.0)THEN
3692        WRITE(ICOUT,4)
3693        CALL DPWRST('XXX','BUG ')
3694        WRITE(ICOUT,46)X
3695        CALL DPWRST('XXX','BUG ')
3696        CDF=0.0
3697        GOTO9000
3698      ENDIF
3699    4 FORMAT('***** ERROR--THE FIRST INPUT ARGUMENT TO CHCDF ',
3700     1'IS NEGATIVE')
3701   46 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',G15.7)
3702   47 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',G15.7)
3703C
3704      IF(X.LE.R1MACH(1))THEN
3705        CDF=0.0
3706        RETURN
3707      ENDIF
3708C
3709      DTERM1=DBLE(ANU/2.0)
3710      DTERM2=DBLE(X**2/2.0)
3711      DCDF=DGAMIP(DTERM1,DTERM2)
3712      CDF=REAL(DCDF)
3713C
3714 9000 CONTINUE
3715      RETURN
3716      END
3717      SUBROUTINE CHCDF2(DX,DNU,DCDF)
3718C
3719C     PURPOSE--THIS SUBROUTINE COMPUTES THE CUMULATIVE DISTRIBUTION
3720C              FUNCTION VALUE FOR THE CHI DISTRIBUTION
3721C              WITH POSITIVE DEGREES OF FREEDOM PARAMETER = NU.
3722C              THIS DISTRIBUTION IS DEFINED FOR ALL NON-NEGATIVE X.
3723C              THE PROBABILITY DENSITY FUNCTION IS GIVEN
3724C              IN THE REFERENCES BELOW.
3725C              THE CDF IS CAN BE COMPUTED WITH THE SLATEC ROUTINE
3726C              DGAMIC.
3727C     NOTE--THIS IS A DOUBLE PRECISION VERSION OF CHCDF USED BY
3728C           CHPPF FOR GREATER ACCURACY.
3729C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION VALUE AT
3730C                                WHICH THE CUMULATIVE DISTRIBUTION
3731C                                FUNCTION IS TO BE EVALUATED.
3732C                                X SHOULD BE NON-NEGATIVE.
3733C                     --ANU    = THE POSITIVE NUMBER OF DEGREES
3734C                                OF FREEDOM.
3735C     OUTPUT ARGUMENTS--CDF    = THE SINGLE PRECISION CUMULATIVE
3736C                                DISTRIBUTION FUNCTION VALUE.
3737C     OUTPUT--THE SINGLE PRECISION CUMULATIVE DISTRIBUTION
3738C             FUNCTION VALUE CDF FOR THE CHI DISTRIBUTION
3739C             WITH DEGREES OF FREEDOM PARAMETER = ANU.
3740C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
3741C     RESTRICTIONS--X SHOULD BE NON-NEGATIVE.
3742C                 --NU SHOULD BE A POSITIVE INTEGER VARIABLE.
3743C     OTHER DATAPAC   SUBROUTINES NEEDED--NORCDF.
3744C     FORTRAN LIBRARY SUBROUTINES NEEDED--DSQRT, DEXP.
3745C     MODE OF INTERNAL OPERATIONS--DOUBLE PRECISION.
3746C     LANGUAGE--ANSI FORTRAN (1977)
3747C     REFERENCES--JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
3748C                 DISTRIBUTIONS--1, 1994, PAGE 417.
3749C     WRITTEN BY--JAMES J. FILLIBEN
3750C                 STATISTICAL ENGINEERING DIVISION
3751C                 INFORMATION TECHNOLOGY LABORATORY
3752C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
3753C                 GAITHERSBURG, MD 20899-8980
3754C                 PHONE--301-975-2855
3755C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
3756C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
3757C     LANGUAGE--ANSI FORTRAN (1966)
3758C     VERSION NUMBER--95/4
3759C     ORIGINAL VERSION--APRIL     1995.
3760C
3761C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
3762C
3763C---------------------------------------------------------------------
3764C
3765      DOUBLE PRECISION DTERM1, DTERM2
3766      DOUBLE PRECISION DX
3767      DOUBLE PRECISION DCDF
3768      DOUBLE PRECISION DNU
3769      DOUBLE PRECISION DGAMIP
3770C
3771C---------------------------------------------------------------------
3772C
3773      INCLUDE 'DPCOMC.INC'
3774      INCLUDE 'DPCOP2.INC'
3775C
3776C-----DATA STATEMENTS-------------------------------------------------
3777C
3778C-----START POINT-----------------------------------------------------
3779C
3780C     CHECK THE INPUT ARGUMENTS FOR ERRORS
3781C
3782      IF(DNU.LE.0.0D0)THEN
3783        WRITE(ICOUT,15)
3784        CALL DPWRST('XXX','BUG ')
3785        WRITE(ICOUT,47)ANU
3786        CALL DPWRST('XXX','BUG ')
3787        DCDF=0.0D0
3788        GOTO9000
3789      ENDIF
3790   15 FORMAT('***** ERROR--THE SECOND INPUT ARGUMENT TO CHCDF ',
3791     1'IS NON-POSITIVE')
3792      IF(DX.LT.0.0D0)THEN
3793        WRITE(ICOUT,4)
3794        CALL DPWRST('XXX','BUG ')
3795        WRITE(ICOUT,46)DX
3796        CALL DPWRST('XXX','BUG ')
3797        DCDF=0.0D0
3798        GOTO9000
3799      ENDIF
3800    4 FORMAT('***** ERROR--THE FIRST INPUT ARGUMENT TO CHCDF ',
3801     1'IS NEGATIVE')
3802   46 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',G15.7)
3803   47 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',G15.7)
3804C
3805      IF(DX.LE.D1MACH(1))THEN
3806        DCDF=0.0D0
3807        RETURN
3808      ENDIF
3809C
3810      DTERM1=DNU/2.0D0
3811      DTERM2=DX**2/2.0D0
3812      DCDF=DGAMIP(DTERM1,DTERM2)
3813C
3814 9000 CONTINUE
3815      RETURN
3816      END
3817      SUBROUTINE CHFDV(X1,X2,F1,F2,D1,D2,NE,XE,FE,DE,NEXT,IERR)
3818C***BEGIN PROLOGUE  CHFDV
3819C     THIS PROLOGUE HAS BEEN REMOVED FOR REASONS OF SPACE
3820C     FOR A COMPLETE COPY OF THIS ROUTINE CONTACT THE AUTHORS
3821C     From the book "Numerical Methods and Software"
3822C          by  D. Kahaner, C. Moler, S. Nash
3823C               Prentice Hall 1988
3824C***END PROLOGUE  CHFDV
3825C
3826C  DECLARE ARGUMENTS.
3827C
3828      INTEGER  NE, NEXT(2), IERR
3829      REAL  X1, X2, F1, F2, D1, D2, XE(NE), FE(NE), DE(NE)
3830C
3831C  DECLARE LOCAL VARIABLES.
3832C
3833      INTEGER  I
3834      REAL  C2, C2T2, C3, C3T3, DEL1, DEL2, DELTA, H, X, XMI, XMA, ZERO
3835C
3836      INCLUDE 'DPCOP2.INC'
3837C
3838      DATA  ZERO /0./
3839C
3840C  VALIDITY-CHECK ARGUMENTS.
3841C
3842C***FIRST EXECUTABLE STATEMENT  CHFDV
3843      IF (NE .LT. 1)  GO TO 5001
3844      H = X2 - X1
3845      IF (H .EQ. ZERO)  GO TO 5002
3846C
3847C  INITIALIZE.
3848C
3849      IERR = 0
3850      NEXT(1) = 0
3851      NEXT(2) = 0
3852      XMI = AMIN1(ZERO, H)
3853      XMA = AMAX1(ZERO, H)
3854C
3855C  COMPUTE CUBIC COEFFICIENTS (EXPANDED ABOUT X1).
3856C
3857      DELTA = (F2 - F1)/H
3858      DEL1 = (D1 - DELTA)/H
3859      DEL2 = (D2 - DELTA)/H
3860C                                           (DELTA IS NO LONGER NEEDED.)
3861      C2 = -(DEL1+DEL1 + DEL2)
3862      C2T2 = C2 + C2
3863      C3 = (DEL1 + DEL2)/H
3864C                               (H, DEL1 AND DEL2 ARE NO LONGER NEEDED.)
3865      C3T3 = C3+C3+C3
3866C
3867C  EVALUATION LOOP.
3868C
3869      DO 500  I = 1, NE
3870         X = XE(I) - X1
3871         FE(I) = F1 + X*(D1 + X*(C2 + X*C3))
3872         DE(I) = D1 + X*(C2T2 + X*C3T3)
3873C          COUNT EXTRAPOLATION POINTS.
3874         IF ( X.LT.XMI )  NEXT(1) = NEXT(1) + 1
3875         IF ( X.GT.XMA )  NEXT(2) = NEXT(2) + 1
3876C        (NOTE REDUNDANCY--IF EITHER CONDITION IS TRUE, OTHER IS FALSE.)
3877  500 CONTINUE
3878C
3879C  NORMAL RETURN.
3880C
3881      RETURN
3882C
3883C  ERROR RETURNS.
3884C
3885 5001 CONTINUE
3886C     NE.LT.1 RETURN.
3887      IERR = -1
3888CNIST CALL XERROR ('CHFDV -- NUMBER OF EVALUATION POINTS LESS THAN ONE'
3889CNIST*           , 50, IERR, 1)
3890      WRITE(ICOUT,999)
3891  999 FORMAT(1X)
3892      CALL DPWRST('XXX','BUG ')
3893      WRITE(ICOUT,5011)
3894 5011 FORMAT('****** ERROR IN CHFDV--')
3895      CALL DPWRST('XXX','BUG ')
3896      WRITE(ICOUT,5012)
3897 5012 FORMAT('       THE NUMBER OF EVALUATION POINTS IS LESS THAN ONE.')
3898      CALL DPWRST('XXX','BUG ')
3899      RETURN
3900C
3901 5002 CONTINUE
3902C     X1.EQ.X2 RETURN.
3903      IERR = -2
3904CNIST CALL XERROR ('CHFDV -- INTERVAL ENDPOINTS EQUAL'
3905CNIST*           , 33, IERR, 1)
3906      WRITE(ICOUT,999)
3907      CALL DPWRST('XXX','BUG ')
3908      WRITE(ICOUT,5011)
3909      CALL DPWRST('XXX','BUG ')
3910      WRITE(ICOUT,5022)
3911 5022 FORMAT('       THE INTERVAL ENDPOINTS ARE EQUAL.')
3912      CALL DPWRST('XXX','BUG ')
3913      RETURN
3914C------------- LAST LINE OF CHFDV FOLLOWS ------------------------------
3915      END
3916      REAL FUNCTION CHFIV(X1,X2,F1,F2,D1,D2,A,B,IERR)
3917C***BEGIN PROLOGUE  CHFIV
3918C***REFER TO  PCHIA
3919C***ROUTINES CALLED  XERROR
3920C***REVISION DATE  870707   (YYMMDD)
3921C***END PROLOGUE  CHFIV
3922C
3923C  DECLARE ARGUMENTS.
3924C
3925      INTEGER  IERR
3926      REAL  X1, X2, F1, F2, D1, D2, A, B
3927C
3928C  DECLARE LOCAL VARIABLES.
3929C
3930      REAL  DTERM, FOUR, FTERM, H, HALF, PHIA1, PHIA2, PHIB1, PHIB2,
3931     *      PSIA1, PSIA2, PSIB1, PSIB2, TA1, TA2, TB1, TB2, THREE, TWO,
3932     *      UA1, UA2, UB1, UB2
3933C
3934      INCLUDE 'DPCOP2.INC'
3935C
3936C  INITIALIZE.
3937C
3938      DATA  HALF /0.5/,  TWO /2./,  THREE /3./,  FOUR /4./,  SIX /6./
3939C
3940C  VALIDITY CHECK INPUT.
3941C
3942C***FIRST EXECUTABLE STATEMENT  CHFIV
3943      CHFIV=CPUMIN
3944      IF (X1 .EQ. X2)  GO TO 5001
3945      IERR = 0
3946C
3947C  COMPUTE INTEGRAL.
3948C
3949      H = X2 - X1
3950      TA1 = (A - X1) / H
3951      TA2 = (X2 - A) / H
3952      TB1 = (B - X1) / H
3953      TB2 = (X2 - B) / H
3954C
3955      UA1 = TA1**3
3956      PHIA1 = UA1 * (TWO - TA1)
3957      PSIA1 = UA1 * (THREE*TA1 - FOUR)
3958      UA2 = TA2**3
3959      PHIA2 =  UA2 * (TWO - TA2)
3960      PSIA2 = -UA2 * (THREE*TA2 - FOUR)
3961C
3962      UB1 = TB1**3
3963      PHIB1 = UB1 * (TWO - TB1)
3964      PSIB1 = UB1 * (THREE*TB1 - FOUR)
3965      UB2 = TB2**3
3966      PHIB2 =  UB2 * (TWO - TB2)
3967      PSIB2 = -UB2 * (THREE*TB2 - FOUR)
3968C
3969      FTERM =   F1*(PHIA2 - PHIB2) + F2*(PHIB1 - PHIA1)
3970      DTERM = ( D1*(PSIA2 - PSIB2) + D2*(PSIB1 - PSIA1) )*(H/SIX)
3971C
3972C  RETURN VALUE.
3973C
3974      CHFIV = (HALF*H) * (FTERM + DTERM)
3975      RETURN
3976C
3977C  ERROR RETURN.
3978C
3979 5001 CONTINUE
3980      IERR = -1
3981CNIST CALL XERROR ('CHFIV -- X1 EQUAL TO X2'
3982CNIST*           , 23, IERR, 1)
3983      WRITE(ICOUT,999)
3984  999 FORMAT(1X)
3985      CALL DPWRST('XXX','BUG ')
3986      WRITE(ICOUT,5011)
3987 5011 FORMAT('****** ERROR IN CHFIV--')
3988      CALL DPWRST('XXX','BUG ')
3989      WRITE(ICOUT,5012)
3990 5012 FORMAT('       X1 EQUAL TO X2.')
3991      CALL DPWRST('XXX','BUG ')
3992      RETURN
3993C------------- LAST LINE OF CHFIV FOLLOWS ------------------------------
3994      END
3995      SUBROUTINE CHM(A,B,X,HG,IERROR)
3996C
3997C       ===================================================
3998C       Purpose: Compute confluent hypergeometric function
3999C                M(a,b,x)
4000C       Input  : a  --- Parameter
4001C                b  --- Parameter ( b <> 0,-1,-2,... )
4002C                x  --- Argument
4003C       Output:  HG --- M(a,b,x)
4004C                IERROR REPORT ERROR CONDITIONS
4005C       ===================================================
4006C
4007        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4008        CHARACTER*4 IERROR
4009C
4010        IERROR='NO'
4011        Y1=0.0D0
4012        LA=0
4013C
4014        PI=3.141592653589793D0
4015        A0=A
4016        A1=A
4017        X0=X
4018        HG=0.0D0
4019        IF (B.EQ.0.0D0.OR.B.EQ.-ABS(INT(B))) THEN
4020           HG=1.0D+300
4021        ELSE IF (A.EQ.0.0D0.OR.X.EQ.0.0D0) THEN
4022           HG=1.0D0
4023        ELSE IF (A.EQ.-1.0D0) THEN
4024           HG=1.0D0-X/B
4025        ELSE IF (A.EQ.B) THEN
4026           HG=DEXP(X)
4027        ELSE IF (A-B.EQ.1.0D0) THEN
4028           HG=(1.0D0+X/B)*DEXP(X)
4029        ELSE IF (A.EQ.1.0D0.AND.B.EQ.2.0D0) THEN
4030           HG=(DEXP(X)-1.0D0)/X
4031        ELSE IF (A.EQ.INT(A).AND.A.LT.0.0D0) THEN
4032           M=INT(-A)
4033           R=1.0D0
4034           HG=1.0D0
4035           DO 10 K=1,M
4036              R=R*(A+K-1.0D0)/K/(B+K-1.0D0)*X
4037              HG=HG+R
403810         CONTINUE
4039        ENDIF
4040        IF (HG.NE.0.0D0) RETURN
4041        IF (X.LT.0.0D0) THEN
4042           A=B-A
4043           A0=A
4044           X=DABS(X)
4045        ENDIF
4046        IF (A.LT.2.0D0) NL=0
4047        IF (A.GE.2.0D0) THEN
4048           NL=1
4049           LA=INT(A)
4050           A=A-LA-1.0D0
4051        ENDIF
4052        DO 30 N=0,NL
4053           IF (A0.GE.2.0D0) A=A+1.0D0
4054           IF (X.LE.30.0D0+DABS(B).OR.A.LT.0.0D0) THEN
4055              HG=1.0D0
4056              RG=1.0D0
4057              DO 15 J=1,500
4058                 RG=RG*(A+J-1.0D0)/(J*(B+J-1.0D0))*X
4059                 HG=HG+RG
4060                 IF (DABS(RG/HG).LT.1.0D-15) GO TO 25
406115            CONTINUE
4062           ELSE
4063              TA=DGAMMA(A)
4064              TB=DGAMMA(B)
4065              XG=B-A
4066              TBA=DGAMMA(XG)
4067              SUM1=1.0D0
4068              SUM2=1.0D0
4069              R1=1.0D0
4070              R2=1.0D0
4071              DO 20 I=1,8
4072                 R1=-R1*(A+I-1.0D0)*(A-B+I)/(X*I)
4073                 R2=-R2*(B-A+I-1.0D0)*(A-I)/(X*I)
4074                 SUM1=SUM1+R1
4075                 SUM2=SUM2+R2
407620            CONTINUE
4077              HG1=TB/TBA*X**(-A)*DCOS(PI*A)*SUM1
4078              HG2=TB/TA*DEXP(X)*X**(A-B)*SUM2
4079              HG=HG1+HG2
4080           ENDIF
408125         CONTINUE
4082           IF (N.EQ.0) Y0=HG
4083           IF (N.EQ.1) Y1=HG
408430      CONTINUE
4085        IF (A0.GE.2.0D0) THEN
4086           DO 35 I=1,LA-1
4087              HG=((2.0D0*A-B+X)*Y1+(B-A)*Y0)/A
4088              Y0=Y1
4089              Y1=HG
4090              A=A+1.0D0
409135         CONTINUE
4092        ENDIF
4093        IF (X0.LT.0.0D0) HG=HG*DEXP(X0)
4094        A=A1
4095        X=X0
4096        RETURN
4097        END
4098      SUBROUTINE CHPDF(X,ANU,PDF)
4099C
4100C     PURPOSE--THIS SUBROUTINE COMPUTES THE PROBABILITY DENSITY
4101C              FUNCTION VALUE FOR THE CHI DISTRIBUTION
4102C              WITH POSITIVE DEGREES OF FREEDOM PARAMETER = NU.
4103C              THIS DISTRIBUTION IS DEFINED FOR ALL NON-NEGATIVE X.
4104C              THE PROBABILITY DENSITY FUNCTION IS GIVEN
4105C              IN THE REFERENCES BELOW.
4106C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION VALUE AT
4107C                                WHICH THE CUMULATIVE DISTRIBUTION
4108C                                FUNCTION IS TO BE EVALUATED.
4109C                                X SHOULD BE NON-NEGATIVE.
4110C                     --ANU    = THE POSITIVE NUMBER OF DEGREES
4111C                                OF FREEDOM.
4112C     OUTPUT ARGUMENTS--PDF    = THE SINGLE PRECISION CUMULATIVE
4113C                                DISTRIBUTION FUNCTION VALUE.
4114C     OUTPUT--THE SINGLE PRECISION CUMULATIVE DISTRIBUTION
4115C             FUNCTION VALUE PDF FOR THE CHI DISTRIBUTION
4116C             WITH DEGREES OF FREEDOM PARAMETER = ANU.
4117C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
4118C     RESTRICTIONS--X SHOULD BE NON-NEGATIVE.
4119C                 --NU SHOULD BE A POSITIVE INTEGER VARIABLE.
4120C     OTHER DATAPAC   SUBROUTINES NEEDED--NORPDF.
4121C     FORTRAN LIBRARY SUBROUTINES NEEDED--DSQRT, DEXP.
4122C     MODE OF INTERNAL OPERATIONS--DOUBLE PRECISION.
4123C     LANGUAGE--ANSI FORTRAN (1977)
4124C     REFERENCES--JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
4125C                 DISTRIBUTIONS--1, 1994, PAGE 417.
4126C               --"STATISTICAL DISTRIBUTIONS", EVANS, HASTINGS,
4127C                 PEACOCK.  WILEY, 1993.
4128C     WRITTEN BY--JAMES J. FILLIBEN
4129C                 STATISTICAL ENGINEERING DIVISION
4130C                 INFORMATION TECHNOLOGY LABORATORY
4131C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
4132C                 GAITHERSBURG, MD 20899-8980
4133C                 PHONE--301-975-2855
4134C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
4135C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
4136C     LANGUAGE--ANSI FORTRAN (1966)
4137C     VERSION NUMBER--95/4
4138C     ORIGINAL VERSION--APRIL     1995.
4139C
4140C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
4141C
4142C---------------------------------------------------------------------
4143C
4144      INCLUDE 'DPCOMC.INC'
4145C
4146      DOUBLE PRECISION DTERM1, DTERM2, DTERM3, DTERM4, DTERM5
4147      DOUBLE PRECISION DARG1, DARG2
4148      DOUBLE PRECISION DPDF
4149      DOUBLE PRECISION DLNGAM
4150C
4151C---------------------------------------------------------------------
4152C
4153      INCLUDE 'DPCOP2.INC'
4154C
4155C-----DATA STATEMENTS-------------------------------------------------
4156C
4157C-----START POINT-----------------------------------------------------
4158C
4159C     CHECK THE INPUT ARGUMENTS FOR ERRORS
4160C
4161      IF(ANU.LE.0.0)THEN
4162        WRITE(ICOUT,15)
4163        CALL DPWRST('XXX','BUG ')
4164        WRITE(ICOUT,47)ANU
4165        CALL DPWRST('XXX','BUG ')
4166        PDF=0.0
4167        GOTO9999
4168      ENDIF
4169   15 FORMAT('***** ERROR--THE SECOND INPUT ARGUMENT TO CHPDF ',
4170     1'IS NON-POSITIVE')
4171      IF(X.LT.0.0)THEN
4172        WRITE(ICOUT,4)
4173        CALL DPWRST('XXX','BUG ')
4174        WRITE(ICOUT,46)X
4175        CALL DPWRST('XXX','BUG ')
4176        PDF=0.0
4177        GOTO9999
4178      ENDIF
4179    4 FORMAT('***** ERROR--THE FIRST INPUT ARGUMENT TO CHPDF ',
4180     1'IS NEGATIVE')
4181   46 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',G15.7)
4182   47 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',G15.7)
4183C
4184      DARG1=DBLE(X)
4185      DARG2=DBLE(ANU)
4186C
4187      DTERM1=(DARG2-1.0D0)*DLOG(DARG1)
4188      DTERM2=-DARG1*DARG1/2.0D0
4189C
4190      IF(DABS(DTERM2).GE.DLOG(D1MACH(2)))THEN
4191        PDF=0.0
4192        GOTO9999
4193      ENDIF
4194C
4195      DTERM3=(DARG2/2.0D0-1.0D0)*DLOG(2.0D0)
4196      DTERM4=DLNGAM(DARG2/2.0D0)
4197      DTERM5=DTERM1+DTERM2-DTERM3-DTERM4
4198      IF(DTERM5.GE.DLOG(D1MACH(2)))THEN
4199        WRITE(ICOUT,101)X,ANU
4200        CALL DPWRST('XXX','BUG ')
4201        WRITE(ICOUT,46)X
4202        CALL DPWRST('XXX','BUG ')
4203        WRITE(ICOUT,46)ANU
4204        CALL DPWRST('XXX','BUG ')
4205        PDF=LOG(R1MACH(2))
4206        GOTO9999
4207      ELSE
4208        DPDF=DEXP(DTERM5)
4209      ENDIF
4210      PDF=REAL(DPDF)
4211      GOTO9999
4212 101  FORMAT('***** ERROR--THE CHPDF ROUTINE OVERFLOWS.  PDF ',
4213     1 'SET TO LOG OF LARGEST VALUE.')
4214C
4215 9999 CONTINUE
4216      RETURN
4217      END
4218      SUBROUTINE CHPPF(P,NU,PPF)
4219C
4220C     PURPOSE   --PERCENT POINT FUNCTION FOR THE CHI
4221C                 DISTRIBUTION.  USES A BISECTION METHOD.
4222C     WRITTEN BY--JAMES J. FILLIBEN
4223C                 STATISTICAL ENGINEERING DIVISION
4224C                 INFORMATION TECHNOLOGY LABORATORY
4225C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
4226C                 GAITHERSBURG, MD 20899-8980
4227C                 PHONE--301-975-2855
4228C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
4229C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
4230C     LANGUAGE--ANSI FORTRAN (1977)
4231C     VERSION NUMBER--95/4
4232C     ORIGINAL VERSION--APRIL     1995.
4233C     UPDATED         --OCTOBER   2006. CONVERT TO DOUBLE PRECISION
4234C
4235C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
4236C
4237      REAL NU
4238C
4239      DOUBLE PRECISION DNU
4240      DOUBLE PRECISION DP
4241      DOUBLE PRECISION EPS
4242      DOUBLE PRECISION SIG
4243      DOUBLE PRECISION ZERO
4244      DOUBLE PRECISION DMEAN
4245      DOUBLE PRECISION DSD
4246      DOUBLE PRECISION XL
4247      DOUBLE PRECISION XR
4248      DOUBLE PRECISION XINC
4249      DOUBLE PRECISION CDFL
4250      DOUBLE PRECISION CDFR
4251      DOUBLE PRECISION FXL
4252      DOUBLE PRECISION FXR
4253      DOUBLE PRECISION FCS
4254      DOUBLE PRECISION P1
4255      DOUBLE PRECISION DX
4256      DOUBLE PRECISION DCDF
4257C
4258      DOUBLE PRECISION DGAMMA
4259      EXTERNAL DGAMMA
4260C
4261C---------------------------------------------------------------------
4262C
4263      INCLUDE 'DPCOP2.INC'
4264C
4265      DATA EPS /0.000001/
4266      DATA SIG /1.0D-7/
4267      DATA ZERO /0.0D0/
4268      DATA MAXIT /1000/
4269C
4270C-----START POINT-----------------------------------------------------
4271C
4272C     CHECK THE INPUT ARGUMENTS FOR ERRORS
4273C
4274      PPF=0.0
4275      IF(P.LT.0.0.OR.P.GE.1.0)THEN
4276        WRITE(ICOUT,1)
4277    1   FORMAT('***** ERROR--THE FIRST ARGUMENT TO CHPPF ',
4278     1       'IS OUTSIDE THE ALLOWABLE (0,1) INTERVAL.')
4279        CALL DPWRST('XXX','BUG ')
4280        WRITE(ICOUT,46)P
4281        CALL DPWRST('XXX','BUG ')
4282        GOTO9999
4283      ELSEIF(NU.LE.0.0)THEN
4284        WRITE(ICOUT,11)
4285   11   FORMAT('***** ERROR--THE SECOND ARGUMENT TO CHPPF ',
4286     1         'IS LESS THAN OR EQUAL TO 0.')
4287        CALL DPWRST('XXX','BUG ')
4288        WRITE(ICOUT,46)NU
4289        CALL DPWRST('XXX','BUG ')
4290        GOTO9999
4291      ENDIF
4292C
4293   46 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',G15.7)
4294C
4295C  FIND BRACKETING INTERVAL.
4296C
4297C  1) USE 0 AS THE LOWER LIMIT
4298C  2) START WITH THE MEAN AS THE UPPER LIMIT AND INCREMENT
4299C     BY 1 SD.
4300C
4301C     MEAN = SQRT(2)*GAMMA((NU+1)/2)/GAMMA(NU/2)
4302C     VARI = NU - MEAN**2
4303C
4304      IF(P.EQ.0.0)THEN
4305        PPF=0.0
4306        GOTO9999
4307      ENDIF
4308C
4309      DNU=DBLE(NU)
4310      DP=DBLE(P)
4311      DMEAN=DSQRT(2.0D0)*DGAMMA((DNU+1.0D0)/2.0D0)/DGAMMA(DNU/2.0D0)
4312      DSD=DNU - DMEAN**2
4313      IF(DSD.GT.0.0D0)THEN
4314        DSD=DSQRT(DSD)
4315      ELSE
4316        DSD=20.0D0
4317      ENDIF
4318C
4319      XL=0.0D0
4320      XINC=DSD
4321      ICOUNT=0
4322      MAXCNT=10000
4323C
4324   91 CONTINUE
4325      XR=XL+XINC
4326      IF(XL.LE.0.0D0)XL=0.0D0
4327      IF(XR.LE.0.0D0)XR=XL+1.0D0
4328      CALL CHCDF2(XL,DNU,CDFL)
4329      CALL CHCDF2(XR,DNU,CDFR)
4330      IF(CDFL.LT.DP .AND. CDFR.LT.DP)THEN
4331        XL=XR
4332      ELSEIF(CDFL.GT.DP .AND. CDFR.GT.DP)THEN
4333        XL=XL-XINC
4334      ELSE
4335        GOTO99
4336      ENDIF
4337      ICOUNT=ICOUNT+1
4338      IF(ICOUNT.GT.MAXCNT)THEN
4339        WRITE(ICOUT,96)
4340        CALL DPWRST('XXX','BUG ')
4341        PPF=0.0
4342        GOTO9999
4343      ENDIF
4344   96 FORMAT('***** ERROR--CHPPF UNABLE TO FIND BRACKETING ',
4345     *       'INTERVAL.')
4346      GOTO91
4347C
4348C  BISECTION METHOD
4349C
4350   99 CONTINUE
4351      IC = 0
4352      FXL = -DP
4353      FXR = 1.0D0 - DP
4354  105 CONTINUE
4355      DX = (XL+XR)*0.5D0
4356      CALL CHCDF2(DX,DNU,DCDF)
4357      P1=DCDF
4358      PPF=REAL(DX)
4359      FCS = P1 - DP
4360      IF(FCS*FXL.GT.ZERO)THEN
4361        XL = DX
4362        FXL = FCS
4363      ELSE
4364        XR = DX
4365        FXR = FCS
4366      ENDIF
4367      XRML = XR - XL
4368      IF(XRML.LE.SIG .AND. ABS(FCS).LE.EPS)GOTO9999
4369      IC = IC + 1
4370      IF(IC.LE.MAXIT)GOTO105
4371      WRITE(ICOUT,130)
4372      CALL DPWRST('XXX','BUG ')
4373  130 FORMAT('***** ERROR--CHPPF ROUTINE DID NOT CONVERGE.')
4374      GOTO9999
4375C
4376 9999 CONTINUE
4377      RETURN
4378      END
4379      SUBROUTINE CHRAN(N,ANU,ISEED,X)
4380C
4381C     PURPOSE--THIS SUBROUTINE GENERATES A RANDOM SAMPLE OF SIZE N
4382C              FROM THE CHI DISTRIBUTION
4383C              WITH TAIL LENGTH PARAMETER VALUE = ANU.
4384C     INPUT  ARGUMENTS--N      = THE DESIRED INTEGER NUMBER
4385C                                OF RANDOM NUMBERS TO BE
4386C                                GENERATED.
4387C                     --ANU    = THE SINGLE PRECISION VALUE OF THE
4388C                                DEGREES OF FREEDOM PARAMETER.
4389C                                ANU SHOULD BE A POSITIVE INTEGER.
4390C     OUTPUT ARGUMENTS--X      = A SINGLE PRECISION VECTOR
4391C                                (OF DIMENSION AT LEAST N)
4392C                                INTO WHICH THE GENERATED
4393C                                RANDOM SAMPLE WILL BE PLACED.
4394C     OUTPUT--A RANDOM SAMPLE OF SIZE N
4395C             FROM THE CHI DISTRIBUTION
4396C             WITH DEGREES OF FREEDOM PARAMETER VALUE = ANU.
4397C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
4398C     RESTRICTIONS--THERE IS NO RESTRICTION ON THE MAXIMUM VALUE
4399C                   OF N FOR THIS SUBROUTINE.
4400C                 --ANU SHOULD BE POSITIVE.
4401C     OTHER DATAPAC   SUBROUTINES NEEDED--UNIRAN.
4402C     FORTRAN LIBRARY SUBROUTINES NEEDED--NONE.
4403C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
4404C     LANGUAGE--ANSI FORTRAN (1977)
4405C     WRITTEN BY--JAMES J. FILLIBEN
4406C                 STATISTICAL ENGINEERING DIVISION
4407C                 INFORMATION TECHNOLOGY LABORATORY
4408C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
4409C                 GAITHERSBURG, MD 20899-8980
4410C                 PHONE--301-975-2855
4411C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
4412C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
4413C     LANGUAGE--ANSI FORTRAN (1966)
4414C     VERSION NUMBER--2003.7
4415C     ORIGINAL VERSION--JULY      2003.
4416C
4417C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
4418C
4419C---------------------------------------------------------------------
4420C
4421      DIMENSION X(*)
4422C
4423C---------------------------------------------------------------------
4424C
4425      INCLUDE 'DPCOP2.INC'
4426C
4427C-----START POINT-----------------------------------------------------
4428C
4429C     CHECK THE INPUT ARGUMENTS FOR ERRORS
4430C
4431      IF(N.LT.1)THEN
4432        WRITE(ICOUT, 5)
4433        CALL DPWRST('XXX','BUG ')
4434        WRITE(ICOUT,47)N
4435        CALL DPWRST('XXX','BUG ')
4436        GOTO9000
4437      ENDIF
4438      IF(ANU.LE.0.0)THEN
4439        WRITE(ICOUT,15)
4440        CALL DPWRST('XXX','BUG ')
4441        WRITE(ICOUT,46)ANU
4442        CALL DPWRST('XXX','BUG ')
4443        GOTO9000
4444      ENDIF
4445    5 FORMAT('***** ERROR--THE REQUESTED NUMBER OF CHI RANDOM',
4446     1       ' NUMBERS IS NON-POSITIVE.')
4447   15 FORMAT('***** ERROR--THE DEGREES OF FREEDOM PARAMETER FOR',
4448     1       ' CHI RANDOM NUMBERS IS NON-POSITIVE.')
4449   46 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',G15.7)
4450   47 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',I8)
4451C
4452C     GENERATE N UNIFORM (0,1) RANDOM NUMBERS;
4453C
4454      CALL UNIRAN(N,ISEED,X)
4455C
4456C     GENERATE N CHI DISTRIBUTION RANDOM
4457C     NUMBERS USING THE PERCENT POINT FUNCTION TRANSFORMATION METHOD.
4458C
4459      DO100I=1,N
4460        CALL CHPPF(X(I),ANU,XTEMP)
4461        X(I)=XTEMP
4462  100 CONTINUE
4463C
4464 9000 CONTINUE
4465      RETURN
4466      END
4467      SUBROUTINE CHECKA(NUMARG,MINNA,MAXNA,IANS,IWIDTH,ISUBN1,ISUBN2,
4468     1                  IERROR)
4469C
4470C     PURPOSE--CHECK TO SEE IF THE NUMBER OF INPUT ARGUMENTS
4471C              TO THE CALLING SUBROUTINES IS BETWEEN ALLOWABLE LIMITS.
4472C     OUTPUT--A VALUE OF 'NO' OR 'YES' IS STORED
4473C             IN THE HOLLERITH VARIABLE IERROR
4474C             DEPENDING ON WHETHER THE NUMBER OF ARGUMENTS
4475C             IS WITHIN ALLOWABLE LIMITS
4476C             OR OUTSIDE OF ALLOWABLE LIMITS, RESPECTIVELY.
4477C     NOTE--THIS CHECKING SUBROUTINE IS PARTICULARLY
4478C           USEFUL FOR THOSE SUBROUTINES WHICH
4479C           WOULD RESULT IN A TERMINATION IF THE ANALYST
4480C           FORGOT TO ENTER ANY ARGUMENTS AT ALL
4481C           FOR A COMMAND WHICH REQUIRES AT LEAST 1
4482C           (LIKE HISTOGRAM, NORMAL PROBABILITY PLOT, ETC.).
4483C     WRITTEN BY--JAMES J. FILLIBEN
4484C                 STATISTICAL ENGINEERING DIVISION
4485C                 INFORMATION TECHNOLOGY LABORATORY
4486C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
4487C                 GAITHERSBURG, MD 20899-8980
4488C                 PHONE--301-975-2855
4489C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
4490C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
4491C     LANGUAGE--ANSI FORTRAN (1977)
4492C     VERSION NUMBER--82/7
4493C     ORIGINAL VERSION--DECEMBER 28, 1977.
4494C     UPDATED         --DECEMBER  1981.
4495C     UPDATED         --FEBRUARY  1982.
4496C     UPDATED         --MAY       1982.
4497C
4498C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
4499C
4500      CHARACTER*4 IANS
4501      CHARACTER*4 ISUBN1
4502      CHARACTER*4 ISUBN2
4503      CHARACTER*4 IERROR
4504C
4505C---------------------------------------------------------------------
4506C
4507      DIMENSION IANS(*)
4508C
4509C---------------------------------------------------------------------
4510C
4511      INCLUDE 'DPCOP2.INC'
4512C
4513C-----START POINT-----------------------------------------------------
4514C
4515      IF(MINNA.LE.NUMARG.AND.NUMARG.LE.MAXNA)GOTO1200
4516C
4517      WRITE(ICOUT,1102)ISUBN1,ISUBN2
4518 1102 FORMAT('***** ERROR IN ',A4,A4,'--')
4519      CALL DPWRST('XXX','BUG ')
4520      WRITE(ICOUT,1104)
4521 1104 FORMAT('      THE NUMBER OF ARGUMENTS ACCOMPANYING')
4522      CALL DPWRST('XXX','BUG ')
4523      WRITE(ICOUT,1106)
4524 1106 FORMAT('      THE LAST COMMAND WAS IMPROPER.')
4525      CALL DPWRST('XXX','BUG ')
4526      WRITE(ICOUT,999)
4527  999 FORMAT(1X)
4528      CALL DPWRST('XXX','BUG ')
4529      WRITE(ICOUT,1112)NUMARG
4530 1112 FORMAT('      THE ENTERED NUMBER OF ARGUMENTS WAS ',I6)
4531      CALL DPWRST('XXX','BUG ')
4532      WRITE(ICOUT,999)
4533      CALL DPWRST('XXX','BUG ')
4534      WRITE(ICOUT,1108)
4535 1108 FORMAT('      A VALID NUMBER OF ARGUMENTS FOR THIS COMMAND ')
4536      CALL DPWRST('XXX','BUG ')
4537      WRITE(ICOUT,1110)MINNA,MAXNA
4538 1110 FORMAT('      IS BETWEEN ',I6,' AND ',I6,' (INCLUSIVELY).')
4539      CALL DPWRST('XXX','BUG ')
4540      WRITE(ICOUT,999)
4541      CALL DPWRST('XXX','BUG ')
4542      WRITE(ICOUT,1124)
4543 1124 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
4544      CALL DPWRST('XXX','BUG ')
4545      IF(IWIDTH.GE.1)THEN
4546        WRITE(ICOUT,1126)(IANS(I),I=1,MIN(100,IWIDTH))
4547 1126   FORMAT('      ',100A1)
4548        CALL DPWRST('XXX','BUG ')
4549      ENDIF
4550      IERROR='YES'
4551      RETURN
4552C
4553 1200 CONTINUE
4554      IERROR='NO'
4555      RETURN
4556C
4557      END
4558      SUBROUTINE CHECKF(IHWORD,IHWOR2,IHWUSE,
4559     1                  IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,
4560     1                  NUMNAM,MAXNAM,
4561     1                  ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOC,ITYPE)
4562C
4563C     PURPOSE--CHECK TO SEE IF THE HOLLERITH NAME IN (IHWORD,IHWOR2)
4564C              EXISTS IN THE CURRENT TABLE OF AVAILABLE NAMES AND RETURN
4565C              THE TYPE (PARAMETER, VARIABLE, STRING, OR MATRIX).
4566C     OUTPUT--ITYPE = THE TYPE.
4567C     WRITTEN BY--JAMES J. FILLIBEN
4568C                 STATISTICAL ENGINEERING DIVISION
4569C                 INFORMATION TECHNOLOGY LABORATORY
4570C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
4571C                 GAITHERSBURG, MD 20899-8980
4572C                 PHONE--301-975-2855
4573C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
4574C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
4575C     LANGUAGE--ANSI FORTRAN (1977)
4576C     VERSION NUMBER--2002/7
4577C     ORIGINAL VERSION--JULY      2002.
4578C
4579C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
4580C
4581      CHARACTER*4 IHWORD
4582      CHARACTER*4 IHWOR2
4583      CHARACTER*4 IHWUSE
4584      CHARACTER*4 IHNAME
4585      CHARACTER*4 IHNAM2
4586      CHARACTER*4 IUSE
4587      CHARACTER*4 ISUBN1
4588      CHARACTER*4 ISUBN2
4589      CHARACTER*4 MESSAG
4590      CHARACTER*4 IANS
4591C
4592      CHARACTER*8 ITYPE
4593C
4594C---------------------------------------------------------------------
4595C
4596      DIMENSION IHNAME(*)
4597      DIMENSION IHNAM2(*)
4598      DIMENSION IUSE(*)
4599      DIMENSION IN(*)
4600      DIMENSION IVALUE(*)
4601      DIMENSION VALUE(*)
4602C
4603      DIMENSION IANS(*)
4604C
4605C---------------------------------------------------------------------
4606C
4607      INCLUDE 'DPCOBE.INC'
4608      INCLUDE 'DPCOP2.INC'
4609C
4610C-----START POINT-----------------------------------------------------
4611C
4612      IF(ISUBG4.EQ.'ECKF')THEN
4613        WRITE(ICOUT,61)IHWUSE,MESSAG,ISUBN1,ISUBN2,MAXNAM,IWIDTH
4614   61   FORMAT('IHWUSE,MESSAG,ISUBN1,ISUBN2,MAXNAM,IWIDTH = ',
4615     1         4(A4,2X),2I8)
4616        CALL DPWRST('XXX','BUG ')
4617        WRITE(ICOUT,63)IANS(1),IANS(2),IANS(3),IANS(4)
4618   63   FORMAT('IANS(1),IANS(2),IANS(3),IANS(4) = ',3(A4,2X),A4)
4619        CALL DPWRST('XXX','BUG ')
4620        DO67I=1,NUMNAM
4621          WRITE(ICOUT,68)I,IHNAME(I),IHNAM2(I),IUSE(I),IN(I),IVALUE(I),
4622     1                   VALUE(I)
4623   68     FORMAT('I,IHNAME(I),IHNAM2(I),IUSE(I),IN(I),IVALUE(I)',
4624     1           'VALUE(I) = ',I8,2X,A4,A4,2X,A4,2I8,G15.7)
4625          CALL DPWRST('XXX','BUG ')
4626   67   CONTINUE
4627      ENDIF
4628C
4629C     NOTE: RETURNING ITYPE = "NONE" MEANS NAME NOT FOUND IN CURRENT
4630C           NAME LIST TABLE.
4631C
4632      ITYPE='NONE'
4633      ILOC=0
4634C
4635      DO150I=1,NUMNAM
4636        I2=I
4637        IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I))THEN
4638          ILOC=I2
4639          IF(IUSE(I).EQ.'P')THEN
4640            ITYPE='PARAMETE'
4641          ELSEIF(IUSE(I).EQ.'V')THEN
4642            ITYPE='VARIBLE'
4643          ELSEIF(IUSE(I).EQ.'F')THEN
4644            ITYPE='STRING'
4645          ELSEIF(IUSE(I).EQ.'M')THEN
4646            ITYPE='MATRIX'
4647          ELSE
4648            ITYPE='UNKN'
4649          ENDIF
4650          GOTO9000
4651        ENDIF
4652  150 CONTINUE
4653C
4654 9000 CONTINUE
4655      IF(MESSAG.EQ.'ON')THEN
4656        WRITE(ICOUT,51)IHNAME(ILOC),IHNAM2(ILOC),ITYPE
4657   51   FORMAT('***** VARIABLE ',A4,A4,' FOUND AS A ',A8)
4658        CALL DPWRST('XXX','BUG ')
4659      ENDIF
4660C
4661      RETURN
4662C
4663      END
4664      SUBROUTINE CHECKN(IHWORD,IHWOR2,IHWUSE,
4665     1                  IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,
4666     1                  NUMNAM,MAXNAM,
4667     1                  ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOC,IERROR)
4668C
4669C     PURPOSE--CHECK TO SEE IF THE HOLLERITH NAME IN (IHWORD,IHWOR2)
4670C              EXISTS IN THE CURRENT TABLE OF AVAILABLE PARAMETER AND
4671C              VARIABLE NAMES AS GIVEN IN IHNAME(.) AND IHNAM2(I).
4672C     OUTPUT--THE LOCATION (THAT IS, THE LINE OR ROW) IN THE TABLE
4673C             WHERE THE NAME WAS FOUND (IF FOUND).
4674C             THIS LOCATION IS STORED IN THE VARIABLE ILOC.
4675C             ALSO, A VALUE OF 'YES' OR 'NO' IS STORED
4676C             IN THE HOLLERITH VARIABLE IERROR
4677C             DEPENDING ON WHETHER THE NAME WAS NOT FOUND
4678C             OR WAS FOUND, RESPECTIVELY.
4679C     WRITTEN BY--JAMES J. FILLIBEN
4680C                 STATISTICAL ENGINEERING DIVISION
4681C                 INFORMATION TECHNOLOGY LABORATORY
4682C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
4683C                 GAITHERSBURG, MD 20899-8980
4684C                 PHONE--301-975-2855
4685C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
4686C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
4687C     LANGUAGE--ANSI FORTRAN (1977)
4688C     VERSION NUMBER--82/7
4689C     ORIGINAL VERSION--DECEMBER 28, 1977.
4690C     UPDATED         --JUNE 8, 1978.
4691C     UPDATED         --NOVEMBER  1980.
4692C     UPDATED         --JANUARY   1981.
4693C     UPDATED         --JULY      1981.
4694C     UPDATED         --NOVEMBER  1981.
4695C     UPDATED         --MAY       1982.
4696C     UPDATED         --JANUARY   1988. (UPDATED ERROR MESSAGES)
4697C     UPDATED         --JANUARY   2010. CHECK FOR MATRIX
4698C     UPDATED         --JANUARY   2019. CHECK FOR CHARACTER VARIABLE
4699C
4700C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
4701C
4702      CHARACTER*4 IHWORD
4703      CHARACTER*4 IHWOR2
4704      CHARACTER*4 IHWUSE
4705      CHARACTER*4 IHNAME
4706      CHARACTER*4 IHNAM2
4707      CHARACTER*4 IUSE
4708      CHARACTER*4 ISUBN1
4709      CHARACTER*4 ISUBN2
4710      CHARACTER*4 MESSAG
4711      CHARACTER*4 IANS
4712      CHARACTER*4 IERROR
4713C
4714      CHARACTER*4 IBUGS2
4715      CHARACTER*4 ISUBRO
4716C
4717C---------------------------------------------------------------------
4718C
4719      DIMENSION IHNAME(*)
4720      DIMENSION IHNAM2(*)
4721      DIMENSION IUSE(*)
4722      DIMENSION IN(*)
4723      DIMENSION IVALUE(*)
4724      DIMENSION VALUE(*)
4725C
4726      DIMENSION IANS(*)
4727C
4728      INCLUDE 'DPCOPA.INC'
4729C
4730CCCCC CHARACTER*80 IFILE2
4731      CHARACTER (LEN=MAXFNC) :: IFILE2
4732      CHARACTER*12 ISTAT2
4733      CHARACTER*12 IFORM2
4734      CHARACTER*12 IACCE2
4735      CHARACTER*12 IPROT2
4736      CHARACTER*12 ICURS2
4737      CHARACTER*4  IREWI2
4738      CHARACTER*4  IERRF2
4739      CHARACTER*4  ISUBN0
4740      CHARACTER*8  IH
4741C
4742      INCLUDE 'DPCOFO.INC'
4743      INCLUDE 'DPCOF2.INC'
4744      INCLUDE 'DPCOBE.INC'
4745C
4746C---------------------------------------------------------------------
4747C
4748      INCLUDE 'DPCOP2.INC'
4749C
4750C-----START POINT-----------------------------------------------------
4751C
4752      IF(ISUBG4.EQ.'ECKN')THEN
4753        WRITE(ICOUT,61)MAXNAM,IWIDTH
4754   61   FORMAT('MAXNAM,IWIDTH = ',2I8)
4755        CALL DPWRST('XXX','BUG ')
4756        DO67I=1,NUMNAM
4757          WRITE(ICOUT,68)I,IHNAME(I),IHNAM2(I),IUSE(I),IN(I),IVALUE(I),
4758     1                   VALUE(I)
4759   68     FORMAT('I,IHNAME(I),IHNAM2(I),IUSE(I),IN(I),IVALUE(I)',
4760     1           'VALUE(I) = ',I8,2X,2A4,2X,A4,2I8,G15.7)
4761          CALL DPWRST('XXX','BUG ')
4762   67   CONTINUE
4763        WRITE(ICOUT,69)IANS(1),IANS(2),IANS(3),IANS(4)
4764   69   FORMAT('IANS(1),IANS(2),IANS(3),IANS(4) = ',3(A4,2X),A4)
4765        CALL DPWRST('XXX','BUG ')
4766      ENDIF
4767C
4768      IERROR='NO'
4769      IF(NUMNAM.LE.0)THEN
4770        ILOC=0
4771        IERROR='YES'
4772        GOTO9000
4773      ENDIF
4774C
4775      IF(IHWUSE.EQ.'C' .OR. IHWUSE.EQ.'VC  ')THEN
4776        IOUNI2=IZCHNU
4777        IFILE2=IZCHNA
4778        ISTAT2=IZCHST
4779        IFORM2=IZCHFO
4780        IACCE2=IZCHAC
4781        IPROT2=IZCHPR
4782        ICURS2=IZCHCS
4783        IFLAGC=1
4784C
4785        ISUBN0='WRIT'
4786        IERRF2='NO'
4787        IBUGS2='OFF'
4788        ISUBRO='XXXX'
4789        IFLAGC=1
4790        CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
4791     1              ICURS2,
4792     1              IREWI2,ISUBN0,IERRF2,IBUGS2,ISUBRO,IERROR)
4793        IF(IERRF2.EQ.'YES')THEN
4794          IFLAGC=0
4795          ILOC=0
4796          IERROR='YES'
4797          GOTO9000
4798        ELSE
4799          REWIND(IOUNI2)
4800          READ(IOUNI2,'(I8)',END=71,ERR=71)NCVAR
4801          IFLAGC=1
4802          GOTO79
4803C
4804   71     CONTINUE
4805          IFLAGC=0
4806          IF(IHWUSE.EQ.'C')THEN
4807            ILOC=0
4808            IERROR='YES'
4809          ENDIF
4810   79     CONTINUE
4811        ENDIF
4812        IF(IHWUSE.EQ.'C')GOTO159
4813      ENDIF
4814C
4815      DO150I=1,NUMNAM
4816C
4817        I2=I
4818C
4819        IF(IHWUSE.EQ.'P')THEN
4820          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I).AND.
4821     1       IUSE(I).EQ.'P')GOTO800
4822          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I))THEN
4823            IF(MESSAG.EQ.'YES')THEN
4824              WRITE(ICOUT,111)IHWORD,IHWOR2
4825  111         FORMAT('     A COMMAND OR EXPRESSION EXPECTED THE NAME ',
4826     1               2A4,' TO BE USED ')
4827              CALL DPWRST('XXX','BUG ')
4828              WRITE(ICOUT,113)
4829  113         FORMAT('     AS A PARAMETER.  THE NAME WAS FOUND IN THE ',
4830     1               'INTERNAL TABLE,')
4831              CALL DPWRST('XXX','BUG ')
4832              WRITE(ICOUT,114)
4833  114         FORMAT('     BUT NOT AS A PARAMETER.  PLEASE RECHECK ',
4834     1               'THE COMMAND SYNTAX.')
4835              CALL DPWRST('XXX','BUG ')
4836              WRITE(ICOUT,999)
4837  999         FORMAT(1X)
4838              CALL DPWRST('XXX','BUG ')
4839            ENDIF
4840            ILOC=0
4841            IERROR='YES'
4842            GOTO9000
4843          ENDIF
4844C
4845        ELSEIF(IHWUSE.EQ.'V' .OR. IHWUSE.EQ.'VC')THEN
4846          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I).AND.
4847     1      IUSE(I).EQ.'V')GOTO800
4848          IF(IHWUSE.EQ.'VC')GOTO159
4849          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I))THEN
4850C
4851            IF(MESSAG.EQ.'YES')THEN
4852              WRITE(ICOUT,211)IHWORD,IHWOR2
4853  211         FORMAT('     A COMMAND OR EXPRESSION EXPECTED THE NAME ',
4854     1               2A4,' TO BE USED')
4855              CALL DPWRST('XXX','BUG ')
4856              WRITE(ICOUT,213)
4857  213         FORMAT('     AS A VARIABLE.  THE NAME WAS FOUND IN THE ',
4858     1               'INTERNAL TABLE,')
4859              CALL DPWRST('XXX','BUG ')
4860              WRITE(ICOUT,214)
4861  214         FORMAT('     BUT NOT AS A VARIABLE.  PLEASE RECHECK THE ',
4862     1               'COMMAND SYNTAX.')
4863              CALL DPWRST('XXX','BUG ')
4864              WRITE(ICOUT,999)
4865              CALL DPWRST('XXX','BUG ')
4866            ENDIF
4867            ILOC=0
4868            IERROR='YES'
4869            GOTO9000
4870          ENDIF
4871C
4872        ELSEIF(IHWUSE.EQ.'EITH' .OR. IHWUSE.EQ.'PORV' .OR.
4873     1         IHWUSE.EQ.'VORP' .OR. IHWUSE.EQ.'PV'   .OR.
4874     1         IHWUSE.EQ.'VP')THEN
4875          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I).AND.
4876     1       IUSE(I).EQ.'P')GOTO800
4877          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I).AND.
4878     1       IUSE(I).EQ.'V')GOTO800
4879          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I))THEN
4880            IF(MESSAG.EQ.'YES')THEN
4881              WRITE(ICOUT,311)IHWORD,IHWOR2
4882  311         FORMAT('     A COMMAND OR EXPRESSION EXPECTED THE NAME ',
4883     1               2A4,' TO BE USED')
4884              CALL DPWRST('XXX','BUG ')
4885              WRITE(ICOUT,313)
4886  313         FORMAT('     AS A PARAMETER OR VARIABLE.  THE NAME ',
4887     1               'WAS FOUND IN THE INTERNAL TABLE,')
4888              CALL DPWRST('XXX','BUG ')
4889              WRITE(ICOUT,314)
4890  314         FORMAT('     BUT NEITHER AS A PARAMETER NOR A VARIABLE.')
4891              CALL DPWRST('XXX','BUG ')
4892              WRITE(ICOUT,315)
4893  315         FORMAT('     PLEASE RECHECK THE COMMAND SYNTAX.')
4894              CALL DPWRST('XXX','BUG ')
4895              WRITE(ICOUT,999)
4896              CALL DPWRST('XXX','BUG ')
4897            ENDIF
4898            ILOC=0
4899            IERROR='YES'
4900            GOTO9000
4901          ENDIF
4902C
4903        ELSEIF(IHWUSE.EQ.'M')THEN
4904          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I).AND.
4905     1      IUSE(I).EQ.'M')GOTO800
4906          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I))THEN
4907C
4908            IF(MESSAG.EQ.'YES')THEN
4909              WRITE(ICOUT,411)IHWORD,IHWOR2
4910  411         FORMAT('     A COMMAND OR EXPRESSION EXPECTED THE NAME ',
4911     1               2A4,' TO BE USED')
4912              CALL DPWRST('XXX','BUG ')
4913              WRITE(ICOUT,413)
4914  413         FORMAT('     AS A MATRIX.  THE NAME WAS FOUND IN THE ',
4915     1               'INTERNAL TABLE,')
4916              CALL DPWRST('XXX','BUG ')
4917              WRITE(ICOUT,414)
4918  414         FORMAT('     BUT NOT AS A MATRIX.  PLEASE RECHECK THE ',
4919     1               'COMMAND SYNTAX.')
4920              CALL DPWRST('XXX','BUG ')
4921              WRITE(ICOUT,999)
4922              CALL DPWRST('XXX','BUG ')
4923            ENDIF
4924            ILOC=0
4925            IERROR='YES'
4926            GOTO9000
4927          ENDIF
4928C
4929        ELSEIF(IHWUSE.EQ.'F')THEN
4930          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I).AND.
4931     1       IUSE(I).EQ.'F')GOTO800
4932          IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I))THEN
4933            IF(MESSAG.EQ.'YES')THEN
4934              WRITE(ICOUT,111)IHWORD,IHWOR2
4935              CALL DPWRST('XXX','BUG ')
4936              WRITE(ICOUT,513)
4937  513         FORMAT('     AS A STRING.  THE NAME WAS FOUND IN THE ',
4938     1               'INTERNAL TABLE,')
4939              CALL DPWRST('XXX','BUG ')
4940              WRITE(ICOUT,514)
4941  514         FORMAT('     BUT NOT AS A STRING.  PLEASE RECHECK ',
4942     1               'THE COMMAND SYNTAX.')
4943              CALL DPWRST('XXX','BUG ')
4944              WRITE(ICOUT,999)
4945              CALL DPWRST('XXX','BUG ')
4946            ENDIF
4947            ILOC=0
4948            IERROR='YES'
4949            GOTO9000
4950          ENDIF
4951C
4952        ELSEIF(IHWUSE.EQ.'C')THEN
4953C
4954C         CHECK FOR CHARACTER VARIABLE
4955C
4956        ENDIF
4957C
4958  150 CONTINUE
4959      IF(IHWUSE.EQ.'VC')GOTO159
4960      GOTO700
4961  159 CONTINUE
4962C
4963C     FOR 'C' OR 'VC' OPTION CHECK FOR CHARACTER VARIABLE
4964C
4965      REWIND(IOUNI2)
4966      READ(IOUNI2,'(I8)',END=691,ERR=691)NCVAR
4967      DO610KK=1,NCVAR
4968        READ(IOUNI2,'(A8)',END=691,ERR=691)IH
4969        IF(IHWORD.EQ.IH(1:4) .AND. IHWOR2.EQ.IH(5:8))THEN
4970C
4971C         FOR CHARACTER VARIABLE, USE "-" TO INDICATE LOCATION OF
4972C         CHARACTER VARIABLE RATHER THAN NUMERIC VARIABLE.
4973C
4974          ILOC=-KK
4975          IERROR='NO'
4976          GOTO9000
4977        ENDIF
4978  610 CONTINUE
4979  691 CONTINUE
4980C
4981      IF(MESSAG.EQ.'YES')THEN
4982        WRITE(ICOUT,211)IHWORD,IHWOR2
4983        CALL DPWRST('XXX','BUG ')
4984        IF(IHWUSE.EQ.'C')THEN
4985          WRITE(ICOUT,613)
4986  613     FORMAT('     AS A CHARACTER VARIABLE.  THE NAME WAS NOT ',
4987     1           'FOUND IN THE LIST')
4988          CALL DPWRST('XXX','BUG ')
4989          WRITE(ICOUT,614)
4990  614     FORMAT('     OF CHARACTER VARIABLE NAMES.')
4991          CALL DPWRST('XXX','BUG ')
4992          WRITE(ICOUT,999)
4993          CALL DPWRST('XXX','BUG ')
4994        ELSE
4995          WRITE(ICOUT,623)
4996  623     FORMAT('     AS A NUMERIC OR CHARACTER VARIABLE.  THE NAME ',
4997     1           'WAS NOT FOUND IN THE LIST')
4998          CALL DPWRST('XXX','BUG ')
4999          WRITE(ICOUT,624)
5000  624     FORMAT('     OF NUMERIC AND CHARACTER VARIABLE NAMES.')
5001          CALL DPWRST('XXX','BUG ')
5002          WRITE(ICOUT,999)
5003          CALL DPWRST('XXX','BUG ')
5004        ENDIF
5005      ENDIF
5006      ILOC=0
5007      IERROR='YES'
5008      GOTO9000
5009C
5010  700 CONTINUE
5011      IF(MESSAG.EQ.'YES')THEN
5012        WRITE(ICOUT,702)ISUBN1,ISUBN2
5013  702   FORMAT('***** ERROR IN CHECKN AS CALLED FROM ',2A4,'--')
5014        CALL DPWRST('XXX','BUG ')
5015        WRITE(ICOUT,703)
5016  703   FORMAT('      A VARIABLE, PARAMETER, OR MATRIX NAME USED ',
5017     1         '(OR NEEDED)')
5018        CALL DPWRST('XXX','BUG ')
5019        WRITE(ICOUT,704)
5020  704   FORMAT('      IN A COMMAND OR AN EXPRESSION WAS NOT FOUND ',
5021     1         'IN THE CURRENT')
5022        CALL DPWRST('XXX','BUG ')
5023        WRITE(ICOUT,706)
5024  706   FORMAT('      LIST OF AVAILABLE PARAMETER AND VARIABLE NAMES.')
5025        CALL DPWRST('XXX','BUG ')
5026        WRITE(ICOUT,999)
5027        CALL DPWRST('XXX','BUG ')
5028        WRITE(ICOUT,707)IHWORD,IHWOR2
5029  707   FORMAT('      THE VARIABLE OR PARAMETER IN QUESTION WAS ',2A4)
5030        CALL DPWRST('XXX','BUG ')
5031        WRITE(ICOUT,999)
5032        CALL DPWRST('XXX','BUG ')
5033      ENDIF
5034      ILOC=0
5035      IERROR='YES'
5036      GOTO9000
5037C
5038  800 CONTINUE
5039      ILOC=I2
5040      IERROR='NO'
5041C
5042 9000 CONTINUE
5043      RETURN
5044      END
5045      SUBROUTINE CHECN2(IHTEST,IHTES2,ITTEST,
5046     1                  IHNAME,IHNAM2,IUSE,IVALUE,VALUE,IN,NUMNAM,
5047     1                  ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOC,
5048     1                  JVALUE,AVALUE,JUSE,JN,
5049     1                  IOLDNA,IOLDN2,IOLDNI,
5050     1                  IFOUND,IBUGA3,ISUBRO,IERROR)
5051C
5052C     PURPOSE--SEARCH THE INTERNAL LIST IHNAME(.)
5053C              FOR THE NAME GIVEN BY IHTEST.
5054C              CHECK FOR PRESENCE IN LIST.
5055C              CHECK FOR VARIABLES HAVING SAME LENGTH.
5056C              CHECK FOR VARIABLES HAVING POSITIVE LENGTH.
5057C
5058C---------------------------------------------------------------------
5059C
5060      CHARACTER*4 IHTEST
5061      CHARACTER*4 IHTES2
5062      CHARACTER*4 ITTEST
5063      CHARACTER*4 IHNAME
5064      CHARACTER*4 IHNAM2
5065      CHARACTER*4 IUSE
5066      CHARACTER*4 ISUBN1
5067      CHARACTER*4 ISUBN2
5068      CHARACTER*4 MESSAG
5069      CHARACTER*4 IANS
5070      CHARACTER*4 JUSE
5071      CHARACTER*4 IOLDNA
5072      CHARACTER*4 IOLDN2
5073      CHARACTER*4 IFOUND
5074      CHARACTER*4 IBUGA3
5075      CHARACTER*4 ISUBRO
5076      CHARACTER*4 IERROR
5077C
5078      DIMENSION IHNAME(*)
5079      DIMENSION IHNAM2(*)
5080      DIMENSION IVALUE(*)
5081      DIMENSION VALUE(*)
5082      DIMENSION IUSE(*)
5083      DIMENSION IN(*)
5084      DIMENSION IANS(*)
5085C
5086C-----COMMON VARIABLES (GENERAL)-----------------------------------------------
5087C
5088      INCLUDE 'DPCOP2.INC'
5089C
5090C-----START POINT-----------------------------------------------------
5091C
5092      IFOUND='NO'
5093      IERROR='NO'
5094      I=(-999)
5095C
5096      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'ECN2')THEN
5097        WRITE(ICOUT,999)
5098  999   FORMAT(1X)
5099        CALL DPWRST('XXX','BUG ')
5100        WRITE(ICOUT,51)
5101   51   FORMAT('***** AT THE BEGINNING OF CHECN2--')
5102        CALL DPWRST('XXX','BUG ')
5103        WRITE(ICOUT,52)IBUGA3,ISUBRO,NUMNAM,IWIDTH
5104   52   FORMAT('IBUGA3,ISUBRO,NUMNAM,IWIDTH = ',2(A4,2X),2I8)
5105        CALL DPWRST('XXX','BUG ')
5106        WRITE(ICOUT,53)IHTEST,IHTES2,ITTEST
5107   53   FORMAT('IHTEST,IHTES2,ITTEST = ',2(A4,2X),A4)
5108        CALL DPWRST('XXX','BUG ')
5109        WRITE(ICOUT,62)(IANS(I),I=1,MIN(100,IWIDTH))
5110   62   FORMAT('IANS(.) = ',100A1)
5111        CALL DPWRST('XXX','BUG ')
5112        DO67I=1,NUMNAM
5113          WRITE(ICOUT,68)I,IHNAME(I),IHNAM2(I),IUSE(I),IN(I),IVALUE(I),
5114     1                   VALUE(I)
5115   68     FORMAT('I,IHNAME(I),IHNAM2(I),IUSE(I),IN(I),IVALUE(I)',
5116     1           'VALUE(I) = ',I8,2X,A4,A4,2X,A4,2I8,G15.7)
5117          CALL DPWRST('XXX','BUG ')
5118   67   CONTINUE
5119      ENDIF
5120C
5121      IF(NUMNAM.LE.0)GOTO1010
5122      DO1000I=1,NUMNAM
5123      I2=I
5124      IF(IHTEST.EQ.IHNAME(I).AND.IHTES2.EQ.IHNAM2(I))GOTO1100
5125      GOTO1000
5126C
5127 1100 CONTINUE
5128      IFOUND='YES'
5129      ILOC=I2
5130      IF(ITTEST.EQ.'P')GOTO1200
5131      IF(ITTEST.EQ.'V')GOTO1300
5132      IF(ITTEST.EQ.'PV')GOTO1400
5133      IF(ITTEST.EQ.'VP')GOTO1400
5134      IF(ITTEST.EQ.'EITH')GOTO1400
5135      IF(ITTEST.EQ.'BOTH')GOTO1400
5136C
5137 1200 CONTINUE
5138      IF(IUSE(ILOC).EQ.'P')GOTO1210
5139      GOTO1220
5140C
5141 1210 CONTINUE
5142      JVALUE=IVALUE(ILOC)
5143      AVALUE=VALUE(ILOC)
5144      JUSE=IUSE(ILOC)
5145      JN=IN(ILOC)
5146      GOTO9000
5147C
5148 1220 CONTINUE
5149      IF(IFEEDB.EQ.'OFF')GOTO1231
5150      IF(IPRINT.EQ.'OFF')GOTO1231
5151      IF(MESSAG.EQ.'NO')GOTO1231
5152      WRITE(ICOUT,1221)ISUBN1,ISUBN2
5153 1221 FORMAT('***** ERROR IN ',A4,A4,'--')
5154      CALL DPWRST('XXX','BUG ')
5155      WRITE(ICOUT,1222)
5156 1222 FORMAT('      A NAME WHICH SHOULD BE A PARAMETER')
5157      CALL DPWRST('XXX','BUG ')
5158      WRITE(ICOUT,1223)
5159 1223 FORMAT('      HAS BEEN FOUND IN THE NAME LIST,')
5160      CALL DPWRST('XXX','BUG ')
5161      WRITE(ICOUT,1224)
5162 1224 FORMAT('      BUT AS A DIFFERENT TYPE THAN A PARAMETER.')
5163      CALL DPWRST('XXX','BUG ')
5164      WRITE(ICOUT,1225)IHTEST,IHTES2
5165 1225 FORMAT('NAME = ',A4,A4)
5166      CALL DPWRST('XXX','BUG ')
5167      IF(IUSE(ILOC).EQ.'V')WRITE(ICOUT,1226)
5168 1226 FORMAT('TYPE = VARIABLE')
5169      IF(IUSE(ILOC).EQ.'V')CALL DPWRST('XXX','BUG ')
5170      IF(IUSE(ILOC).EQ.'F')WRITE(ICOUT,1227)
5171 1227 FORMAT('TYPE = FUNCTION')
5172      IF(IUSE(ILOC).EQ.'F')CALL DPWRST('XXX','BUG ')
5173      IF(IUSE(ILOC).NE.'V'.AND.IUSE(ILOC).NE.'F')WRITE(ICOUT,1228)
5174     1IUSE(ILOC)
5175 1228 FORMAT('TYPE = ',A4)
5176      IF(IUSE(ILOC).NE.'V'.AND.IUSE(ILOC).NE.'F')
5177     1CALL DPWRST('XXX','BUG ')
5178      WRITE(ICOUT,1229)
5179 1229 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
5180      CALL DPWRST('XXX','BUG ')
5181      IF(IWIDTH.GE.1)WRITE(ICOUT,1230)(IANS(J),J=1,IWIDTH)
5182 1230 FORMAT('      ',80A1)
5183      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
5184 1231 CONTINUE
5185      IERROR='YES'
5186      GOTO9000
5187C
5188 1300 CONTINUE
5189      IF(IUSE(ILOC).EQ.'V')GOTO1310
5190      GOTO1320
5191C
5192 1310 CONTINUE
5193      JVALUE=IVALUE(ILOC)
5194      AVALUE=VALUE(ILOC)
5195      JUSE=IUSE(ILOC)
5196      JN=IN(ILOC)
5197C
5198      IF(IOLDNI.NE.-999.AND.JN.NE.IOLDNI)GOTO1340
5199      IF(JN.LE.0)GOTO1360
5200      IOLDNA=IHTEST
5201      IOLDN2=IHTES2
5202      IOLDNI=JN
5203      GOTO9000
5204C
5205 1320 CONTINUE
5206      IF(IFEEDB.EQ.'OFF')GOTO1331
5207      IF(IPRINT.EQ.'OFF')GOTO1331
5208      IF(MESSAG.EQ.'NO')GOTO1331
5209      WRITE(ICOUT,1321)ISUBN1,ISUBN2
5210 1321 FORMAT('***** ERROR IN ',A4,A4,'--')
5211      CALL DPWRST('XXX','BUG ')
5212      WRITE(ICOUT,1322)
5213 1322 FORMAT('      A NAME WHICH SHOULD BE A VARIABLE')
5214      CALL DPWRST('XXX','BUG ')
5215      WRITE(ICOUT,1323)
5216 1323 FORMAT('      HAS BEEN FOUND IN THE NAME LIST,')
5217      CALL DPWRST('XXX','BUG ')
5218      WRITE(ICOUT,1324)
5219 1324 FORMAT('      BUT AS A TYPE OTHER THAN A VARIABLE.')
5220      CALL DPWRST('XXX','BUG ')
5221      WRITE(ICOUT,1325)IHTEST,IHTES2
5222 1325 FORMAT('NAME = ',A4,A4)
5223      CALL DPWRST('XXX','BUG ')
5224      IF(IUSE(ILOC).EQ.'P')WRITE(ICOUT,1326)
5225 1326 FORMAT('TYPE = PARAMETER')
5226      IF(IUSE(ILOC).EQ.'P')CALL DPWRST('XXX','BUG ')
5227      IF(IUSE(ILOC).EQ.'F')WRITE(ICOUT,1327)
5228 1327 FORMAT('TYPE = FUNCTION')
5229      IF(IUSE(ILOC).EQ.'F')CALL DPWRST('XXX','BUG ')
5230      IF(IUSE(ILOC).NE.'P'.AND.IUSE(ILOC).NE.'F')WRITE(ICOUT,1328)
5231     1IUSE(ILOC)
5232 1328 FORMAT('TYPE = ',A4)
5233      IF(IUSE(ILOC).NE.'P'.AND.IUSE(ILOC).NE.'F')
5234     1CALL DPWRST('XXX','BUG ')
5235      WRITE(ICOUT,1329)
5236 1329 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
5237      CALL DPWRST('XXX','BUG ')
5238      IF(IWIDTH.GE.1)WRITE(ICOUT,1330)(IANS(J),J=1,IWIDTH)
5239 1330 FORMAT('      ',80A1)
5240      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
5241 1331 CONTINUE
5242      IERROR='YES'
5243      GOTO9000
5244C
5245 1340 CONTINUE
5246      IF(IFEEDB.EQ.'OFF')GOTO1351
5247      IF(IPRINT.EQ.'OFF')GOTO1351
5248      IF(MESSAG.EQ.'NO')GOTO1351
5249      WRITE(ICOUT,1341)ISUBN1,ISUBN2
5250 1341 FORMAT('***** ERROR IN ',A4,A4,'--')
5251      CALL DPWRST('XXX','BUG ')
5252      WRITE(ICOUT,1342)
5253 1342 FORMAT('      ALL VARIABLES USED')
5254      CALL DPWRST('XXX','BUG ')
5255      WRITE(ICOUT,1343)
5256 1343 FORMAT('      ON THE RIGHT-HAND SIDE')
5257      CALL DPWRST('XXX','BUG ')
5258      WRITE(ICOUT,1344)
5259 1344 FORMAT('      MUST HAVE LENGTH GREATER THAN (OR EQUAL TO) 1')
5260      CALL DPWRST('XXX','BUG ')
5261      WRITE(ICOUT,1345)
5262 1345 FORMAT('      (NUMBER OF ELEMNTS IS AT LEAST 1);')
5263      CALL DPWRST('XXX','BUG ')
5264      WRITE(ICOUT,1346)
5265 1346 FORMAT('      SUCH WAS NOT THE CASE HERE FOR--')
5266      CALL DPWRST('XXX','BUG ')
5267      WRITE(ICOUT,1347)IHTEST,IHTES2,IN(ILOC)
5268 1347 FORMAT('      VARIABLE ',A4,A4,' WITH ',I8,' ELEMENTS')
5269      CALL DPWRST('XXX','BUG ')
5270      WRITE(ICOUT,1349)
5271 1349 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
5272      CALL DPWRST('XXX','BUG ')
5273      IF(IWIDTH.GE.1)WRITE(ICOUT,1350)(IANS(J),J=1,IWIDTH)
5274 1350 FORMAT('      ',80A1)
5275      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
5276 1351 CONTINUE
5277      IERROR='YES'
5278      GOTO9000
5279C
5280 1360 CONTINUE
5281      IF(IFEEDB.EQ.'OFF')GOTO1371
5282      IF(IPRINT.EQ.'OFF')GOTO1371
5283      IF(MESSAG.EQ.'NO')GOTO1371
5284      WRITE(ICOUT,1361)ISUBN1,ISUBN2
5285 1361 FORMAT('***** ERROR IN ',A4,A4,'--')
5286      CALL DPWRST('XXX','BUG ')
5287      WRITE(ICOUT,1362)
5288 1362 FORMAT('      ALL VARIABLES USED')
5289      CALL DPWRST('XXX','BUG ')
5290      WRITE(ICOUT,1363)
5291 1363 FORMAT('      ON THE RIGHT-HAND SIDE')
5292      CALL DPWRST('XXX','BUG ')
5293      WRITE(ICOUT,1364)
5294 1364 FORMAT('      MUST HAVE THE SAME LENGTH')
5295      CALL DPWRST('XXX','BUG ')
5296      WRITE(ICOUT,1365)
5297 1365 FORMAT('      (NUMBER OF ELEMENTS);')
5298      CALL DPWRST('XXX','BUG ')
5299      WRITE(ICOUT,1366)
5300 1366 FORMAT('      SUCH WAS NOT THE CASE HERE FOR--')
5301      CALL DPWRST('XXX','BUG ')
5302      WRITE(ICOUT,1367)IHTEST,IHTES2,JN
5303 1367 FORMAT('      VARIABLE ',A4,A4,' WITH ',I8,' ELEMENTS')
5304      CALL DPWRST('XXX','BUG ')
5305      WRITE(ICOUT,1368)IOLDNA,IOLDN2,IOLDNI
5306 1368 FORMAT('      VARIABLE ',A4,A4,' WITH ',I8,' ELEMENTS')
5307      CALL DPWRST('XXX','BUG ')
5308      WRITE(ICOUT,1369)
5309 1369 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
5310      CALL DPWRST('XXX','BUG ')
5311      IF(IWIDTH.GE.1)WRITE(ICOUT,1370)(IANS(J),J=1,IWIDTH)
5312 1370 FORMAT('      ',80A1)
5313      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
5314 1371 CONTINUE
5315      IERROR='YES'
5316      GOTO9000
5317C
5318 1400 CONTINUE
5319      IF(ITTEST.EQ.'P'.AND.IUSE(ILOC).NE.'P')GOTO1420
5320      IF(ITTEST.EQ.'V'.AND.IUSE(ILOC).NE.'V')GOTO1420
5321      IF(IUSE(ILOC).EQ.'P')GOTO1405
5322      IF(IUSE(ILOC).EQ.'V')GOTO1410
5323      GOTO1420
5324C
5325 1405 CONTINUE
5326      JVALUE=IVALUE(ILOC)
5327      AVALUE=VALUE(ILOC)
5328      JUSE=IUSE(ILOC)
5329      JN=IN(ILOC)
5330      GOTO9000
5331C
5332 1410 CONTINUE
5333      JVALUE=IVALUE(ILOC)
5334      AVALUE=VALUE(ILOC)
5335      JUSE=IUSE(ILOC)
5336      JN=IN(ILOC)
5337C
5338      IF(IOLDNI.NE.-999.AND.JN.NE.IOLDNI)GOTO1440
5339      IF(JN.LE.0)GOTO1460
5340      IOLDNA=IHTEST
5341      IOLDN2=IHTES2
5342      IOLDNI=JN
5343      GOTO9000
5344C
5345 1420 CONTINUE
5346      IF(IFEEDB.EQ.'OFF')GOTO1432
5347      IF(IPRINT.EQ.'OFF')GOTO1432
5348      IF(MESSAG.EQ.'NO')GOTO1432
5349      WRITE(ICOUT,1421)ISUBN1,ISUBN2
5350 1421 FORMAT('***** ERROR IN ',A4,A4,'--')
5351      CALL DPWRST('XXX','BUG ')
5352      WRITE(ICOUT,1422)
5353 1422 FORMAT('      A NAME WHICH SHOULD BE A VARIABLE ',
5354     1'OR PARAMETER')
5355      CALL DPWRST('XXX','BUG ')
5356      WRITE(ICOUT,1423)
5357 1423 FORMAT('      HAS BEEN FOUND IN THE NAME LIST,')
5358      CALL DPWRST('XXX','BUG ')
5359      WRITE(ICOUT,1424)
5360 1424 FORMAT('      BUT AS A TYPE OTHER THAN A VARIABLE ',
5361     1'OR PARAMETER.')
5362      CALL DPWRST('XXX','BUG ')
5363      WRITE(ICOUT,1425)IHTEST,IHTES2
5364 1425 FORMAT('NAME = ',A4,A4)
5365      CALL DPWRST('XXX','BUG ')
5366      IF(IUSE(ILOC).EQ.'P')WRITE(ICOUT,1426)
5367 1426 FORMAT('TYPE = PARAMETER')
5368      IF(IUSE(ILOC).EQ.'P')CALL DPWRST('XXX','BUG ')
5369      IF(IUSE(ILOC).EQ.'V')WRITE(ICOUT,1427)
5370 1427 FORMAT('TYPE = VARIABLE')
5371      IF(IUSE(ILOC).EQ.'V')CALL DPWRST('XXX','BUG ')
5372      IF(IUSE(ILOC).EQ.'F')WRITE(ICOUT,1428)
5373 1428 FORMAT('TYPE = FUNCTION')
5374      IF(IUSE(ILOC).EQ.'F')CALL DPWRST('XXX','BUG ')
5375      IF(IUSE(ILOC).NE.'P'.AND.IUSE(ILOC).NE.'V'.
5376     1AND.IUSE(ILOC).NE.'F')WRITE(ICOUT,1429)IUSE(ILOC)
5377 1429 FORMAT('TYPE = ',A4)
5378      IF(IUSE(ILOC).NE.'P'.AND.IUSE(ILOC).NE.'V'.
5379     1AND.IUSE(ILOC).NE.'F')CALL DPWRST('XXX','BUG ')
5380      WRITE(ICOUT,1430)
5381 1430 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
5382      CALL DPWRST('XXX','BUG ')
5383      IF(IWIDTH.GE.1)WRITE(ICOUT,1431)(IANS(J),J=1,IWIDTH)
5384 1431 FORMAT('      ',80A1)
5385      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
5386 1432 CONTINUE
5387      IERROR='YES'
5388      GOTO9000
5389C
5390 1440 CONTINUE
5391      IF(IFEEDB.EQ.'OFF')GOTO1451
5392      IF(IPRINT.EQ.'OFF')GOTO1451
5393      IF(MESSAG.EQ.'NO')GOTO1451
5394      WRITE(ICOUT,1441)ISUBN1,ISUBN2
5395 1441 FORMAT('***** ERROR IN ',A4,A4,'--')
5396      CALL DPWRST('XXX','BUG ')
5397      WRITE(ICOUT,1442)
5398 1442 FORMAT('      ALL VARIABLES USED')
5399      CALL DPWRST('XXX','BUG ')
5400      WRITE(ICOUT,1443)
5401 1443 FORMAT('      ON THE RIGHT-HAND SIDE')
5402      CALL DPWRST('XXX','BUG ')
5403      WRITE(ICOUT,1444)
5404 1444 FORMAT('      MUST HAVE LENGTH GREATER THAN (OR EQUAL TO) 1')
5405      CALL DPWRST('XXX','BUG ')
5406      WRITE(ICOUT,1445)
5407 1445 FORMAT('      (NUMBER OF ELEMENTS IS AT LEAST 1);')
5408      CALL DPWRST('XXX','BUG ')
5409      WRITE(ICOUT,1446)
5410 1446 FORMAT('      SUCH WAS NOT THE CASE HERE FOR--')
5411      CALL DPWRST('XXX','BUG ')
5412      WRITE(ICOUT,1447)IHTEST,IHTES2,IN(ILOC)
5413 1447 FORMAT('      VARIABLE ',A4,A4,' WITH ',I8,' ELEMENTS')
5414      CALL DPWRST('XXX','BUG ')
5415      WRITE(ICOUT,1449)
5416 1449 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
5417      CALL DPWRST('XXX','BUG ')
5418      IF(IWIDTH.GE.1)WRITE(ICOUT,1450)(IANS(J),J=1,IWIDTH)
5419 1450 FORMAT('      ',80A1)
5420      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
5421 1451 CONTINUE
5422      IERROR='YES'
5423      GOTO9000
5424C
5425 1460 CONTINUE
5426      IF(IFEEDB.EQ.'OFF')GOTO1471
5427      IF(IPRINT.EQ.'OFF')GOTO1471
5428      IF(MESSAG.EQ.'NO')GOTO1471
5429      WRITE(ICOUT,1461)ISUBN1,ISUBN2
5430 1461 FORMAT('***** ERROR IN ',A4,A4,'--')
5431      CALL DPWRST('XXX','BUG ')
5432      WRITE(ICOUT,1462)
5433 1462 FORMAT('      ALL VARIABLES USED')
5434      CALL DPWRST('XXX','BUG ')
5435      WRITE(ICOUT,1463)
5436 1463 FORMAT('      ON THE RIGHT-HAND SIDE')
5437      CALL DPWRST('XXX','BUG ')
5438      WRITE(ICOUT,1464)
5439 1464 FORMAT('      MUST HAVE THE SAME LENGTH')
5440      CALL DPWRST('XXX','BUG ')
5441      WRITE(ICOUT,1465)
5442 1465 FORMAT('      (NUMBER OF ELEMENTS);')
5443      CALL DPWRST('XXX','BUG ')
5444      WRITE(ICOUT,1466)
5445 1466 FORMAT('      SUCH WAS NOT THE CASE HERE FOR--')
5446      CALL DPWRST('XXX','BUG ')
5447      WRITE(ICOUT,1467)IHTEST,IHTES2,JN
5448 1467 FORMAT('      VARIABLE ',A4,A4,' WITH ',I8,' ELEMENTS')
5449      CALL DPWRST('XXX','BUG ')
5450      WRITE(ICOUT,1468)IOLDNA,IOLDN2,IOLDNI
5451 1468 FORMAT('      VARIABLE ',A4,A4,' WITH ',I8,' ELEMENTS')
5452      CALL DPWRST('XXX','BUG ')
5453      WRITE(ICOUT,1469)
5454 1469 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
5455      CALL DPWRST('XXX','BUG ')
5456      IF(IWIDTH.GE.1)WRITE(ICOUT,1470)(IANS(J),J=1,IWIDTH)
5457 1470 FORMAT('      ',80A1)
5458      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
5459 1471 CONTINUE
5460      IERROR='YES'
5461      GOTO9000
5462C
5463 1000 CONTINUE
5464C
5465 1010 CONTINUE
5466      IF(IFEEDB.EQ.'OFF')GOTO1021
5467      IF(IPRINT.EQ.'OFF')GOTO1021
5468      IF(MESSAG.EQ.'NO')GOTO1021
5469      WRITE(ICOUT,1011)ISUBN1,ISUBN2
5470 1011 FORMAT('***** ERROR IN ',A4,A4,'--')
5471      CALL DPWRST('XXX','BUG ')
5472      WRITE(ICOUT,1012)
5473 1012 FORMAT('      A VARIABLE OR PARAMETER NAME USED')
5474      CALL DPWRST('XXX','BUG ')
5475      WRITE(ICOUT,1013)
5476 1013 FORMAT('      ON THE RIGHT-HAND SIDE IS NOT YET DEFINED.')
5477      CALL DPWRST('XXX','BUG ')
5478      WRITE(ICOUT,999)
5479      CALL DPWRST('XXX','BUG ')
5480      WRITE(ICOUT,1014)IHTEST,IHTES2
5481 1014 FORMAT('      VARIABLE OR PARAMETER NAME = ',A4,A4)
5482      CALL DPWRST('XXX','BUG ')
5483      WRITE(ICOUT,999)
5484      CALL DPWRST('XXX','BUG ')
5485      WRITE(ICOUT,1015)
5486 1015 FORMAT('      CURRENT LIST OF DEFINED VARIABLES AND ',
5487     1'PARAMETERS--')
5488      CALL DPWRST('XXX','BUG ')
5489      WRITE(ICOUT,999)
5490      CALL DPWRST('XXX','BUG ')
5491      DO1016I2=1,NUMNAM
5492      IF(IUSE(I).EQ.'P'.OR.IUSE(I).EQ.'V')
5493     1WRITE(ICOUT,1017)IHNAME(I2),IHNAM2(I2),IUSE(I2),IVALUE(I2),
5494     1VALUE(I2),IN(ILOC)
5495 1017 FORMAT(A4,2X,A4,2X,A4,2X,I8,2X,E15.6,I8)
5496      IF(IUSE(I).EQ.'P'.OR.IUSE(I).EQ.'V')
5497     1CALL DPWRST('XXX','BUG ')
5498 1016 CONTINUE
5499      WRITE(ICOUT,1019)
5500 1019 FORMAT('      THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
5501      CALL DPWRST('XXX','BUG ')
5502      IF(IWIDTH.GE.1)WRITE(ICOUT,1020)(IANS(J),J=1,IWIDTH)
5503 1020 FORMAT('      ',80A1)
5504      IF(IWIDTH.GE.1)CALL DPWRST('XXX','BUG ')
5505 1021 CONTINUE
5506      IERROR='YES'
5507      GOTO9000
5508C
5509 9000 CONTINUE
5510C
5511      IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'ECN2')GOTO9090
5512      WRITE(ICOUT,9011)
5513 9011 FORMAT('***** AT THE END       OF CHECN2--')
5514      CALL DPWRST('XXX','BUG ')
5515      WRITE(ICOUT,9012)ILOC
5516 9012 FORMAT('ILOC = ',I8)
5517      CALL DPWRST('XXX','BUG ')
5518      WRITE(ICOUT,9013)JVALUE,AVALUE,JUSE,JN
5519 9013 FORMAT('JVALUE,AVALUE,JUSE,JN = ',I8,F15.7,3X,A4,I8)
5520      CALL DPWRST('XXX','BUG ')
5521      WRITE(ICOUT,9014)IOLDNA,IOLDN2,IOLDNI,IFOUND,IBUGA3,IERROR
5522 9014 FORMAT('IOLDNA,IOLDN2,IOLDNI,IFOUND,IBUGA3,IERROR = ',
5523     1A4,2X,A4,2X,I8,2X,A4,I8,2X,A4)
5524      CALL DPWRST('XXX','BUG ')
5525 9090 CONTINUE
5526C
5527      RETURN
5528      END
5529      SUBROUTINE CHECN3(IHWORD,IHWOR2,IHWUSE,
5530     1                  IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,
5531     1                  NUMNAM,MAXNAM,
5532     1                  ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOC,IERROR)
5533C
5534C     PURPOSE--CHECK TO SEE IF THE HOLLERITH NAME IN (IHWORD,IHWOR2)
5535C              EXISTS IN THE CURRENT TABLE OF AVAILABLE PARAMETER AND
5536C              VARIABLE NAMES AS GIVEN IN IHNAME(.) AND IHNAM2(I).
5537C     NOTE--THIS IS A SLIGHT VARIANT OF CHECKN.  IT DISTINGUISHES
5538C           BETWEEN THE CASE WHERE THE NAME IS NOT FOUND (ILOC=0)
5539C           AND WHERE THE NAME IS FOUND BUT IS OF THE WRONG TYPE
5540C           (ILOC=-1).
5541C     OUTPUT--THE LOCATION (THAT IS, THE LINE OR ROW) IN THE TABLE
5542C             WHERE THE NAME WAS FOUND (IF FOUND).
5543C             THIS LOCATION IS STORED IN THE VARIABLE ILOC.
5544C             ALSO, A VALUE OF 'YES' OR 'NO' IS STORED
5545C             IN THE HOLLERITH VARIABLE IERROR
5546C             DEPENDING ON WHETHER THE NAME WAS NOT FOUND
5547C             OR WAS FOUND, RESPECTIVELY.
5548C     WRITTEN BY--JAMES J. FILLIBEN
5549C                 STATISTICAL ENGINEERING DIVISION
5550C                 INFORMATION TECHNOLOGY LABORATORY
5551C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
5552C                 GAITHERSBURG, MD 20899-8980
5553C                 PHONE--301-975-2855
5554C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
5555C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
5556C     LANGUAGE--ANSI FORTRAN (1977)
5557C     VERSION NUMBER--2007/5
5558C     ORIGINAL VERSION--MAY 2007.
5559C
5560C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
5561C
5562      CHARACTER*4 IHWORD
5563      CHARACTER*4 IHWOR2
5564      CHARACTER*4 IHWUSE
5565      CHARACTER*4 IHNAME
5566      CHARACTER*4 IHNAM2
5567      CHARACTER*4 IUSE
5568      CHARACTER*4 ISUBN1
5569      CHARACTER*4 ISUBN2
5570      CHARACTER*4 MESSAG
5571      CHARACTER*4 IANS
5572      CHARACTER*4 IERROR
5573C
5574C---------------------------------------------------------------------
5575C
5576      DIMENSION IHNAME(*)
5577      DIMENSION IHNAM2(*)
5578      DIMENSION IUSE(*)
5579      DIMENSION IN(*)
5580      DIMENSION IVALUE(*)
5581      DIMENSION VALUE(*)
5582C
5583      DIMENSION IANS(*)
5584C
5585      INCLUDE 'DPCOBE.INC'
5586C
5587C---------------------------------------------------------------------
5588C
5589      INCLUDE 'DPCOP2.INC'
5590C
5591C-----START POINT-----------------------------------------------------
5592C
5593      IF(ISUBG4.EQ.'ECN3')THEN
5594        WRITE(ICOUT,61)MAXNAM,IWIDTH
5595   61   FORMAT('MAXNAM,IWIDTH = ',2I8)
5596        CALL DPWRST('XXX','BUG ')
5597        WRITE(ICOUT,63)(IANS(I),I=1,MIN(100,IWIDTH))
5598   63   FORMAT('IANS(.) = ',100A1)
5599        CALL DPWRST('XXX','BUG ')
5600        DO67I=1,NUMNAM
5601          WRITE(ICOUT,68)I,IHNAME(I),IHNAM2(I),IUSE(I),IN(I),IVALUE(I),
5602     1                   VALUE(I)
5603   68     FORMAT('I,IHNAME(I),IHNAM2(I),IUSE(I),IN(I),IVALUE(I)',
5604     1           'VALUE(I) = ',I8,2X,A4,A4,2X,A4,2I8,G15.7)
5605          CALL DPWRST('XXX','BUG ')
5606   67   CONTINUE
5607      ENDIF
5608C
5609      IF(IHWUSE.EQ.'P')GOTO100
5610      IF(IHWUSE.EQ.'V')GOTO200
5611      IF(IHWUSE.EQ.'EITH')GOTO300
5612      IF(IHWUSE.EQ.'PORV')GOTO300
5613      IF(IHWUSE.EQ.'VORP')GOTO300
5614C
5615  100 CONTINUE
5616      DO150I=1,NUMNAM
5617      I2=I
5618      IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I).AND.
5619     1IUSE(I).EQ.'P')GOTO800
5620      IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I))GOTO110
5621  150 CONTINUE
5622      GOTO700
5623C
5624  110 CONTINUE
5625      IF(MESSAG.EQ.'NO')GOTO119
5626      WRITE(ICOUT,111)IHWORD,IHWOR2
5627  111 FORMAT('     A COMMAND OR EXPRESSION EXPECTED THE NAME ',2A4)
5628      CALL DPWRST('XXX','BUG ')
5629      WRITE(ICOUT,112)
5630  112 FORMAT('     TO BE USED AS A PARAMETER.')
5631      CALL DPWRST('XXX','BUG ')
5632      WRITE(ICOUT,113)
5633  113 FORMAT('     THE NAME WAS FOUND IN THE INTERNAL TABLE,')
5634      CALL DPWRST('XXX','BUG ')
5635      WRITE(ICOUT,114)
5636  114 FORMAT('     BUT NOT AS A PARAMETER.')
5637      CALL DPWRST('XXX','BUG ')
5638      WRITE(ICOUT,115)
5639  115 FORMAT('     PLEASE RECHECK THE COMMAND SYNTAX.')
5640      CALL DPWRST('XXX','BUG ')
5641      WRITE(ICOUT,999)
5642  999 FORMAT(1X)
5643      CALL DPWRST('XXX','BUG ')
5644  119 CONTINUE
5645      GOTO750
5646C
5647  200 CONTINUE
5648      DO250I=1,NUMNAM
5649      I2=I
5650      IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I).AND.
5651     1IUSE(I).EQ.'V')GOTO800
5652      IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I))GOTO210
5653  250 CONTINUE
5654      GOTO700
5655C
5656  210 CONTINUE
5657      IF(MESSAG.EQ.'NO')GOTO219
5658      WRITE(ICOUT,211)IHWORD,IHWOR2
5659  211 FORMAT('     A COMMAND OR EXPRESSION EXPECTED THE NAME ',2A4)
5660      CALL DPWRST('XXX','BUG ')
5661      WRITE(ICOUT,212)
5662  212 FORMAT('     TO BE USED AS A VARIABLE.')
5663      CALL DPWRST('XXX','BUG ')
5664      WRITE(ICOUT,213)
5665  213 FORMAT('     THE NAME WAS FOUND IN THE INTERNAL TABLE,')
5666      CALL DPWRST('XXX','BUG ')
5667      WRITE(ICOUT,214)
5668  214 FORMAT('     BUT NOT AS A VARIABLE.')
5669      CALL DPWRST('XXX','BUG ')
5670      WRITE(ICOUT,215)
5671  215 FORMAT('     PLEASE RECHECK THE COMMAND SYNTAX.')
5672      CALL DPWRST('XXX','BUG ')
5673      WRITE(ICOUT,999)
5674      CALL DPWRST('XXX','BUG ')
5675  219 CONTINUE
5676      GOTO750
5677C
5678  300 CONTINUE
5679      DO350I=1,NUMNAM
5680      I2=I
5681      IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I).AND.
5682     1IUSE(I).EQ.'P')GOTO800
5683      IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I).AND.
5684     1IUSE(I).EQ.'V')GOTO800
5685      IF(IHWORD.EQ.IHNAME(I).AND.IHWOR2.EQ.IHNAM2(I))GOTO310
5686  350 CONTINUE
5687      GOTO700
5688C
5689  310 CONTINUE
5690      IF(MESSAG.EQ.'NO')GOTO319
5691      WRITE(ICOUT,311)IHWORD,IHWOR2
5692  311 FORMAT('     A COMMAND OR EXPRESSION EXPECTED THE NAME ',2A4)
5693      CALL DPWRST('XXX','BUG ')
5694      WRITE(ICOUT,312)
5695  312 FORMAT('     TO BE USED AS A PARAMETER OR VARIABLE.')
5696      CALL DPWRST('XXX','BUG ')
5697      WRITE(ICOUT,313)
5698  313 FORMAT('     THE NAME WAS FOUND IN THE INTERNAL TABLE,')
5699      CALL DPWRST('XXX','BUG ')
5700      WRITE(ICOUT,314)
5701  314 FORMAT('     BUT NEITHER AS A PARAMETER NOR A VARIABLE.')
5702      CALL DPWRST('XXX','BUG ')
5703      WRITE(ICOUT,315)
5704  315 FORMAT('     PLEASE RECHECK THE COMMAND SYNTAX.')
5705      CALL DPWRST('XXX','BUG ')
5706      WRITE(ICOUT,999)
5707      CALL DPWRST('XXX','BUG ')
5708  319 CONTINUE
5709      GOTO750
5710C
5711  700 CONTINUE
5712      IF(MESSAG.EQ.'NO')GOTO709
5713      WRITE(ICOUT,702)ISUBN1,ISUBN2
5714  702 FORMAT('***** ERROR IN CHECN3 AS CALLED FROM ',2A4,'--')
5715      CALL DPWRST('XXX','BUG ')
5716      WRITE(ICOUT,703)
5717  703 FORMAT('      A VARIABLE OR PARAMETER NAME USED (OR NEEDED)')
5718      CALL DPWRST('XXX','BUG ')
5719      WRITE(ICOUT,704)
5720  704 FORMAT('      IN A COMMAND OR AN EXPRESSION')
5721      CALL DPWRST('XXX','BUG ')
5722      WRITE(ICOUT,705)
5723  705 FORMAT('      WAS NOT FOUND IN THE CURRENT LIST')
5724      CALL DPWRST('XXX','BUG ')
5725      WRITE(ICOUT,706)
5726  706 FORMAT('      OF AVAILABLE PARAMETER AND VARIABLE NAMES.')
5727      CALL DPWRST('XXX','BUG ')
5728      WRITE(ICOUT,999)
5729      CALL DPWRST('XXX','BUG ')
5730      WRITE(ICOUT,707)IHWORD,IHWOR2
5731  707 FORMAT('      THE VARIABLE OR PARAMETER IN QUESTION WAS ',2A4)
5732      CALL DPWRST('XXX','BUG ')
5733      WRITE(ICOUT,999)
5734      CALL DPWRST('XXX','BUG ')
5735  709 CONTINUE
5736      GOTO760
5737C
5738  750 CONTINUE
5739      ILOC=-1
5740      IERROR='YES'
5741      RETURN
5742C
5743  760 CONTINUE
5744      ILOC=0
5745      IERROR='YES'
5746      RETURN
5747C
5748  800 CONTINUE
5749      ILOC=I2
5750      IERROR='NO'
5751      RETURN
5752C
5753      END
5754      SUBROUTINE CHLHSN(NR,N,A,EPSM,SX,UDIAG)
5755      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5756C
5757C PURPOSE
5758C -------
5759C FIND THE L(L-TRANSPOSE) [WRITTEN LL+] DECOMPOSITION OF THE PERTURBED
5760C MODEL HESSIAN MATRIX A+MU*I(WHERE MU\0 AND I IS THE IDENTITY MATRIX)
5761C WHICH IS SAFELY POSITIVE DEFINITE.  IF A IS SAFELY POSITIVE DEFINITE
5762C UPON ENTRY, THEN MU=0.
5763C
5764C PARAMETERS
5765C ----------
5766C NR           --> ROW DIMENSION OF MATRIX
5767C N            --> DIMENSION OF PROBLEM
5768C A(N,N)      <--> ON ENTRY; "A" IS MODEL HESSIAN (ONLY LOWER
5769C                  TRIANGULAR PART AND DIAGONAL STORED)
5770C                  ON EXIT:  A CONTAINS L OF LL+ DECOMPOSITION OF
5771C                  PERTURBED MODEL HESSIAN IN LOWER TRIANGULAR
5772C                  PART AND DIAGONAL AND CONTAINS HESSIAN IN UPPER
5773C                  TRIANGULAR PART AND UDIAG
5774C EPSM         --> MACHINE EPSILON
5775C SX(N)        --> DIAGONAL SCALING MATRIX FOR X
5776C UDIAG(N)    <--  ON EXIT: CONTAINS DIAGONAL OF HESSIAN
5777C
5778C INTERNAL VARIABLES
5779C ------------------
5780C TOL              TOLERANCE
5781C DIAGMN           MINIMUM ELEMENT ON DIAGONAL OF A
5782C DIAGMX           MAXIMUM ELEMENT ON DIAGONAL OF A
5783C OFFMAX           MAXIMUM OFF-DIAGONAL ELEMENT OF A
5784C OFFROW           SUM OF OFF-DIAGONAL ELEMENTS IN A ROW OF A
5785C EVMIN            MINIMUM EIGENVALUE OF A
5786C EVMAX            MAXIMUM EIGENVALUE OF A
5787C
5788C DESCRIPTION
5789C -----------
5790C 1. IF "A" HAS ANY NEGATIVE DIAGONAL ELEMENTS, THEN CHOOSE MU>0
5791C SUCH THAT THE DIAGONAL OF A:=A+MU*I IS ALL POSITIVE
5792C WITH THE RATIO OF ITS SMALLEST TO LARGEST ELEMENT ON THE
5793C ORDER OF SQRT(EPSM).
5794C
5795C 2. "A" UNDERGOES A PERTURBED CHOLESKY DECOMPOSITION WHICH
5796C RESULTS IN AN LL+ DECOMPOSITION OF A+D, WHERE D IS A
5797C NON-NEGATIVE DIAGONAL MATRIX WHICH IS IMPLICITLY ADDED TO
5798C "A" DURING THE DECOMPOSITION IF "A" IS NOT POSITIVE DEFINITE.
5799C "A" IS RETAINED AND NOT CHANGED DURING THIS PROCESS BY
5800C COPYING L INTO THE UPPER TRIANGULAR PART OF "A" AND THE
5801C DIAGONAL INTO UDIAG.  THEN THE CHOLESKY DECOMPOSITION ROUTINE
5802C IS CALLED.  ON RETURN, ADDMAX CONTAINS MAXIMUM ELEMENT OF D.
5803C
5804C 3. IF ADDMAX=0, "A" WAS POSITIVE DEFINITE GOING INTO STEP 2
5805C AND RETURN IS MADE TO CALLING PROGRAM.  OTHERWISE,
5806C THE MINIMUM NUMBER SDD WHICH MUST BE ADDED TO THE
5807C DIAGONAL OF A TO MAKE IT SAFELY STRICTLY DIAGONALLY DOMINANT
5808C IS CALCULATED.  SINCE A+ADDMAX*I AND A+SDD*I ARE SAFELY
5809C POSITIVE DEFINITE, CHOOSE MU=MIN(ADDMAX,SDD) AND DECOMPOSE
5810C A+MU*I TO OBTAIN L.
5811C
5812      DIMENSION A(NR,1),SX(N),UDIAG(N)
5813C
5814C SCALE HESSIAN
5815C PRE- AND POST- MULTIPLY "A" BY INV(SX)
5816C
5817      DO 20 J=1,N
5818        DO 10 I=J,N
5819          A(I,J)=A(I,J)/(SX(I)*SX(J))
5820   10   CONTINUE
5821   20 CONTINUE
5822C
5823C STEP1
5824C -----
5825C NOTE:  IF A DIFFERENT TOLERANCE IS DESIRED THROUGHOUT THIS
5826C ALGORITHM, CHANGE TOLERANCE HERE:
5827      TOL=SQRT(EPSM)
5828C
5829      DIAGMX=A(1,1)
5830      DIAGMN=A(1,1)
5831      IF(N.EQ.1) GO TO 35
5832      DO 30 I=2,N
5833        IF(A(I,I).LT.DIAGMN) DIAGMN=A(I,I)
5834        IF(A(I,I).GT.DIAGMX) DIAGMX=A(I,I)
5835   30 CONTINUE
5836   35 POSMAX=MAX(DIAGMX,0.D0)
5837C
5838C DIAGMN .LE. 0
5839C
5840      IF(DIAGMN.GT.POSMAX*TOL) GO TO 100
5841C     IF(DIAGMN.LE.POSMAX*TOL)
5842C     THEN
5843        AMU=TOL*(POSMAX-DIAGMN)-DIAGMN
5844        IF(AMU.NE.0.) GO TO 60
5845C       IF(AMU.EQ.0.)
5846C       THEN
5847C
5848C FIND LARGEST OFF-DIAGONAL ELEMENT OF A
5849          OFFMAX=0.D0
5850          IF(N.EQ.1) GO TO 50
5851          DO 45 I=2,N
5852            IM1=I-1
5853            DO 40 J=1,IM1
5854              IF(ABS(A(I,J)).GT.OFFMAX) OFFMAX=ABS(A(I,J))
5855   40       CONTINUE
5856   45     CONTINUE
5857   50     AMU=OFFMAX
5858          IF(AMU.NE.0.D0) GO TO 55
5859C         IF(AMU.EQ.0.D0)
5860C         THEN
5861            AMU=1.0D0
5862            GO TO 60
5863C         ELSE
5864   55       AMU=AMU*(1.0D0+TOL)
5865C         ENDIF
5866C       ENDIF
5867C
5868C A=A + MU*I
5869C
5870   60   DO 65 I=1,N
5871          A(I,I)=A(I,I)+AMU
5872   65   CONTINUE
5873        DIAGMX=DIAGMX+AMU
5874C     ENDIF
5875C
5876C STEP2
5877C -----
5878C COPY LOWER TRIANGULAR PART OF "A" TO UPPER TRIANGULAR PART
5879C AND DIAGONAL OF "A" TO UDIAG
5880C
5881  100 CONTINUE
5882      DO 110 J=1,N
5883        UDIAG(J)=A(J,J)
5884        IF(J.EQ.N) GO TO 110
5885        JP1=J+1
5886        DO 105 I=JP1,N
5887          A(J,I)=A(I,J)
5888  105   CONTINUE
5889  110 CONTINUE
5890C
5891      CALL CHOLDC(NR,N,A,DIAGMX,TOL,ADDMAX)
5892C
5893C
5894C STEP3
5895C -----
5896C IF ADDMAX=0, "A" WAS POSITIVE DEFINITE GOING INTO STEP 2,
5897C THE LL+ DECOMPOSITION HAS BEEN DONE, AND WE RETURN.
5898C OTHERWISE, ADDMAX>0.  PERTURB "A" SO THAT IT IS SAFELY
5899C DIAGONALLY DOMINANT AND FIND LL+ DECOMPOSITION
5900C
5901      IF(ADDMAX.LE.0.) GO TO 170
5902C     IF(ADDMAX.GT.0.)
5903C     THEN
5904C
5905C RESTORE ORIGINAL "A" (LOWER TRIANGULAR PART AND DIAGONAL)
5906C
5907        DO 120 J=1,N
5908          A(J,J)=UDIAG(J)
5909          IF(J.EQ.N) GO TO 120
5910          JP1=J+1
5911          DO 115 I=JP1,N
5912            A(I,J)=A(J,I)
5913  115     CONTINUE
5914  120   CONTINUE
5915C
5916C FIND SDD SUCH THAT A+SDD*I IS SAFELY POSITIVE DEFINITE
5917C NOTE:  EVMIN<0 SINCE A IS NOT POSITIVE DEFINITE;
5918C
5919        EVMIN=0.
5920        EVMAX=A(1,1)
5921        DO 150 I=1,N
5922          OFFROW=0.D0
5923          IF(I.EQ.1) GO TO 135
5924          IM1=I-1
5925          DO 130 J=1,IM1
5926            OFFROW=OFFROW+ABS(A(I,J))
5927  130     CONTINUE
5928  135     IF(I.EQ.N) GO TO 145
5929          IP1=I+1
5930          DO 140 J=IP1,N
5931            OFFROW=OFFROW+ABS(A(J,I))
5932  140     CONTINUE
5933  145     EVMIN=MIN(EVMIN,A(I,I)-OFFROW)
5934          EVMAX=MAX(EVMAX,A(I,I)+OFFROW)
5935  150   CONTINUE
5936        SDD=TOL*(EVMAX-EVMIN)-EVMIN
5937C
5938C PERTURB "A" AND DECOMPOSE AGAIN
5939C
5940        AMU=MIN(SDD,ADDMAX)
5941        DO 160 I=1,N
5942          A(I,I)=A(I,I)+AMU
5943          UDIAG(I)=A(I,I)
5944  160   CONTINUE
5945C
5946C "A" NOW GUARANTEED SAFELY POSITIVE DEFINITE
5947C
5948        CALL CHOLDC(NR,N,A,0.0D0,TOL,ADDMAX)
5949C     ENDIF
5950C
5951C UNSCALE HESSIAN AND CHOLESKY DECOMPOSITION MATRIX
5952C
5953  170 DO 190 J=1,N
5954        DO 175 I=J,N
5955          A(I,J)=SX(I)*A(I,J)
5956  175   CONTINUE
5957        IF(J.EQ.1) GO TO 185
5958        JM1=J-1
5959        DO 180 I=1,JM1
5960          A(I,J)=SX(I)*SX(J)*A(I,J)
5961  180   CONTINUE
5962  185   UDIAG(J)=UDIAG(J)*SX(J)*SX(J)
5963  190 CONTINUE
5964      RETURN
5965      END
5966      SUBROUTINE CHOLDC(NR,N,A,DIAGMX,TOL,ADDMAX)
5967      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5968C
5969C PURPOSE
5970C -------
5971C FIND THE PERTURBED L(L-TRANSPOSE) [WRITTEN LL+] DECOMPOSITION
5972C OF A+D, WHERE D IS A NON-NEGATIVE DIAGONAL MATRIX ADDED TO A IF
5973C NECESSARY TO ALLOW THE CHOLESKY DECOMPOSITION TO CONTINUE.
5974C
5975C PARAMETERS
5976C ----------
5977C NR           --> ROW DIMENSION OF MATRIX
5978C N            --> DIMENSION OF PROBLEM
5979C A(N,N)      <--> ON ENTRY: MATRIX FOR WHICH TO FIND PERTURBED
5980C                       CHOLESKY DECOMPOSITION
5981C                  ON EXIT:  CONTAINS L OF LL+ DECOMPOSITION
5982C                  IN LOWER TRIANGULAR PART AND DIAGONAL OF "A"
5983C DIAGMX       --> MAXIMUM DIAGONAL ELEMENT OF "A"
5984C TOL          --> TOLERANCE
5985C ADDMAX      <--  MAXIMUM AMOUNT IMPLICITLY ADDED TO DIAGONAL OF "A"
5986C                  IN FORMING THE CHOLESKY DECOMPOSITION OF A+D
5987C INTERNAL VARIABLES
5988C ------------------
5989C AMINL    SMALLEST ELEMENT ALLOWED ON DIAGONAL OF L
5990C AMNLSQ   =AMINL**2
5991C OFFMAX   MAXIMUM OFF-DIAGONAL ELEMENT IN COLUMN OF A
5992C
5993C
5994C DESCRIPTION
5995C -----------
5996C THE NORMAL CHOLESKY DECOMPOSITION IS PERFORMED.  HOWEVER, IF AT ANY
5997C POINT THE ALGORITHM WOULD ATTEMPT TO SET L(I,I)=SQRT(TEMP)
5998C WITH TEMP < TOL*DIAGMX, THEN L(I,I) IS SET TO SQRT(TOL*DIAGMX)
5999C INSTEAD.  THIS IS EQUIVALENT TO ADDING TOL*DIAGMX-TEMP TO A(I,I)
6000C
6001C
6002      DIMENSION A(NR,1)
6003C
6004      ADDMAX=0.D0
6005      AMINL=SQRT(DIAGMX*TOL)
6006      AMNLSQ=AMINL*AMINL
6007C
6008C FORM COLUMN J OF L
6009C
6010      DO 100 J=1,N
6011C FIND DIAGONAL ELEMENTS OF L
6012        SUM=0.D0
6013        IF(J.EQ.1) GO TO 20
6014        JM1=J-1
6015        DO 10 K=1,JM1
6016          SUM=SUM + A(J,K)*A(J,K)
6017   10   CONTINUE
6018   20   TEMP=A(J,J)-SUM
6019        IF(TEMP.LT.AMNLSQ) GO TO 30
6020C       IF(TEMP.GE.AMINL**2)
6021C       THEN
6022          A(J,J)=SQRT(TEMP)
6023          GO TO 40
6024C       ELSE
6025C
6026C FIND MAXIMUM OFF-DIAGONAL ELEMENT IN COLUMN
6027   30     OFFMAX=0.D0
6028          IF(J.EQ.N) GO TO 37
6029          JP1=J+1
6030          DO 35 I=JP1,N
6031            IF(ABS(A(I,J)).GT.OFFMAX) OFFMAX=ABS(A(I,J))
6032   35     CONTINUE
6033   37     IF(OFFMAX.LE.AMNLSQ) OFFMAX=AMNLSQ
6034C
6035C ADD TO DIAGONAL ELEMENT  TO ALLOW CHOLESKY DECOMPOSITION TO CONTINUE
6036          A(J,J)=SQRT(OFFMAX)
6037          ADDMAX=MAX(ADDMAX,OFFMAX-TEMP)
6038C       ENDIF
6039C
6040C FIND I,J ELEMENT OF LOWER TRIANGULAR MATRIX
6041   40   IF(J.EQ.N) GO TO 100
6042        JP1=J+1
6043        DO 70 I=JP1,N
6044          SUM=0.0D0
6045          IF(J.EQ.1) GO TO 60
6046          JM1=J-1
6047          DO 50 K=1,JM1
6048            SUM=SUM+A(I,K)*A(J,K)
6049   50     CONTINUE
6050   60     A(I,J)=(A(I,J)-SUM)/A(J,J)
6051   70   CONTINUE
6052  100 CONTINUE
6053      RETURN
6054      END
6055      SUBROUTINE CHOLNV(N, CHOINV)
6056*
6057*     Inverts a lower triangular matrix in situ
6058*
6059      INTEGER I, II, J, JJ, K, KK, N
6060      DOUBLE PRECISION CHOINV(*), T
6061      DOUBLE PRECISION S
6062      II = 0
6063      DO 100 I = 1,N
6064         T = 1/CHOINV(II+I)
6065         JJ = 0
6066         DO 200 J = 1,I-1
6067            S = 0
6068            JJ = JJ + J
6069            KK = JJ
6070            DO 300 K = J,I-1
6071               S = S + CHOINV(II+K)*CHOINV(KK)
6072               KK = KK + K
6073  300       CONTINUE
6074            CHOINV(II+J) = -S*T
6075  200    CONTINUE
6076         II = II + I
6077         CHOINV(II) = T
6078 100  CONTINUE
6079C
6080      RETURN
6081      END
6082      SUBROUTINE CHOLPD(N, CHOPRD)
6083*
6084*     Multiplies Choleski factors in situ
6085*
6086      INTEGER I, II, J, K, KK, N, NN
6087      DOUBLE PRECISION CHOPRD(*), S
6088      NN = (N*(N+1))/2
6089      KK = NN
6090      DO 100 K = N,1,-1
6091         KK = KK - K
6092         II = NN
6093         DO 200 I = N,K,-1
6094            II = II - I
6095            S = 0
6096            DO 300 J = 1,K
6097               S = S + CHOPRD(II+J)*CHOPRD(KK+J)
6098  300       CONTINUE
6099            CHOPRD(II+K) = S
6100  200    CONTINUE
6101  100 CONTINUE
6102C
6103      RETURN
6104      END
6105      SUBROUTINE CHOLPI(N, CHOPDI)
6106*
6107*     Multiplies Choleski inverse factors in situ
6108*
6109      INTEGER I, II, J, JJ, K, KK, N
6110      DOUBLE PRECISION CHOPDI(*)
6111      DOUBLE PRECISION S
6112      II = 0
6113      DO 100 I = 1,N
6114         DO 200 J = 1,I
6115            S = 0
6116            JJ = II + I
6117            KK = II + J
6118            DO 300 K = I,N
6119               S = S + CHOPDI(KK)*CHOPDI(JJ)
6120               JJ = JJ + K
6121               KK = KK + K
6122  300       CONTINUE
6123            CHOPDI(II+J) = S
6124  200    CONTINUE
6125         II = II + I
6126  100 CONTINUE
6127C
6128      RETURN
6129      END
6130      SUBROUTINE CHOLSK(N, CHOFAC)
6131*
6132*     Computes Choleski factor in situ
6133*
6134      INTEGER I, II, J, JJ, K, N
6135      DOUBLE PRECISION CHOFAC(*), T
6136      DOUBLE PRECISION S, ZERO
6137      PARAMETER ( ZERO = 0 )
6138C
6139      T=0.0
6140      S=0.0
6141      JJ = 0
6142C
6143      DO 100 J = 1,N
6144         II = JJ
6145         DO 200 I = J,N
6146            S = CHOFAC(II+J)
6147            DO 300 K = 1,J-1
6148               S = S - CHOFAC(II+K)*CHOFAC(JJ+K)
6149  300       CONTINUE
6150            IF ( I .EQ. J ) THEN
6151               T = SQRT( MAX( S, ZERO ) )
6152               CHOFAC(II+J) = T
6153            ELSE
6154               CHOFAC(II+J) = S/T
6155            ENDIF
6156            II = II + I
6157  200    CONTINUE
6158         JJ = JJ + J
6159  100 CONTINUE
6160C
6161      RETURN
6162      END
6163      SUBROUTINE CHSCDF(X,NU,CDF)
6164C
6165C     PURPOSE--THIS SUBROUTINE COMPUTES THE CUMULATIVE DISTRIBUTION
6166C              FUNCTION VALUE FOR THE CHI-SQUARED DISTRIBUTION
6167C              WITH INTEGER DEGREES OF FREEDOM PARAMETER = NU.
6168C              THIS DISTRIBUTION IS DEFINED FOR ALL NON-NEGATIVE X.
6169C              THE PROBABILITY DENSITY FUNCTION IS GIVEN
6170C              IN THE REFERENCES BELOW.
6171C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION VALUE AT
6172C                                WHICH THE CUMULATIVE DISTRIBUTION
6173C                                FUNCTION IS TO BE EVALUATED.
6174C                                X SHOULD BE NON-NEGATIVE.
6175C                     --NU     = THE INTEGER NUMBER OF DEGREES
6176C                                OF FREEDOM.
6177C                                NU SHOULD BE POSITIVE.
6178C     OUTPUT ARGUMENTS--CDF    = THE SINGLE PRECISION CUMULATIVE
6179C                                DISTRIBUTION FUNCTION VALUE.
6180C     OUTPUT--THE SINGLE PRECISION CUMULATIVE DISTRIBUTION
6181C             FUNCTION VALUE CDF FOR THE CHI-SQUARED DISTRIBUTION
6182C             WITH DEGREES OF FREEDOM PARAMETER = NU.
6183C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
6184C     RESTRICTIONS--X SHOULD BE NON-NEGATIVE.
6185C                 --NU SHOULD BE A POSITIVE INTEGER VARIABLE.
6186C     OTHER DATAPAC   SUBROUTINES NEEDED--NORCDF.
6187C     FORTRAN LIBRARY SUBROUTINES NEEDED--DSQRT, DEXP.
6188C     MODE OF INTERNAL OPERATIONS--DOUBLE PRECISION.
6189C     LANGUAGE--ANSI FORTRAN (1977)
6190C     REFERENCES--NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY APPLIED MATHEMATICS
6191C                 SERIES 55, 1964, PAGE 941, FORMULAE 26.4.4 AND 26.4.5.
6192C               --JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
6193C                 DISTRIBUTIONS--1, 1970, PAGE 176,
6194C                 FORMULA 28, AND PAGE 180, FORMULA 33.1.
6195C               --OWEN, HANDBOOK OF STATISTICAL TABLES,
6196C                 1962, PAGES 50-55.
6197C               --PEARSON AND HARTLEY, BIOMETRIKA TABLES
6198C                 FOR STATISTICIANS, VOLUME 1, 1954,
6199C                 PAGES 122-131.
6200C     WRITTEN BY--JAMES J. FILLIBEN
6201C                 STATISTICAL ENGINEERING DIVISION
6202C                 INFORMATION TECHNOLOGY LABORATORY
6203C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
6204C                 GAITHERSBURG, MD 20899-8980
6205C                 PHONE--301-975-2855
6206C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
6207C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
6208C     LANGUAGE--ANSI FORTRAN (1966)
6209C     VERSION NUMBER--82/7
6210C     ORIGINAL VERSION--JUNE      1972.
6211C     UPDATED         --MAY       1974.
6212C     UPDATED         --SEPTEMBER 1975.
6213C     UPDATED         --NOVEMBER  1975.
6214C     UPDATED         --OCTOBER   1976.
6215C     UPDATED         --DECEMBER  1981.
6216C     UPDATED         --MAY       1982.
6217C
6218C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
6219C
6220C---------------------------------------------------------------------
6221C
6222      DOUBLE PRECISION DX,PI,CHI,SUM,TERM,AI,DCDFN
6223      DOUBLE PRECISION DNU
6224      DOUBLE PRECISION DSQRT,DEXP
6225      DOUBLE PRECISION DLOG
6226      DOUBLE PRECISION DFACT,DPOWER
6227      DOUBLE PRECISION DW
6228      DOUBLE PRECISION D1,D2,D3
6229      DOUBLE PRECISION TERM0,TERM1,TERM2,TERM3,TERM4
6230      DOUBLE PRECISION B11
6231      DOUBLE PRECISION B21
6232      DOUBLE PRECISION B31,B32
6233      DOUBLE PRECISION B41,B42,B43
6234C
6235C---------------------------------------------------------------------
6236C
6237      INCLUDE 'DPCOP2.INC'
6238C
6239C-----DATA STATEMENTS-------------------------------------------------
6240C
6241      DATA NUCUT/1000/
6242      DATA PI/3.14159265358979D0/
6243      DATA DPOWER/0.33333333333333D0/
6244      DATA B11/0.33333333333333D0/
6245      DATA B21/-0.02777777777778D0/
6246      DATA B31/-0.00061728395061D0/
6247      DATA B32/-13.0D0/
6248      DATA B41/0.00018004115226D0/
6249      DATA B42/6.0D0/
6250      DATA B43/17.0D0/
6251C
6252C-----START POINT-----------------------------------------------------
6253C
6254C     CHECK THE INPUT ARGUMENTS FOR ERRORS
6255C
6256      IF(NU.LE.0)GOTO50
6257      IF(X.LT.0.0)GOTO55
6258      GOTO90
6259   50 WRITE(ICOUT,15)
6260      CALL DPWRST('XXX','BUG ')
6261      WRITE(ICOUT,47)NU
6262      CALL DPWRST('XXX','BUG ')
6263      CDF=0.0
6264      RETURN
6265   55 WRITE(ICOUT,4)
6266      CALL DPWRST('XXX','BUG ')
6267      WRITE(ICOUT,46)X
6268      CALL DPWRST('XXX','BUG ')
6269      CDF=0.0
6270      RETURN
6271   90 CONTINUE
6272    4 FORMAT('***** NON-FATAL DIAGNOSTIC--THE 1ST INPUT ARGUMENT ',
6273     1'TO THE CHSCDF SUBROUTINE IS NEGATIVE *****')
6274   15 FORMAT('***** FATAL ERROR--THE 2ND INPUT ARGUMENT TO THE ',
6275     1'CHSCDF SUBROUTINE IS NON-POSITIVE *****')
6276   46 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',E15.8,' *****')
6277   47 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',I8   ,' *****')
6278C
6279      DX=X
6280      ANU=NU
6281      DNU=NU
6282C
6283C     IF X IS NON-POSITIVE, SET CDF = 0.0 AND RETURN.
6284C     IF NU IS SMALLER THAN 10 AND X IS MORE THAN 200
6285C     STANDARD DEVIATIONS BELOW THE MEAN,
6286C     SET CDF = 0.0 AND RETURN.
6287C     IF NU IS 10 OR LARGER AND X IS MORE THAN 100
6288C     STANDARD DEVIATIONS BELOW THE MEAN,
6289C     SET CDF = 0.0 AND RETURN.
6290C     IF NU IS SMALLER THAN 10 AND X IS MORE THAN 200
6291C     STANDARD DEVIATIONS ABOVE THE MEAN,
6292C     SET CDF = 1.0 AND RETURN.
6293C     IF NU IS 10 OR LARGER AND X IS MORE THAN 100
6294C     STANDARD DEVIATIONS ABOVE THE MEAN,
6295C     SET CDF = 1.0 AND RETURN.
6296C
6297      IF(X.LE.0.0)GOTO105
6298      AMEAN=ANU
6299      SD=SQRT(2.0*ANU)
6300      Z=(X-AMEAN)/SD
6301      IF(NU.LT.10.AND.Z.LT.-200.0)GOTO105
6302      IF(NU.GE.10.AND.Z.LT.-100.0)GOTO105
6303      IF(NU.LT.10.AND.Z.GT.200.0)GOTO107
6304      IF(NU.GE.10.AND.Z.GT.100.0)GOTO107
6305      GOTO109
6306  105 CDF=0.0
6307      RETURN
6308  107 CDF=1.0
6309      RETURN
6310  109 CONTINUE
6311C
6312C     DISTINGUISH BETWEEN 3 SEPARATE REGIONS
6313C     OF THE (X,NU) SPACE.
6314C     BRANCH TO THE PROPER COMPUTATIONAL METHOD
6315C     DEPENDING ON THE REGION.
6316C     NUCUT HAS THE VALUE 1000.
6317C
6318      IF(NU.LT.NUCUT)GOTO1000
6319      IF(NU.GE.NUCUT.AND.X.LE.ANU)GOTO2000
6320      IF(NU.GE.NUCUT.AND.X.GT.ANU)GOTO3000
6321      IBRAN=1
6322      WRITE(ICOUT,99)IBRAN
6323   99 FORMAT('*****INTERNAL ERROR IN CHSCDF SUBROUTINE--',
6324     1'IMPOSSIBLE BRANCH CONDITION AT BRANCH POINT = ',I8)
6325      CALL DPWRST('XXX','BUG ')
6326      RETURN
6327C
6328C     TREAT THE SMALL AND MODERATE DEGREES OF FREEDOM CASE
6329C     (THAT IS, WHEN NU IS SMALLER THAN 1000).
6330C     METHOD UTILIZED--EXACT FINITE SUM
6331C     (SEE AMS 55, PAGE 941, FORMULAE 26.4.4 AND 26.4.5).
6332C
6333 1000 CONTINUE
6334      CHI=DSQRT(DX)
6335      IEVODD=NU-2*(NU/2)
6336      IF(IEVODD.EQ.0)GOTO120
6337C
6338      SUM=0.0D0
6339      TERM=1.0/CHI
6340      IMIN=1
6341      IMAX=NU-1
6342      GOTO130
6343C
6344  120 SUM=1.0D0
6345      TERM=1.0D0
6346      IMIN=2
6347      IMAX=NU-2
6348C
6349  130 IF(IMIN.GT.IMAX)GOTO160
6350      DO100I=IMIN,IMAX,2
6351      AI=I
6352      TERM=TERM*(DX/AI)
6353      SUM=SUM+TERM
6354  100 CONTINUE
6355  160 CONTINUE
6356C
6357      SUM=SUM*DEXP(-DX/2.0D0)
6358      IF(IEVODD.EQ.0)GOTO170
6359      SUM=(DSQRT(2.0D0/PI))*SUM
6360      SPCHI=CHI
6361      CALL NORCDF(SPCHI,CDFN)
6362      DCDFN=CDFN
6363      SUM=SUM+2.0D0*(1.0D0-DCDFN)
6364  170 CDF=1.0D0-SUM
6365      RETURN
6366C
6367C     TREAT THE CASE WHEN NU IS LARGE
6368C     (THAT IS, WHEN NU IS EQUAL TO OR GREATER THAN 1000)
6369C     AND X IS LESS THAN OR EQUAL TO NU.
6370C     METHOD UTILIZED--WILSON-HILFERTY APPROXIMATION
6371C     (SEE JOHNSON AND KOTZ, VOLUME 1, PAGE 176, FORMULA 28).
6372C
6373 2000 CONTINUE
6374      DFACT=4.5D0*DNU
6375      U=(((DX/DNU)**DPOWER)-1.0D0+(1.0D0/DFACT))*DSQRT(DFACT)
6376      CALL NORCDF(U,CDFN)
6377      CDF=CDFN
6378      RETURN
6379C
6380C     TREAT THE CASE WHEN NU IS LARGE
6381C     (THAT IS, WHEN NU IS EQUAL TO OR GREATER THAN 1000)
6382C     AND X IS LARGER THAN NU.
6383C     METHOD UTILIZED--HILL'S ASYMPTOTIC EXPANSION
6384C     (SEE JOHNSON AND KOTZ, VOLUME 1, PAGE 180, FORMULA 33.1).
6385C
6386 3000 CONTINUE
6387      DW=DSQRT(DX-DNU-DNU*DLOG(DX/DNU))
6388      DANU=DSQRT(2.0D0/DNU)
6389      D1=DW
6390      D2=DW**2
6391      D3=DW**3
6392      TERM0=DW
6393      TERM1=B11*DANU
6394      TERM2=B21*D1*(DANU**2)
6395      TERM3=B31*(D2+B32)*(DANU**3)
6396      TERM4=B41*(B42*D3+B43*D1)*(DANU**4)
6397      U=TERM0+TERM1+TERM2+TERM3+TERM4
6398      CALL NORCDF(U,CDFN)
6399      CDF=CDFN
6400      RETURN
6401C
6402      END
6403      SUBROUTINE CHSPDF(X,NU,PDF)
6404C
6405C     PURPOSE--THIS SUBROUTINE COMPUTES THE PROBABILITY DENSITY
6406C              FUNCTION VALUE FOR THE CHI-SQUARED DISTRIBUTION
6407C              WITH INTEGER DEGREES OF FREEDOM PARAMETER = NU.
6408C              THIS DISTRIBUTION IS DEFINED FOR ALL X.
6409C              THE PROBABILITY DENSITY FUNCTION IS GIVEN
6410C              IN THE REFERENCES BELOW.
6411C     INPUT  ARGUMENTS--X      = THE SINGLE PRECISION VALUE AT
6412C                                WHICH THE PROBABILITY DENSITY
6413C                                FUNCTION IS TO BE EVALUATED.
6414C                                X SHOULD BE NON-NEGATIVE.
6415C                     --NU     = THE INTEGER NUMBER OF DEGREES
6416C                                OF FREEDOM.
6417C                                NU SHOULD BE POSITIVE.
6418C     OUTPUT ARGUMENTS--PDF    = THE SINGLE PRECISION PROBABILITY
6419C                                DENSITY FUNCTION VALUE.
6420C     OUTPUT--THE SINGLE PRECISION PROBABILITY DENSITY
6421C             FUNCTION VALUE PDF FOR THE THE CHI-SQUARED DISTRIBUTION
6422C             WITH DEGREES OF FREEDOM PARAMETER = NU.
6423C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
6424C     RESTRICTIONS--NU SHOULD BE A POSITIVE INTEGER VARIABLE.
6425C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE.
6426C     FORTRAN LIBRARY SUBROUTINES NEEDED--DSQRT, DATAN.
6427C     MODE OF INTERNAL OPERATIONS--DOUBLE PRECISION.
6428C     LANGUAGE--ANSI FORTRAN (1977)
6429C     REFERENCES--NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY APPLIED MATHEMATICS
6430C                 SERIES 55, 1964, PAGE 941, FORMULAE 26.4.1.
6431C               --JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
6432C                 DISTRIBUTIONS--1, 1970, PAGE XXX,
6433C     WRITTEN BY--JAMES J. FILLIBEN
6434C                 STATISTICAL ENGINEERING DIVISION
6435C                 INFORMATION TECHNOLOGY LABORATORY
6436C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
6437C                 GAITHERSBURG, MD 20899-8980
6438C                 PHONE--301-975-2855
6439C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
6440C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
6441C     LANGUAGE--ANSI FORTRAN (1966)
6442C     VERSION NUMBER--82/7
6443C     ORIGINAL VERSION--NOVEMBER  1981.
6444C     UPDATED         --MAY       1982.
6445C
6446C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
6447C
6448C---------------------------------------------------------------------
6449C
6450      DOUBLE PRECISION DX
6451      DOUBLE PRECISION DNU
6452      DOUBLE PRECISION DNUH
6453      DOUBLE PRECISION DGF
6454      DOUBLE PRECISION DPOWER
6455      DOUBLE PRECISION DCONST
6456      DOUBLE PRECISION DTERM1
6457      DOUBLE PRECISION DTERM2
6458      DOUBLE PRECISION DTERM
6459C
6460C---------------------------------------------------------------------
6461C
6462      INCLUDE 'DPCOP2.INC'
6463C
6464C-----START POINT-----------------------------------------------------
6465C
6466C               ********************************************
6467C               **  STEP 1--                              **
6468C               **  CHECK THE INPUT ARGUMENTS FOR ERRORS  **
6469C               ********************************************
6470C
6471      IF(NU.LE.0)GOTO150
6472      GOTO190
6473  150 CONTINUE
6474      WRITE(ICOUT,115)
6475  115 FORMAT('***** FATAL ERROR--THE 2ND INPUT ARGUMENT ',
6476     1'TO THE   CHSPDF   SUBROUTINE IS NON-POSITIVE *****')
6477      CALL DPWRST('XXX','BUG ')
6478      WRITE(ICOUT,147)NU
6479  147 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',I8,
6480     1' *****')
6481      CALL DPWRST('XXX','BUG ')
6482      PDF=0.0
6483      GOTO9000
6484  190 CONTINUE
6485C
6486C               **********************************************************
6487C               **  STEP 2--                                            **
6488C               **  COMPUTE THE CONSTANT = 1/((GAMMA(NU/2))*2**(NU/2))  **
6489C               **********************************************************
6490C
6491C
6492      DX=X
6493      DNU=NU
6494      DNUH=DNU/2.0D0
6495      CALL DGAMMF(DNUH,DGF)
6496      DPOWER=2.0D0**DNUH
6497      DCONST=1.0D0/(DPOWER*DGF)
6498C
6499C               ************************************
6500C               **  STEP 3--                      **
6501C               **  COMPUTE THE DENSITY FUNCTION  **
6502C               ************************************
6503C
6504      IF(X.LE.0.0)PDF=0.0
6505      IF(X.LE.0.0)GOTO9000
6506C
6507      DTERM1=DX**(DNUH-1.0D0)
6508      DTERM2=DEXP(-(DX/2.0D0))
6509      DTERM=DTERM1*DTERM2
6510      PDF=DCONST*DTERM
6511      GOTO9000
6512C
6513 9000 CONTINUE
6514CCCCC WRITE(ICOUT,9011)DX,DNUH,DNUH,DGF,DPOWER,DCONST
6515C9011 FORMAT('DX,DNUH,DNUH,DGF,DPOWER,DCONST = ',6D12.4)
6516CCCCC CALL DPWRST('XXX','BUG ')
6517CCCCC WRITE(ICOUT,9012)DTERM1,DTERM2,DTERM,PDF
6518C9012 FORMAT('DTERM1,DTERM2,DTERM,PDF = ',3D12.4,E15.7)
6519CCCCC CALL DPWRST('XXX','BUG ')
6520      RETURN
6521      END
6522      SUBROUTINE CHSPPF(P,NU,PPF)
6523C
6524C     PURPOSE--THIS SUBROUTINE COMPUTES THE PERCENT POINT
6525C              FUNCTION VALUE FOR THE CHI-SQUARED DISTRIBUTION
6526C              WITH INTEGER DEGREES OF FREEDOM PARAMETER = NU.
6527C              THE CHI-SQUARED DISTRIBUTION USED
6528C              HEREIN IS DEFINED FOR ALL NON-NEGATIVE X,
6529C              AND ITS PROBABILITY DENSITY FUNCTION IS GIVEN
6530C              IN REFERENCES 2, 3, AND 4 BELOW.
6531C              NOTE THAT THE PERCENT POINT FUNCTION OF A DISTRIBUTION
6532C              IS IDENTICALLY THE SAME AS THE INVERSE CUMULATIVE
6533C              DISTRIBUTION FUNCTION OF THE DISTRIBUTION.
6534C     INPUT  ARGUMENTS--P      = THE SINGLE PRECISION VALUE
6535C                                (BETWEEN 0.0 (INCLUSIVELY)
6536C                                AND 1.0 (EXCLUSIVELY))
6537C                                AT WHICH THE PERCENT POINT
6538C                                FUNCTION IS TO BE EVALUATED.
6539C                     --NU     = THE INTEGER NUMBER OF DEGREES
6540C                                OF FREEDOM.
6541C                                NU SHOULD BE POSITIVE.
6542C     OUTPUT ARGUMENTS--PPF    = THE SINGLE PRECISION PERCENT
6543C                                POINT FUNCTION VALUE.
6544C     OUTPUT--THE SINGLE PRECISION PERCENT POINT FUNCTION .
6545C             VALUE PPF FOR THE CHI-SQUARED DISTRIBUTION
6546C             WITH DEGREES OF FREEDOM PARAMETER = NU.
6547C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
6548C     RESTRICTIONS--NU SHOULD BE A POSITIVE INTEGER VARIABLE.
6549C                 --P SHOULD BE BETWEEN 0.0 (INCLUSIVELY)
6550C                   AND 1.0 (EXCLUSIVELY).
6551C     OTHER DATAPAC   SUBROUTINES NEEDED--NONE.
6552C     FORTRAN LIBRARY SUBROUTINES NEEDED--DEXP, DLOG.
6553C     MODE OF INTERNAL OPERATIONS--DOUBLE PRECISION.
6554C     LANGUAGE--ANSI FORTRAN (1977)
6555C     ACCURACY--(ON THE UNIVAC 1108, EXEC 8 SYSTEM AT NBS)
6556C               COMPARED TO THE KNOWN NU = 2 (EXPONENTIAL)
6557C               RESULTS, AGREEMENT WAS HAD OUT TO 6 SIGNIFICANT
6558C               DIGITS FOR ALL TESTED P IN THE RANGE P = .001 TO
6559C               P = .999.  FOR P = .95 AND SMALLER, THE AGREEMENT
6560C               WAS EVEN BETTER--7 SIGNIFICANT DIGITS.
6561C               (NOTE THAT THE TABULATED VALUES GIVEN IN THE WILK,
6562C               GNANADESIKAN, AND HUYETT REFERENCE BELOW, PAGE 20,
6563C               ARE IN ERROR FOR AT LEAST THE GAMMA = 1 CASE--
6564C               THE WORST DETECTED ERROR WAS AGREEMENT TO ONLY 3
6565C               SIGNIFICANT DIGITS (IN THEIR 8 SIGNIFICANT DIGIT TABLE)
6566C               FOR P = .999.)
6567C     REFERENCES--WILK, GNANADESIKAN, AND HUYETT, 'PROBABILITY
6568C                 PLOTS FOR THE GAMMA DISTRIBUTION',
6569C                 TECHNOMETRICS, 1962, PAGES 1-15,
6570C                 ESPECIALLY PAGES 3-5.
6571C               --NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY APPLIED MATHEMATICS
6572C                 SERIES 55, 1964, PAGE 257, FORMULA 6.1.41,
6573C                 AND PAGES 940-943.
6574C               --JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
6575C                 DISTRIBUTIONS--1, 1970, PAGES 166-206.
6576C               --HASTINGS AND PEACOCK, STATISTICAL
6577C                 DISTRIBUTIONS--A HANDBOOK FOR
6578C                 STUDENTS AND PRACTITIONERS, 1975,
6579C                 PAGES 46-51.
6580C     WRITTEN BY--JAMES J. FILLIBEN
6581C                 STATISTICAL ENGINEERING DIVISION
6582C                 INFORMATION TECHNOLOGY LABORATORY
6583C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
6584C                 GAITHERSBURG, MD 20899-8980
6585C                 PHONE--301-975-2855
6586C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
6587C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
6588C     LANGUAGE--ANSI FORTRAN (1966)
6589C     VERSION NUMBER--82/7
6590C     ORIGINAL VERSION--SEPTEMBER 1975.
6591C     UPDATED         --NOVEMBER  1975.
6592C     UPDATED         --DECEMBER  1981.
6593C     UPDATED         --MAY       1982.
6594C     UPDATED         --JUNE      1987.
6595C
6596C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
6597C
6598C---------------------------------------------------------------------
6599C
6600      DOUBLE PRECISION DP,DGAMMA
6601CCCCC DOUBLE PRECISION Z,Z2,Z3,Z4,Z5,DEN,A,B,C,D,G
6602      DOUBLE PRECISION Z,Z2,DEN,A,B,C,D
6603      DOUBLE PRECISION XMIN0,XMIN,AI,XMAX,DX,PCALC,XMID
6604      DOUBLE PRECISION XLOWER,XUPPER,XDEL
6605      DOUBLE PRECISION SUM,TERM,CUT1,CUT2,AJ,CUTOFF,T
6606      DOUBLE PRECISION DLG,DLT,DLX,DLPCAL
6607      DOUBLE PRECISION DLP,DLGAMM,DLXMI0
6608      DOUBLE PRECISION Z2INV
6609      DOUBLE PRECISION DEXP,DLOG
6610C
6611      DIMENSION D(10)
6612C
6613C---------------------------------------------------------------------
6614C
6615      INCLUDE 'DPCOP2.INC'
6616C
6617C-----DATA STATEMENTS-------------------------------------------------
6618C
6619      DATA C/ .918938533204672741D0/
6620      DATA D(1),D(2),D(3),D(4),D(5)
6621     1                 /+.833333333333333333D-1,-.277777777777777778D-2,
6622     1+.793650793650793651D-3,-.595238095238095238D-3,+.8417508417508417
6623     151D-3/
6624      DATA D(6),D(7),D(8),D(9),D(10)
6625     1     /-.191752691752691753D-2,+.641025641025641025D-2,-.2955065359
6626     147712418D-1,+.179644372368830573D0,-.139243221690590111D1/
6627C
6628C-----START POINT-----------------------------------------------------
6629C
6630      XMID=0.0
6631      XLOWER=0.0
6632      XUPPER=0.0
6633C
6634C     CHECK THE INPUT ARGUMENTS FOR ERRORS
6635C
6636      PPF=0.0
6637      IF(P.LT.0.0.OR.P.GE.1.0)THEN
6638        WRITE(ICOUT,1)
6639    1   FORMAT('***** ERROR IN CHSPPF--')
6640        CALL DPWRST('XXX','BUG ')
6641        WRITE(ICOUT,2)
6642    2   FORMAT('      THE FIRST ARGUMENT TO CHSPPF IS OUTSIDE ',
6643     1         'THE ALLOWABLE (0,1) INTERVAL')
6644        CALL DPWRST('XXX','BUG ')
6645        WRITE(ICOUT,46)P
6646   46   FORMAT('      THE VALUE OF THE ARGUMENT IS ',G15.7)
6647        CALL DPWRST('XXX','BUG ')
6648        GOTO9000
6649      ELSEIF(NU.LT.1)THEN
6650        WRITE(ICOUT,1)
6651        CALL DPWRST('XXX','BUG ')
6652        WRITE(ICOUT,15)
6653   15   FORMAT('      THE DEGREES OF FREEDOM ARGUMENT IS NON-POSITIVE')
6654        CALL DPWRST('XXX','BUG ')
6655        WRITE(ICOUT,47)NU
6656   47   FORMAT('      THE VALUE OF THE ARGUMENT IS ',I8)
6657        CALL DPWRST('XXX','BUG ')
6658        GOTO9000
6659      ENDIF
6660C
6661C     EXPRESS THE CHI-SQUARED DISTRIBUTION PERCENT POINT
6662C     FUNCTION IN TERMS OF THE EQUIVALENT GAMMA
6663C     DISTRIBUTION PERCENT POINT FUNCTION,
6664C     AND THEN EVALUATE THE LATTER.
6665C
6666      DP=P
6667      DNU=NU
6668      DGAMMA=DNU/2.0D0
6669      MAXIT=10000
6670C
6671C     COMPUTE THE GAMMA FUNCTION USING THE ALGORITHM IN THE
6672C     NBS APPLIED MATHEMATICS SERIES REFERENCE.
6673C     THIS GAMMA FUNCTION NEED BE CALCULATED ONLY ONCE.
6674C     IT IS USED IN THE CALCULATION OF THE CDF BASED ON
6675C     THE TENTATIVE VALUE OF THE PPF IN THE ITERATION.
6676C
6677      Z=DGAMMA
6678      DEN=1.0D0
6679  150 IF(Z.GE.10.0D0)GOTO160
6680      DEN=DEN*Z
6681      Z=Z+1.0D0
6682      GOTO150
6683  160 Z2=Z*Z
6684CCCCC Z3=Z*Z2
6685CCCCC Z4=Z2*Z2
6686CCCCC Z5=Z2*Z3
6687      A=(Z-0.5D0)*DLOG(Z)-Z+C
6688CCCCC B=D(1)/Z+D(2)/Z3+D(3)/Z5+D(4)/(Z2*Z5)+D(5)/(Z4*Z5)+
6689CCCCC1D(6)/(Z*Z5*Z5)+D(7)/(Z3*Z5*Z5)+D(8)/(Z5*Z5*Z5)+D(9)/(Z2*Z5*Z5*Z5)
6690      Z2INV=1.0D0/Z2
6691      B=D(9)
6692      B=Z2INV*B+D(8)
6693      B=Z2INV*B+D(7)
6694      B=Z2INV*B+D(6)
6695      B=Z2INV*B+D(5)
6696      B=Z2INV*B+D(4)
6697      B=Z2INV*B+D(3)
6698      B=Z2INV*B+D(2)
6699      B=Z2INV*B+D(1)
6700      B=(1.0D0/Z)*B
6701CCCCC G=DEXP(A+B)/DEN
6702      DLG=(A+B)-DLOG(DEN)
6703C
6704C     DETERMINE LOWER AND UPPER LIMITS ON THE DESIRED 100P
6705C     PERCENT POINT.
6706C
6707      ILOOP=1
6708CCCCC XMIN0=(DP*DGAMMA*G)**(1.0D0/DGAMMA)
6709      DLP=DLOG(DP)
6710      DLGAMM=DLOG(DGAMMA)
6711      DLXMI0=(1.0D0/DGAMMA)*(DLP+DLGAMM+DLG)
6712      XMIN0=DEXP(DLXMI0)
6713      XMIN=XMIN0
6714      ICOUNT=1
6715  350 AI=ICOUNT
6716      XMAX=AI*XMIN0
6717      DX=XMAX
6718      GOTO1000
6719  360 IF(PCALC.GE.DP)GOTO370
6720      XMIN=XMAX
6721      ICOUNT=ICOUNT+1
6722      IF(ICOUNT.LE.30000)GOTO350
6723  370 XMID=(XMIN+XMAX)/2.0D0
6724C
6725C     NOW ITERATE BY BISECTION UNTIL THE DESIRED ACCURACY IS ACHIEVED.
6726C
6727      ILOOP=2
6728      XLOWER=XMIN
6729      XUPPER=XMAX
6730      ICOUNT=0
6731  550 DX=XMID
6732      GOTO1000
6733  560 IF(PCALC.EQ.DP)GOTO570
6734      IF(PCALC.GT.DP)GOTO580
6735      XLOWER=XMID
6736      XMID=(XMID+XUPPER)/2.0D0
6737      GOTO590
6738  580 XUPPER=XMID
6739      XMID=(XMID+XLOWER)/2.0D0
6740  590 XDEL=XMID-XLOWER
6741      IF(XDEL.LT.0.0D0)XDEL=-XDEL
6742      ICOUNT=ICOUNT+1
6743      IF(XDEL.LT.0.0000000001D0.OR.ICOUNT.GT.100)GOTO570
6744      GOTO550
6745  570 PPF=2.0D0*XMID
6746      RETURN
6747C
6748C********************************************************************
6749C     THIS SECTION BELOW IS LOGICALLY SEPARATE FROM THE ABOVE.
6750C     THIS SECTION COMPUTES A CDF VALUE FOR ANY GIVEN TENTATIVE
6751C     PERCENT POINT X VALUE AS DEFINED IN EITHER OF THE 2
6752C     ITERATION LOOPS IN THE ABOVE CODE.
6753C
6754C     COMPUTE T-SUB-Q AS DEFINED ON PAGE 4 OF THE WILK, GNANADESIKAN,
6755C     AND HUYETT REFERENCE
6756C
6757 1000 SUM=1.0D0/DGAMMA
6758      TERM=1.0D0/DGAMMA
6759      CUT1=DX-DGAMMA
6760      CUT2=DX*10000000000.0D0
6761      DO700J=1,MAXIT
6762      AJ=J
6763      TERM=DX*TERM/(DGAMMA+AJ)
6764      SUM=SUM+TERM
6765      CUTOFF=CUT1+(CUT2*TERM/SUM)
6766      IF(AJ.GT.CUTOFF)GOTO750
6767  700 CONTINUE
6768      WRITE(ICOUT,705)MAXIT
6769      CALL DPWRST('XXX','BUG ')
6770      WRITE(ICOUT,706)P
6771      CALL DPWRST('XXX','BUG ')
6772      WRITE(ICOUT,707)NU
6773      CALL DPWRST('XXX','BUG ')
6774      WRITE(ICOUT,708)
6775      CALL DPWRST('XXX','BUG ')
6776      PPF=0.0
6777      RETURN
6778C
6779  750 T=SUM
6780      DLT=DLOG(T)
6781      DLX=DLOG(DX)
6782CCCCC WRITE(ICOUT,777)DX,DGAMMA,T,DLT,G,DLG
6783CC777 FORMAT('DX,DGAMMA,T,DLT,G,DLG = ',6D15.7)
6784CCCCC CALL DPWRST('XXX','BUG ')
6785CCCCC PCALC=(DX**DGAMMA)*(DEXP(-DX))*T/G
6786      DLPCAL=DGAMMA*DLX-DX+DLT-DLG
6787      PCALC=DEXP(DLPCAL)
6788      IF(ILOOP.EQ.1)GOTO360
6789      GOTO560
6790C
6791  705 FORMAT('*****ERROR IN INTERNAL OPERATIONS IN THE CHSPPF ',
6792     1'SUBROUTINE--THE NUMBER OF ITERATIONS EXCEEDS ',I7)
6793  706 FORMAT(33H     THE INPUT VALUE OF P     IS ,E15.8)
6794  707 FORMAT(33H     THE INPUT VALUE OF NU    IS ,I8)
6795  708 FORMAT(48H     THE OUTPUT VALUE OF PPF HAS BEEN SET TO 0.0)
6796C
6797 9000 CONTINUE
6798      RETURN
6799      END
6800      SUBROUTINE CHSRAN(N,ANU,ISEED,X)
6801C
6802C     PURPOSE--THIS SUBROUTINE GENERATES A RANDOM SAMPLE OF SIZE N
6803C              FROM THE CHI-SQUARED DISTRIBUTION
6804C              WITH INTEGER DEGREES OF FREEDOM PARAMETER = NU.
6805C     INPUT  ARGUMENTS--N      = THE DESIRED INTEGER NUMBER
6806C                                OF RANDOM NUMBERS TO BE
6807C                                GENERATED.
6808C                     --NU     = THE INTEGER DEGREES OF FREEDOM
6809C                                (PARAMETER) FOR THE CHI-SQUARED
6810C                                DISTRIBUTION.
6811C     OUTPUT ARGUMENTS--X      = A SINGLE PRECISION VECTOR
6812C                                (OF DIMENSION AT LEAST N)
6813C                                INTO WHICH THE GENERATED
6814C                                RANDOM SAMPLE WILL BE PLACED.
6815C     OUTPUT--A RANDOM SAMPLE OF SIZE N
6816C             FROM THE CHI-SQUARED DISTRIBUTION
6817C             WITH DEGREES OF FREEDOM PARAMETER = NU.
6818C     PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS.
6819C     RESTRICTIONS--THERE IS NO RESTRICTION ON THE MAXIMUM VALUE
6820C                   OF N FOR THIS SUBROUTINE.
6821C                 --NU SHOULD BE A POSITIVE INTEGER VARIABLE.
6822C     OTHER DATAPAC   SUBROUTINES NEEDED--UNIRAN.
6823C     FORTRAN LIBRARY SUBROUTINES NEEDED--LOG, SQRT, SIN, COS.
6824C     MODE OF INTERNAL OPERATIONS--SINGLE PRECISION.
6825C     LANGUAGE--ANSI FORTRAN (1977)
6826C     REFERENCES--TOCHER, THE ART OF SIMULATION,
6827C                 1963, PAGES 34-35.
6828C               --MOOD AND GRABLE, INTRODUCTION TO THE
6829C                 THEORY OF STATISTICS, 1963, PAGES 226-227.
6830C               --JOHNSON AND KOTZ, CONTINUOUS UNIVARIATE
6831C                 DISTRIBUTIONS--1, 1970, PAGE 171.
6832C               --HASTINGS AND PEACOCK, STATISTICAL
6833C                 DISTRIBUTIONS--A HANDBOOK FOR
6834C                 STUDENTS AND PRACTITIONERS, 1975,
6835C                 PAGE 48.
6836C     WRITTEN BY--JAMES J. FILLIBEN
6837C                 STATISTICAL ENGINEERING DIVISION
6838C                 INFORMATION TECHNOLOGY LABORATORY
6839C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
6840C                 GAITHERSBURG, MD 20899-8980
6841C                 PHONE--301-975-2855
6842C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
6843C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
6844C     LANGUAGE--ANSI FORTRAN (1977)
6845C     VERSION NUMBER--82/7
6846C     ORIGINAL VERSION--FEBRUARY  1975.
6847C     UPDATED         --SEPTEMBER 1975.
6848C     UPDATED         --NOVEMBER  1975.
6849C     UPDATED         --DECEMBER  1981.
6850C     UPDATED         --MAY       1982.
6851C     UPDATED         --MAY       2004. ALLOW REAL VALUES FOR DEGREES
6852C                                       OF FREEDOM PARAMETER
6853C
6854C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
6855C
6856C---------------------------------------------------------------------
6857C
6858      DIMENSION X(*)
6859      DIMENSION Y(2),Z(2)
6860C
6861      CHARACTER*4 ICASE
6862C
6863C---------------------------------------------------------------------
6864C
6865      INCLUDE 'DPCOP2.INC'
6866C
6867C-----DATA STATEMENTS-------------------------------------------------
6868C
6869      DATA PI/3.14159265359/
6870      DATA EPS/0.00001/
6871C
6872C-----START POINT-----------------------------------------------------
6873C
6874C     CHECK THE INPUT ARGUMENTS FOR ERRORS
6875C
6876      IF(N.LT.1)THEN
6877        WRITE(ICOUT,5)
6878        CALL DPWRST('XXX','BUG ')
6879        WRITE(ICOUT,47)N
6880        CALL DPWRST('XXX','BUG ')
6881        GOTO9000
6882      ENDIF
6883    5 FORMAT('***** ERROR--THE REQUESTED NUMBER OF CHI-SQUARE ',
6884     1'RANDOM NUMBERS IS NON-POSITIVE.')
6885      IF(ANU.LE.0.0)THEN
6886        WRITE(ICOUT,15)
6887        CALL DPWRST('XXX','BUG ')
6888        WRITE(ICOUT,48)ANU
6889        CALL DPWRST('XXX','BUG ')
6890        GOTO9000
6891      ENDIF
6892   15 FORMAT('***** ERROR--THE DEGREES OF FREEDOM PARAMETER FOR ',
6893     1'CHI-SQUARE RANDOM NUMBERS IS NON-POSITIVE.')
6894   47 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',I8)
6895   48 FORMAT('***** THE VALUE OF THE ARGUMENT IS ',G15.7)
6896C
6897      NU=INT(ANU+0.1)
6898      ANU2=REAL(NU)
6899      IF(ABS(ANU-ANU2).LE.EPS)THEN
6900        ICASE='INTE'
6901        IF(NU.EQ.0)THEN
6902          ICASE='REAL'
6903          ANU=EPS
6904        ENDIF
6905      ELSE
6906        ICASE='REAL'
6907      ENDIF
6908C
6909C     CASE 1: INTEGER DEGREES OF FREEDOM
6910C
6911      IF(ICASE.EQ.'INTE')THEN
6912C
6913C       GENERATE N CHI-SQUARED RANDOM NUMBERS
6914C       USING THE DEFINITION THAT
6915C       A CHI-SQUARED VARIATE WITH NU DEGREES OF FREEDOM
6916C       EQUALS THE SUM OF NU SQUARED NORMAL VARIATES.
6917C       FIRST GENERATE 2 UNIFORM (0,1) RANDOM NUMBERS,
6918C       THEN GENERATE 2 NORMAL RANDOM NUMBERS,
6919C       THEN FORM THE SUM OF SQUARED NORMAL RANDOM NUMBERS.
6920C
6921        DO100I=1,N
6922          SUM=0.0
6923          DO200J=1,NU,2
6924            CALL UNIRAN(2,ISEED,Y)
6925            ARG1=-2.0*LOG(Y(1))
6926            ARG2=2.0*PI*Y(2)
6927            Z(1)=(SQRT(ARG1))*(COS(ARG2))
6928            Z(2)=(SQRT(ARG1))*(SIN(ARG2))
6929            SUM=SUM+Z(1)*Z(1)
6930            IF(J.EQ.NU)GOTO200
6931            SUM=SUM+Z(2)*Z(2)
6932  200     CONTINUE
6933          X(I)=SUM
6934  100   CONTINUE
6935C
6936C     CASE 2: REAL DEGREES OF FREEDOM
6937C
6938C     GENERATE CHI-SQUARE RANDOM NUMBERS USING RELATIONSHIP
6939C     TO GAMMA DISTRIBUTION.
6940C
6941      ELSE
6942        GAMMA=ANU/2.0
6943        CALL GAMRAN(N,GAMMA,ISEED,X)
6944        DO300I=1,N
6945          X(I)=2.0*X(I)
6946  300   CONTINUE
6947C
6948      ENDIF
6949C
6950 9000 CONTINUE
6951      RETURN
6952      END
6953      SUBROUTINE CKARIT(IFOUNZ,IBEGIN,IANS,IWIDTH,ICASAR,
6954     1                  IBUGA3,ISUBRO)
6955C
6956C     PURPOSE--FOR THE LET COMMAND,
6957C              DETERMINE IF AN ARITHMETIC OPERATOR
6958C              EXISTS ANYWHERE FROM THE BEGINNING
6959C              OF THE COMMAND LINE TO SUBSET/EXCEPT/FOR OR END OF LINE.
6960C     WRITTEN BY--JAMES J. FILLIBEN
6961C                 STATISTICAL ENGINEERING DIVISION
6962C                 INFORMATION TECHNOLOGY LABORATORY
6963C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
6964C                 GAITHERSBURG, MD 20899-8980
6965C                 PHONE--301-975-2855
6966C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
6967C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
6968C     LANGUAGE--ANSI FORTRAN (1977)
6969C     VERSION NUMBER--89/1
6970C     ORIGINAL VERSION--JANUARY   1989.
6971C     UPDATED         --JULY      1989.  COMMENT OUT IERROR
6972C
6973C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
6974C
6975      CHARACTER*4 IFOUNZ
6976      CHARACTER*4 IANS
6977      CHARACTER*4 ICASAR
6978      CHARACTER*4 IBUGA3
6979      CHARACTER*4 ISUBRO
6980C
6981C---------------------------------------------------------------------
6982C
6983      INCLUDE 'DPCOPA.INC'
6984C
6985      DIMENSION IFOUNZ(*)
6986      DIMENSION IBEGIN(*)
6987      DIMENSION IANS(*)
6988C
6989C-----COMMON VARIABLES (GENERAL)--------------------------------------
6990C
6991      INCLUDE 'DPCOP2.INC'
6992C
6993C-----START POINT-----------------------------------------------------
6994C
6995      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'ARIT')THEN
6996        WRITE(ICOUT,999)
6997  999   FORMAT(1X)
6998        CALL DPWRST('XXX','BUG ')
6999        WRITE(ICOUT,51)
7000   51   FORMAT('***** AT THE BEGINNING OF DPARIT--')
7001        CALL DPWRST('XXX','BUG ')
7002        WRITE(ICOUT,52)IFOUNZ(11),IBEGIN(11),IFOUNZ(21),IBEGIN(21)
7003   52   FORMAT('IFOUNZ(11),IBEGIN(11),IFOUNZ(21),IBEGIN(21) = ',
7004     1         2(A4,I8))
7005        CALL DPWRST('XXX','BUG ')
7006        WRITE(ICOUT,61)IWIDTH
7007   61   FORMAT('IWIDTH = ',I8)
7008        CALL DPWRST('XXX','BUG ')
7009        IF(IWIDTH.GE.1)THEN
7010          WRITE(ICOUT,62)(IANS(I),I=1,MIN(80,IWIDTH))
7011   62     FORMAT('IANS(.) = ',80A1)
7012          CALL DPWRST('XXX','BUG ')
7013        ENDIF
7014      ENDIF
7015C
7016CCCCC THE FOLLOWING LINE WAS COMMENTED OUT JULY 1989
7017CCCCC IERROR='NO'
7018      ICASAR='NO'
7019C
7020      IMAX=IWIDTH
7021      IF(IFOUNZ(11).EQ.'YES')IMAX=IBEGIN(11)
7022      IF(IFOUNZ(21).EQ.'YES')IMAX=IBEGIN(21)
7023C
7024      IF(IMAX.LE.0)GOTO9000
7025      DO1100I=1,IMAX
7026      IF(IANS(I).EQ.'+')GOTO1150
7027      IF(IANS(I).EQ.'-')GOTO1150
7028      IF(IANS(I).EQ.'*')GOTO1150
7029      IF(IANS(I).EQ.'/')GOTO1150
7030 1100 CONTINUE
7031      ICASAR='NO'
7032      GOTO9000
7033 1150 CONTINUE
7034      ICASAR='YES'
7035      GOTO9000
7036C
7037C               *****************
7038C               **  STEP 90--  **
7039C               **  EXIT       **
7040C               *****************
7041C
7042 9000 CONTINUE
7043      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'ARIT')THEN
7044        WRITE(ICOUT,999)
7045        CALL DPWRST('XXX','BUG ')
7046        WRITE(ICOUT,9011)
7047 9011   FORMAT('***** AT THE END       OF DPARIT--')
7048        CALL DPWRST('XXX','BUG ')
7049        WRITE(ICOUT,9012)ICASAR
7050 9012   FORMAT('ICASAR = ',A4)
7051        CALL DPWRST('XXX','BUG ')
7052      ENDIF
7053C
7054      RETURN
7055      END
7056      SUBROUTINE CKCENS(TAG,XTEMP,N,IDIST,
7057     1                  ISUBRO,IBUGA3,IERROR)
7058C
7059C     PURPOSE--THIS ROUTINE CHECKS TO SEE IF THE INPUT VARIABLE
7060C              IS A VALID CENSORING VARIABLE.  IT SHOULD CONTAIN
7061C              AT MOST 2 DISTINCT VALUES.  THESE VALUES WILL
7062C              BE SET TO 0 AND 1 (IF THEY ARE NOT ALREADY).
7063C
7064C     WRITTEN BY--ALAN HECKERT
7065C                 STATISTICAL ENGINEERING DIVISION
7066C                 INFORMATION TECHNOLOGY LABORATORY
7067C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
7068C                 GAITHERSBURG, MD 20899-8980
7069C                 PHONE--301-975-2899
7070C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
7071C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
7072C     LANGUAGE--ANSI FORTRAN (1977)
7073C     VERSION NUMBER--2010/4
7074C     ORIGINAL VERSION--APRIL     2010. EXTRACTED AS A DISTINCT
7075C                                       SUBROUTINE
7076C
7077C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
7078C
7079      CHARACTER*40 IDIST
7080C
7081      CHARACTER*4 ISUBRO
7082      CHARACTER*4 IBUGA3
7083      CHARACTER*4 IERROR
7084C
7085      DIMENSION TAG(*)
7086      DIMENSION XTEMP(*)
7087C
7088      CHARACTER*4 IWRITE
7089      CHARACTER*4 ISUBN1
7090      CHARACTER*4 ISUBN2
7091C
7092      INCLUDE 'DPCOP2.INC'
7093C
7094C-----START POINT-----------------------------------------------------
7095C
7096      ISUBN1='CHKC'
7097      ISUBN2='EN  '
7098      IERROR='NO'
7099      IWRITE='OFF'
7100C
7101      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'CENS')THEN
7102        WRITE(ICOUT,999)
7103  999   FORMAT(1X)
7104        CALL DPWRST('XXX','WRIT')
7105        WRITE(ICOUT,51)
7106   51   FORMAT('**** AT THE BEGINNING OF CKCENS--')
7107        CALL DPWRST('XXX','WRIT')
7108        WRITE(ICOUT,55)N,IDIST
7109   55   FORMAT('N,IDIST = ',I8,2X,A40)
7110        CALL DPWRST('XXX','WRIT')
7111        DO56I=1,MIN(N,100)
7112          WRITE(ICOUT,57)I,TAG(I)
7113   57     FORMAT('I,TAG(I) = ',I8,G15.7)
7114          CALL DPWRST('XXX','WRIT')
7115   56   CONTINUE
7116      ENDIF
7117C
7118C               ******************************************
7119C               **  STEP 2--                            **
7120C               **  CHECK CENSORING VARIABLE            **
7121C               ******************************************
7122C
7123      CALL DISTIN(TAG,N,IWRITE,XTEMP,NDIST,IBUGA3,IERROR)
7124      IF(NDIST.EQ.1)THEN
7125        IF(XTEMP(1).NE.0.0 .AND. XTEMP(1).NE.1.0)THEN
7126          DO2102I=1,N
7127            TAG(I)=1.0
7128 2102     CONTINUE
7129        ENDIF
7130      ELSEIF(NDIST.EQ.2)THEN
7131        IF(XTEMP(1).EQ.1.0 .OR. XTEMP(2).EQ.1.0)THEN
7132          DO2103I=1,N
7133            IF(TAG(I).NE.1.0)TAG(I)=0.0
7134 2103     CONTINUE
7135        ELSE
7136          ATEMP1=MIN(XTEMP(1),XTEMP(2))
7137          ATEMP2=MAX(XTEMP(1),XTEMP(2))
7138          DO2108I=1,N
7139            IF(TAG(I).EQ.ATEMP1)TAG(I)=1.0
7140            IF(TAG(I).EQ.ATEMP2)TAG(I)=0.0
7141 2108     CONTINUE
7142        ENDIF
7143      ELSE
7144        WRITE(ICOUT,999)
7145        CALL DPWRST('XXX','BUG ')
7146        WRITE(ICOUT,2104)
7147 2104   FORMAT('***** ERROR IN CHECKING CENSORING VARIABLE--')
7148        CALL DPWRST('XXX','BUG ')
7149        WRITE(ICOUT,2105)
7150 2105   FORMAT('      FOR CENSORED DATA, THE CENSORING VARIABLE')
7151        CALL DPWRST('XXX','BUG ')
7152        WRITE(ICOUT,2106)
7153 2106   FORMAT('      SHOULD CONTAIN AT MOST TWO DISTINCT VALUES.')
7154        CALL DPWRST('XXX','BUG ')
7155        WRITE(ICOUT,2107)NDIST
7156 2107   FORMAT('      ',I8,' DISTINCT VALUES FOUND.')
7157        CALL DPWRST('XXX','BUG ')
7158        IERROR='YES'
7159        GOTO9000
7160      ENDIF
7161C
7162 9000 CONTINUE
7163      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'CENS')THEN
7164        WRITE(ICOUT,999)
7165        CALL DPWRST('XXX','WRIT')
7166        WRITE(ICOUT,9011)
7167 9011   FORMAT('**** AT THE END OF CKCENS--')
7168        CALL DPWRST('XXX','WRIT')
7169      ENDIF
7170C
7171      RETURN
7172      END
7173      SUBROUTINE CKDIST(Y,N,NMIN,QP,NPERC,ISUBRO,IBUGA3,IERROR)
7174C
7175C     PURPOSE--FOR THE DISTRIBUTIONAL FITTING ROUTINES, THIS
7176C              SUBROUTINE PERFORMS THE FOLLOWING ERROR CHECKS:
7177C
7178C                 1) IS THE MINIMUM NUMBER OF OBSERVATIONS
7179C                    AVAILABLE?
7180C
7181C                 2) ARE ALL ELEMENTS IN THE RESPONSE VARIABLE
7182C                    THE SAME?
7183C
7184C                 3) ARE THE REQUESTED PERCENTILES WITHIN RANGE?
7185C
7186C     WRITTEN BY--ALAN HECKERT
7187C                 STATISTICAL ENGINEERING DIVISION
7188C                 INFORMATION TECHNOLOGY LABORATORY
7189C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
7190C                 GAITHERSBURG, MD 20899-8980
7191C                 PHONE--301-975-2899
7192C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
7193C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
7194C     LANGUAGE--ANSI FORTRAN (1977)
7195C     VERSION NUMBER--2010/7
7196C     ORIGINAL VERSION--JULY      2010. EXTRACTED AS A SEPARATE
7197C                                       SUBROUTINE
7198C
7199C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
7200C
7201      DIMENSION Y(*)
7202      DIMENSION QP(*)
7203C
7204      CHARACTER*4 ISUBRO
7205      CHARACTER*4 IBUGA3
7206      CHARACTER*4 IERROR
7207C
7208      CHARACTER*4 IWRITE
7209C
7210      CHARACTER*4 ISUBN1
7211      CHARACTER*4 ISUBN2
7212      CHARACTER*4 ISTEPN
7213C
7214C---------------------------------------------------------------------
7215C
7216      INCLUDE 'DPCOP2.INC'
7217C
7218C-----START POINT-----------------------------------------------------
7219C
7220      ISUBN1='CKDI'
7221      ISUBN2='ST  '
7222C
7223      IERROR='NO'
7224      IWRITE='NO'
7225C
7226      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'DIST')THEN
7227        WRITE(ICOUT,999)
7228  999   FORMAT(1X)
7229        CALL DPWRST('XXX','WRIT')
7230        WRITE(ICOUT,51)
7231   51   FORMAT('**** AT THE BEGINNING OF CKDIST--')
7232        CALL DPWRST('XXX','WRIT')
7233        WRITE(ICOUT,52)IBUGA3,ISUBRO,N,Y(1)
7234   52   FORMAT('IBUGA3,ISUBRO,N,Y(1) = ',2(A4,2X),I8,G15.7)
7235        CALL DPWRST('XXX','WRIT')
7236      ENDIF
7237C
7238C               ********************************************
7239C               **  STEP 1--                              **
7240C               **  CHECK THE INPUT ARGUMENTS FOR ERRORS  **
7241C               ********************************************
7242C
7243      ISTEPN='1'
7244      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'DIST')
7245     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
7246C
7247      IF(N.LE.NMIN)THEN
7248        WRITE(ICOUT,999)
7249        CALL DPWRST('XXX','WRIT')
7250        WRITE(ICOUT,1111)
7251 1111   FORMAT('***** ERROR IN CKDIST--')
7252        CALL DPWRST('XXX','WRIT')
7253        WRITE(ICOUT,1113)NMIN
7254 1113   FORMAT('      THE NUMBER OF OBSERVATIONS FOR THE RESPONSE ',
7255     1         'VARIABLE IS LESS THAN ',I5,'.')
7256        CALL DPWRST('XXX','WRIT')
7257        WRITE(ICOUT,1115)N
7258 1115   FORMAT('      SAMPLE SIZE = ',I8)
7259        CALL DPWRST('XXX','WRIT')
7260        IERROR='YES'
7261        GOTO9000
7262      ENDIF
7263C
7264C     FOR MLE ESTIMATION, ALL RESPONSE VALUES THE SAME NOT
7265C     NECESSARILY AN ERROR (ESPECIALLY FOR DISCRETE DISTRIBUTIONS).
7266C
7267CCCCC HOLD=Y(1)
7268CCCCC DO1135I=2,N
7269CCCCC   IF(Y(I).NE.HOLD)GOTO1139
7270C1135 CONTINUE
7271CCCCC WRITE(ICOUT,999)
7272CCCCC CALL DPWRST('XXX','WRIT')
7273CCCCC WRITE(ICOUT,1111)
7274CCCCC CALL DPWRST('XXX','WRIT')
7275CCCCC WRITE(ICOUT,1133)HOLD
7276C1133 FORMAT('      THE RESPONSE VARIABLE HAS ALL ELEMENTS = ',G15.7)
7277CCCCC CALL DPWRST('XXX','WRIT')
7278CCCCC IERROR='YES'
7279CCCCC GOTO9000
7280C1139 CONTINUE
7281C
7282      IF(NPERC.GT.0)THEN
7283        DO1145I=1,NPERC
7284          IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
7285            WRITE(ICOUT,999)
7286            CALL DPWRST('XXX','WRIT')
7287            WRITE(ICOUT,1141)
7288 1141       FORMAT('***** WARNING IN CKDIST--')
7289            CALL DPWRST('XXX','WRIT')
7290            WRITE(ICOUT,1143)QP(I)
7291 1143       FORMAT('      REQUESTED PERCENTILE (',G15.7,') IS ',
7292     1             'OUTSIDE THE (0,100) INTERVAL')
7293            CALL DPWRST('XXX','WRIT')
7294            WRITE(ICOUT,1144)
7295 1144       FORMAT('      NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
7296     1             'COMPUTED.')
7297            CALL DPWRST('XXX','WRIT')
7298            NPERC=0
7299          ENDIF
7300 1145   CONTINUE
7301      ENDIF
7302C
7303 9000 CONTINUE
7304      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'DIST')THEN
7305        WRITE(ICOUT,999)
7306        CALL DPWRST('XXX','WRIT')
7307        WRITE(ICOUT,9011)
7308 9011   FORMAT('**** AT THE END OF CKDIST--')
7309        CALL DPWRST('XXX','WRIT')
7310      ENDIF
7311C
7312      RETURN
7313      END
7314      SUBROUTINE CKDIS2(Y,X,TEMP1,N,MAXGRP,NMIN,QP,NPERC,NTOT,
7315     1                  ISUBRO,IBUGA3,IERROR)
7316C
7317C     PURPOSE--FOR GROUPED DATA WHERE THE DATA ARE GIVEN AS EQUI-SPACED
7318C              BINS, THIS SUBROUTINE PERFORMS THE FOLLOWING ERROR CHECKS:
7319C
7320C                 1) IS THE MINIMUM NUMBER OF OBSERVATIONS
7321C                    AVAILABLE?
7322C
7323C                 2) ARE THE BIN MID-POINTS ALL DISTINCT?
7324C
7325C                 3) ARE THE BIN MID-POINTS SORTED?
7326C
7327C                 4) FOR MAXIMUM LIKELIHOOD CASE, CHECK THAT
7328C                    REQUESTED PERCENTILES ARE IN AN APPROPRIATE
7329C                    RANGE.
7330C
7331C              ALSO RETURN "NTOT" (THE TOTAL SAMPLE SIZE).
7332C
7333C     WRITTEN BY--ALAN HECKERT
7334C                 STATISTICAL ENGINEERING DIVISION
7335C                 INFORMATION TECHNOLOGY LABORATORY
7336C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
7337C                 GAITHERSBURG, MD 20899-8980
7338C                 PHONE--301-975-2899
7339C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
7340C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
7341C     LANGUAGE--ANSI FORTRAN (1977)
7342C     VERSION NUMBER--2010/8
7343C     ORIGINAL VERSION--AUGUST    2010. EXTRACTED AS A SEPARATE SUBROUTINE
7344C
7345C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
7346C
7347      DIMENSION Y(*)
7348      DIMENSION X(*)
7349      DIMENSION TEMP1(*)
7350      DIMENSION QP(*)
7351C
7352      CHARACTER*4 ISUBRO
7353      CHARACTER*4 IBUGA3
7354      CHARACTER*4 IERROR
7355C
7356      CHARACTER*4 IWRITE
7357C
7358      CHARACTER*4 ISUBN1
7359      CHARACTER*4 ISUBN2
7360      CHARACTER*4 ISTEPN
7361C
7362C---------------------------------------------------------------------
7363C
7364      INCLUDE 'DPCOP2.INC'
7365C
7366C-----START POINT-----------------------------------------------------
7367C
7368      ISUBN1='CKDI'
7369      ISUBN2='S2  '
7370C
7371      IERROR='NO'
7372      IWRITE='NO'
7373C
7374      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'DIS2')THEN
7375        WRITE(ICOUT,999)
7376  999   FORMAT(1X)
7377        CALL DPWRST('XXX','WRIT')
7378        WRITE(ICOUT,51)
7379   51   FORMAT('**** AT THE BEGINNING OF CKDIS2--')
7380        CALL DPWRST('XXX','WRIT')
7381        WRITE(ICOUT,52)IBUGA3,ISUBRO,N
7382   52   FORMAT('IBUGA3,ISUBRO,N = ',A4,2X,A4,2X,I8)
7383        CALL DPWRST('XXX','WRIT')
7384      ENDIF
7385C
7386C               ********************************************
7387C               **  STEP 1--                              **
7388C               **  CHECK THE INPUT ARGUMENTS FOR ERRORS  **
7389C               ********************************************
7390C
7391      ISTEPN='1'
7392      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'DIS2')
7393     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
7394C
7395C     CHECK THAT THERE ARE AT LEAST TWO GROUPS.
7396C
7397      IF(N.LE.1 .OR. N.GT.MAXGRP)THEN
7398        WRITE(ICOUT,999)
7399        CALL DPWRST('XXX','BUG ')
7400        WRITE(ICOUT,146)
7401  146   FORMAT('***** ERROR IN CKDIS2--')
7402        CALL DPWRST('XXX','BUG ')
7403        WRITE(ICOUT,147)
7404  147   FORMAT('      THE NUMBER OF GROUPS WAS LESS THAN OR EQUAL TO ',
7405     1         'ONE')
7406        CALL DPWRST('XXX','BUG ')
7407        WRITE(ICOUT,148)MAXGRP
7408  148   FORMAT('      OR GREATER THAN ',I8,'.')
7409        CALL DPWRST('XXX','BUG ')
7410        WRITE(ICOUT,149)N
7411  149   FORMAT('      THE ENTERED NUMBER OF OBSERVATIONS HERE = ',I8)
7412        CALL DPWRST('XXX','BUG ')
7413        WRITE(ICOUT,999)
7414        CALL DPWRST('XXX','BUG ')
7415        IERROR='YES'
7416        GOTO9000
7417      ENDIF
7418C
7419C     CHECK THAT THE BIN MID-POINTS ARE ALL DISTINCT
7420C
7421      CALL DISTIN(X,N,IWRITE,TEMP1,NDIST,IBUGA3,IERROR)
7422      IF(N.NE.NDIST)THEN
7423        WRITE(ICOUT,999)
7424        CALL DPWRST('XXX','BUG ')
7425        WRITE(ICOUT,146)
7426        CALL DPWRST('XXX','BUG ')
7427        WRITE(ICOUT,172)
7428  172   FORMAT('      THE CLASS VARIABLE ELEMENTS ARE NOT ALL ',
7429     1         'DISTINCT.')
7430        CALL DPWRST('XXX','BUG ')
7431        WRITE(ICOUT,999)
7432        CALL DPWRST('XXX','BUG ')
7433        IERROR='YES'
7434        GOTO9000
7435      ENDIF
7436C
7437C     CHECK THAT THE BIN MID-POINTS ARE IN SORTED ORDER
7438C
7439      DO183I=1,N-1
7440        IF(X(I).GE.X(I+1))THEN
7441          WRITE(ICOUT,999)
7442          CALL DPWRST('XXX','BUG ')
7443          WRITE(ICOUT,146)
7444          CALL DPWRST('XXX','BUG ')
7445          WRITE(ICOUT,182)I
7446  182     FORMAT('      ELEMENT ',I8,' OF THE BIN MID-POINTS ',
7447     1           'VARIABLE IS')
7448          CALL DPWRST('XXX','BUG ')
7449          WRITE(ICOUT,185)I+1
7450  185     FORMAT('      LARGER THAN ELEMENT ',I8)
7451          CALL DPWRST('XXX','BUG ')
7452          WRITE(ICOUT,999)
7453          CALL DPWRST('XXX','BUG ')
7454          IERROR='YES'
7455          GOTO9000
7456        ENDIF
7457  183 CONTINUE
7458C
7459C     CHECK THAT ALL FREQUENCIES ARE NON-NEGATIVE AND COMPUTE
7460C     TOTAL NUMBER OF OBSERVATIONS
7461C
7462      NTOT=0
7463      DO193I=1,N
7464        IF(Y(I).LT.0.0)THEN
7465          WRITE(ICOUT,999)
7466          CALL DPWRST('XXX','BUG ')
7467          WRITE(ICOUT,146)
7468          CALL DPWRST('XXX','BUG ')
7469          WRITE(ICOUT,192)I
7470  192     FORMAT('      THE FREQUENCY FOR ELEMENT ',I8,' IS NEGATIVE.')
7471          WRITE(ICOUT,999)
7472          CALL DPWRST('XXX','BUG ')
7473          WRITE(ICOUT,195)X(I)
7474  195     FORMAT('      BIN MID-POINT     = ',G15.7)
7475          CALL DPWRST('XXX','BUG ')
7476          WRITE(ICOUT,197)Y(I)
7477  197     FORMAT('      FREQUENCY         = ',G15.7)
7478          CALL DPWRST('XXX','BUG ')
7479          WRITE(ICOUT,999)
7480          CALL DPWRST('XXX','BUG ')
7481          IERROR='YES'
7482          GOTO9000
7483        ELSE
7484          ITEMP=INT(Y(I)+0.5)
7485          Y(I)=REAL(ITEMP)
7486          NTOT=NTOT+ITEMP
7487        ENDIF
7488  193 CONTINUE
7489C
7490      IF(NTOT.LE.NMIN)THEN
7491        WRITE(ICOUT,999)
7492        CALL DPWRST('XXX','BUG ')
7493        WRITE(ICOUT,146)
7494        CALL DPWRST('XXX','BUG ')
7495        WRITE(ICOUT,217)NTOT,NMIN
7496  217   FORMAT('      THE NUMBER OF OBSERVATIONS, (',I5,
7497     1         ') IS LESS THAN ',I5)
7498        CALL DPWRST('XXX','BUG ')
7499        WRITE(ICOUT,999)
7500        CALL DPWRST('XXX','BUG ')
7501        IERROR='YES'
7502        GOTO9000
7503      ENDIF
7504C
7505C     FOR MAXIMUM LIKELIHOOD ROUTINES, CHECK THAT REQUESTED
7506C     PERCENTILES ARE WITHIN RANGE
7507C
7508      IF(NPERC.GT.0)THEN
7509        DO1145I=1,NPERC
7510          IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
7511            WRITE(ICOUT,999)
7512            CALL DPWRST('XXX','WRIT')
7513            WRITE(ICOUT,1141)
7514 1141       FORMAT('***** WARNING IN CKDIS2--')
7515            CALL DPWRST('XXX','WRIT')
7516            WRITE(ICOUT,1143)QP(I)
7517 1143       FORMAT('      REQUESTED PERCENTILE (',G15.7,') IS ',
7518     1             'OUTSIDE THE (0,100) INTERVAL')
7519            CALL DPWRST('XXX','WRIT')
7520            WRITE(ICOUT,1144)
7521 1144       FORMAT('      NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
7522     1             'COMPUTED.')
7523            CALL DPWRST('XXX','WRIT')
7524            NPERC=0
7525          ENDIF
7526 1145   CONTINUE
7527      ENDIF
7528C
7529 9000 CONTINUE
7530      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'DIS2')THEN
7531        WRITE(ICOUT,999)
7532        CALL DPWRST('XXX','WRIT')
7533        WRITE(ICOUT,9011)
7534 9011   FORMAT('**** AT THE END OF CKDIS2--')
7535        CALL DPWRST('XXX','WRIT')
7536      ENDIF
7537C
7538      RETURN
7539      END
7540      SUBROUTINE CKDIS3(Y,X1,X2,TEMP1,N,MAXGRP,NMIN,QP,NPERC,NTOT,
7541     1                  ISUBRO,IBUGA3,IERROR)
7542C
7543C     PURPOSE--FOR GROUPED DATA WHERE THE DATA ARE GIVEN WITH
7544C              BIN LOWER BOUNDARIES AND BIN UPPER BOUNDARIES,
7545C              THIS SUBROUTINE PERFORMS THE FOLLOWING ERROR CHECKS:
7546C
7547C                 1) IS THE MINIMUM NUMBER OF OBSERVATIONS
7548C                    AVAILABLE?
7549C
7550C                 2) ARE THE BIN BOUNDARIES ALL DISTINCT?
7551C
7552C                 3) ARE THE BIN BOUNDARIES SORTED?
7553C
7554C                 4) FOR MAXIMUM LIKELIHOOD CASE, CHECK THAT
7555C                    REQUESTED PERCENTILES ARE IN AN APPROPRIATE
7556C                    RANGE.
7557C
7558C              ALSO RETURN "NTOT" (THE TOTAL SAMPLE SIZE).
7559C
7560C     WRITTEN BY--ALAN HECKERT
7561C                 STATISTICAL ENGINEERING DIVISION
7562C                 INFORMATION TECHNOLOGY LABORATORY
7563C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
7564C                 GAITHERSBURG, MD 20899-8980
7565C                 PHONE--301-975-2899
7566C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
7567C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
7568C     LANGUAGE--ANSI FORTRAN (1977)
7569C     VERSION NUMBER--2010/8
7570C     ORIGINAL VERSION--AUGUST    2010. EXTRACTED AS A SEPARATE SUBROUTINE
7571C
7572C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
7573C
7574      DIMENSION Y(*)
7575      DIMENSION X1(*)
7576      DIMENSION X2(*)
7577      DIMENSION TEMP1(*)
7578      DIMENSION QP(*)
7579C
7580      CHARACTER*4 ISUBRO
7581      CHARACTER*4 IBUGA3
7582      CHARACTER*4 IERROR
7583C
7584      CHARACTER*4 IWRITE
7585C
7586      CHARACTER*4 ISUBN1
7587      CHARACTER*4 ISUBN2
7588      CHARACTER*4 ISTEPN
7589C
7590C---------------------------------------------------------------------
7591C
7592      INCLUDE 'DPCOP2.INC'
7593C
7594C-----START POINT-----------------------------------------------------
7595C
7596      ISUBN1='CKDI'
7597      ISUBN2='S3  '
7598C
7599      IERROR='NO'
7600      IWRITE='NO'
7601C
7602      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'DIS3')THEN
7603        WRITE(ICOUT,999)
7604  999   FORMAT(1X)
7605        CALL DPWRST('XXX','WRIT')
7606        WRITE(ICOUT,51)
7607   51   FORMAT('**** AT THE BEGINNING OF CKDIS3--')
7608        CALL DPWRST('XXX','WRIT')
7609        WRITE(ICOUT,52)IBUGA3,ISUBRO,N
7610   52   FORMAT('IBUGA3,ISUBRO,N = ',A4,2X,A4,2X,I8)
7611        CALL DPWRST('XXX','WRIT')
7612      ENDIF
7613C
7614C               ********************************************
7615C               **  STEP 1--                              **
7616C               **  CHECK THE INPUT ARGUMENTS FOR ERRORS  **
7617C               ********************************************
7618C
7619      ISTEPN='1'
7620      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'DIS3')
7621     1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
7622C
7623C     CHECK THAT THERE ARE AT LEAST TWO GROUPS.
7624C
7625      IF(N.LE.1)THEN
7626        WRITE(ICOUT,999)
7627        CALL DPWRST('XXX','BUG ')
7628        WRITE(ICOUT,146)
7629  146   FORMAT('***** ERROR IN CKDIS3--')
7630        CALL DPWRST('XXX','BUG ')
7631        WRITE(ICOUT,147)
7632  147   FORMAT('      THE NUMBER OF GROUPS WAS LESS THAN OR EQUAL TO ',
7633     1         'ONE')
7634        CALL DPWRST('XXX','BUG ')
7635        WRITE(ICOUT,148)MAXGRP
7636  148   FORMAT('      OR GREATER THAN ',I8,'.')
7637        CALL DPWRST('XXX','BUG ')
7638        WRITE(ICOUT,149)N
7639  149   FORMAT('      THE ENTERED NUMBER OF OBSERVATIONS HERE = ',I8)
7640        CALL DPWRST('XXX','BUG ')
7641        WRITE(ICOUT,999)
7642        CALL DPWRST('XXX','BUG ')
7643        IERROR='YES'
7644        GOTO9000
7645      ENDIF
7646C
7647C     CHECK THAT THE BIN BOUNDARIES ARE ALL DISTINCT
7648C
7649      CALL DISTIN(X1,N,IWRITE,TEMP1,NDIST,IBUGA3,IERROR)
7650      IF(N.NE.NDIST)THEN
7651        WRITE(ICOUT,999)
7652        CALL DPWRST('XXX','BUG ')
7653        WRITE(ICOUT,146)
7654        CALL DPWRST('XXX','BUG ')
7655        WRITE(ICOUT,172)
7656  172   FORMAT('      THE BIN LOWER LIMITS ARE NOT ALL DISTINCT.')
7657        CALL DPWRST('XXX','BUG ')
7658        WRITE(ICOUT,999)
7659        CALL DPWRST('XXX','BUG ')
7660        IERROR='YES'
7661        GOTO9000
7662      ENDIF
7663C
7664      CALL DISTIN(X2,N,IWRITE,TEMP1,NDIST,IBUGA3,IERROR)
7665      IF(N.NE.NDIST)THEN
7666        WRITE(ICOUT,999)
7667        CALL DPWRST('XXX','BUG ')
7668        WRITE(ICOUT,146)
7669        CALL DPWRST('XXX','BUG ')
7670        WRITE(ICOUT,177)
7671  177   FORMAT('      THE BIN UPPER LIMITS ARE NOT ALL DISTINCT.')
7672        CALL DPWRST('XXX','BUG ')
7673        WRITE(ICOUT,999)
7674        CALL DPWRST('XXX','BUG ')
7675        IERROR='YES'
7676        GOTO9000
7677      ENDIF
7678C
7679C     CHECK THAT LOWER LIMIT IS LESS THAN UPPER LIMIT
7680C
7681      DO181I=1,N
7682        IF(X1(I).GE.X2(I))THEN
7683          WRITE(ICOUT,999)
7684          CALL DPWRST('XXX','BUG ')
7685          WRITE(ICOUT,146)
7686          CALL DPWRST('XXX','BUG ')
7687          WRITE(ICOUT,186)I
7688  186     FORMAT('      FOR BIN ',I8,', THE LOWER CLASS LIMIT IS ',
7689     1           'GREATER THAN THE UPPER CLASS LIMIT.')
7690          CALL DPWRST('XXX','BUG ')
7691          WRITE(ICOUT,187)X1(I)
7692  187     FORMAT('      LOWER LIMIT   = ',G15.7)
7693          CALL DPWRST('XXX','BUG ')
7694          WRITE(ICOUT,188)X2(I)
7695  188     FORMAT('      UPPER LIMIT   = ',G15.7)
7696          CALL DPWRST('XXX','BUG ')
7697          WRITE(ICOUT,999)
7698          CALL DPWRST('XXX','BUG ')
7699          IERROR='YES'
7700          GOTO9000
7701        ENDIF
7702  181 CONTINUE
7703C
7704C     CHECK THAT BIN LIMITS ARE IN SORTED ORDER
7705C
7706      DO191I=1,N-1
7707        IF(X1(I).GE.X1(I+1))THEN
7708          WRITE(ICOUT,999)
7709          CALL DPWRST('XXX','BUG ')
7710          WRITE(ICOUT,146)
7711          CALL DPWRST('XXX','BUG ')
7712          WRITE(ICOUT,192)I
7713  192     FORMAT('      ELEMENT ',I8,' OF THE BIN LOWER CLASS ',
7714     1           'LIMITS VARIABLE IS')
7715          CALL DPWRST('XXX','BUG ')
7716          WRITE(ICOUT,193)I+1
7717  193     FORMAT('      LARGER THAN ELEMENT ',I8)
7718          CALL DPWRST('XXX','BUG ')
7719          WRITE(ICOUT,999)
7720          IERROR='YES'
7721          GOTO9000
7722        ENDIF
7723  191 CONTINUE
7724C
7725      DO196I=1,N-1
7726        IF(X2(I).GE.X2(I+1))THEN
7727          WRITE(ICOUT,999)
7728          CALL DPWRST('XXX','BUG ')
7729          WRITE(ICOUT,146)
7730          CALL DPWRST('XXX','BUG ')
7731          WRITE(ICOUT,197)I
7732  197     FORMAT('      ELEMENT ',I8,' OF THE BIN UPPER CLASS ',
7733     1           'LIMITS VARIABLE IS')
7734          CALL DPWRST('XXX','BUG ')
7735          WRITE(ICOUT,198)I+1
7736  198     FORMAT('      LARGER THAN ELEMENT ',I8)
7737          CALL DPWRST('XXX','BUG ')
7738          WRITE(ICOUT,999)
7739          IERROR='YES'
7740          GOTO9000
7741        ENDIF
7742  196 CONTINUE
7743C
7744C     CHECK THAT ALL FREQUENCIES ARE NON-NEGATIVE AND COMPUTE
7745C     TOTAL NUMBER OF OBSERVATIONS
7746C
7747      NTOT=0
7748      DO203I=1,N
7749        IF(Y(I).LT.0.0)THEN
7750          WRITE(ICOUT,999)
7751          CALL DPWRST('XXX','BUG ')
7752          WRITE(ICOUT,146)
7753          CALL DPWRST('XXX','BUG ')
7754          WRITE(ICOUT,202)I
7755  202     FORMAT('      THE FREQUENCY FOR ELEMENT ',I8,' IS NEGATIVE.')
7756          WRITE(ICOUT,999)
7757          CALL DPWRST('XXX','BUG ')
7758          WRITE(ICOUT,205)X1(I)
7759  205     FORMAT('      BIN LOWER LIMIT   = ',G15.7)
7760          CALL DPWRST('XXX','BUG ')
7761          WRITE(ICOUT,206)X2(I)
7762  206     FORMAT('      BIN UPPER LIMIT   = ',G15.7)
7763          CALL DPWRST('XXX','BUG ')
7764          WRITE(ICOUT,207)Y(I)
7765  207     FORMAT('      FREQUENCY         = ',G15.7)
7766          CALL DPWRST('XXX','BUG ')
7767          WRITE(ICOUT,999)
7768          CALL DPWRST('XXX','BUG ')
7769          IERROR='YES'
7770          GOTO9000
7771        ELSE
7772          ITEMP=INT(Y(I)+0.5)
7773          Y(I)=REAL(ITEMP)
7774          NTOT=NTOT+ITEMP
7775        ENDIF
7776  203 CONTINUE
7777C
7778      IF(NTOT.LE.NMIN)THEN
7779        WRITE(ICOUT,999)
7780        CALL DPWRST('XXX','BUG ')
7781        WRITE(ICOUT,146)
7782        CALL DPWRST('XXX','BUG ')
7783        WRITE(ICOUT,217)NTOT,NMIN
7784  217   FORMAT('      THE NUMBER OF OBSERVATIONS, (',I5,
7785     1         ') IS LESS THAN ',I5)
7786        CALL DPWRST('XXX','BUG ')
7787        WRITE(ICOUT,999)
7788        CALL DPWRST('XXX','BUG ')
7789        IERROR='YES'
7790        GOTO9000
7791      ENDIF
7792C
7793C     FOR MAXIMUM LIKELIHOOD ROUTINES, CHECK THAT REQUESTED
7794C     PERCENTILES ARE WITHIN RANGE
7795C
7796      IF(NPERC.GT.0)THEN
7797        DO1145I=1,NPERC
7798          IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
7799            WRITE(ICOUT,999)
7800            CALL DPWRST('XXX','WRIT')
7801            WRITE(ICOUT,1141)
7802 1141       FORMAT('***** WARNING IN CKDIS3--')
7803            CALL DPWRST('XXX','WRIT')
7804            WRITE(ICOUT,1143)QP(I)
7805 1143       FORMAT('      REQUESTED PERCENTILE (',G15.7,') IS ',
7806     1             'OUTSIDE THE (0,100) INTERVAL')
7807            CALL DPWRST('XXX','WRIT')
7808            WRITE(ICOUT,1144)
7809 1144       FORMAT('      NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
7810     1             'COMPUTED.')
7811            CALL DPWRST('XXX','WRIT')
7812            NPERC=0
7813          ENDIF
7814 1145   CONTINUE
7815      ENDIF
7816C
7817 9000 CONTINUE
7818      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'DIS3')THEN
7819        WRITE(ICOUT,999)
7820        CALL DPWRST('XXX','WRIT')
7821        WRITE(ICOUT,9011)
7822 9011   FORMAT('**** AT THE END OF CKDIS3--')
7823        CALL DPWRST('XXX','WRIT')
7824      ENDIF
7825C
7826      RETURN
7827      END
7828      SUBROUTINE CKCPMA(ENGUSL,ENGLSL,TARGET,IBUGG3,ISUBRO,IERROR)
7829C
7830C     PURPOSE--CHECK THE PARAMETERS NEEDED
7831C              FOR THE CPM STATISTIC.
7832
7833C     WRITTEN BY--JAMES J. FILLIBEN
7834C                 STATISTICAL ENGINEERING DIVISION
7835C                 INFORMATION TECHNOLOGY LABORATORY
7836C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
7837C                 GAITHERSBURG, MD 20899-8980
7838C                 PHONE--301-975-2855
7839C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
7840C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
7841C     LANGUAGE--ANSI FORTRAN (1977)
7842C     VERSION NUMBER--98/11
7843C     ORIGINAL VERSION--NOVEMBER  1998.
7844C
7845C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
7846C
7847      CHARACTER*4 IBUGG3
7848      CHARACTER*4 ISUBRO
7849      CHARACTER*4 IERROR
7850C
7851      CHARACTER*4 IHP
7852      CHARACTER*4 IHP2
7853      CHARACTER*4 IHWUSE
7854      CHARACTER*4 MESSAG
7855C
7856      CHARACTER*4 ISUBN1
7857      CHARACTER*4 ISUBN2
7858C
7859C---------------------------------------------------------------------
7860C
7861C-----COMMON----------------------------------------------------------
7862C
7863      INCLUDE 'DPCOPA.INC'
7864      INCLUDE 'DPCOHK.INC'
7865C
7866C-----COMMON VARIABLES (GENERAL)--------------------------------------
7867C
7868      INCLUDE 'DPCOP2.INC'
7869C
7870C-----START POINT-----------------------------------------------------
7871C
7872      ISUBN1='CKCP'
7873      ISUBN2='MA  '
7874C
7875      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'CPMA')GOTO90
7876      WRITE(ICOUT,999)
7877  999 FORMAT(1X)
7878      CALL DPWRST('XXX','BUG ')
7879      WRITE(ICOUT,51)
7880   51 FORMAT('***** AT THE BEGINNING OF CKCPMA--')
7881      CALL DPWRST('XXX','BUG ')
7882      WRITE(ICOUT,52)IBUGG3,ISUBRO,IERROR
7883   52 FORMAT('IBUGG3,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
7884      CALL DPWRST('XXX','BUG ')
7885   90 CONTINUE
7886C
7887C     --------------------------
7888C
7889      IHP='USL '
7890      IHP2='    '
7891      IHWUSE='P'
7892      MESSAG='NO'
7893      CALL CHECKN(IHP,IHP2,IHWUSE,
7894     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
7895     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
7896      IF(IERROR.EQ.'YES')GOTO1110
7897      ENGUSL=VALUE(ILOCP)
7898      GOTO1119
7899C
7900 1110 CONTINUE
7901      WRITE(ICOUT,999)
7902      CALL DPWRST('XXX','BUG ')
7903      WRITE(ICOUT,1111)
7904 1111 FORMAT('***** ERROR IN CKCPMA--')
7905      CALL DPWRST('XXX','BUG ')
7906      WRITE(ICOUT,1112)
7907 1112 FORMAT('      IN COMPUTING THE CPM,')
7908      CALL DPWRST('XXX','BUG ')
7909      WRITE(ICOUT,1114)
7910 1114 FORMAT('      THE VALUE OF THE UPPER SPEC LIMIT')
7911      CALL DPWRST('XXX','BUG ')
7912      WRITE(ICOUT,1115)
7913 1115 FORMAT('      (PARAMETER USL) MUST BE PRE-DEFINED.')
7914      CALL DPWRST('XXX','BUG ')
7915      WRITE(ICOUT,1116)
7916 1116 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE USL,')
7917      CALL DPWRST('XXX','BUG ')
7918      WRITE(ICOUT,1117)
7919 1117 FORMAT('      AS IN         LET USL = 1100')
7920      CALL DPWRST('XXX','BUG ')
7921      IERROR='YES'
7922      GOTO9000
7923 1119 CONTINUE
7924C
7925C     --------------------------
7926C
7927      IHP='LSL '
7928      IHP2='    '
7929      IHWUSE='P'
7930      MESSAG='NO'
7931      CALL CHECKN(IHP,IHP2,IHWUSE,
7932     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
7933     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
7934      IF(IERROR.EQ.'YES')GOTO2110
7935      ENGLSL=VALUE(ILOCP)
7936      GOTO2119
7937C
7938 2110 CONTINUE
7939      WRITE(ICOUT,999)
7940      CALL DPWRST('XXX','BUG ')
7941      WRITE(ICOUT,2111)
7942 2111 FORMAT('***** ERROR IN CKCPMA--')
7943      CALL DPWRST('XXX','BUG ')
7944      WRITE(ICOUT,2112)
7945 2112 FORMAT('      IN COMPUTING THE CPM STATISTIC,')
7946      CALL DPWRST('XXX','BUG ')
7947      WRITE(ICOUT,2114)
7948 2114 FORMAT('      THE VALUE OF THE LOWER SPEC LIMIT')
7949      CALL DPWRST('XXX','BUG ')
7950      WRITE(ICOUT,2115)
7951 2115 FORMAT('      (PARAMETER LSL) MUST BE PRE-DEFINED.')
7952      CALL DPWRST('XXX','BUG ')
7953      WRITE(ICOUT,2116)
7954 2116 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE LSL,')
7955      CALL DPWRST('XXX','BUG ')
7956      WRITE(ICOUT,2117)
7957 2117 FORMAT('      AS IN         LET LSL = 900')
7958      CALL DPWRST('XXX','BUG ')
7959      IERROR='YES'
7960      GOTO9000
7961 2119 CONTINUE
7962C
7963C     --------------------------
7964C
7965      IHP='TARG'
7966      IHP2='ET  '
7967      IHWUSE='P'
7968      MESSAG='NO'
7969      CALL CHECKN(IHP,IHP2,IHWUSE,
7970     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
7971     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
7972      IF(IERROR.EQ.'YES')GOTO3110
7973      TARGET=VALUE(ILOCP)
7974      GOTO3119
7975C
7976 3110 CONTINUE
7977      WRITE(ICOUT,999)
7978      CALL DPWRST('XXX','BUG ')
7979      WRITE(ICOUT,3111)
7980 3111 FORMAT('***** ERROR IN CKCPMA--')
7981      CALL DPWRST('XXX','BUG ')
7982      WRITE(ICOUT,3112)
7983 3112 FORMAT('      IN COMPUTING THE CPM STATISTIC,')
7984      CALL DPWRST('XXX','BUG ')
7985      WRITE(ICOUT,3114)
7986 3114 FORMAT('      THE VALUE OF THE TARGET SPEC LIMIT')
7987      CALL DPWRST('XXX','BUG ')
7988      WRITE(ICOUT,3115)
7989 3115 FORMAT('      (PARAMETER TARGET) MUST BE PRE-DEFINED.')
7990      CALL DPWRST('XXX','BUG ')
7991      WRITE(ICOUT,3116)
7992 3116 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE TARGET,')
7993      CALL DPWRST('XXX','BUG ')
7994      WRITE(ICOUT,3117)
7995 3117 FORMAT('      AS IN         LET TARGET = 10000')
7996      CALL DPWRST('XXX','BUG ')
7997      IERROR='YES'
7998      GOTO9000
7999 3119 CONTINUE
8000C
8001C     --------------------------
8002C
8003      IF(ENGLSL.LT.ENGUSL)GOTO4129
8004      WRITE(ICOUT,999)
8005      CALL DPWRST('XXX','BUG ')
8006      WRITE(ICOUT,4111)
8007 4111 FORMAT('***** ERROR IN CKCPMA--')
8008      CALL DPWRST('XXX','BUG ')
8009      WRITE(ICOUT,4112)
8010 4112 FORMAT('      IN COMPUTING THE CPM STATISTIC,')
8011      CALL DPWRST('XXX','BUG ')
8012      WRITE(ICOUT,4114)
8013 4114 FORMAT('      THE VALUE OF THE LOWER SPEC LIMIT')
8014      CALL DPWRST('XXX','BUG ')
8015      WRITE(ICOUT,4115)
8016 4115 FORMAT('      (PARAMETER LSL) MUST BE STRICTLY')
8017      CALL DPWRST('XXX','BUG ')
8018      WRITE(ICOUT,4116)
8019 4116 FORMAT('      LESS THAN THE VALUE OF THE')
8020      CALL DPWRST('XXX','BUG ')
8021      WRITE(ICOUT,4117)
8022 4117 FORMAT('      UPPER SPEC LIMIT (PARAMETER USL).')
8023      CALL DPWRST('XXX','BUG ')
8024      WRITE(ICOUT,4118)
8025 4118 FORMAT('      SUCH WAS NOT THE CASE HERE.')
8026      CALL DPWRST('XXX','BUG ')
8027      WRITE(ICOUT,4119)ENGLSL
8028 4119 FORMAT('            LSL = ',E15.7)
8029      CALL DPWRST('XXX','BUG ')
8030      WRITE(ICOUT,4120)ENGUSL
8031 4120 FORMAT('            USL = ',E15.7)
8032      CALL DPWRST('XXX','BUG ')
8033      IERROR='YES'
8034      GOTO9000
8035 4129 CONTINUE
8036C
8037C               ******************
8038C               **   STEP 90--  **
8039C               **   EXIT       **
8040C               ******************
8041C
8042 9000 CONTINUE
8043      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'ELPA')GOTO9090
8044      WRITE(ICOUT,999)
8045      CALL DPWRST('XXX','BUG ')
8046      WRITE(ICOUT,9011)
8047 9011 FORMAT('***** AT THE END       OF CKCPMA--')
8048      CALL DPWRST('XXX','BUG ')
8049      WRITE(ICOUT,9012)IBUGG3,ISUBRO,IERROR
8050 9012 FORMAT('IBUGG3,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
8051      CALL DPWRST('XXX','BUG ')
8052      WRITE(ICOUT,9013)ENGUSL,ENGLSL,TARGET
8053 9013 FORMAT('ENGUSL,ENGLSL,TARGET = ',3E15.7)
8054      CALL DPWRST('XXX','BUG ')
8055 9090 CONTINUE
8056C
8057      RETURN
8058      END
8059      SUBROUTINE CKCPPA(ENGUSL,ENGLSL,IBUGG3,ISUBRO,IERROR)
8060C
8061C     PURPOSE--CHECK THE PARAMETERS NEEDED
8062C              FOR THE CP STATISTIC,
8063C              FOR THE CPK STATISTIC, AND
8064C              FOR THE PERCENT DEFECTIVE STATISTIC..
8065
8066C     WRITTEN BY--JAMES J. FILLIBEN
8067C                 STATISTICAL ENGINEERING DIVISION
8068C                 INFORMATION TECHNOLOGY LABORATORY
8069C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
8070C                 GAITHERSBURG, MD 20899-8980
8071C                 PHONE--301-975-2855
8072C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
8073C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
8074C     LANGUAGE--ANSI FORTRAN (1977)
8075C     VERSION NUMBER--89/6
8076C     ORIGINAL VERSION--MAY       1988.
8077C
8078C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
8079C
8080      CHARACTER*4 IBUGG3
8081      CHARACTER*4 ISUBRO
8082      CHARACTER*4 IERROR
8083C
8084      CHARACTER*4 IHP
8085      CHARACTER*4 IHP2
8086      CHARACTER*4 IHWUSE
8087      CHARACTER*4 MESSAG
8088CCCCC CHARACTER*4 IWRITE
8089C
8090      CHARACTER*4 ISUBN1
8091      CHARACTER*4 ISUBN2
8092CCCCC CHARACTER*4 ISTEPN
8093C
8094C---------------------------------------------------------------------
8095C
8096C-----COMMON----------------------------------------------------------
8097C
8098      INCLUDE 'DPCOPA.INC'
8099      INCLUDE 'DPCOHK.INC'
8100C
8101C-----COMMON VARIABLES (GENERAL)--------------------------------------
8102C
8103      INCLUDE 'DPCOP2.INC'
8104C
8105C-----START POINT-----------------------------------------------------
8106C
8107      ISUBN1='CKCP'
8108      ISUBN2='PA  '
8109C
8110      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'CPPA')GOTO90
8111      WRITE(ICOUT,999)
8112  999 FORMAT(1X)
8113      CALL DPWRST('XXX','BUG ')
8114      WRITE(ICOUT,51)
8115   51 FORMAT('***** AT THE BEGINNING OF CKCPPA--')
8116      CALL DPWRST('XXX','BUG ')
8117      WRITE(ICOUT,52)IBUGG3,ISUBRO,IERROR
8118   52 FORMAT('IBUGG3,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
8119      CALL DPWRST('XXX','BUG ')
8120   90 CONTINUE
8121C
8122C     --------------------------
8123C
8124      IHP='USL '
8125      IHP2='    '
8126      IHWUSE='P'
8127      MESSAG='NO'
8128      CALL CHECKN(IHP,IHP2,IHWUSE,
8129     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
8130     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
8131      IF(IERROR.EQ.'YES')GOTO1110
8132      ENGUSL=VALUE(ILOCP)
8133      GOTO1119
8134C
8135 1110 CONTINUE
8136      WRITE(ICOUT,999)
8137      CALL DPWRST('XXX','BUG ')
8138      WRITE(ICOUT,1111)
8139 1111 FORMAT('***** ERROR IN CKCPPA--')
8140      CALL DPWRST('XXX','BUG ')
8141      WRITE(ICOUT,1112)
8142 1112 FORMAT('      IN COMPUTING THE CP, THE CPK,')
8143      CALL DPWRST('XXX','BUG ')
8144      WRITE(ICOUT,1113)
8145 1113 FORMAT('      AND THE PERCENT DEFECTIVE STATISTICS,')
8146      CALL DPWRST('XXX','BUG ')
8147      WRITE(ICOUT,1114)
8148 1114 FORMAT('      THE VALUE OF THE UPPER SPEC LIMIT')
8149      CALL DPWRST('XXX','BUG ')
8150      WRITE(ICOUT,1115)
8151 1115 FORMAT('      (PARAMETER USL) MUST BE PRE-DEFINED.')
8152      CALL DPWRST('XXX','BUG ')
8153      WRITE(ICOUT,1116)
8154 1116 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE USL,')
8155      CALL DPWRST('XXX','BUG ')
8156      WRITE(ICOUT,1117)
8157 1117 FORMAT('      AS IN         LET USL = 1100')
8158      CALL DPWRST('XXX','BUG ')
8159      IERROR='YES'
8160      GOTO9000
8161 1119 CONTINUE
8162C
8163C     --------------------------
8164C
8165      IHP='LSL '
8166      IHP2='    '
8167      IHWUSE='P'
8168      MESSAG='NO'
8169      CALL CHECKN(IHP,IHP2,IHWUSE,
8170     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
8171     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
8172      IF(IERROR.EQ.'YES')GOTO2110
8173      ENGLSL=VALUE(ILOCP)
8174      GOTO2119
8175C
8176 2110 CONTINUE
8177      WRITE(ICOUT,999)
8178      CALL DPWRST('XXX','BUG ')
8179      WRITE(ICOUT,2111)
8180 2111 FORMAT('***** ERROR IN CKCPPA--')
8181      CALL DPWRST('XXX','BUG ')
8182      WRITE(ICOUT,2112)
8183 2112 FORMAT('      IN COMPUTING THE CP, THE CPK,')
8184      CALL DPWRST('XXX','BUG ')
8185      WRITE(ICOUT,2113)
8186 2113 FORMAT('      AND THE PERCENT DEFECTIVE STATISTICS,')
8187      CALL DPWRST('XXX','BUG ')
8188      WRITE(ICOUT,2114)
8189 2114 FORMAT('      THE VALUE OF THE LOWER SPEC LIMIT')
8190      CALL DPWRST('XXX','BUG ')
8191      WRITE(ICOUT,2115)
8192 2115 FORMAT('      (PARAMETER LSL) MUST BE PRE-DEFINED.')
8193      CALL DPWRST('XXX','BUG ')
8194      WRITE(ICOUT,2116)
8195 2116 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE LSL,')
8196      CALL DPWRST('XXX','BUG ')
8197      WRITE(ICOUT,2117)
8198 2117 FORMAT('      AS IN         LET LSL = 900')
8199      CALL DPWRST('XXX','BUG ')
8200      IERROR='YES'
8201      GOTO9000
8202 2119 CONTINUE
8203C
8204C     --------------------------
8205C
8206      IF(ENGLSL.LT.ENGUSL)GOTO3129
8207      WRITE(ICOUT,999)
8208      CALL DPWRST('XXX','BUG ')
8209      WRITE(ICOUT,3111)
8210 3111 FORMAT('***** ERROR IN CKCPPA--')
8211      CALL DPWRST('XXX','BUG ')
8212      WRITE(ICOUT,3112)
8213 3112 FORMAT('      IN COMPUTING THE CP, THE CPK,')
8214      CALL DPWRST('XXX','BUG ')
8215      WRITE(ICOUT,3113)
8216 3113 FORMAT('      AND THE PERCENT DEFECTIVE STATISTICS,')
8217      CALL DPWRST('XXX','BUG ')
8218      WRITE(ICOUT,3114)
8219 3114 FORMAT('      THE VALUE OF THE LOWER SPEC LIMIT')
8220      CALL DPWRST('XXX','BUG ')
8221      WRITE(ICOUT,3115)
8222 3115 FORMAT('      (PARAMETER LSL) MUST BE STRICTLY')
8223      CALL DPWRST('XXX','BUG ')
8224      WRITE(ICOUT,3116)
8225 3116 FORMAT('      LESS THAN THE VALUE OF THE')
8226      CALL DPWRST('XXX','BUG ')
8227      WRITE(ICOUT,3117)
8228 3117 FORMAT('      UPPER SPEC LIMIT (PARAMETER USL).')
8229      CALL DPWRST('XXX','BUG ')
8230      WRITE(ICOUT,3118)
8231 3118 FORMAT('      SUCH WAS NOT THE CASE HERE.')
8232      CALL DPWRST('XXX','BUG ')
8233      WRITE(ICOUT,3119)ENGLSL
8234 3119 FORMAT('            LSL = ',E15.7)
8235      CALL DPWRST('XXX','BUG ')
8236      WRITE(ICOUT,3120)ENGUSL
8237 3120 FORMAT('            USL = ',E15.7)
8238      CALL DPWRST('XXX','BUG ')
8239      IERROR='YES'
8240      GOTO9000
8241 3129 CONTINUE
8242C
8243C               ******************
8244C               **   STEP 90--  **
8245C               **   EXIT       **
8246C               ******************
8247C
8248 9000 CONTINUE
8249      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'CPPA')GOTO9090
8250      WRITE(ICOUT,999)
8251      CALL DPWRST('XXX','BUG ')
8252      WRITE(ICOUT,9011)
8253 9011 FORMAT('***** AT THE END       OF CKCPPA--')
8254      CALL DPWRST('XXX','BUG ')
8255      WRITE(ICOUT,9012)IBUGG3,ISUBRO,IERROR
8256 9012 FORMAT('IBUGG3,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
8257      CALL DPWRST('XXX','BUG ')
8258      WRITE(ICOUT,9013)ENGUSL,ENGLSL
8259 9013 FORMAT('ENGUSL,ENGLSL = ',2E15.7)
8260      CALL DPWRST('XXX','BUG ')
8261 9090 CONTINUE
8262C
8263      RETURN
8264      END
8265      SUBROUTINE CKELPA(ENGUSL,ENGLSL,COSUSL,IBUGG3,ISUBRO,IERROR)
8266C
8267C     PURPOSE--CHECK THE PARAMETERS NEEDED
8268C              FOR THE EXPECTED LOSS STATISTIC.
8269
8270C     WRITTEN BY--JAMES J. FILLIBEN
8271C                 STATISTICAL ENGINEERING DIVISION
8272C                 INFORMATION TECHNOLOGY LABORATORY
8273C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
8274C                 GAITHERSBURG, MD 20899-8980
8275C                 PHONE--301-975-2855
8276C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
8277C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
8278C     LANGUAGE--ANSI FORTRAN (1977)
8279C     VERSION NUMBER--89/6
8280C     ORIGINAL VERSION--MAY       1988.
8281C
8282C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
8283C
8284      CHARACTER*4 IBUGG3
8285      CHARACTER*4 ISUBRO
8286      CHARACTER*4 IERROR
8287C
8288      CHARACTER*4 IHP
8289      CHARACTER*4 IHP2
8290      CHARACTER*4 IHWUSE
8291      CHARACTER*4 MESSAG
8292CCCCC CHARACTER*4 IWRITE
8293C
8294      CHARACTER*4 ISUBN1
8295      CHARACTER*4 ISUBN2
8296CCCCC CHARACTER*4 ISTEPN
8297C
8298C---------------------------------------------------------------------
8299C
8300C-----COMMON----------------------------------------------------------
8301C
8302      INCLUDE 'DPCOPA.INC'
8303      INCLUDE 'DPCOHK.INC'
8304C
8305C-----COMMON VARIABLES (GENERAL)--------------------------------------
8306C
8307      INCLUDE 'DPCOP2.INC'
8308C
8309C-----START POINT-----------------------------------------------------
8310C
8311      ISUBN1='CKEL'
8312      ISUBN2='PA  '
8313C
8314      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'ELPA')GOTO90
8315      WRITE(ICOUT,999)
8316  999 FORMAT(1X)
8317      CALL DPWRST('XXX','BUG ')
8318      WRITE(ICOUT,51)
8319   51 FORMAT('***** AT THE BEGINNING OF CKELPA--')
8320      CALL DPWRST('XXX','BUG ')
8321      WRITE(ICOUT,52)IBUGG3,ISUBRO,IERROR
8322   52 FORMAT('IBUGG3,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
8323      CALL DPWRST('XXX','BUG ')
8324   90 CONTINUE
8325C
8326C     --------------------------
8327C
8328      IHP='USL '
8329      IHP2='    '
8330      IHWUSE='P'
8331      MESSAG='NO'
8332      CALL CHECKN(IHP,IHP2,IHWUSE,
8333     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
8334     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
8335      IF(IERROR.EQ.'YES')GOTO1110
8336      ENGUSL=VALUE(ILOCP)
8337      GOTO1119
8338C
8339 1110 CONTINUE
8340      WRITE(ICOUT,999)
8341      CALL DPWRST('XXX','BUG ')
8342      WRITE(ICOUT,1111)
8343 1111 FORMAT('***** ERROR IN CKELPA--')
8344      CALL DPWRST('XXX','BUG ')
8345      WRITE(ICOUT,1112)
8346 1112 FORMAT('      IN COMPUTING THE EXPECTED LOSS STATISTIC,')
8347      CALL DPWRST('XXX','BUG ')
8348      WRITE(ICOUT,1114)
8349 1114 FORMAT('      THE VALUE OF THE UPPER SPEC LIMIT')
8350      CALL DPWRST('XXX','BUG ')
8351      WRITE(ICOUT,1115)
8352 1115 FORMAT('      (PARAMETER USL) MUST BE PRE-DEFINED.')
8353      CALL DPWRST('XXX','BUG ')
8354      WRITE(ICOUT,1116)
8355 1116 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE USL,')
8356      CALL DPWRST('XXX','BUG ')
8357      WRITE(ICOUT,1117)
8358 1117 FORMAT('      AS IN         LET USL = 1100')
8359      CALL DPWRST('XXX','BUG ')
8360      IERROR='YES'
8361      GOTO9000
8362 1119 CONTINUE
8363C
8364C     --------------------------
8365C
8366      IHP='LSL '
8367      IHP2='    '
8368      IHWUSE='P'
8369      MESSAG='NO'
8370      CALL CHECKN(IHP,IHP2,IHWUSE,
8371     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
8372     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
8373      IF(IERROR.EQ.'YES')GOTO2110
8374      ENGLSL=VALUE(ILOCP)
8375      GOTO2119
8376C
8377 2110 CONTINUE
8378      WRITE(ICOUT,999)
8379      CALL DPWRST('XXX','BUG ')
8380      WRITE(ICOUT,2111)
8381 2111 FORMAT('***** ERROR IN CKELPA--')
8382      CALL DPWRST('XXX','BUG ')
8383      WRITE(ICOUT,2112)
8384 2112 FORMAT('      IN COMPUTING THE EXPECTED LOSS STATISTIC,')
8385      CALL DPWRST('XXX','BUG ')
8386      WRITE(ICOUT,2114)
8387 2114 FORMAT('      THE VALUE OF THE LOWER SPEC LIMIT')
8388      CALL DPWRST('XXX','BUG ')
8389      WRITE(ICOUT,2115)
8390 2115 FORMAT('      (PARAMETER LSL) MUST BE PRE-DEFINED.')
8391      CALL DPWRST('XXX','BUG ')
8392      WRITE(ICOUT,2116)
8393 2116 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE LSL,')
8394      CALL DPWRST('XXX','BUG ')
8395      WRITE(ICOUT,2117)
8396 2117 FORMAT('      AS IN         LET LSL = 900')
8397      CALL DPWRST('XXX','BUG ')
8398      IERROR='YES'
8399      GOTO9000
8400 2119 CONTINUE
8401C
8402C     --------------------------
8403C
8404      IHP='COST'
8405      IHP2='USL '
8406      IHWUSE='P'
8407      MESSAG='NO'
8408      CALL CHECKN(IHP,IHP2,IHWUSE,
8409     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
8410     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
8411      IF(IERROR.EQ.'YES')GOTO3110
8412      COSUSL=VALUE(ILOCP)
8413      GOTO3119
8414C
8415 3110 CONTINUE
8416      WRITE(ICOUT,999)
8417      CALL DPWRST('XXX','BUG ')
8418      WRITE(ICOUT,3111)
8419 3111 FORMAT('***** ERROR IN CKELPA--')
8420      CALL DPWRST('XXX','BUG ')
8421      WRITE(ICOUT,3112)
8422 3112 FORMAT('      IN COMPUTING THE EXPECTED LOSS STATISTIC,')
8423      CALL DPWRST('XXX','BUG ')
8424      WRITE(ICOUT,3114)
8425 3114 FORMAT('      THE VALUE OF THE    COST AT UPPER SPEC LIMIT')
8426      CALL DPWRST('XXX','BUG ')
8427      WRITE(ICOUT,3115)
8428 3115 FORMAT('      (PARAMETER COSTUSL) MUST BE PRE-DEFINED.')
8429      CALL DPWRST('XXX','BUG ')
8430      WRITE(ICOUT,3116)
8431 3116 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE COSTUSL,')
8432      CALL DPWRST('XXX','BUG ')
8433      WRITE(ICOUT,3117)
8434 3117 FORMAT('      AS IN         LET COSTUSL = 10000')
8435      CALL DPWRST('XXX','BUG ')
8436      IERROR='YES'
8437      GOTO9000
8438 3119 CONTINUE
8439C
8440C     --------------------------
8441C
8442      IF(ENGLSL.LT.ENGUSL)GOTO4129
8443      WRITE(ICOUT,999)
8444      CALL DPWRST('XXX','BUG ')
8445      WRITE(ICOUT,4111)
8446 4111 FORMAT('***** ERROR IN CKELPA--')
8447      CALL DPWRST('XXX','BUG ')
8448      WRITE(ICOUT,4112)
8449 4112 FORMAT('      IN COMPUTING THE EXPECTED LOSS STATISTIC,')
8450      CALL DPWRST('XXX','BUG ')
8451      WRITE(ICOUT,4114)
8452 4114 FORMAT('      THE VALUE OF THE LOWER SPEC LIMIT')
8453      CALL DPWRST('XXX','BUG ')
8454      WRITE(ICOUT,4115)
8455 4115 FORMAT('      (PARAMETER LSL) MUST BE STRICTLY')
8456      CALL DPWRST('XXX','BUG ')
8457      WRITE(ICOUT,4116)
8458 4116 FORMAT('      LESS THAN THE VALUE OF THE')
8459      CALL DPWRST('XXX','BUG ')
8460      WRITE(ICOUT,4117)
8461 4117 FORMAT('      UPPER SPEC LIMIT (PARAMETER USL).')
8462      CALL DPWRST('XXX','BUG ')
8463      WRITE(ICOUT,4118)
8464 4118 FORMAT('      SUCH WAS NOT THE CASE HERE.')
8465      CALL DPWRST('XXX','BUG ')
8466      WRITE(ICOUT,4119)ENGLSL
8467 4119 FORMAT('            LSL = ',E15.7)
8468      CALL DPWRST('XXX','BUG ')
8469      WRITE(ICOUT,4120)ENGUSL
8470 4120 FORMAT('            USL = ',E15.7)
8471      CALL DPWRST('XXX','BUG ')
8472      IERROR='YES'
8473      GOTO9000
8474 4129 CONTINUE
8475C
8476C               ******************
8477C               **   STEP 90--  **
8478C               **   EXIT       **
8479C               ******************
8480C
8481 9000 CONTINUE
8482      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'ELPA')GOTO9090
8483      WRITE(ICOUT,999)
8484      CALL DPWRST('XXX','BUG ')
8485      WRITE(ICOUT,9011)
8486 9011 FORMAT('***** AT THE END       OF CKELPA--')
8487      CALL DPWRST('XXX','BUG ')
8488      WRITE(ICOUT,9012)IBUGG3,ISUBRO,IERROR
8489 9012 FORMAT('IBUGG3,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
8490      CALL DPWRST('XXX','BUG ')
8491      WRITE(ICOUT,9013)ENGUSL,ENGLSL,COSUSL
8492 9013 FORMAT('ENGUSL,ENGLSL,COSUSL = ',3E15.7)
8493      CALL DPWRST('XXX','BUG ')
8494 9090 CONTINUE
8495C
8496      RETURN
8497      END
8498      SUBROUTINE CKFIT(ICASFI,ILOCFI,IBUGA3,IFOUND,IERROR)
8499C
8500C     PURPOSE--CHECK TO SEE THE TYPE OF FIT COMMAND
8501C              THAT HAS BEEN GIVEN
8502C              (E.G., WHAT DEGREE).
8503C     OUTPUT ARGUMENTS--IFOUND ('YES' OR 'NO')
8504C                     --IERROR ('YES' OR 'NO')
8505C                     --ICASFI ('FIT', '1FIT', '2FIT', '3FIT', ETC.)
8506C                     --ILOCFI (AN INTEGER VALUE WHICH GIVES
8507C                              THE ARGUMENT NUMBER (1, 2, 3, ...)
8508C                              OF THE WORD    FIT     .
8509C     WRITTEN BY--JAMES J. FILLIBEN
8510C                 STATISTICAL ENGINEERING DIVISION
8511C                 INFORMATION TECHNOLOGY LABORATORY
8512C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
8513C                 GAITHERSBURG, MD 20899-8980
8514C                 PHONE--301-975-2855
8515C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
8516C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
8517C     LANGUAGE--ANSI FORTRAN (1977)
8518C     VERSION NUMBER--82/7
8519C     ORIGINAL VERSION--AUGUST    1981.
8520C     UPDATED         --SEPTEMBER 1981.
8521C     UPDATED         --MAY       1982.
8522C     UPDATED         --JUNE      1987.
8523C     UPDATED         --JULY      2019. RECODE FOR BETTER READABILITY
8524C
8525C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
8526C
8527      CHARACTER*4 ICASFI
8528      CHARACTER*4 IBUGA3
8529      CHARACTER*4 IFOUND
8530      CHARACTER*4 IERROR
8531C
8532C-----COMMON----------------------------------------------------------
8533C
8534      INCLUDE 'DPCOPA.INC'
8535      INCLUDE 'DPCOHK.INC'
8536      INCLUDE 'DPCODA.INC'
8537C
8538C---------------------------------------------------------------------
8539C
8540      INCLUDE 'DPCOP2.INC'
8541C
8542C-----START POINT-----------------------------------------------------
8543C
8544C               *************************
8545C               **  CHECK FOR FITTING  **
8546C               *************************
8547C
8548      IFOUND='NO'
8549      IERROR='NO'
8550      ICASFI='UNKN'
8551      ILOCFI=-99
8552C
8553      IF(IBUGA3.EQ.'ON')THEN
8554        WRITE(ICOUT,999)
8555  999   FORMAT(1X)
8556        CALL DPWRST('XXX','BUG ')
8557        WRITE(ICOUT,51)
8558   51   FORMAT('***** AT THE BEGINNING OF CKFIT--')
8559        CALL DPWRST('XXX','BUG ')
8560        WRITE(ICOUT,52)IBUGA3,ICOM,ICOM2,NUMARG
8561   52   FORMAT('IBUGA3,ICOM,ICOM2,NUMARG = ',3(A4,2X),I8)
8562        CALL DPWRST('XXX','BUG ')
8563        DO55I=1,NUMARG
8564          WRITE(ICOUT,56)I,IHARG(I),IHARG2(I)
8565   56     FORMAT('I,IHARG(I),IHARG2(I) = ',I8,2(A4,2X))
8566          CALL DPWRST('XXX','BUG ')
8567   55   CONTINUE
8568      ENDIF
8569C
8570C               *********************************
8571C               **  STEP 1.1--                 **
8572C               **  SEARCH FOR FIT             **
8573C               **  (WITH UNSPECIFIED DEGREE), **
8574C               **  OR SEARCH FOR              **
8575C               **  MULTILINEAR FIT            **
8576C               **  FIT COMMAND WITH NO PREFIX **
8577C               **  BUT WITH NO EQUAL SIGNS    **
8578C               **  AFTER                      **
8579C               *********************************
8580C
8581      ICASFI='    '
8582      ILASTC=0
8583C
8584      IF(ICOM.EQ.'FIT')THEN
8585        ICASFI='FIT'
8586        IF(NUMARG.GT.0)THEN
8587          DO1110I=1,NUMARG
8588            IF(IHARG(I).EQ.'=')THEN
8589              ICASFI='FIT'
8590              ILASTC=0
8591              GOTO1119
8592            ELSEIF((IHARG(I).EQ.'SUBS'.AND.IHARG2(I).EQ.'ET  ') .OR.
8593     1             (IHARG(I).EQ.'EXCE'.AND.IHARG2(I).EQ.'PT  ') .OR.
8594     1             (IHARG(I).EQ.'FOR '.AND.IHARG2(I).EQ.'    '))THEN
8595              ICASFI='MFIT'
8596              ILASTC=0
8597              GOTO1119
8598            ENDIF
8599 1110     CONTINUE
8600          ICASFI='MFIT'
8601          ILASTC=0
8602 1119     CONTINUE
8603        ENDIF
8604C
8605C               *********************************
8606C               **  STEP 1.2--                 **
8607C               **  SEARCH FOR ROBUST FITTING  **
8608C               *********************************
8609C
8610C
8611      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'ROBU' .AND.
8612     1       IHARG(2).EQ.'FIT')THEN
8613        ICASFI='RFIT'
8614        ILASTC=2
8615C
8616C               *******************************************
8617C               **  STEP 1.20--                          **
8618C               **  SEARCH FOR 0-TH DEGREE    FITTING    **
8619C               *******************************************
8620C
8621C
8622      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'0' .AND. IHARG(1).EQ.'TH' .AND.
8623     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8624        ICASFI='0FIT'
8625        ILASTC=3
8626      ELSEIF(NUMARG.GE.2 .AND.
8627     1      (ICOM.EQ.'0TH' .OR. ICOM.EQ.'ZERO' .OR. ICOM.EQ.'0') .AND.
8628     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8629        ICASFI='0FIT'
8630        ILASTC=2
8631      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8632     1      (IHARG(1).EQ.'0' .OR. IHARG(1).EQ.'ZERO') .AND.
8633     1       IHARG(2).EQ.'FIT')THEN
8634        ICASFI='0FIT'
8635        ILASTC=2
8636      ELSEIF(NUMARG.GE.1.AND.
8637     1      (ICOM.EQ.'CONS' .OR. ICOM.EQ.'RECT' .OR.
8638     1       ICOM.EQ.'FLAT') .AND. IHARG(1).EQ.'FIT')THEN
8639        ICASFI='0FIT'
8640        ILASTC=1
8641C
8642C               *******************************************
8643C               **  STEP 1.21--                          **
8644C               **  SEARCH FOR 1-ST DEGREE    FITTING    **
8645C               *******************************************
8646C
8647C
8648      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'1' .AND. IHARG(1).EQ.'ST' .AND.
8649     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8650        ICASFI='1FIT'
8651        ILASTC=3
8652      ELSEIF(NUMARG.GE.2 .AND.
8653     1      (ICOM.EQ.'1ST' .OR. ICOM.EQ.'FIRS' .OR. ICOM.EQ.'1' .OR.
8654     1       ICOM.EQ.'ONE') .AND.
8655     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8656        ICASFI='1FIT'
8657        ILASTC=2
8658      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8659     1      (IHARG(1).EQ.'1' .OR. IHARG(1).EQ.'ONE') .AND.
8660     1       IHARG(2).EQ.'FIT')THEN
8661        ICASFI='1FIT'
8662        ILASTC=2
8663      ELSEIF(NUMARG.GE.1 .AND. ICOM.EQ.'LINE' .AND.
8664     1       IHARG(1).EQ.'FIT')THEN
8665        ICASFI='1FIT'
8666        ILASTC=1
8667C
8668C               *******************************************
8669C               **  STEP 1.22--                          **
8670C               **  SEARCH FOR 2-ND DEGREE    FITTING    **
8671C               *******************************************
8672C
8673      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'2' .AND. IHARG(1).EQ.'ND' .AND.
8674     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8675        ICASFI='2FIT'
8676        ILASTC=3
8677      ELSEIF(NUMARG.GE.2 .AND.
8678     1      (ICOM.EQ.'2ND' .OR. ICOM.EQ.'SECO' .OR. ICOM.EQ.'2' .OR.
8679     1       ICOM.EQ.'TWO') .AND.
8680     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8681        ICASFI='2FIT'
8682        ILASTC=2
8683      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8684     1      (IHARG(1).EQ.'2' .OR. IHARG(1).EQ.'TWO') .AND.
8685     1       IHARG(2).EQ.'FIT')THEN
8686        ICASFI='2FIT'
8687        ILASTC=2
8688      ELSEIF(NUMARG.GE.1 .AND. ICOM.EQ.'QUAD' .AND.
8689     1       IHARG(1).EQ.'FIT')THEN
8690        ICASFI='2FIT'
8691        ILASTC=1
8692C
8693C               *******************************************
8694C               **  STEP 1.23--                          **
8695C               **  SEARCH FOR 3-RD DEGREE    FITTING    **
8696C               *******************************************
8697C
8698      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'3' .AND. IHARG(1).EQ.'RD' .AND.
8699     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8700        ICASFI='3FIT'
8701        ILASTC=3
8702      ELSEIF(NUMARG.GE.2 .AND.
8703     1      (ICOM.EQ.'3RD' .OR. ICOM.EQ.'THIR' .OR. ICOM.EQ.'3' .OR.
8704     1       ICOM.EQ.'THRE') .AND.
8705     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8706        ICASFI='3FIT'
8707        ILASTC=2
8708      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8709     1      (IHARG(1).EQ.'3' .OR. IHARG(1).EQ.'THRE') .AND.
8710     1       IHARG(2).EQ.'FIT')THEN
8711        ICASFI='3FIT'
8712        ILASTC=2
8713      ELSEIF(NUMARG.GE.1 .AND. ICOM.EQ.'CUBI' .AND.
8714     1       IHARG(1).EQ.'FIT')THEN
8715        ICASFI='3FIT'
8716        ILASTC=1
8717C
8718C               *******************************************
8719C               **  STEP 1.24--                          **
8720C               **  SEARCH FOR 4-TH DEGREE    FITTING    **
8721C               *******************************************
8722C
8723      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'4' .AND. IHARG(1).EQ.'TH' .AND.
8724     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8725        ICASFI='4FIT'
8726        ILASTC=3
8727      ELSEIF(NUMARG.GE.2 .AND.
8728     1      (ICOM.EQ.'4TH' .OR. ICOM.EQ.'FOUR' .OR. ICOM.EQ.'4') .AND.
8729     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8730        ICASFI='4FIT'
8731        ILASTC=2
8732      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8733     1      (IHARG(1).EQ.'4' .OR. IHARG(1).EQ.'FOUR') .AND.
8734     1       IHARG(2).EQ.'FIT')THEN
8735        ICASFI='4FIT'
8736        ILASTC=2
8737      ELSEIF(NUMARG.GE.1 .AND. ICOM.EQ.'QUAR' .AND.
8738     1       IHARG(1).EQ.'FIT')THEN
8739        ICASFI='4FIT'
8740        ILASTC=1
8741C
8742C               *******************************************
8743C               **  STEP 1.25--                          **
8744C               **  SEARCH FOR 5-TH DEGREE    FITTING    **
8745C               *******************************************
8746C
8747      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'5' .AND. IHARG(1).EQ.'TH' .AND.
8748     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8749        ICASFI='5FIT'
8750        ILASTC=3
8751      ELSEIF(NUMARG.GE.2 .AND.
8752     1      (ICOM.EQ.'5TH' .OR. ICOM.EQ.'FIFT' .OR. ICOM.EQ.'5' .OR.
8753     1       ICOM.EQ.'FIVE') .AND.
8754     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8755        ICASFI='5FIT'
8756        ILASTC=2
8757      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8758     1      (IHARG(1).EQ.'5' .OR. IHARG(1).EQ.'FIVE') .AND.
8759     1       IHARG(2).EQ.'FIT')THEN
8760        ICASFI='5FIT'
8761        ILASTC=2
8762      ELSEIF(NUMARG.GE.1 .AND. ICOM.EQ.'QUIN' .AND.
8763     1       IHARG(1).EQ.'FIT')THEN
8764        ICASFI='5FIT'
8765        ILASTC=1
8766C
8767C               *******************************************
8768C               **  STEP 1.26--                          **
8769C               **  SEARCH FOR 6-TH DEGREE    FITTING    **
8770C               *******************************************
8771C
8772      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'6' .AND. IHARG(1).EQ.'TH' .AND.
8773     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8774        ICASFI='6FIT'
8775        ILASTC=3
8776      ELSEIF(NUMARG.GE.2 .AND.
8777     1      (ICOM.EQ.'6TH' .OR. ICOM.EQ.'SIXT' .OR. ICOM.EQ.'6' .OR.
8778     1       ICOM.EQ.'SIX') .AND.
8779     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8780        ICASFI='6FIT'
8781        ILASTC=2
8782      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8783     1      (IHARG(1).EQ.'6' .OR. IHARG(1).EQ.'SIX') .AND.
8784     1       IHARG(2).EQ.'FIT')THEN
8785        ICASFI='6FIT'
8786        ILASTC=2
8787      ELSEIF(NUMARG.GE.1 .AND. ICOM.EQ.'SEXT' .AND.
8788     1       IHARG(1).EQ.'FIT')THEN
8789        ICASFI='6FIT'
8790        ILASTC=1
8791C
8792C               *******************************************
8793C               **  STEP 1.27--                          **
8794C               **  SEARCH FOR 7-TH DEGREE    FITTING    **
8795C               *******************************************
8796C
8797      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'7' .AND. IHARG(1).EQ.'TH' .AND.
8798     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8799        ICASFI='7FIT'
8800        ILASTC=3
8801      ELSEIF(NUMARG.GE.2 .AND.
8802     1      (ICOM.EQ.'7TH' .OR. ICOM.EQ.'SEVE' .OR. ICOM.EQ.'7') .AND.
8803     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8804        ICASFI='7FIT'
8805        ILASTC=2
8806      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8807     1      (IHARG(1).EQ.'7' .OR. IHARG(1).EQ.'SEVE') .AND.
8808     1       IHARG(2).EQ.'FIT')THEN
8809        ICASFI='7FIT'
8810        ILASTC=2
8811      ELSEIF(NUMARG.GE.1 .AND. ICOM.EQ.'SEPT' .AND.
8812     1       IHARG(1).EQ.'FIT')THEN
8813        ICASFI='7FIT'
8814        ILASTC=1
8815C
8816C               *******************************************
8817C               **  STEP 1.28--                          **
8818C               **  SEARCH FOR 8-TH DEGREE    FITTING    **
8819C               *******************************************
8820C
8821      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'8' .AND. IHARG(1).EQ.'TH' .AND.
8822     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8823        ICASFI='8FIT'
8824        ILASTC=3
8825      ELSEIF(NUMARG.GE.2 .AND.
8826     1      (ICOM.EQ.'8TH' .OR. ICOM.EQ.'EIGH' .OR. ICOM.EQ.'8') .AND.
8827     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8828        ICASFI='8FIT'
8829        ILASTC=2
8830      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8831     1      (IHARG(1).EQ.'8' .OR. IHARG(1).EQ.'EIGH') .AND.
8832     1       IHARG(2).EQ.'FIT')THEN
8833        ICASFI='8FIT'
8834        ILASTC=2
8835      ELSEIF(NUMARG.GE.1 .AND. ICOM.EQ.'OCTI' .AND.
8836     1       IHARG(1).EQ.'FIT')THEN
8837        ICASFI='8FIT'
8838        ILASTC=1
8839C
8840C               *******************************************
8841C               **  STEP 1.29--                          **
8842C               **  SEARCH FOR 9-TH DEGREE    FITTING    **
8843C               *******************************************
8844C
8845      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'9' .AND. IHARG(1).EQ.'TH' .AND.
8846     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8847        ICASFI='9FIT'
8848        ILASTC=3
8849      ELSEIF(NUMARG.GE.2 .AND.
8850     1      (ICOM.EQ.'9TH' .OR. ICOM.EQ.'NINT' .OR. ICOM.EQ.'9' .OR.
8851     1       ICOM.EQ.'NINE') .AND.
8852     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8853        ICASFI='9FIT'
8854        ILASTC=2
8855      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8856     1      (IHARG(1).EQ.'9' .OR. IHARG(1).EQ.'NINT') .AND.
8857     1       IHARG(2).EQ.'FIT')THEN
8858        ICASFI='9FIT'
8859        ILASTC=2
8860      ELSEIF(NUMARG.GE.1 .AND. ICOM.EQ.'NONI' .AND.
8861     1       IHARG(1).EQ.'FIT')THEN
8862        ICASFI='9FIT'
8863        ILASTC=1
8864C
8865C               *******************************************
8866C               **  STEP 1.20--                          **
8867C               **  SEARCH FOR 10-TH DEGREE   FITTING    **
8868C               *******************************************
8869C
8870      ELSEIF(NUMARG.GE.3 .AND. ICOM.EQ.'10' .AND. IHARG(1).EQ.'TH' .AND.
8871     1       IHARG(2).EQ.'DEGR' .AND. IHARG(3).EQ.'FIT')THEN
8872        ICASFI='10FI'
8873        ILASTC=3
8874      ELSEIF(NUMARG.GE.2 .AND.
8875     1      (ICOM.EQ.'10TH' .OR. ICOM.EQ.'TENT' .OR. ICOM.EQ.'10' .OR.
8876     1       ICOM.EQ.'TEN') .AND.
8877     1       IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'FIT')THEN
8878        ICASFI='10FI'
8879        ILASTC=2
8880      ELSEIF(NUMARG.GE.2 .AND. ICOM.EQ.'DEGR' .AND.
8881     1      (IHARG(1).EQ.'10' .OR. IHARG(1).EQ.'TEN') .AND.
8882     1       IHARG(2).EQ.'FIT')THEN
8883        ICASFI='10FI'
8884        ILASTC=2
8885      ELSEIF(NUMARG.GE.1 .AND. ICOM.EQ.'DEXI' .AND.
8886     1       IHARG(1).EQ.'FIT')THEN
8887        ICASFI='10FI'
8888        ILASTC=1
8889      ELSE
8890C
8891C               ********************************************
8892C               **  STEP 1.31--                           **
8893C               **  SINCE VALID COMMAND NOT FOUND, EXIT.  **
8894C               ********************************************
8895C
8896C
8897C
8898        IFOUND='NO'
8899        GOTO9000
8900      ENDIF
8901C
8902      CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
8903      ILOCFI=ILASTC
8904      IFOUND='YES'
8905C
8906C               *****************
8907C               **  STEP 90--  **
8908C               **  EXIT       **
8909C               *****************
8910C
8911 9000 CONTINUE
8912      IF(IBUGA3.EQ.'ON')THEN
8913        WRITE(ICOUT,999)
8914        CALL DPWRST('XXX','BUG ')
8915        WRITE(ICOUT,9011)
8916 9011   FORMAT('***** AT THE END       OF CKFIT--')
8917        CALL DPWRST('XXX','BUG ')
8918        WRITE(ICOUT,9012)IFOUND,IERROR,ICASFI,ILOCFI
8919 9012   FORMAT('IFOUND,IERROR,ICASFI,ILOCFI = ',3(A4,2X),I8)
8920        CALL DPWRST('XXX','BUG ')
8921      ENDIF
8922C
8923      RETURN
8924      END
8925      SUBROUTINE CKINTE(X,EPS,ONEMEP,ONEPEP,ICINT,IX)
8926C
8927C     PURPOSE--GIVEN A FLOATING POINT VALUE X,
8928C          (NON-NEGATIVE)
8929C         DETERMINE IF IT IS WITHIN EPS OF AN INTEGER.
8930C
8931C     WRITTEN BY--JAMES J. FILLIBEN
8932C                 STATISTICAL ENGINEERING DIVISION
8933C                 INFORMATION TECHNOLOGY LABORATORY
8934C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
8935C                 GAITHERSBURG, MD 20899-8980
8936C                 PHONE--301-975-2855
8937C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
8938C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
8939C     LANGUAGE--ANSI FORTRAN (1977)
8940C     VERSION NUMBER--83.6
8941C     ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--MAY       1983.
8942C
8943C-----NON-COMMON VARIABLES (GRAPHICS)-------------------------------------------
8944C
8945      CHARACTER*4 ICINT
8946      CHARACTER*4 ISIGN
8947      CHARACTER*4 IPATH
8948C
8949C-----COMMON----------------------------------------------------------
8950C
8951      INCLUDE 'DPCOBE.INC'
8952C
8953C-----COMMON VARIABLES (GENERAL)--------------------------------------
8954C
8955      INCLUDE 'DPCOP2.INC'
8956C
8957C-----START POINT-----------------------------------------------------
8958C
8959      IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'INTE')GOTO90
8960      WRITE(ICOUT,999)
8961  999 FORMAT(1X)
8962      CALL DPWRST('XXX','BUG ')
8963      WRITE(ICOUT,51)
8964   51 FORMAT('***** AT THE BEGINNING OF CKINTE--')
8965      CALL DPWRST('XXX','BUG ')
8966      WRITE(ICOUT,52)X,EPS,ONEMEP,ONEPEP
8967   52 FORMAT('X,EPS,ONEMEP,ONEPEP = ',4E15.7)
8968      CALL DPWRST('XXX','BUG ')
8969      WRITE(ICOUT,59)IBUGG4,ISUBG4,IERRG4
8970   59 FORMAT('IBUGG4,ISUBG4,IERRG4 = ',A4,2X,A4,2X,A4)
8971      CALL DPWRST('XXX','BUG ')
8972   90 CONTINUE
8973C
8974      ISIGN='POS'
8975      IF(X.LT.0.0)ISIGN='NEG'
8976C
8977      ABSX=ABS(X)
8978      INTZZ=INT(ABSX)
8979      AINT=REAL(INTZZ)
8980      REM=ABSX-AINT
8981      ABSREM=ABS(REM)
8982      IF(ABSREM.LE.EPS)GOTO1110
8983      IF(ONEMEP.LE.ABSREM.AND.ABSREM.LE.ONEPEP)GOTO1120
8984      GOTO1130
8985C
8986 1110 CONTINUE
8987      IPATH='1'
8988      ICINT='YES'
8989      IX=INT(ABSX)
8990      GOTO1190
8991C
8992 1120 CONTINUE
8993      IPATH='2'
8994      ICINT='YES'
8995      IX=INT(ABSX)
8996      IX=IX+1
8997      GOTO1190
8998C
8999 1130 CONTINUE
9000      IPATH='3'
9001      ICINT='NO'
9002      IX=INT(ABSX)
9003      GOTO1190
9004C
9005 1190 CONTINUE
9006      IF(ISIGN.EQ.'NEG')IX=(-IX)
9007C
9008C               *****************
9009C               **  STEP 90--  **
9010C               **  EXIT       **
9011C               *****************
9012C
9013      IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'INTE')GOTO9090
9014      WRITE(ICOUT,999)
9015      CALL DPWRST('XXX','BUG ')
9016      WRITE(ICOUT,9011)
9017 9011 FORMAT('***** AT THE END       OF CKINTE--')
9018      CALL DPWRST('XXX','BUG ')
9019      WRITE(ICOUT,9012)X,EPS,ONEMEP,ONEPEP
9020 9012 FORMAT('X,EPS,ONEMEP,ONEPEP = ',4E15.7)
9021      CALL DPWRST('XXX','BUG ')
9022      WRITE(ICOUT,9013)X,ABSX,INTZZ,REM,ABSREM
9023 9013 FORMAT('X,ABSX,INTZZ,REM,ABSREM = ',2E15.7,I8,2E15.7)
9024      CALL DPWRST('XXX','BUG ')
9025      WRITE(ICOUT,9014)EPS,ONEMEP,ONEPEP
9026 9014 FORMAT('EPS,ONEMEP,ONEPEP = ',3E15.7)
9027      CALL DPWRST('XXX','BUG ')
9028      WRITE(ICOUT,9015)IPATH,ICINT,ISIGN,IX
9029 9015 FORMAT('IPATH,ICINT,ISIGN,IX = ',A4,2X,A4,2X,A4,I8)
9030      CALL DPWRST('XXX','BUG ')
9031      WRITE(ICOUT,9019)IBUGG4,ISUBG4,IERRG4
9032 9019 FORMAT('IBUGG4,ISUBG4,IERRG4 = ',A4,2X,A4,2X,A4)
9033      CALL DPWRST('XXX','BUG ')
9034 9090 CONTINUE
9035C
9036      RETURN
9037CCCCC DEBUG TRACE,INIT
9038CCCCC AT 90
9039CCCCC TRACE ON
9040      END
9041      SUBROUTINE CKLIB1(IA,N,I,IFOUND,NCLF,IBUGCK,IERROR)
9042C
9043C     PURPOSE--SEARCH THE 1-CHARACTER PER WORD
9044C              CHARACTER STRING IN IA(.)
9045C              STARTING WITH POSITION I
9046C              AND DETERMINE IF THAT
9047C              STRING IS A MEMBER OF THE
9048C              AUGMENTED LIBRARY FUNCTION SET.
9049C     NOTE--THIS IS PART 1
9050C           (SEARCHING FOR LIBRARY FUNCTIONS
9051C           WITH STARTING CHARACTERS OF A TO J)
9052C     WRITTEN BY--JAMES J. FILLIBEN
9053C                 STATISTICAL ENGINEERING DIVISION
9054C                 INFORMATION TECHNOLOGY LABORATORY
9055C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
9056C                 GAITHERSBURG, MD 20899-8980
9057C                 PHONE--301-975-2855
9058C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
9059C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
9060C     LANGUAGE--ANSI FORTRAN (1977)
9061C     VERSION NUMBER--82/7
9062C     ORIGINAL VERSION--JANUARY   1979.
9063C     UPDATED         --FEBRUARY  1981.
9064C     UPDATED         --JUNE      1981.
9065C     UPDATED         --NOVEMBER  1981.
9066C     UPDATED         --MARCH     1982.
9067C     UPDATED         --MAY       1982.
9068C     UPDATED         --JUNE      1987.    FRACT(.)
9069C     UPDATED         --SEPTEMBER 1988.    IND(.) = INDICATOR FUNCTION
9070C     UPDATED         --APRIL     1989.    JULIA(.) = JULIA IND. FUNC.
9071C     UPDATED         --MAY       1989.    CP(.,.) PROCESS CAPABILITY
9072C     UPDATED         --MAY       1989.    CPK(.,.) PROCESS CAPABILITY
9073C     UPDATED         --MAY       1989.    EXPLOS(.,.,.) EXPECTED LOSS
9074C     UPDATED         --JANUARY   1990.    BINPAT(.,.) BINARY PATTERN
9075C     UPDATED         --MAY       1990.    IGCDF/PDF/PPF  (INV GAUS)
9076C     UPDATED         --MAY       1990.    FL-CDF/PDF/PPF  (FAT LIFE)
9077C     UPDATED         --DECEMBER  1993.    GEP-CDF/PDF/PPF
9078C                                          (GENERALIZED PARETO)
9079C     UPDATED         --APRIL     1994.    BIN-CDF/PDF/PPF (BINOMIAL)
9080C     UPDATED         --APRIL     1994.    CAU-CDF/PDF/PPF (CAUCHY)
9081C     UPDATED         --APRIL     1994.    DEX-CDF/PDF/PPF (BINOMIAL)
9082C     UPDATED         --APRIL     1994.    EV1-CDF/PDF/PPF (EV1)
9083C     UPDATED         --APRIL     1994.    EV2-CDF/PDF/PPF (EV2)
9084C     UPDATED         --APRIL     1994.    EXP-CDF/PDF/PPF (BINOMIAL)
9085C     UPDATED         --APRIL     1994.    GAM-CDF/PPF (GAMMA)
9086C     UPDATED         --APRIL     1994.    GEO-CDF/PDF/PPF (GEOMETRIC)
9087C     UPDATED         --APRIL     1994.    HFN-CDF/PPF (HALF-NORMAL)
9088C     UPDATED         --SEPTEMBER 1994.    BET-CDF/PDF/PPF (BETA)
9089C     UPDATED         --SEPTEMBER 1994.    DIS-CDF/PDF/PPF (DISCRETE
9090C                                          UNIFORM)
9091C     UPDATED         --SEPTEMBER 1994.    BETA (BETA FUNCTION)
9092C     UPDATED         --SEPTEMBER 1994.    BETAI (INCOMPLETE BETA)
9093C     UPDATED         --SEPTEMBER 1994.    GAMMI (INCOMPLETE GAMMA)
9094C     UPDATED         --SEPTEMBER 1994.    ADDITIONAL BESSEL FUNCTIONS
9095C     UPDATED         --SEPTEMBER 1994.    DAWSON, EXPONENTIAL INTEGRAL
9096C     UPDATED         --SEPTEMBER 1994.    DNF-CDF/PPF (DOUBLY NC F)
9097C     UPDATED         --SEPTEMBER 1994.    DNT-CDF/PPF (DOUBLY NC T)
9098C     UPDATED         --SEPTEMBER 1994.    HYP-CDF/PDF/PPF (HYPERGEOM)
9099C     UPDATED         --SEPTEMBER 1994.    GAMMAR (RECIPROCAL GAMMA)
9100C     UPDATED         --SEPTEMBER 1994.    DIGAMMA (DIGAMMA)
9101C     UPDATED         --SEPTEMBER 1994.    GAMMAIC (COMPLEMENTARY
9102C                                          INCOMPLETE GAMMA)
9103C     UPDATED         --SEPTEMBER 1994.    ELLIPC,ELLIP1,ELLIP2,ELLIP3
9104C                                          (LEGENDRE FORM OF ELLIPTIC
9105C                                          INTEGRALS)
9106C     UPDATED         --SEPTEMBER 1994.    CHU (LOGARITHMIC CONFLUENT
9107C                                          HYPERGEOMETRIC FUNCTION)
9108C     UPDATED         --SEPTEMBER 1994.    COSINT, COSHINT
9109C     UPDATED         --OCTOBER   1994.    CBESSJR, CBESSJI
9110C     UPDATED         --OCTOBER   1994.    CBESSYR, CBESSYI
9111C     UPDATED         --OCTOBER   1994.    CBESSIR, CBESSII
9112C     UPDATED         --OCTOBER   1994.    CBESSKR, CBESSKI
9113C     UPDATED         --OCTOBER   1994.    CEXP, CLOG, CSQRT, CABS,
9114C                                          CSIN, CCOS
9115C     UPDATED         --NOVEMBER  1994.    FRESNC, FRESNS, FRESNF,
9116C                                          FRESNG (FRESNEL INTEGRALS)
9117C     UPDATED         --NOVEMBER  1994.    CN, DN (JACOBIAN ELLIPTIC
9118C                                          FUNCTIONS)
9119C     UPDATED         --MARCH     1995.    CEIL, FLOOR, GCD, HEAVE
9120C     UPDATED         --APRIL     1995.    COSCDF, COSPDF, COSPPF
9121C     UPDATED         --APRIL     1995.    ALPCDF, ALPPDF, ALPPPF
9122C     UPDATED         --APRIL     1995.    FNRCDF, FNRPDF, FNRPPF
9123C     UPDATED         --APRIL     1995.    CHCDF, CHPDF, CHPPF
9124C     UPDATED         --APRIL     1995.    DLGPDF, DLGCDF, DLGPPF
9125C     UPDATED         --APRIL     1995.    GGDPDF, GGDCDF, GGDPPF
9126C     UPDATED         --MAY       1995.    BVNPDF
9127C     UPDATED         --JULY      1995.    HERMITE, CHEBT, CHEBU,
9128C                                          JACOBIP (POLYNOMIALS)
9129C     UPDATED         --SEPTEMBER 1995.    ANGPDF, ANGCDF, ANGPPF
9130C     UPDATED         --SEPTEMBER 1995.    ARSPDF, ARSCDF, ARSPPF
9131C     UPDATED         --OCTOBER   1995.    DIPPDF, DIPCDF, DIPPPF
9132C     UPDATED         --OCTOBER   1995.    HSEPDF, HSECDF, HSEPPF
9133C     UPDATED         --OCTOBER   1995.    HFCPDF, HFCCDF, HFCPPF
9134C     UPDATED         --OCTOBER   1995.    HFLPDF, HFLCDF, HFLPPF
9135C     UPDATED         --OCTOBER   1995.    GOMPDF, GOMCDF, GOMPPF
9136C     UPDATED         --OCTOBER   1995.    DWEPDF, DWECDF, DWEPPF
9137C     UPDATED         --OCTOBER   1995.    EWEPDF, EWECDF, EWEPPF
9138C     UPDATED         --DECEMBER  1995.    GLOPDF, GLOCDF, GLOPPF
9139C     UPDATED         --JANUARY   1996.    DGAPDF, DGACDF, DGAPPF
9140C     UPDATED         --JANUARY   1996.    FCAPDF, FCACDF, FCAPPF
9141C     UPDATED         --FEBRUARY  1996.    BBNPDF, BBNCDF, BBNPPF
9142C     UPDATED         --FEBRUARY  1996.    BRAPDF, BPACDF, BPAPPF
9143C     UPDATED         --FEBRUARY  1996.    GEXPDF, GEXCDF, GEXPPF
9144C     UPDATED         --MARCH     1997.    STRUVE FUNCTIONS (H0,H1,HV)
9145C     UPDATED         --JULY      1997.    CHM (CONFLUENT M
9146C                                          HYPERGEOMETRIC FUNCTION)
9147C     UPDATED         --AUGUST    1997.    CGAMMA, CGAMMAI
9148C     UPDATED         --AUGUST    1997.    CLNGAM, CLNGAMI
9149C     UPDATED         --AUGUST    1997.    CPSI, CPSII
9150C     UPDATED         --AUGUST    1997.    HYPERGEO (HYPERGEOMETRIC FUNCTION)
9151C     UPDATED         --AUGUST    1997.    CBETA, CLBETA
9152C     UPDATED         --SEPTEMBER 1997.    BER, BERI, BER1, BERI1
9153C     UPDATED         --SEPTEMBER 1997.    KER, KERI, KER1, KERI1
9154C     UPDATED         --SEPTEMBER 1997.    BN, EN, ETA, CATLAN, BINOM
9155C     UPDATED         --APRIL     1998.    EXPHAZ, EXPCHA
9156C     UPDATED         --APRIL     1998.    GEPHAZ, GEPCHA
9157C     UPDATED         --APRIL     1998.    EV1HAZ, EV1CHA
9158C     UPDATED         --APRIL     1998.    EV2HAZ, EV2CHA
9159C     UPDATED         --APRIL     1998.    GAMHAZ, GAMCHA
9160C     UPDATED         --APRIL     1998.    GGDHAZ, GGDCHA
9161C     UPDATED         --APRIL     1998.    IGACDF, IGAPDF, IGAPPF
9162C     UPDATED         --APRIL     1998.    IGAHAZ, IGACHA
9163C     UPDATED         --APRIL     1998.    IGHAZ, IGCHA
9164C     UPDATED         --APRIL     1998.    FLHAZ, FLCHA
9165C     UPDATED         --APRIL     1998.    ALPHAZ, ALPCHAZ
9166C     UPDATED         --MAY       1998.    EWEHAZ, EWECHAZ
9167C     UPDATED         --MARCH     1999.    ABRAM
9168C     UPDATED         --MARCH     1999.    CLAUSN
9169C     UPDATED         --MARCH     1999.    DEBYE
9170C     UPDATED         --MARCH     1999.    EXP3
9171C     UPDATED         --MARCH     1999.    GOODST
9172C     UPDATED         --AUGUST    2001.    GLDCDF, GLDPDF, GLDPPF
9173C                                          GLDCHK, GLDLLM, GLDULM
9174C                                          GLDSGN
9175C     UPDATED         --SEPTEMBER 2001.    IWECDF, IWEPDF, IWEPPF
9176C     UPDATED         --NOVEMBER  2001.    IWEHAZ, IWECHAZ
9177C     UPDATED         --SEPTEMBER 2001.    LDECDF, LDEPDF, LDEPPF
9178C     UPDATED         --SEPTEMBER 2001.    JSBCDF, JSBPDF, JSBPPF
9179C     UPDATED         --SEPTEMBER 2001.    JSUCDF, JSUPDF, JSUPPF
9180C     UPDATED         --NOVEMBER  2001.    GEECDF, GEEPDF, GEEPPF,
9181C                                          GEEHAZ, GEECHAZ
9182C     UPDATED         --MAY       2002.    BWECDF, BWEPDF, BWEPPF,
9183C                                          BWEHAZ, BWECHAZ
9184C     UPDATED         --JANUARY   2003.    GHCDF,  GHPDF,  GHPPF
9185C     UPDATED         --MAY       2003.    IBCDF,  IBPDF,  IBPPF
9186C     UPDATED         --MAY       2003.    ERRCDF, ERRPDF, ERRPPF
9187C     UPDATED         --JUNE      2003.    GTRCDF, GTRPDF, GTRPPF
9188C     UPDATED         --NOVEMBER  2003.    FTCDF,  FTPDF,  FTPPF
9189C     UPDATED         --DECEMBER  2003.    GIGCDF, GIGPDF, GIGPPF
9190C     UPDATED         --MARCH     2004.    HERCDF, HERPDF, HERPPF
9191C     UPDATED         --APRIL     2004.    GWACDF, GWAPDF, GWAPPF
9192C     UPDATED         --JUNE      2004.    ADECDF, ADEPDF, ADEPPF
9193C     UPDATED         --JUNE      2004.    GALCDF, GALPDF, GALPPF
9194C     UPDATED         --JUNE      2004.    FERCDF, FERPDF, FERPPF
9195C     UPDATED         --AUGUST    2004.    BEICDF, BEIPDF, BEIPPF
9196C     UPDATED         --AUGUST    2004.    BEKCDF, BEKPDF, BEKPPF
9197C     UPDATED         --SEPTEMBER 2004.    GMCCDF, GMCPDF, GMCPPF
9198C     UPDATED         --SEPTEMBER 2004.    HBOCDF, HBOPDF, HBOPPF
9199C     UPDATED         --MARCH     2005.    EXPAFR
9200C     UPDATED         --MAY       2005.    GEVCHAZ, GEVHAZ
9201C     UPDATED         --NOVEMBER  2005.  AIRINT
9202C     UPDATED         --NOVEMBER  2005.  AIRYGI
9203C     UPDATED         --NOVEMBER  2005.  AIRYHI
9204C     UPDATED         --NOVEMBER  2005.  ATNINT
9205C     UPDATED         --NOVEMBER  2005.  BIRINT
9206C     UPDATED         --NOVEMBER  2005.  I0INT
9207C     UPDATED         --NOVEMBER  2005.  I0ML0
9208C     UPDATED         --NOVEMBER  2005.  I1ML1
9209C     UPDATED         --NOVEMBER  2005.  J0INT
9210C     UPDATED         --FEBRUARY  2006.  GL2CDF, GL2PDF, GL2PPF
9211C     UPDATED         --FEBRUARY  2006.  GL3CDF, GL3PDF, GL3PPF
9212C     UPDATED         --FEBRUARY  2006.  GL4CDF, GL4PDF, GL4PPF
9213C     UPDATED         --FEBRUARY  2006.  GL5CDF, GL5PDF, GL5PPF
9214C     UPDATED         --MARCH     2006.  BNOCDF, BNOPDF, BNOPPF
9215C     UPDATED         --MARCH     2006.  ALDCDF, ALDPDF, ALDPPF
9216C     UPDATED         --MAY       2006.  HARMNUMB
9217C     UPDATED         --MAY       2006.  BGECDF, BGEPDF, BGEPPF
9218C     UPDATED         --MAY       2006.  BNBCDF, BNBPDF, BNBPPF
9219C     UPDATED         --MAY       2006.  BTACDF, BTAPDF, BTAPPF
9220C     UPDATED         --JUNE      2006.  DXGCDF, DXGPDF, DXGPPF
9221C     UPDATED         --JUNE      2006.  GLSCDF, GLSPDF, GLSPPF
9222C     UPDATED         --JULY      2006.  GETCDF, GETPDF, GETPPF
9223C     UPDATED         --JULY      2006.  GNBCDF, GNBPDF, GNBPPF
9224C     UPDATED         --AUGUST    2006.  CONCDF, CONPDF, CONPPF
9225C     UPDATED         --NOVEMBER  2006.  DIWCDF, DIWPDF, DIWPPF
9226C     UPDATED         --NOVEMBER  2006.  GLGCDF, GLGPDF, GLGPPF
9227C     UPDATED         --JANUARY   2007.  GNTCDF, GNTPDF, GNTPPF
9228C     UPDATED         --FEBRUARY  2007.  GTLCDF, GTLPDF, GTLPPF
9229C     UPDATED         --OCTOBER   2007.  BU1CDF, BU1PDF, BU1PPF
9230C     UPDATED         --OCTOBER   2007.  BU2CDF, BU2PDF, BU2PPF
9231C     UPDATED         --OCTOBER   2007.  BU3CDF, BU3PDF, BU3PPF
9232C     UPDATED         --OCTOBER   2007.  BU4CDF, BU4PDF, BU4PPF
9233C     UPDATED         --OCTOBER   2007.  BU5CDF, BU5PDF, BU5PPF
9234C     UPDATED         --OCTOBER   2007.  BU6CDF, BU6PDF, BU6PPF
9235C     UPDATED         --OCTOBER   2007.  BU7CDF, BU7PDF, BU7PPF
9236C     UPDATED         --OCTOBER   2007.  BU8CDF, BU8PDF, BU8PPF
9237C     UPDATED         --OCTOBER   2007.  BU9CDF, BU9PDF, BU9PPF
9238C     UPDATED         --OCTOBER   2007.  B10CDF, B10PDF, B10PPF
9239C     UPDATED         --OCTOBER   2007.  B11CDF, B11PDF, B11PPF
9240C     UPDATED         --OCTOBER   2007.  B12CDF, B12PDF, B12PPF
9241C     UPDATED         --OCTOBER   2007.  DPUCDF, DPUPDF, DPUPPF
9242C     UPDATED         --MARCH     2008.  BFRCDF, BFRPDF, BFRPPF,
9243C                                        BFRCHAZ, BFRHAZ
9244C     UPDATED         --JULY      2010.  EEWCDF, EEWPDF, EEWPPF
9245C     UPDATED         --AUGUST    2010.  BFWCDF, BFWPDF, BFWPPF
9246C     UPDATED         --JANUARY   2011.  ATNCDF, ATNPDF, ATNPPF
9247C     UPDATED         --AUGUST    2011.  AGREE, DISAGREE
9248C     UPDATED         --OCTOBER   2012.  DPNTLINE (PERPINDICULAR
9249C                                        DISTANCE BETWEEN POINT AND
9250C                                        LINE
9251C     UPDATED         --OCTOBER   2012.  ANGRAD (ANGLE DEFINED BY
9252C                                        3 POINTS DEFINED IN RADIANS)
9253C     UPDATED         --MAY       2014.  EXPSURV, EXPISURV
9254C     UPDATED         --MAY       2014.  EV1SURV, EV1ISURV
9255C     UPDATED         --MAY       2014.  EV2SURV, EV2ISURV
9256C     UPDATED         --MAY       2014.  EWESURV, EWEISURV
9257C     UPDATED         --MAY       2014.  FLSURV,  FLISURV
9258C     UPDATED         --MAY       2014.  GAMSURV, GAMISURV
9259C     UPDATED         --MAY       2014.  GEESURV, GEEISURV
9260C     UPDATED         --MAY       2014.  GEVSURV, GEVISURV
9261C     UPDATED         --MAY       2014.  GOMSURV, GOMISURV
9262C     UPDATED         --MAY       2014.  IGSURV,  IGISURV
9263C     UPDATED         --MAY       2014.  IGASURV, IGAISURV
9264C     UPDATED         --MAY       2014.  IWESURV, IWEISURV
9265C     UPDATED         --SEPTEMBER 2014.  GCDF, GPDF, GPPF
9266C     UPDATED         --AUGUST    2015.  BINOCTAL, BINDEC, DECBIN
9267C
9268C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
9269C
9270      CHARACTER*4 IA
9271      CHARACTER*4 IFOUND
9272      CHARACTER*4 IBUGCK
9273      CHARACTER*4 IERROR
9274C
9275C---------------------------------------------------------------------
9276C
9277      DIMENSION IA(*)
9278C
9279C---------------------------------------------------------------------
9280C
9281      INCLUDE 'DPCOP2.INC'
9282C
9283C-----START POINT-----------------------------------------------------
9284C
9285      IFOUND='NO'
9286      IERROR='NO'
9287C
9288      NCLF=-99
9289C
9290      NP1=N+1
9291C
9292      IF(IBUGCK.EQ.'ON')THEN
9293        WRITE(ICOUT,999)
9294  999   FORMAT(1X)
9295        CALL DPWRST('XXX','BUG ')
9296        WRITE(ICOUT,51)
9297   51   FORMAT('AT THE BEGINNING OF CKLIB1--')
9298        CALL DPWRST('XXX','BUG ')
9299        WRITE(ICOUT,52)N,I,IBUGCK
9300   52   FORMAT('N,I,IBUGCK = ',I8,I8,2X,A4)
9301        CALL DPWRST('XXX','BUG ')
9302        DO55I2=1,N
9303         WRITE(ICOUT,56)I2,IA(I2)
9304   56    FORMAT('I2,IA(I2) = ',I8,2X,A4)
9305         CALL DPWRST('XXX','BUG ')
9306   55   CONTINUE
9307      ENDIF
9308C
9309      IF(I.GE.NP1)GOTO9000
9310C
9311C               ****************************
9312C               **  STEP 1--              **
9313C               **  SEARCH FOR FUNCTIONS  **
9314C               **  STARTING WITH A--     **
9315C               **       ABS              **
9316C               **       AINT             **
9317C               **       ALOG10           **
9318C               **       ALOGE            **
9319C               **       ALOG             **
9320C               **       AMOD             **
9321C               **       ARCCOSH          **
9322C               **       ARCCOS           **
9323C               **       ARCCOTH          **
9324C               **       ARCCOT           **
9325C               **       ARCCSCH          **
9326C               **       ARCCSC           **
9327C               **       ARCSECH          **
9328C               **       ARCSEC           **
9329C               **       ARCSINH          **
9330C               **       ARCSIN           **
9331C               **       ARCTANH          **
9332C               **       ARCTAN           **
9333C               **       ATAN2            **
9334C               **       ATAN             **
9335C               **  SEPTEMBER 1994:       **
9336C               **       AIRY             **
9337C               **  APRIL     1995:       **
9338C               **       ALPCDF           **
9339C               **       ALPPDF           **
9340C               **       ALPPPF           **
9341C               **  SEPTEMBER 1995:       **
9342C               **       ANGCDF           **
9343C               **       ANGPDF           **
9344C               **       ANGPPF           **
9345C               **  SEPTEMBER 1995:       **
9346C               **       ARSCDF           **
9347C               **       ARSPDF           **
9348C               **       ARSPPF           **
9349C               **  APRIL     1998:       **
9350C               **       ALPHAZ, ALPCHAZ  **
9351C               **  MARCH     1999:       **
9352C               **       ABRAM            **
9353C               **  JUNE      2004:       **
9354C               **       ADECDF           **
9355C               **       ADEPDF           **
9356C               **       ADEPPF           **
9357C               **  NOVEMBER  2005:       **
9358C               **       AIRINT           **
9359C               **  MARCH     2006:       **
9360C               **       ALDCDF           **
9361C               **       ALDPDF           **
9362C               **       ALDPPF           **
9363C               **  JANUARY   2011:       **
9364C               **       ATNCDF           **
9365C               **       ATNPDF           **
9366C               **       ATNPPF           **
9367C               **       ATNHAZ           **
9368C               **       ATNCHAZ          **
9369C               **  AUGUST    2011:       **
9370C               **       AGREE            **
9371C               **  OCTOBER   2012:       **
9372C               **       ANGRAD           **
9373C               ****************************
9374C
9375      IF(IA(I).EQ.'A')GOTO109
9376      GOTO190
9377  109 CONTINUE
9378C
9379      IP1=I+1
9380      IP2=I+2
9381      IP3=I+3
9382      IP4=I+4
9383      IP5=I+5
9384      IP6=I+6
9385      IP7=I+7
9386C
9387      IF(IA(IP1).EQ.'B')GOTO110
9388      IF(IA(IP1).EQ.'I')GOTO120
9389      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'D')GOTO185
9390      IF(IA(IP1).EQ.'L')GOTO130
9391      IF(IA(IP1).EQ.'M')GOTO140
9392      IF(IA(IP1).EQ.'R')GOTO150
9393      IF(IA(IP1).EQ.'T'.AND.IA(IP2).EQ.'N')GOTO188
9394      IF(IA(IP1).EQ.'T')GOTO160
9395      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'R'.AND.
9396     1   IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'D')GOTO7600
9397      IF(IA(IP1).EQ.'N')GOTO170
9398      IF(IA(IP1).EQ.'D')GOTO180
9399      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'R'.AND.IA(IP3).EQ.'E'.AND.
9400     1   IA(IP4).EQ.'E')GOTO7500
9401      GOTO9000
9402C
9403  110 CONTINUE
9404      IF(IA(IP2).EQ.'R'.AND.IA(IP3).EQ.'A'.AND.
9405     1   IA(IP4).EQ.'M')GOTO7500
9406      IF(IA(IP2).EQ.'S')GOTO7300
9407      GOTO9000
9408C
9409  120 CONTINUE
9410      IF(IA(IP2).EQ.'R'.AND.IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'N'.AND.
9411     1   IA(IP5).EQ.'T')GOTO7600
9412      IF(IA(IP2).EQ.'R'.AND.IA(IP3).EQ.'Y'.AND.IA(IP4).EQ.'G'.AND.
9413     1   IA(IP5).EQ.'I')GOTO7600
9414      IF(IA(IP2).EQ.'R'.AND.IA(IP3).EQ.'Y'.AND.IA(IP4).EQ.'H'.AND.
9415     1   IA(IP5).EQ.'I')GOTO7600
9416      IF(IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'T')GOTO7400
9417      IF(IA(IP2).EQ.'R'.AND.IA(IP3).EQ.'Y')GOTO7400
9418      GOTO9000
9419C
9420  130 CONTINUE
9421      IF(IA(IP2).EQ.'O'.AND.IA(IP3).EQ.'G'.AND.IA(IP4).EQ.'1'.AND.
9422     1IA(IP5).EQ.'0')GOTO7600
9423      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
9424     1IA(IP5).EQ.'F')GOTO7600
9425      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
9426     1IA(IP5).EQ.'F')GOTO7600
9427      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
9428     1IA(IP5).EQ.'F')GOTO7600
9429      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.
9430     1IA(IP5).EQ.'Z')GOTO7600
9431      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.
9432     1IA(IP5).EQ.'A'.AND.IA(IP6).EQ.'Z')GOTO7700
9433      IF(IA(IP2).EQ.'O'.AND.IA(IP3).EQ.'G'.AND.IA(IP4).EQ.'E')GOTO7500
9434      IF(IA(IP2).EQ.'O'.AND.IA(IP3).EQ.'G')GOTO7400
9435      IF(IA(IP2).EQ.'N')GOTO7300
9436      GOTO9000
9437C
9438  140 CONTINUE
9439      IF(IA(IP2).EQ.'O'.AND.IA(IP3).EQ.'D')GOTO7400
9440      GOTO9000
9441C
9442  150 CONTINUE
9443      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
9444     1IA(IP5).EQ.'F')GOTO7600
9445      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
9446     1IA(IP5).EQ.'F')GOTO7600
9447      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
9448     1IA(IP5).EQ.'F')GOTO7600
9449      IF(IA(IP2).EQ.'C')GOTO155
9450      GOTO9000
9451  155 CONTINUE
9452      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'O'.AND.IA(IP5).EQ.'S'.AND.
9453     1IA(IP6).EQ.'H')GOTO7700
9454      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'O'.AND.IA(IP5).EQ.'S')GOTO7600
9455      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'O'.AND.IA(IP5).EQ.'T'.AND.
9456     1IA(IP6).EQ.'H')GOTO7700
9457      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'O'.AND.IA(IP5).EQ.'T')GOTO7600
9458      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'C'.AND.
9459     1IA(IP6).EQ.'H')GOTO7700
9460      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'C')GOTO7600
9461      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'E'.AND.IA(IP5).EQ.'C'.AND.
9462     1IA(IP6).EQ.'H')GOTO7700
9463      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'E'.AND.IA(IP5).EQ.'C')GOTO7600
9464      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'N'.AND.
9465     1IA(IP6).EQ.'H')GOTO7700
9466      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'N')GOTO7600
9467      IF(IA(IP3).EQ.'T'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'N'.AND.
9468     1IA(IP6).EQ.'H')GOTO7700
9469      IF(IA(IP3).EQ.'T'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'N')GOTO7600
9470      GOTO9000
9471C
9472  160 CONTINUE
9473      IF(IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'N'.AND.
9474     1   IA(IP5).EQ.'T')GOTO7600
9475      IF(IA(IP2).EQ.'A'.AND.IA(IP3).EQ.'N'.AND.IA(IP4).EQ.'2')GOTO7500
9476      IF(IA(IP2).EQ.'A'.AND.IA(IP3).EQ.'N')GOTO7400
9477      GOTO9000
9478C
9479  170 CONTINUE
9480      IF(IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
9481     1IA(IP5).EQ.'F')GOTO7600
9482      IF(IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
9483     1IA(IP5).EQ.'F')GOTO7600
9484      IF(IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
9485     1IA(IP5).EQ.'F')GOTO7600
9486      GOTO9000
9487  180 CONTINUE
9488      IF(IA(IP2).EQ.'E'.AND.IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
9489     1IA(IP5).EQ.'F')GOTO7600
9490      IF(IA(IP2).EQ.'E'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
9491     1IA(IP5).EQ.'F')GOTO7600
9492      IF(IA(IP2).EQ.'E'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
9493     1IA(IP5).EQ.'F')GOTO7600
9494      GOTO9000
9495  185 CONTINUE
9496      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
9497     1IA(IP5).EQ.'F')GOTO7600
9498      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
9499     1IA(IP5).EQ.'F')GOTO7600
9500      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
9501     1IA(IP5).EQ.'F')GOTO7600
9502      GOTO9000
9503  188 CONTINUE
9504      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
9505     1IA(IP5).EQ.'F')GOTO7600
9506      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
9507     1IA(IP5).EQ.'F')GOTO7600
9508      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
9509     1IA(IP5).EQ.'F')GOTO7600
9510      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.
9511     1IA(IP5).EQ.'Z')GOTO7600
9512      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.
9513     1IA(IP5).EQ.'A'.AND.IA(IP6).EQ.'Z')GOTO7700
9514      GOTO9000
9515  190 CONTINUE
9516C
9517C               **********************************
9518C               **  STEP 2--                    **
9519C               **  SEARCH FOR FUNCTIONS        **
9520C               **  STARTING WITH B--           **
9521C               **       BESS0                  **
9522C               **       BESS1                  **
9523C               **  JANUARY 1990:               **
9524C               **       BINPAT                 **
9525C               **  APRIL 1994:                 **
9526C               **       BINCDF, BINPDF, BINPPF **
9527C               **  SEPTEMBER 1994:             **
9528C               **       BETCDF, BETPDF, BETPPF **
9529C               **       BETA, BETAF            **
9530C               **       BESSY0, BESSY1         **
9531C               **       BESSI0, BESSI1         **
9532C               **       BESSI0E, BESSI1E       **
9533C               **       BESSK0E, BESSK1E       **
9534C               **       BESSJN, BESSYN         **
9535C               **       BESSIN, BESSKN         **
9536C               **       BESSINE, BESSKNE       **
9537C               **       BAIRY                  **
9538C               **  OCTOBER 1994:               **
9539C               **       BVNCDF                 **
9540C               **  MAY     1995:               **
9541C               **       BVNPDF                 **
9542C               **  FEBRUARY 1996:              **
9543C               **       BBNCDF, BBNPDF, BBNPPF **
9544C               **       BRACDF, BRAPDF, BRAPPF **
9545C               **  SEPTEMBER 1997:             **
9546C               **       BER, BERI, BER1, BERI1 **
9547C               **       BN, BINOM, BINOMIAL    **
9548C               **  MAY      2002:              **
9549C               **       BWECDF, BWEPDF, BWEPPF **
9550C               **       BWEHAZ, BWECHAZ        **
9551C               **  MARCH    2004:              **
9552C               **       BEICDF, BEIPDF, BEIPPF **
9553C               **       BEKCDF, BEKPDF, BEKPPF **
9554C               **  NOVEMBER 2005:              **
9555C               **       BIRINT                 **
9556C               **  MARCH    2006:              **
9557C               **       BNOCDF, BNOPDF, BNOPPF **
9558C               **  MAY      2006:              **
9559C               **       BGECDF, BGEPDF, BGEPPF **
9560C               **       BNBCDF, BNBPDF, BNBPPF **
9561C               **       BTACDF, BTAPDF, BTAPPF **
9562C               **  OCTOBER  2007:              **
9563C               **       BU1CDF, BU1PDF, BU1PPF **
9564C               **       BU2CDF, BU2PDF, BU2PPF **
9565C               **       BU3CDF, BU3PDF, BU3PPF **
9566C               **       BU4CDF, BU4PDF, BU4PPF **
9567C               **       BU5CDF, BU5PDF, BU5PPF **
9568C               **       BU6CDF, BU6PDF, BU6PPF **
9569C               **       BU7CDF, BU7PDF, BU7PPF **
9570C               **       BU8CDF, BU8PDF, BU8PPF **
9571C               **       BU9CDF, BU9PDF, BU9PPF **
9572C               **       B10CDF, B10PDF, B10PPF **
9573C               **       B11CDF, B11PDF, B11PPF **
9574C               **       B12CDF, B12PDF, B12PPF **
9575C               **  MARCH    2008:              **
9576C               **       BFRCDF, BFRPDF, BFRPPF **
9577C               **       BFRCHAZ, BFRHAZ        **
9578C               **  AUGUST   2010:              **
9579C               **       BFWCDF, BFWPDF, BFWPPF **
9580C               **  AUGUST   2015:              **
9581C               **       BINOCT, BINDEC         **
9582C               **********************************
9583C
9584      IF(IA(I).EQ.'B')GOTO209
9585      GOTO290
9586  209 CONTINUE
9587C
9588      IP1=I+1
9589      IP2=I+2
9590      IP3=I+3
9591      IP4=I+4
9592      IP5=I+5
9593      IP6=I+6
9594      IP7=I+7
9595C
9596      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'R'.AND.
9597     1IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'N'.AND.
9598     1IA(IP5).EQ.'T')GOTO7600
9599      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'N'.AND.
9600     1IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'E'.AND.
9601     1IA(IP5).EQ.'C')GOTO7600
9602      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'N'.AND.
9603     1IA(IP3).EQ.'O'.AND.IA(IP4).EQ.'C'.AND.
9604     1IA(IP5).EQ.'T'.AND.IA(IP6).EQ.'A'.AND.
9605     1IA(IP7).EQ.'L')GOTO7800
9606      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'N'.AND.
9607     1IA(IP3).EQ.'O'.AND.IA(IP4).EQ.'C'.AND.
9608     1IA(IP5).EQ.'T')GOTO7600
9609      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
9610     1IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'1')GOTO7500
9611      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
9612     1IA(IP3).EQ.'I')GOTO7400
9613      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
9614     1IA(IP3).EQ.'1')GOTO7400
9615      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R')GOTO7300
9616      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'O')GOTO221
9617      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'B')GOTO221
9618      IF(IA(IP1).EQ.'T'.AND.IA(IP2).EQ.'A')GOTO221
9619      IF(IA(IP1).EQ.'N')GOTO7200
9620C
9621      IF(IA(IP1).EQ.'E')GOTO210
9622      IF(IA(IP1).EQ.'I')GOTO211
9623      IF(IA(IP1).EQ.'A')GOTO212
9624      IF(IA(IP1).EQ.'W'.AND.IA(IP2).EQ.'E')GOTO250
9625      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'1')GOTO250
9626      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'2')GOTO250
9627      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'3')GOTO250
9628      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'4')GOTO250
9629      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'5')GOTO250
9630      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'6')GOTO250
9631      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'7')GOTO250
9632      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'8')GOTO250
9633      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'9')GOTO250
9634      IF(IA(IP1).EQ.'1'.AND.IA(IP2).EQ.'0')GOTO250
9635      IF(IA(IP1).EQ.'1'.AND.IA(IP2).EQ.'1')GOTO250
9636      IF(IA(IP1).EQ.'1'.AND.IA(IP2).EQ.'2')GOTO250
9637      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'N')GOTO221
9638      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'E')GOTO221
9639      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'A')GOTO221
9640      IF(IA(IP1).EQ.'F'.AND.IA(IP2).EQ.'R')GOTO250
9641      IF(IA(IP1).EQ.'F'.AND.IA(IP2).EQ.'W')GOTO250
9642      IF(IA(IP1).EQ.'V'.AND.IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'C'.AND.
9643     1IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
9644      IF(IA(IP1).EQ.'V'.AND.IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'P'.AND.
9645     1IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
9646      GOTO9000
9647C
9648  210 CONTINUE
9649      IF(IA(IP2).EQ.'S')GOTO220
9650      IF(IA(IP2).EQ.'T')GOTO250
9651      IF(IA(IP2).EQ.'I')GOTO250
9652      IF(IA(IP2).EQ.'K')GOTO250
9653      GOTO9000
9654  211 CONTINUE
9655      IF(IA(IP2).EQ.'N')GOTO221
9656      GOTO9000
9657  212 CONTINUE
9658      IF(IA(IP2).EQ.'I'.AND.IA(IP3).EQ.'R'.AND.
9659     1   IA(IP4).EQ.'Y')GOTO7500
9660      GOTO9000
9661C
9662  220 CONTINUE
9663      IF(IA(IP3).EQ.'S')GOTO230
9664      GOTO9000
9665  221 CONTINUE
9666      IF(IA(IP3).EQ.'O'.AND.IA(IP4).EQ.'M'.AND.
9667     1IA(IP5).EQ.'I'.AND.IA(IP6).EQ.'A'.AND.IA(IP7).EQ.'L')GOTO7800
9668      IF(IA(IP3).EQ.'O'.AND.IA(IP4).EQ.'M')GOTO7500
9669      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
9670     1   IA(IP5).EQ.'F')GOTO7600
9671      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
9672     1   IA(IP5).EQ.'F')GOTO7600
9673      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
9674     1   IA(IP5).EQ.'F')GOTO7600
9675      IF(IA(IP3).EQ.'P')GOTO231
9676      GOTO9000
9677C
9678  230 CONTINUE
9679      IF(IA(IP4).EQ.'0')GOTO7500
9680      IF(IA(IP4).EQ.'1')GOTO7500
9681      IF(IA(IP4).EQ.'J'.AND.IA(IP5).EQ.'0')GOTO7600
9682      IF(IA(IP4).EQ.'J'.AND.IA(IP5).EQ.'1')GOTO7600
9683      IF(IA(IP4).EQ.'J'.AND.IA(IP5).EQ.'N')GOTO7600
9684      IF(IA(IP4).EQ.'Y'.AND.IA(IP5).EQ.'0')GOTO7600
9685      IF(IA(IP4).EQ.'Y'.AND.IA(IP5).EQ.'1')GOTO7600
9686      IF(IA(IP4).EQ.'Y'.AND.IA(IP5).EQ.'N')GOTO7600
9687      IF(IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'0'.AND.
9688     1IA(IP6).EQ.'E')GOTO7700
9689      IF(IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'0')GOTO7600
9690      IF(IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'1'.AND.
9691     1IA(IP6).EQ.'E')GOTO7700
9692      IF(IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'1')GOTO7600
9693      IF(IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'N'.AND.
9694     1IA(IP6).EQ.'E')GOTO7700
9695      IF(IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'N')GOTO7600
9696      IF(IA(IP4).EQ.'K'.AND.IA(IP5).EQ.'0'.AND.
9697     1IA(IP6).EQ.'E')GOTO7700
9698      IF(IA(IP4).EQ.'K'.AND.IA(IP5).EQ.'0')GOTO7600
9699      IF(IA(IP4).EQ.'K'.AND.IA(IP5).EQ.'1'.AND.
9700     1IA(IP6).EQ.'E')GOTO7700
9701      IF(IA(IP4).EQ.'K'.AND.IA(IP5).EQ.'1')GOTO7600
9702      IF(IA(IP4).EQ.'K'.AND.IA(IP5).EQ.'N'.AND.
9703     1IA(IP6).EQ.'E')GOTO7700
9704      IF(IA(IP4).EQ.'K'.AND.IA(IP5).EQ.'N')GOTO7600
9705      GOTO9000
9706  231 CONTINUE
9707      IF(IA(IP4).EQ.'A')GOTO240
9708      GOTO9000
9709C
9710  240 CONTINUE
9711      IF(IA(IP5).EQ.'T')GOTO7600
9712      GOTO9000
9713C
9714  250 CONTINUE
9715      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
9716     1   IA(IP5).EQ.'F')GOTO7600
9717      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
9718     1   IA(IP5).EQ.'F')GOTO7600
9719      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
9720     1   IA(IP5).EQ.'F')GOTO7600
9721      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.
9722     1   IA(IP5).EQ.'Z')GOTO7600
9723      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.
9724     1   IA(IP5).EQ.'A'.AND.IA(IP6).EQ.'Z')GOTO7700
9725      IF(IA(IP3).EQ.'A'.AND.IA(IP4).EQ.'I')GOTO7500
9726      IF(IA(IP3).EQ.'A')GOTO7400
9727      GOTO9000
9728C
9729  290 CONTINUE
9730C
9731C               ****************************
9732C               **  STEP 3--              **
9733C               **  SEARCH FOR FUNCTIONS  **
9734C               **  STARTING WITH C--     **
9735C               **       CHEB10           **
9736C               **       CHEB0            **
9737C               **       CHEB1            **
9738C               **       CHEB2            **
9739C               **       CHEB3            **
9740C               **       CHEB4            **
9741C               **       CHEB5            **
9742C               **       CHEB6            **
9743C               **       CHEB7            **
9744C               **       CHEB8            **
9745C               **       CHEB9            **
9746C               **       CHSCDF           **
9747C               **       CHSPDF           **
9748C               **       CHSPPF           **
9749C               **       COSH             **
9750C               **       COS              **
9751C               **       COTH             **
9752C               **       COT              **
9753C               **       CP               **
9754C               **       CPK              **
9755C               **       CSCH             **
9756C               **       CSC              **
9757C               **  APRIL 1994.           **
9758C               **       CAUCDF           **
9759C               **       CAUPDF           **
9760C               **       CAUPPF           **
9761C               **       CAUSF            **
9762C               **  SEPTEMBER 1994.       **
9763C               **       CHU              **
9764C               **       COSHINT          **
9765C               **       COSINT           **
9766C               **  OCTOBER   1994.       **
9767C               **       CBESSJR, CBESSJI **
9768C               **       CBESSYR, CBESSYI **
9769C               **       CBESSIR, CBESSII **
9770C               **       CBESSKR, CBESSKI **
9771C               **       CABS             **
9772C               **       CCOS, CCOSI      **
9773C               **       CEXP, CEXPI      **
9774C               **       CLOG, CLOGI      **
9775C               **       CSIN, CSINI      **
9776C               **       CSQRT, CSQRTI    **
9777C               **  NOVEMBER  1994.       **
9778C               **       CN               **
9779C               **  MARCH     1995.       **
9780C               **       CEIL             **
9781C               **  APRIL     1995.       **
9782C               **       COSCDF           **
9783C               **       COSPDF           **
9784C               **       COSPPF           **
9785C               **       CHCDF            **
9786C               **       CHPDF            **
9787C               **       CHPPF            **
9788C               **  JULY      1995.       **
9789C               **       CHEBT            **
9790C               **       CHEBU            **
9791C               **  JULY      1997.       **
9792C               **       CHM              **
9793C               **  AUGUST    1997.       **
9794C               **       CGAMMA           **
9795C               **       CGAMMAI          **
9796C               **       CLNGAM           **
9797C               **       CLNGAMI          **
9798C               **       CPSI             **
9799C               **       CPSII            **
9800C               **       CLNBETA          **
9801C               **       CLNBETAI         **
9802C               **       CBETA            **
9803C               **       CBETAI           **
9804C               **  SEPTEMBER 1997.       **
9805C               **       CATLAN           **
9806C               **  MARCH     1999.       **
9807C               **       CLAUSN           **
9808C               **  AUGUST    2006.       **
9809C               **       CONCDF           **
9810C               **       CONPDF           **
9811C               **       CONPPF           **
9812C               **  MARCH     2007.       **
9813C               **       CRAMER           **
9814C               ****************************
9815C
9816CCCCC THE FOLLOWING SECTION WAS CHANGED FOR CP AND CPK MAY 1989
9817      IF(IA(I).EQ.'C')GOTO309
9818      GOTO390
9819  309 CONTINUE
9820C
9821      IP1=I+1
9822      IP2=I+2
9823      IP3=I+3
9824      IP4=I+4
9825      IP5=I+5
9826      IP6=I+6
9827      IP7=I+7
9828C
9829      IF(IA(IP1).EQ.'H')GOTO310
9830      IF(IA(IP1).EQ.'O')GOTO320
9831      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'I'.AND.
9832     1IA(IP4).EQ.'I')GOTO7500
9833      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'I')GOTO7400
9834      IF(IA(IP1).EQ.'P')GOTO330
9835      IF(IA(IP1).EQ.'N')GOTO7200
9836      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'B'.AND.IA(IP3).EQ.'S')GOTO7400
9837      IF(IA(IP1).EQ.'C'.AND.IA(IP2).EQ.'O'.AND.IA(IP3).EQ.'S'.AND.
9838     1IA(IP4).EQ.'I')GOTO7500
9839      IF(IA(IP1).EQ.'C'.AND.IA(IP2).EQ.'O'.AND.IA(IP3).EQ.'S')GOTO7400
9840      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'I'.AND.IA(IP3).EQ.'L')GOTO7400
9841      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'X'.AND.IA(IP3).EQ.'P'.AND.
9842     1IA(IP4).EQ.'I')GOTO7500
9843      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'X'.AND.IA(IP3).EQ.'P')GOTO7400
9844      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'G'.AND.
9845     1IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'M'.AND.IA(IP6).EQ.'I')GOTO7700
9846      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'G'.AND.
9847     1IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'M')GOTO7600
9848      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'B'.AND.
9849     1IA(IP4).EQ.'E'.AND.IA(IP5).EQ.'T'.AND.IA(IP6).EQ.'A'.AND.
9850     1IA(IP7).EQ.'I')GOTO7800
9851      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'B'.AND.
9852     1IA(IP4).EQ.'E'.AND.IA(IP5).EQ.'T'.AND.IA(IP6).EQ.'A')GOTO7700
9853      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'E'.AND.IA(IP3).EQ.'T'.AND.
9854     1IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'I')GOTO7600
9855      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'E'.AND.IA(IP3).EQ.'T'.AND.
9856     1IA(IP4).EQ.'A')GOTO7500
9857      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'O'.AND.IA(IP3).EQ.'G'.AND.
9858     1IA(IP4).EQ.'I')GOTO7500
9859      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'O'.AND.IA(IP3).EQ.'G')GOTO7400
9860      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'I'.AND.IA(IP3).EQ.'N'.AND.
9861     1IA(IP4).EQ.'I')GOTO7500
9862      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'I'.AND.IA(IP3).EQ.'N')GOTO7400
9863      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'Q'.AND.IA(IP3).EQ.'R'.AND.
9864     1IA(IP4).EQ.'T'.AND.IA(IP5).EQ.'I')GOTO7600
9865      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'A'.AND.IA(IP3).EQ.'M'.AND.
9866     1IA(IP4).EQ.'M'.AND.IA(IP5).EQ.'A'.AND.IA(IP6).EQ.'I')GOTO7700
9867      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'A'.AND.IA(IP3).EQ.'M'.AND.
9868     1IA(IP4).EQ.'M'.AND.IA(IP5).EQ.'A')GOTO7600
9869      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'Q'.AND.IA(IP3).EQ.'R'.AND.
9870     1IA(IP4).EQ.'T')GOTO7500
9871      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'U')GOTO350
9872      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'E'.AND.IA(IP3).EQ.'S'.AND.
9873     1IA(IP4).EQ.'S')GOTO360
9874      IF(IA(IP1).EQ.'S')GOTO340
9875      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'T'.AND.IA(IP3).EQ.'L'.AND.
9876     1IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'N')GOTO7600
9877      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'A'.AND.IA(IP3).EQ.'U'.AND.
9878     1IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'N')GOTO7600
9879      GOTO9000
9880C
9881  310 CONTINUE
9882      IF(IA(IP2).EQ.'E')GOTO315
9883      IF(IA(IP2).EQ.'S')GOTO317
9884      IF(IA(IP2).EQ.'U')GOTO7300
9885      IF(IA(IP2).EQ.'M')GOTO7300
9886      IF(IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
9887      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
9888      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'F')GOTO7500
9889      GOTO9000
9890  315 CONTINUE
9891      IF(IA(IP3).EQ.'B')GOTO316
9892      GOTO9000
9893  316 CONTINUE
9894      IF(IA(IP4).EQ.'1'.AND.IA(IP5).EQ.'0')GOTO7600
9895      IF(IA(IP4).EQ.'0')GOTO7500
9896      IF(IA(IP4).EQ.'1')GOTO7500
9897      IF(IA(IP4).EQ.'2')GOTO7500
9898      IF(IA(IP4).EQ.'3')GOTO7500
9899      IF(IA(IP4).EQ.'4')GOTO7500
9900      IF(IA(IP4).EQ.'5')GOTO7500
9901      IF(IA(IP4).EQ.'6')GOTO7500
9902      IF(IA(IP4).EQ.'7')GOTO7500
9903      IF(IA(IP4).EQ.'8')GOTO7500
9904      IF(IA(IP4).EQ.'9')GOTO7500
9905      IF(IA(IP4).EQ.'T')GOTO7500
9906      IF(IA(IP4).EQ.'U')GOTO7500
9907      GOTO9000
9908  317 CONTINUE
9909      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
9910      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
9911      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
9912      GOTO9000
9913C
9914  320 CONTINUE
9915      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'I'.AND.
9916     1IA(IP5).EQ.'N'.AND.IA(IP6).EQ.'T')GOTO7700
9917      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'N'.AND.
9918     1IA(IP5).EQ.'T')GOTO7600
9919      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
9920     1IA(IP5).EQ.'F')GOTO7600
9921      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
9922     1IA(IP5).EQ.'F')GOTO7600
9923      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
9924     1IA(IP5).EQ.'F')GOTO7600
9925      IF(IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
9926     1IA(IP5).EQ.'F')GOTO7600
9927      IF(IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
9928     1IA(IP5).EQ.'F')GOTO7600
9929      IF(IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
9930     1IA(IP5).EQ.'F')GOTO7600
9931      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'H')GOTO7400
9932      IF(IA(IP2).EQ.'S')GOTO7300
9933      IF(IA(IP2).EQ.'T'.AND.IA(IP3).EQ.'H')GOTO7400
9934      IF(IA(IP2).EQ.'T')GOTO7300
9935      GOTO9000
9936C
9937  330 CONTINUE
9938      IF(IA(IP2).EQ.'K')GOTO7300
9939      GOTO7200
9940C
9941  340 CONTINUE
9942      IF(IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'H')GOTO7400
9943      IF(IA(IP2).EQ.'C')GOTO7300
9944      GOTO9000
9945C
9946  350 CONTINUE
9947      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
9948      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
9949      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
9950      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'F')GOTO7500
9951      GOTO9000
9952C
9953  360 CONTINUE
9954      IF(IA(IP5).EQ.'J'.AND.IA(IP6).EQ.'R')GOTO7700
9955      IF(IA(IP5).EQ.'J'.AND.IA(IP6).EQ.'I')GOTO7700
9956      IF(IA(IP5).EQ.'Y'.AND.IA(IP6).EQ.'R')GOTO7700
9957      IF(IA(IP5).EQ.'Y'.AND.IA(IP6).EQ.'I')GOTO7700
9958      IF(IA(IP5).EQ.'I'.AND.IA(IP6).EQ.'R')GOTO7700
9959      IF(IA(IP5).EQ.'I'.AND.IA(IP6).EQ.'I')GOTO7700
9960      IF(IA(IP5).EQ.'K'.AND.IA(IP6).EQ.'R')GOTO7700
9961      IF(IA(IP5).EQ.'K'.AND.IA(IP6).EQ.'I')GOTO7700
9962      GOTO9000
9963C
9964  390 CONTINUE
9965C
9966C               ****************************
9967C               **  STEP 4--              **
9968C               **  SEARCH FOR FUNCTIONS  **
9969C               **  STARTING WITH D--     **
9970C               **       DECOCT           **
9971C               **       DIM              **
9972C               **  APRIL 1994:           **
9973C               **       DEXCDF           **
9974C               **       DEXPDF           **
9975C               **       DEXPPF           **
9976C               **       DEXSF            **
9977C               **  SEPTEMBER 1994:       **
9978C               **       DISCDF           **
9979C               **       DISPDF           **
9980C               **       DISPPF           **
9981C               **       DAWSON           **
9982C               **       DNFCDF, DNFPPF   **
9983C               **       DNTCDF, DNTPPF   **
9984C               **       DIGAMMA          **
9985C               **  NOVEMBER  1994:       **
9986C               **       DN               **
9987C               **  APRIL     1995:       **
9988C               **       DLGCDF           **
9989C               **       DLGPDF           **
9990C               **       DLGPPF           **
9991C               **  OCTOBER   1995:       **
9992C               **       DWECDF           **
9993C               **       DWEPDF           **
9994C               **       DWEPPF           **
9995C               **  JANUARY   1996:       **
9996C               **       DGACDF           **
9997C               **       DGAPDF           **
9998C               **       DGAPPF           **
9999C               **  MARCH     1999:       **
10000C               **       DEBYE            **
10001C               **  MAY       2004:       **
10002C               **       DNFPDF, DNTPDF   **
10003C               **  JUNE      2006:       **
10004C               **       DXGCDF           **
10005C               **       DXGPDF           **
10006C               **       DXGPPF           **
10007C               **  NOVEMBER  2006:       **
10008C               **       DIWCDF           **
10009C               **       DIWPDF           **
10010C               **       DIWPPF           **
10011C               **       DIWHAZ           **
10012C               **  OCTOBER   2007:       **
10013C               **       DPUCDF           **
10014C               **       DPUPDF           **
10015C               **       DPUPPF           **
10016C               **  AUGUST    2011:       **
10017C               **       DISAGREE         **
10018C               **  OCTOBER   2012:       **
10019C               **       DPNTLINE         **
10020C               **  AUGUST    2015:       **
10021C               **       DECBIN           **
10022C               ****************************
10023C
10024      IF(IA(I).EQ.'D')GOTO409
10025      GOTO490
10026  409 CONTINUE
10027C
10028      IP1=I+1
10029      IP2=I+2
10030      IP3=I+3
10031      IP4=I+4
10032      IP5=I+5
10033      IP6=I+6
10034      IP7=I+7
10035C
10036      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'X')GOTO410
10037      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'F')GOTO420
10038      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'T')GOTO420
10039      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'C'.AND.
10040     1IA(IP3).EQ.'O'.AND.IA(IP4).EQ.'C'.AND.
10041     1IA(IP5).EQ.'T')GOTO7600
10042      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'C'.AND.
10043     1IA(IP3).EQ.'B'.AND.IA(IP4).EQ.'I'.AND.
10044     1IA(IP5).EQ.'N')GOTO7600
10045      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'W'.AND.
10046     1IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'O'.AND.
10047     1IA(IP5).EQ.'N')GOTO7600
10048      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'M')GOTO7300
10049      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'G'.AND.
10050     1IA(IP3).EQ.'A'.AND.IA(IP4).EQ.'M'.AND.
10051     1IA(IP5).EQ.'M'.AND.IA(IP6).EQ.'A')GOTO7700
10052      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'A'.AND.
10053     1   IA(IP4).EQ.'G'.AND.IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'E'.AND.
10054     1   IA(IP7).EQ.'E')GOTO7800
10055      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'T'.AND.
10056     1   IA(IP4).EQ.'L'.AND.IA(IP5).EQ.'I'.AND.IA(IP6).EQ.'N'.AND.
10057     1   IA(IP7).EQ.'E')GOTO7800
10058      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'S')GOTO410
10059      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'G')GOTO410
10060      IF(IA(IP1).EQ.'W'.AND.IA(IP2).EQ.'E')GOTO410
10061      IF(IA(IP1).EQ.'X'.AND.IA(IP2).EQ.'G')GOTO410
10062      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'A')GOTO410
10063      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'W')GOTO410
10064      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'U')GOTO410
10065      IF(IA(IP1).EQ.'N')GOTO7200
10066      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'B'.AND.
10067     1IA(IP3).EQ.'Y'.AND.IA(IP4).EQ.'E')GOTO7500
10068      GOTO9000
10069C
10070  410 CONTINUE
10071      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
10072     1IA(IP5).EQ.'F')GOTO7600
10073      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
10074     1IA(IP5).EQ.'F')GOTO7600
10075      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
10076     1IA(IP5).EQ.'F')GOTO7600
10077      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.
10078     1IA(IP5).EQ.'Z')GOTO7600
10079      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'F')GOTO7500
10080      GOTO9000
10081C
10082  420 CONTINUE
10083      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
10084     1IA(IP5).EQ.'F')GOTO7600
10085      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
10086     1IA(IP5).EQ.'F')GOTO7600
10087      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
10088     1IA(IP5).EQ.'F')GOTO7600
10089      GOTO9000
10090C
10091  490 CONTINUE
10092C
10093C               ****************************
10094C               **  STEP 5--              **
10095C               **  SEARCH FOR FUNCTIONS  **
10096C               **  STARTING WITH E--     **
10097C               **       ERFC             **
10098C               **       ERF              **
10099C               **       EXP              **
10100C               **       EXPLOS           **
10101C               **  APRIL 1994:           **
10102C               **       EV1CDF           **
10103C               **       EV1PDF           **
10104C               **       EV1PPF           **
10105C               **       EV2CDF           **
10106C               **       EV2PDF           **
10107C               **       EV2PPF           **
10108C               **       EXPCDF           **
10109C               **       EXPPDF           **
10110C               **       EXPPPF           **
10111C               **       EXPSF            **
10112C               **  SEPTEMBER 1994:       **
10113C               **       EXPINT1          **
10114C               **       EXPINTE          **
10115C               **       EXPINTN          **
10116C               **       ELLIPC1          **
10117C               **       ELLIP1           **
10118C               **       ELLIPC2          **
10119C               **       ELLIP2           **
10120C               **       ELLIP3           **
10121C               **  OCTOBER 1995:         **
10122C               **       EWECDF           **
10123C               **       EWEPDF           **
10124C               **       EWEPPF           **
10125C               **  SEPTEMBER 1997:       **
10126C               **       EN               **
10127C               **       ETA              **
10128C               **  APRIL     1998:       **
10129C               **       EXPHAZ, EXPCHA   **
10130C               **       EV1HAZ, EV1CHA   **
10131C               **       EV2HAZ, EV2CHA   **
10132C               **  MAY       1998:       **
10133C               **       EWEHAZ, EWECHA   **
10134C               **  MAY       2003:       **
10135C               **       ERRCDF           **
10136C               **       ERRPDF           **
10137C               **       ERRPPF           **
10138C               **  MARCH     2005:       **
10139C               **       EXPAFR           **
10140C               **  JULY      2010:       **
10141C               **       EEFCDF           **
10142C               **       EEFPDF           **
10143C               **       EEFPPF           **
10144C               **  MAY       2014:       **
10145C               **       EXPSURV          **
10146C               **       EXPISURV         **
10147C               **       EV1SURV          **
10148C               **       EV1ISURV         **
10149C               **       EV2SURV          **
10150C               **       EV2ISURV         **
10151C               **       EWESURV          **
10152C               **       EWEISURV         **
10153C               ****************************
10154C
10155      IF(IA(I).EQ.'E')GOTO509
10156      GOTO590
10157  509 CONTINUE
10158C
10159      IP1=I+1
10160      IP2=I+2
10161      IP3=I+3
10162      IP4=I+4
10163      IP5=I+5
10164      IP6=I+6
10165      IP7=I+7
10166C
10167      IF(IA(IP1).EQ.'N')GOTO7200
10168      IF(IA(IP1).EQ.'T'.AND.IA(IP2).EQ.'A')GOTO7300
10169      IF(IA(IP1).EQ.'V'.AND.IA(IP2).EQ.'1')GOTO510
10170      IF(IA(IP1).EQ.'V'.AND.IA(IP2).EQ.'2')GOTO510
10171      IF(IA(IP1).EQ.'W'.AND.IA(IP2).EQ.'E')GOTO510
10172      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'L'.AND.IA(IP3).EQ.'I'.AND.
10173     1IA(IP4).EQ.'P')GOTO530
10174C
10175      IF(IA(IP1).EQ.'X'.AND.IA(IP2).EQ.'P'.AND.
10176     1IA(IP3).EQ.'L'.AND.IA(IP4).EQ.'O'.AND.
10177     1IA(IP5).EQ.'S')GOTO7600
10178      IF(IA(IP1).EQ.'X'.AND.IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'3')GOTO7400
10179      IF(IA(IP1).EQ.'X'.AND.IA(IP2).EQ.'P')GOTO520
10180C
10181      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'F'.AND.
10182     1IA(IP3).EQ.'C')GOTO7400
10183      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'F')GOTO7300
10184      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'R')GOTO505
10185      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'W')GOTO505
10186      GOTO9000
10187C
10188  505 CONTINUE
10189      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
10190     1IA(IP5).EQ.'F')GOTO7600
10191      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
10192     1IA(IP5).EQ.'F')GOTO7600
10193      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
10194     1IA(IP5).EQ.'F')GOTO7600
10195      GOTO9000
10196C
10197  510 CONTINUE
10198      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
10199     1IA(IP5).EQ.'F')GOTO7600
10200      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
10201     1IA(IP5).EQ.'F')GOTO7600
10202      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
10203     1IA(IP5).EQ.'F')GOTO7600
10204      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.
10205     1IA(IP5).EQ.'Z')GOTO7600
10206      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.
10207     1IA(IP5).EQ.'A'.AND.IA(IP6).EQ.'Z')GOTO7700
10208      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.
10209     1IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'V')GOTO7700
10210      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.
10211     1IA(IP5).EQ.'U'.AND.IA(IP6).EQ.'R'.AND.
10212     1IA(IP7).EQ.'V')GOTO7800
10213      GOTO9000
10214C
10215  520 CONTINUE
10216      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
10217     1IA(IP5).EQ.'F')GOTO7600
10218      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
10219     1IA(IP5).EQ.'F')GOTO7600
10220      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
10221     1IA(IP5).EQ.'F')GOTO7600
10222      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'F')GOTO7500
10223      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.
10224     1IA(IP5).EQ.'Z')GOTO7600
10225      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.
10226     1IA(IP5).EQ.'A'.AND.IA(IP6).EQ.'Z')GOTO7700
10227      IF(IA(IP3).EQ.'A'.AND.IA(IP4).EQ.'F'.AND.
10228     1IA(IP5).EQ.'R')GOTO7600
10229      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.
10230     1IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'V')GOTO7700
10231      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.
10232     1IA(IP5).EQ.'U'.AND.IA(IP6).EQ.'R'.AND.
10233     1IA(IP7).EQ.'V')GOTO7800
10234      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'N'.AND.
10235     1IA(IP5).EQ.'T'.AND.IA(IP6).EQ.'1')GOTO7700
10236      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'N'.AND.
10237     1IA(IP5).EQ.'T'.AND.IA(IP6).EQ.'N')GOTO7700
10238      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'N'.AND.
10239     1IA(IP5).EQ.'T'.AND.IA(IP6).EQ.'E')GOTO7700
10240      GOTO7300
10241C
10242  530 CONTINUE
10243      IF(IA(IP5).EQ.'1')GOTO7600
10244      IF(IA(IP5).EQ.'2')GOTO7600
10245      IF(IA(IP5).EQ.'3')GOTO7600
10246      IF(IA(IP5).EQ.'C'.AND.IA(IP6).EQ.'1')GOTO7700
10247      IF(IA(IP5).EQ.'C'.AND.IA(IP6).EQ.'2')GOTO7700
10248      GOTO9000
10249C
10250  590 CONTINUE
10251C
10252C               ****************************
10253C               **  STEP 6--              **
10254C               **  SEARCH FOR FUNCTIONS  **
10255C               **  STARTING WITH F--     **
10256C               **       FCDF             **
10257C               **       FPDF             **
10258C               **       FPPF             **
10259C               **       FRACT            **
10260C               **       FLCDF (MAY 1990) **
10261C               **       FLPDF (MAY 1990) **
10262C               **       FLPPF (MAY 1990) **
10263C               **  NOVEMBER  1994:       **
10264C               **       FRESNC, FRESNS   **
10265C               **       FRESNF, FRESNG   **
10266C               **  MARCH     1995:       **
10267C               **       FLOOR            **
10268C               **  APRIL     1995:       **
10269C               **       FNRCDF           **
10270C               **       FNRPDF           **
10271C               **       FNRPPF           **
10272C               **  JANUARY   1996:       **
10273C               **       FCACDF           **
10274C               **       FCAPDF           **
10275C               **       FCAPPF           **
10276C               **  APRIL     1998:       **
10277C               **       FLHAZ, FLCHA     **
10278C               **  MAY       2002:       **
10279C               **       FERMDIRA         **
10280C               **  NOVEMBER  2003:       **
10281C               **       FERMDIRA         **
10282C               **  JUNE      2004:       **
10283C               **  FERCDF, FERPDF, FERPPF**
10284C               **  MAY       2014:       **
10285C               **       FLSURV           **
10286C               **       FLISURV          **
10287C               ****************************
10288C
10289      IF(IA(I).EQ.'F')GOTO609
10290      GOTO690
10291  609 CONTINUE
10292C
10293      IP1=I+1
10294      IP2=I+2
10295      IP3=I+3
10296      IP4=I+4
10297      IP5=I+5
10298      IP6=I+6
10299      IP7=I+7
10300C
10301CCCCC THE FOLLOWING LINE WAS ADDED MAY 1990
10302      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'O'.AND.IA(IP3).EQ.'O'.AND.
10303     1IA(IP4).EQ.'R')GOTO7500
10304      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'R')GOTO630
10305      IF(IA(IP1).EQ.'C'.AND.IA(IP2).EQ.'A')GOTO630
10306      IF(IA(IP1).EQ.'L')GOTO610
10307      IF(IA(IP1).EQ.'T')GOTO610
10308      IF(IA(IP1).EQ.'C'.AND.IA(IP2).EQ.'D'.AND.IA(IP3).EQ.'F')GOTO7400
10309      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'D'.AND.IA(IP3).EQ.'F')GOTO7400
10310      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'F')GOTO7400
10311      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'A'.AND.
10312     1IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'T')GOTO7500
10313      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'E'.AND.
10314     1IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'N')GOTO620
10315      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
10316     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'I'.AND.
10317     1IA(IP6).EQ.'R'.AND.IA(IP7).EQ.'A')GOTO7800
10318      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R')GOTO630
10319      GOTO9000
10320C
10321CCCCC THE FOLLOWING SECTION WAS ADDED MAY 1990
10322  610 CONTINUE
10323      IF(IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
10324      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
10325      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'F')GOTO7500
10326      IF(IA(IP2).EQ.'H'.AND.IA(IP3).EQ.'A'.AND.IA(IP4).EQ.'Z')GOTO7500
10327      IF(IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.
10328     1IA(IP5).EQ.'Z')GOTO7600
10329      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'U'.AND.IA(IP4).EQ.'R'.AND.
10330     1IA(IP5).EQ.'V')GOTO7600
10331      IF(IA(IP2).EQ.'I'.AND.IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.
10332     1IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'V')GOTO7700
10333      GOTO9000
10334C
10335CCCCC THE FOLLOWING SECTION WAS ADDED NOVEMBER 1994
10336  620 CONTINUE
10337      IF(IA(IP5).EQ.'C')GOTO7600
10338      IF(IA(IP5).EQ.'S')GOTO7600
10339      IF(IA(IP5).EQ.'F')GOTO7600
10340      IF(IA(IP5).EQ.'G')GOTO7600
10341      GOTO9000
10342C
10343CCCCC THE FOLLOWING SECTION WAS ADDED APRIL 1995
10344  630 CONTINUE
10345      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
10346      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
10347      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
10348      GOTO9000
10349C
10350CCCCC THE FOLLOWING SECTION WAS ADDED NOVEMBER 1994
10351  690 CONTINUE
10352C
10353CCCCC THE FOLLOWING SECTION WAS AUGMENTED      DECEMBER 1993
10354C               *******************************
10355C               **  STEP 7--                 **
10356C               **  SEARCH FOR FUNCTIONS     **
10357C               **  STARTING WITH G--        **
10358C               **       GAMMA               **
10359C               **       GEPCDF (DEC. 1993)  **
10360C               **       GEPPDF (DEC. 1993)  **
10361C               **       GEPPPF (DEC. 1993)  **
10362C               **  APRIL 1994:              **
10363C               **       GAMCDF              **
10364C               **       GAMPDF              **
10365C               **       GAMPPF              **
10366C               **       GEOCDF              **
10367C               **       GEOPDF              **
10368C               **       GEOPPF              **
10369C               **  SEPTEMBER 1994:          **
10370C               **       GAMMAI              **
10371C               **       GAMMAIC             **
10372C               **       GAMMAR              **
10373C               **       GAMMAIP             **
10374C               **  MARCH     1995:          **
10375C               **       GCD                 **
10376C               **  APRIL 1995:              **
10377C               **       GGDCDF              **
10378C               **       GGDPDF              **
10379C               **       GGDPPF              **
10380C               **  OCTOBER 1995:            **
10381C               **       GEVCDF              **
10382C               **       GEVPDF              **
10383C               **       GEVPPF              **
10384C               **  OCTOBER 1995:            **
10385C               **       GOMCDF              **
10386C               **       GOMPDF              **
10387C               **       GOMPPF              **
10388C               **  DECEMBER 1995:           **
10389C               **       GLOCDF              **
10390C               **       GLOPDF              **
10391C               **       GLOPPF              **
10392C               **  FEBRUARY 1996:           **
10393C               **       GEXCDF              **
10394C               **       GEXPDF              **
10395C               **       GEXPPF              **
10396C               **  APRIL    1998:           **
10397C               **       GEPHAZ, GEPCHA      **
10398C               **       GAMHAZ, GAMCHA      **
10399C               **  MARCH    1999:           **
10400C               **       GOODST              **
10401C               **  AUGUST   2001:           **
10402C               **       GLDCDF, GLDPDF      **
10403C               **       GLDPPF, GLDCHK      **
10404C               **       GLDLLM, GLDULM      **
10405C               **       GLDSGN              **
10406C               **  NOVEMBER 2001:           **
10407C               **       GEECDF, GEEPDF      **
10408C               **       GEEPPF, GEEHAZ      **
10409C               **       GEECHAZ             **
10410C               **  JANUARY  2003:           **
10411C               **       GHCDF, GHPDF, CHPPF **
10412C               **  JULY     2003:           **
10413C               **       GTRCDF              **
10414C               **       GTRPDF              **
10415C               **       GTRPPF              **
10416C               **  DECEMBER 2003:           **
10417C               **       GIGCDF              **
10418C               **       GIGPDF              **
10419C               **       GIGPPF              **
10420C               **  APRIL 2004:              **
10421C               **   GWACDF, GWAPDF, GWAPPF  **
10422C               **  JUNE  2004:              **
10423C               **   GALCDF, GALPDF, GALPPF  **
10424C               **  SEPTEMBER 2004:          **
10425C               **   GMCCDF, GMCPDF, GMCPPF  **
10426C               **  MAY       2005:          **
10427C               **   GMCCDF, GMCPDF, GMCPPF  **
10428C               **  FEBRUARY  2006:          **
10429C               **   GL2CDF, GL2PDF, GL2PPF  **
10430C               **   GL3CDF, GL3PDF, GL3PPF  **
10431C               **   GL4CDF, GL4PDF, GL4PPF  **
10432C               **   GL5CDF, GL5PDF, GL5PPF  **
10433C               **  JUNE      2006:          **
10434C               **   GLSCDF, GLSPDF, GLSPPF  **
10435C               **  JULY      2006:          **
10436C               **   GETCDF, GETPDF, GETPPF  **
10437C               **   GNBCDF, GNBPDF, GNBPPF  **
10438C               **  NOVEMBER  2006:          **
10439C               **   GLGCDF, GLGPDF, GLGPPF  **
10440C               **  JANUARY   2007:          **
10441C               **   GNTCDF, GNTPDF, GNTPPF  **
10442C               **  FEBRUARY  2007:          **
10443C               **   GTLCDF, GTLPDF, GTLPPF  **
10444C               **  MAY   2014:              **
10445C               **       GAMSURV             **
10446C               **       GAMISURV            **
10447C               **       GEESURV             **
10448C               **       GEEISURV            **
10449C               **       GEVSURV             **
10450C               **       GEVISURV            **
10451C               **       GOMSURV             **
10452C               **       GOMISURV            **
10453C               **  SEPTEMBER 2014           **
10454C               **       GCDF, GPDF, CPPF    **
10455C               *******************************
10456C
10457      IF(IA(I).EQ.'G')GOTO709
10458      GOTO790
10459  709 CONTINUE
10460C
10461      IP1=I+1
10462      IP2=I+2
10463      IP3=I+3
10464      IP4=I+4
10465      IP5=I+5
10466      IP6=I+6
10467      IP7=I+7
10468C
10469      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'M'.AND.
10470     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'I'.AND.
10471     1IA(IP6).EQ.'C')GOTO7700
10472      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'M'.AND.
10473     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'I'.AND.
10474     1IA(IP6).EQ.'P')GOTO7700
10475      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'M'.AND.
10476     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'I')GOTO7600
10477      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'M'.AND.
10478     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'R')GOTO7600
10479      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'M'.AND.
10480     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'A')GOTO7500
10481      IF(IA(IP1).EQ.'H'.AND.IA(IP2).EQ.'C'.AND.
10482     1IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
10483      IF(IA(IP1).EQ.'H'.AND.IA(IP2).EQ.'P'.AND.
10484     1IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
10485      IF(IA(IP1).EQ.'H'.AND.IA(IP2).EQ.'P'.AND.
10486     1IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'F')GOTO7500
10487      IF(IA(IP1).EQ.'C'.AND.IA(IP2).EQ.'D'.AND.
10488     1IA(IP3).EQ.'F')GOTO7400
10489      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'D'.AND.
10490     1IA(IP3).EQ.'F')GOTO7400
10491      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'P'.AND.
10492     1IA(IP3).EQ.'F')GOTO7400
10493C
10494      IF(IA(IP1).EQ.'C'.AND.IA(IP2).EQ.'D')GOTO7300
10495C
10496      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'P')GOTO710
10497      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'V')GOTO710
10498      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'X')GOTO710
10499      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'O')GOTO710
10500      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'M')GOTO710
10501      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'D')GOTO710
10502      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'M')GOTO710
10503      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'O')GOTO710
10504      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'2')GOTO710
10505      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'3')GOTO710
10506      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'4')GOTO710
10507      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'5')GOTO710
10508      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'D')GOTO710
10509      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'S')GOTO710
10510      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'E')GOTO710
10511      IF(IA(IP1).EQ.'T'.AND.IA(IP2).EQ.'R')GOTO710
10512      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'G')GOTO710
10513      IF(IA(IP1).EQ.'W'.AND.IA(IP2).EQ.'A')GOTO710
10514      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'L')GOTO710
10515      IF(IA(IP1).EQ.'M'.AND.IA(IP2).EQ.'C')GOTO710
10516      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'T')GOTO710
10517      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'B')GOTO710
10518      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'G')GOTO710
10519      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'T')GOTO710
10520      IF(IA(IP1).EQ.'T'.AND.IA(IP2).EQ.'L')GOTO710
10521      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'O'.AND.
10522     1IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'T')
10523     1GOTO7600
10524C
10525      GOTO9000
10526C
10527  710 CONTINUE
10528      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
10529     1   IA(IP5).EQ.'F')GOTO7600
10530      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
10531     1   IA(IP5).EQ.'F')GOTO7600
10532      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
10533     1   IA(IP5).EQ.'F')GOTO7600
10534      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.
10535     1   IA(IP5).EQ.'Z')GOTO7600
10536      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.
10537     1   IA(IP5).EQ.'A'.AND.IA(IP6).EQ.'Z')GOTO7700
10538      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.
10539     1   IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'V')GOTO7700
10540      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.
10541     1   IA(IP5).EQ.'U'.AND.IA(IP6).EQ.'R'.AND.
10542     1   IA(IP7).EQ.'V')GOTO7800
10543      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.
10544     1   IA(IP5).EQ.'K')GOTO7600
10545      IF(IA(IP3).EQ.'L'.AND.IA(IP4).EQ.'L'.AND.
10546     1   IA(IP5).EQ.'M')GOTO7600
10547      IF(IA(IP3).EQ.'U'.AND.IA(IP4).EQ.'L'.AND.
10548     1   IA(IP5).EQ.'M')GOTO7600
10549      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'G'.AND.
10550     1   IA(IP5).EQ.'N')GOTO7600
10551      GOTO9000
10552C
10553  790 CONTINUE
10554C
10555CCCCC THE FOLLOWING SECTION WAS ADDED          APRIL    1994
10556C               *******************************
10557C               **  STEP 8--                 **
10558C               **  SEARCH FOR FUNCTIONS     **
10559C               **  STARTING WITH H--        **
10560C               **       HFNCDF              **
10561C               **       HFNPDF              **
10562C               **       HFNPPF              **
10563C               **  SEPTEMBER 1994           **
10564C               **       HYPCDF              **
10565C               **       HYPPDF              **
10566C               **       HYPPPF              **
10567C               **  MARCH     1995           **
10568C               **       HEAVE               **
10569C               **  JULY      1995           **
10570C               **       HERMITE             **
10571C               **       HERMSGN             **
10572C               **  OCTOBER   1995           **
10573C               **       HSECDF              **
10574C               **       HSEPDF              **
10575C               **       HSEPPF              **
10576C               **  OCTOBER   1995           **
10577C               **       HFCCDF              **
10578C               **       HFCPDF              **
10579C               **       HFCPPF              **
10580C               **  OCTOBER   1995           **
10581C               **       HFLCDF              **
10582C               **       HFLPDF              **
10583C               **       HFLPPF              **
10584C               **  MARCH     1997           **
10585C               **       H0                  **
10586C               **       H1                  **
10587C               **       HV                  **
10588C               **  AUGUST    1997           **
10589C               **       HYPERGEO            **
10590C               **  MARCH     2004           **
10591C               **    HERCDF, HERPDF, HERPPF **
10592C               **  SEPTEMBER 2004           **
10593C               **    HBOCDF, HBOPDF, HBOPPF **
10594C               **  MAY       2006           **
10595C               **    HBOCDF, HBOPDF, HBOPPF **
10596C               *******************************
10597C
10598      IF(IA(I).EQ.'H')GOTO809
10599      GOTO890
10600  809 CONTINUE
10601C
10602      IP1=I+1
10603      IP2=I+2
10604      IP3=I+3
10605      IP4=I+4
10606      IP5=I+5
10607      IP6=I+6
10608      IP7=I+7
10609      IP8=I+8
10610C
10611      IF(IA(IP1).EQ.'F'.AND.IA(IP2).EQ.'N')GOTO810
10612      IF(IA(IP1).EQ.'F'.AND.IA(IP2).EQ.'C')GOTO810
10613      IF(IA(IP1).EQ.'F'.AND.IA(IP2).EQ.'L')GOTO810
10614      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R')GOTO810
10615      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'O')GOTO810
10616      IF(IA(IP1).EQ.'Y'.AND.IA(IP2).EQ.'P'.AND.
10617     1IA(IP3).EQ.'E'.AND.IA(IP4).EQ.'R'.AND.
10618     1IA(IP5).EQ.'G'.AND.IA(IP6).EQ.'E'.AND.IA(IP7).EQ.'O')GOTO7800
10619      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'R'.AND.
10620     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'N'.AND.
10621     1IA(IP5).EQ.'U'.AND.IA(IP6).EQ.'M'.AND.IA(IP7).EQ.'B')GOTO7800
10622      IF(IA(IP1).EQ.'Y'.AND.IA(IP2).EQ.'P')GOTO810
10623      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'E')GOTO810
10624      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'A'.AND.IA(IP3).EQ.'V'.AND.
10625     1IA(IP4).EQ.'E')GOTO7500
10626      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
10627     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'I'.AND.
10628     1IA(IP5).EQ.'T'.AND.IA(IP6).EQ.'E')GOTO7700
10629      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
10630     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'S'.AND.
10631     1IA(IP5).EQ.'G'.AND.IA(IP6).EQ.'N')GOTO7700
10632      IF(IA(IP1).EQ.'0')GOTO7200
10633      IF(IA(IP1).EQ.'1')GOTO7200
10634      IF(IA(IP1).EQ.'V')GOTO7200
10635      GOTO9000
10636C
10637  810 CONTINUE
10638      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
10639     1   IA(IP5).EQ.'F')GOTO7600
10640      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.
10641     1   IA(IP5).EQ.'F')GOTO7600
10642      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.
10643     1   IA(IP5).EQ.'F')GOTO7600
10644      GOTO9000
10645C
10646  890 CONTINUE
10647C
10648C
10649C               ****************************
10650C               **  STEP 9--              **
10651C               **  SEARCH FOR FUNCTIONS  **
10652C               **  STARTING WITH I--     **
10653C               **       INTEGER          **
10654C               **       INT              **
10655C               **       IND              **
10656C               **       IGCDF (MAY 1990) **
10657C               **       IGPDF (MAY 1990) **
10658C               **       IGPPF (MAY 1990) **
10659C               **       IGHAZ (APRIL 1998) **
10660C               **       IGCHA (APRIL 1998) **
10661C               **       IGACDF (APRIL 1998) **
10662C               **       IGAPDF (APRIL 1998) **
10663C               **       IGAPPF (APRIL 1998) **
10664C               **       IGAHAZ (APRIL 1998) **
10665C               **       IGACHA (APRIL 1998) **
10666C               **  SEPTEMBER 2001        **
10667C               **       IWECDF           **
10668C               **       IWEPDF           **
10669C               **       IWEPPF           **
10670C               **       IWEHAZ           **
10671C               **       IWECHAZ          **
10672C               **  MAY       2003        **
10673C               **       IBCDF            **
10674C               **       IBPDF            **
10675C               **       IBPPF            **
10676C               **  NOVEMBER  2005        **
10677C               **       I0INT            **
10678C               **       I0ML0            **
10679C               **       I1ML1            **
10680C               **  MAY       2014        **
10681C               **       IGSURV           **
10682C               **       IGISURV          **
10683C               **       IGASURV          **
10684C               **       IGAISURV         **
10685C               **       IWESURV          **
10686C               **       IWEISURV         **
10687C               ****************************
10688C
10689      IF(IA(I).EQ.'I')GOTO909
10690      GOTO990
10691  909 CONTINUE
10692C
10693      IP1=I+1
10694      IP2=I+2
10695      IP3=I+3
10696      IP4=I+4
10697      IP5=I+5
10698      IP6=I+6
10699      IP7=I+7
10700C
10701CCCCC THE FOLLOWING LINE WAS ADDED MAY 1990
10702      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'A')GOTO920
10703      IF(IA(IP1).EQ.'W'.AND.IA(IP2).EQ.'E')GOTO920
10704      IF(IA(IP1).EQ.'G')GOTO910
10705      IF(IA(IP1).EQ.'B')GOTO910
10706      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'T'.AND.
10707     1IA(IP3).EQ.'E'.AND.IA(IP4).EQ.'G'.AND.
10708     1IA(IP5).EQ.'E'.AND.IA(IP6).EQ.'R')GOTO7700
10709      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'T')GOTO7300
10710      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'D')GOTO7300
10711      IF(IA(IP1).EQ.'0'.AND.IA(IP2).EQ.'I'.AND.
10712     1IA(IP3).EQ.'N'.AND.IA(IP4).EQ.'T')GOTO7500
10713      IF(IA(IP1).EQ.'0'.AND.IA(IP2).EQ.'M'.AND.
10714     1IA(IP3).EQ.'L'.AND.IA(IP4).EQ.'0')GOTO7500
10715      IF(IA(IP1).EQ.'1'.AND.IA(IP2).EQ.'M'.AND.
10716     1IA(IP3).EQ.'L'.AND.IA(IP4).EQ.'1')GOTO7500
10717      GOTO9000
10718C
10719CCCCC THE FOLLOWING SECTION WAS ADDED MAY 1990
10720  910 CONTINUE
10721      IF(IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
10722      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
10723      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'F')GOTO7500
10724      IF(IA(IP2).EQ.'H'.AND.IA(IP3).EQ.'A'.AND.IA(IP4).EQ.'Z')GOTO7500
10725      IF(IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.
10726     1IA(IP5).EQ.'Z')GOTO7600
10727      IF(IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'U'.AND.IA(IP4).EQ.'R'.AND.
10728     1IA(IP5).EQ.'V')GOTO7600
10729      IF(IA(IP2).EQ.'I'.AND.IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.
10730     1IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'V')GOTO7700
10731      GOTO9000
10732C
10733  920 CONTINUE
10734      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
10735      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
10736      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
10737      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
10738      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
10739     1IA(IP6).EQ.'Z')GOTO7700
10740      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.IA(IP5).EQ.'R'.AND.
10741     1IA(IP6).EQ.'V')GOTO7700
10742      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'U'.AND.
10743     1IA(IP6).EQ.'R'.AND.IA(IP7).EQ.'V')GOTO7800
10744      GOTO9000
10745C
10746  990 CONTINUE
10747C
10748CCCCC THE JULIA FUNCTION WAS ADDED APRIL 1989
10749C               ********************************
10750C               **  STEP 10--                 **
10751C               **  SEARCH FOR FUNCTIONS      **
10752C               **  STARTING WITH J--         **
10753C               **       JULIA                **
10754C               **  JULY     1995             **
10755C               **       JACOBIP              **
10756C               **  SEPTEMBER    2001         **
10757C               **    JSBCDF, JSBPDF, JSBPPF  **
10758C               **    JSUCDF, JSUPDF, JSUPPF  **
10759C               **  NOVEMBER     2005         **
10760C               **    J0INT                   **
10761C               ********************************
10762C
10763      IF(IA(I).EQ.'J')GOTO1009
10764      GOTO1090
10765 1009 CONTINUE
10766C
10767      IP1=I+1
10768      IP2=I+2
10769      IP3=I+3
10770      IP4=I+4
10771      IP5=I+5
10772      IP6=I+6
10773      IP7=I+7
10774C
10775      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'B')GOTO1020
10776      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'U')GOTO1020
10777      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'L'.AND.
10778     1IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'A')GOTO7500
10779      IF(IA(IP1).EQ.'0'.AND.IA(IP2).EQ.'I'.AND.
10780     1IA(IP3).EQ.'N'.AND.IA(IP4).EQ.'T')GOTO7500
10781      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'C'.AND.
10782     1IA(IP3).EQ.'O'.AND.IA(IP4).EQ.'B'.AND.
10783     1IA(IP5).EQ.'I'.AND.IA(IP6).EQ.'P')
10784     1GOTO7700
10785C
10786 1020 CONTINUE
10787      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
10788      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
10789      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
10790      GOTO9000
10791C
10792 1090 CONTINUE
10793C
10794C               ********************************************
10795C               **  STEP 30--                             **
10796C               **  SINCE NO LEAD CHARACTER MATCH FOUND,  **
10797C               **  GO TO END OF SUBROUTINE.              **
10798C               ********************************************
10799C
10800      GOTO9000
10801C
10802C               **********************************************
10803C               **  STEP 70--                               **
10804C               **  CHECK FOR A TRAILING LEFT PARENTHESIS.  **
10805C               **********************************************
10806C
10807C7100 CONTINUE
10808CCCCC IF(IA(IP1).EQ.'(')GOTO7110
10809CCCCC GOTO9000
10810C7110 CONTINUE
10811CCCCC IFOUND='YES'
10812CCCCC NCLF=1
10813CCCCC GOTO9000
10814C
10815 7200 CONTINUE
10816      IF(IA(IP2).EQ.'(')GOTO7210
10817      GOTO9000
10818 7210 CONTINUE
10819      IFOUND='YES'
10820      NCLF=2
10821      GOTO9000
10822C
10823 7300 CONTINUE
10824      IF(IA(IP3).EQ.'(')GOTO7310
10825      GOTO9000
10826 7310 CONTINUE
10827      IFOUND='YES'
10828      NCLF=3
10829      GOTO9000
10830C
10831 7400 CONTINUE
10832      IF(IA(IP4).EQ.'(')GOTO7410
10833      GOTO9000
10834 7410 CONTINUE
10835      IFOUND='YES'
10836      NCLF=4
10837      GOTO9000
10838C
10839 7500 CONTINUE
10840      IF(IA(IP5).EQ.'(')GOTO7510
10841      GOTO9000
10842 7510 CONTINUE
10843      IFOUND='YES'
10844      NCLF=5
10845      GOTO9000
10846C
10847 7600 CONTINUE
10848      IF(IA(IP6).EQ.'(')GOTO7610
10849      GOTO9000
10850 7610 CONTINUE
10851      IFOUND='YES'
10852      NCLF=6
10853      GOTO9000
10854C
10855 7700 CONTINUE
10856      IF(IA(IP7).EQ.'(')GOTO7710
10857      GOTO9000
10858 7710 CONTINUE
10859      IFOUND='YES'
10860      NCLF=7
10861      GOTO9000
10862C
10863 7800 CONTINUE
10864      IP8=I+8
10865      IF(IA(IP8).EQ.'(')GOTO7810
10866      GOTO9000
10867 7810 CONTINUE
10868      IFOUND='YES'
10869      NCLF=8
10870      GOTO9000
10871C
10872C               *****************
10873C               **  STEP 90--  **
10874C               **  EXIT       **
10875C               *****************
10876C
10877 9000 CONTINUE
10878      IF(IBUGCK.EQ.'OFF')GOTO9990
10879      WRITE(ICOUT,999)
10880      CALL DPWRST('XXX','BUG ')
10881      WRITE(ICOUT,9911)
10882 9911 FORMAT('AT THE END       OF CKLIB1--')
10883      CALL DPWRST('XXX','BUG ')
10884      WRITE(ICOUT,9912)IFOUND,IERROR
10885 9912 FORMAT('IFOUND = ',A4,'  IERROR = ',A4)
10886      CALL DPWRST('XXX','BUG ')
10887      WRITE(ICOUT,9913)NCLF
10888 9913 FORMAT('NCLF = ',I8)
10889      CALL DPWRST('XXX','BUG ')
10890 9990 CONTINUE
10891C
10892      RETURN
10893      END
10894      SUBROUTINE CKLIB2(IA,N,I,IFOUND,NCLF,IBUGCK,IERROR)
10895C
10896C     PURPOSE--SEARCH THE 1-CHARACTER PER WORD CHARACTER STRING IN
10897C              IA(.) STARTING WITH POSITION I AND DETERMINE IF THAT
10898C              STRING IS A MEMBER OF THE AUGMENTED LIBRARY FUNCTION SET.
10899C     NOTE--THIS IS PART 2 (SEARCHING FOR LIBRARY FUNCTIONS
10900C           WITH STARTING CHARACTERS OF K TO Z)
10901C     WRITTEN BY--JAMES J. FILLIBEN
10902C                 STATISTICAL ENGINEERING DIVISION
10903C                 INFORMATION TECHNOLOGY LABORATORY
10904C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
10905C                 GAITHERSBURG, MD 20899-8980
10906C                 PHONE--301-975-2855
10907C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
10908C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
10909C     LANGUAGE--ANSI FORTRAN (1977)
10910C     VERSION NUMBER--82/7
10911C     ORIGINAL VERSION--JANUARY   1979.
10912C     UPDATED         --FEBRUARY  1981.
10913C     UPDATED         --JUNE      1981.
10914C     UPDATED         --NOVEMBER  1981.
10915C     UPDATED         --MARCH     1982.
10916C     UPDATED         --MAY       1982.
10917C     UPDATED         --JUNE      1987.  WEICDF, WEIPDF, WEIPPF
10918C     UPDATED         --SEPTEMBER 1987.  LSD (= LEAST SIGNIFICANT DIGIT)
10919C     UPDATED         --SEPTEMBER 1987.  ROUND
10920C     UPDATED         --DECEMBER  1988.  LSD(.) RENAMED AS MSD(.)
10921C     UPDATED         --MAY       1989.  PERDEF(.,.) PERCENT DEFECTIVE
10922C     UPDATED         --MAY       1990.  RIGCDF/PDF/PPF (REV INV GAUS)
10923C     UPDATED         --MAY       1990.  WALCDF/PDF/PPF (WALD)
10924C     UPDATED         --APRIL     1990.  WALCDF/PDF/PPF (WALD)
10925C     UPDATED         --APRIL     1994.  POI-CDF/PDF/PPF (POISSON)
10926C     UPDATED         --APRIL     1994.  SEM-CDF/PPF (SEMI-CIRCULAR)
10927C     UPDATED         --APRIL     1994.  NB-CDF/PDF/PPF
10928C                                        (NEGATIVE BINOMIAL)
10929C     UPDATED         --APRIL     1994.  LAM-CDF/PDF/PPF/SF (LAMBDA)
10930C     UPDATED         --APRIL     1994.  LGN-CDF/PPF (LOG-NORMAL)
10931C     UPDATED         --APRIL     1994.  LOG-CDF/PPF (LOGISTIC)
10932C     UPDATED         --APRIL     1994.  PAR-CDF/PPF (PARETO)
10933C     UPDATED         --APRIL     1994.  UNI-CDF/PDF/PPF/SF (UNIFORM)
10934C     UPDATED         --SEPTEMBER 1994.  NCBCDF (NON-CENTRAL BETA)
10935C     UPDATED         --SEPTEMBER 1994.  NCCCDF (NON-CENTRAL CHISQ)
10936C     UPDATED         --SEPTEMBER 1994.  NCFCDF (NON-CENTRAL F)
10937C     UPDATED         --SEPTEMBER 1994.  NCTCDF (NON-CENTRAL T)
10938C     UPDATED         --SEPTEMBER 1994.  LNBETA (LOG BETA)
10939C     UPDATED         --SEPTEMBER 1994.  TRI-CDF/PDF/PPF (TRIANGULAR)
10940C     UPDATED         --SEPTEMBER 1994.  ELLIPTIC INTEGRALS (RC, ETC.)
10941C     UPDATED         --SEPTEMBER 1994.  TRICOMI (TRICOMI'S INCOMPLETE
10942C                                        GAMMA)
10943C     UPDATED         --SEPTEMBER 1994.  LOGINT (LOGARITHMIC INTEGRAL)
10944C     UPDATED         --SEPTEMBER 1994.  SPENCE (SPENCE DILOGARITHM)
10945C     UPDATED         --SEPTEMBER 1994.  POCH (POCHHAMMER'S
10946C                                        GENERALIZED SYMBOL)
10947C     UPDATED         --SEPTEMBER 1994.  POCH (POCHHAMMER'S
10948C                                        GENERALIZED SYMBOL FROM FIRST
10949C                                        ORDER)
10950C     UPDATED         --SEPTEMBER 1994.  SININT, SINHINT
10951C     UPDATED         --OCTOBER   1994.  VON-CDF/PDF/PPF (VON MISES)
10952C     UPDATED         --OCTOBER   1994.  BVNCDF (BIVARIATE NORMAL)
10953C     UPDATED         --NOVEMBER  1994.  PEQ, PEQ1, PLEM. PLEM1
10954C                                        PEQI, PEQ1I, PLEMI, PLEM1I
10955C                                        WEIRSTRASS ELLIPTIC FUNCTIONS
10956C     UPDATED         --NOVEMBER  1994.  SN (JACOBIAN ELLIPTIC FUNC)
10957C     UPDATED         --MARCH     1995.  STEP (STEP FUNCTION)
10958C     UPDATED         --APRIL     1995.  PNRCDF, PNRPDF, PNRPPF
10959C                                        (POWER NORMAL DISTRIBUTIONS)
10960C     UPDATED         --APRIL     1995.  PLNCDF, PLNPDF, PLNPPF
10961C                                        (POWER NORMAL DISTRIBUTIONS)
10962C     UPDATED         --APRIL     1995.  POWCDF, POWPDF, POWPPF
10963C     UPDATED         --APRIL     1995.  TNRCDF, TNRPDF, TNRPPF
10964C     UPDATED         --APRIL     1995.  WARCDF, WARPDF, WARPPF
10965C     UPDATED         --APRIL     1995.  LLGCDF, LLGPDF, LLGPPF
10966C     UPDATED         --APRIL     1995.  NCTPDF
10967C     UPDATED         --JULY      1995.  LAGUERRE, LEGENDRE POLYNOMIALS
10968C     UPDATED         --JULY      1995.  NORMLAIZED LAGUERRE POLYNOMIALS
10969C     UPDATED         --JULY      1995.  ULTRASPERICAL POLYNOMIALS
10970C     UPDATED         --OCTOBER   1995.  LGAPDF, LGACDF, LGAPPF
10971C     UPDATED         --OCTOBER   1995.  PA2PDF, PA2CDF, PA2PPF
10972C     UPDATED         --OCTOBER   1995.  WCAPDF, WCACDF, WCAPPF
10973C     UPDATED         --OCTOBER   1995.  TNEPDF, TNECDF, TNEPPF
10974C     UPDATED         --DECEMBER  1995.  PEXPDF, PEXCDF, PEXPPF
10975C     UPDATED         --JANUARY   1996.  KAPPDF, KAPCDF, KAPPPF
10976C     UPDATED         --MAY       1996.  RECPDF, RECCDF, RECPPF
10977C     UPDATED         --JANUARY   1997.  LOGBETA, LNGAMMA
10978C     UPDATED         --MARCH     1997.  LAMBDA, LAMBDAP
10979C     UPDATED         --MARCH     1997.  L0, L1, LV
10980C     UPDATED         --AUGUST    1997.  PBDV, PBDV1
10981C     UPDATED         --AUGUST    1997.  PBVV, PBVV1
10982C     UPDATED         --AUGUST    1997.  PBWA, PBWA1
10983C     UPDATED         --SEPTEMBER 1997.  PSI, ZETA
10984C     UPDATED         --APRIL     1998.  NORHAZ, NORCHAZ
10985C     UPDATED         --APRIL     1998.  PARHAZ, PARCHAZ
10986C     UPDATED         --APRIL     1998.  WEIHAZ, WEICHAZ
10987C     UPDATED         --APRIL     1998.  LGNHAZ, LGNCHAZ
10988C     UPDATED         --APRIL     1998.  LOGHAZ, LOGCHAZ
10989C     UPDATED         --APRIL     1998.  PLNHAZ, PLNCHAZ
10990C     UPDATED         --APRIL     1998.  PNRHAZ, PNRCHAZ
10991C     UPDATED         --APRIL     1998.  RIGHAZ, RIGCHAZ
10992C     UPDATED         --APRIL     1998.  WALHAZ, WALCHAZ
10993C     UPDATED         --APRIL     1998.  PEXHAZ, PEXCHAZ
10994C     UPDATED         --APRIL     1998.  UNIHAZ, UNICHAZ
10995C     UPDATED         --MARCH     1999.  SRACDF, SRAPDF, SRAPPF
10996C     UPDATED         --MARCH     1999.  LOBACH
10997C     UPDATED         --MARCH     1999.  SYNCH1
10998C     UPDATED         --MARCH     1999.  SYNCH2
10999C     UPDATED         --MARCH     1999.  STROM
11000C     UPDATED         --MARCH     1999.  TRAN
11001C     UPDATED         --MAY       2002.  TSPCDF, TSPPDF, TSPPPF
11002C     UPDATED         --JANUARY   2003.  SLAPDF
11003C     UPDATED         --APRIL     2003.  LANCDF, LANPDF, LANPPF
11004C     UPDATED         --APRIL     2003.  LANDIF, LANXM1, LANXM2
11005C     UPDATED         --JUNE      2003.  TRACDF, TRAPDF, TRAPPF
11006C     UPDATED         --NOVEMBER  2003.  SNCDF,  SNPDF,  SNPPF
11007C     UPDATED         --NOVEMBER  2003.  STCDF,  STPDF,  STPPF
11008C     UPDATED         --NOVEMBER  2003.  ZIPCDF, ZIPPDF, ZIPPPF
11009C     UPDATED         --DECEMBER  2003.  MAKCDF, MAKPDF, MAKPPF
11010C     UPDATED         --MARCH     2004.  LSNCDF, LSNPDF, LSNPPF
11011C     UPDATED         --MARCH     2004.  LSTCDF, LSTPDF, LSTPPF
11012C     UPDATED         --MARCH     2004.  POLCDF, POLPDF, POLPPF
11013C     UPDATED         --APRIL     2004.  YULCDF, YULPDF, YULPPF
11014C     UPDATED         --JUNE      2004.  SDECDF, SDEPDF, SDEPPF
11015C     UPDATED         --JUNE      2004.  MAXCDF, MAXPDF, MAXPPF
11016C     UPDATED         --JUNE      2004.  RAYCDF, RAYPDF, RAYPPF
11017C     UPDATED         --AUGUST    2004.  MCLCDF, MCLPDF, MCLPPF
11018C     UPDATED         --MARCH     2005.  LGNAFR, WEIAFR
11019C     UPDATED         --NOVEMBER  2005.  K0INT
11020C     UPDATED         --NOVEMBER  2005.  Y0INT
11021C     UPDATED         --FEBRUARY  2006.  WAKCDF, WAKPDF, WAKPPF
11022C     UPDATED         --MAY       2006.  ZETCDF, ZETPDF, ZETPPF
11023C     UPDATED         --MAY       2006.  LBECDF, LBEPDF, LBEPPF
11024C     UPDATED         --JUNE      2006.  LPOCDF, LPOPDF, LPOPPF
11025C     UPDATED         --JUNE      2006.  LCTCDF, LCTPDF, LCTPPF
11026C     UPDATED         --JUNE      2006.  MATCDF, MATPDF, MATPPF
11027C     UPDATED         --JUNE      2006.  OCCCDF, OCCPDF, OCCPPF
11028C     UPDATED         --JUNE      2006.  PAPCDF, PAPPDF, PAPPPF
11029C     UPDATED         --JUNE      2006.  NEYCDF, NEYPDF, NEYPPF
11030C     UPDATED         --JUNE      2006.  LOSCDF, LOSPDF, LOSPPF
11031C     UPDATED         --JULY      2006.  PIGCDF, PIGPDF, PIGPPF
11032C     UPDATED         --JULY      2006.  QBICDF, QBIPDF, QBIPPF
11033C     UPDATED         --AUGUST    2006.  LKCDF,  LKPDF,  LKPPF
11034C     UPDATED         --JANUARY   2007.  KATCDF, KATPDF, KATPPF
11035C     UPDATED         --FEBRUARY  2007.  TOPCDF, TOPPDF, TOPPPF
11036C     UPDATED         --FEBRUARY  2007.  RGTCDF, RGTPDF, RGTPPF
11037C     UPDATED         --SEPTEMBER 2007.  SLOCDF, SLOPDF, SLOPPF
11038C     UPDATED         --SEPTEMBER 2007.  TSSCDF, TSSPDF, TSSPPF
11039C     UPDATED         --SEPTEMBER 2007.  OGICDF, OGIPDF, OGIPPF
11040C     UPDATED         --SEPTEMBER 2007.  TSOCDF, TSOPDF, TSOPPF
11041C     UPDATED         --OCTOBER   2007.  UTSCDF, UTSPDF, UTSPPF
11042C     UPDATED         --OCTOBER   2007.  KUMCDF, KUMPDF, KUMPPF
11043C     UPDATED         --DECEMBER  2007.  POWHAZ, POWCHAZ
11044C     UPDATED         --DECEMBER  2007.  RPOCDF, RPOPDF, RPOPPF
11045C                                        RPOHAZ, RPOCHAZ
11046C     UPDATED         --JANUARY   2008.  MMXCDF, MMXPDF, MMXPPF
11047C     UPDATED         --JANUARY   2008.  MUTCDF, MUTPDF, MUTPPF
11048C     UPDATED         --FEBRUARY  2008.  LEXCDF, LEXPDF, LEXPPF,
11049C                                        LEXHAZ, LEXCHAZ
11050C     UPDATED         --MARCH     2008.  LE3CDF, LE3PDF, LE3PPF,
11051C                                        LE3HAZ, LE3CHAZ
11052C     UPDATED         --MARCH     2008.  TNPCDF, TNPPDF, TNPPPF,
11053C     UPDATED         --MAY       2008.  MIECDF, MIEPDF, MIEPPF,
11054C     UPDATED         --MAY       2008.  PE3CDF, PE3PDF, PE3PPF,
11055C     UPDATED         --DECEMBER  2010.  MERGE, MERGE3
11056C     UPDATED         --DECEMBER  2010.  RELDIF, PERCDIF, PERCERR
11057C     UPDATED         --JANUARY   2011.  RELERR, RELDIF2, PERCDIF2
11058C     UPDATED         --JANUARY   2013.  SLOPE
11059C     UPDATED         --MARCH     2013.  SINCDF, SINPDF, SINPPF
11060C     UPDATED         --AUGUST    2013.  LININTER
11061C     UPDATED         --MARCH     2014.  TRIGAMMA
11062C     UPDATED         --MAY       2014.  LGNSURV, LGNISURV
11063C     UPDATED         --MAY       2014.  LOGSURV, LOGISURV
11064C     UPDATED         --MAY       2014.  NORSURV, NORISURV
11065C     UPDATED         --MAY       2014.  PLNSURV, PLNISURV
11066C     UPDATED         --MAY       2014.  PNRSURV, PNRISURV
11067C     UPDATED         --MAY       2014.  RIGSURV, RIGISURV
11068C     UPDATED         --MAY       2014.  WALSURV, WALISURV
11069C     UPDATED         --MAY       2014.  WEISURV, WEIISURV
11070C     UPDATED         --MAY       2014.  UNISURV, UNIISURV
11071C     UPDATED         --JULY      2014.  NORPPCV
11072C     UPDATED         --AUGUST    2015.  OCTBIN
11073C     UPDATED         --AUGUST    2015.  VSUM, VSUM2, VSSQ
11074C
11075C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
11076C
11077      CHARACTER*4 IA
11078      CHARACTER*4 IFOUND
11079      CHARACTER*4 IBUGCK
11080      CHARACTER*4 IERROR
11081C
11082C---------------------------------------------------------------------
11083C
11084      DIMENSION IA(*)
11085C
11086C---------------------------------------------------------------------
11087C
11088      INCLUDE 'DPCOP2.INC'
11089C
11090C-----START POINT-----------------------------------------------------
11091C
11092      IFOUND='NO'
11093      IERROR='NO'
11094C
11095      NCLF=-99
11096C
11097      NP1=N+1
11098C
11099      IF(IBUGCK.EQ.'ON')THEN
11100        WRITE(ICOUT,999)
11101  999   FORMAT(1X)
11102        CALL DPWRST('XXX','BUG ')
11103        WRITE(ICOUT,51)
11104   51   FORMAT('AT THE BEGINNING OF CKLIB2--')
11105        CALL DPWRST('XXX','BUG ')
11106        WRITE(ICOUT,52)N,I,IBUGCK
11107   52   FORMAT('N,I,IBUGCK = ',I8,I8,2X,A4)
11108        CALL DPWRST('XXX','BUG ')
11109        DO55I2=1,N
11110          WRITE(ICOUT,56)I2,IA(I2)
11111   56     FORMAT('I2,IA(I2) = ',I8,2X,A4)
11112          CALL DPWRST('XXX','BUG ')
11113   55   CONTINUE
11114      ENDIF
11115C
11116      IF(I.GE.NP1)GOTO9000
11117C
11118C               **********************************
11119C               **  STEP 11--                   **
11120C               **  SEARCH FOR FUNCTIONS        **
11121C               **  STARTING WITH K--           **
11122C               **       KAPCDF                 **
11123C               **       KAPPDF                 **
11124C               **       KAPPPF                 **
11125C               **  SEPTEMBER 1997:             **
11126C               **       KER, KERI, KER1, KERI1 **
11127C               **  NOVEMBER 2005:              **
11128C               **       K0INT                  **
11129C               **  SEPTEMBER 2006:             **
11130C               **       KATCDF                 **
11131C               **       KATPDF                 **
11132C               **       KATPPF                 **
11133C               **  OCTOBER   2007:             **
11134C               **       KUMCDF                 **
11135C               **       KUMPDF                 **
11136C               **       KUMPPF                 **
11137C               **********************************
11138C
11139      IF(IA(I).EQ.'K')GOTO1109
11140      GOTO1190
11141 1109 CONTINUE
11142C
11143      IP1=I+1
11144      IP2=I+2
11145      IP3=I+3
11146      IP4=I+4
11147      IP5=I+5
11148      IP6=I+6
11149      IP7=I+7
11150C
11151      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
11152     1IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'1')GOTO7500
11153      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
11154     1IA(IP3).EQ.'I')GOTO7400
11155      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
11156     1IA(IP3).EQ.'1')GOTO7400
11157      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R')GOTO7300
11158      IF(IA(IP1).EQ.'0'.AND.IA(IP2).EQ.'I'.AND.
11159     1IA(IP3).EQ.'N'.AND.IA(IP4).EQ.'T')GOTO7500
11160C
11161      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'P')GOTO1120
11162      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'T')GOTO1120
11163      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'M')GOTO1120
11164      GOTO9000
11165C
11166 1120 CONTINUE
11167      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11168      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11169      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11170C
11171 1190 CONTINUE
11172C
11173C
11174C               ****************************
11175C               **  STEP 12--             **
11176C               **  SEARCH FOR FUNCTIONS  **
11177C               **  STARTING WITH L--     **
11178C               **       LOGGAMMA         **
11179C               **       LOG10            **
11180C               **       LOGE             **
11181C               **       LOG2             **
11182C               **       LOG              **
11183C               **       LN               **
11184C               **  ADD: APRIL 1994       **
11185C               **       LAMCDF           **
11186C               **       LAMPDF           **
11187C               **       LAMPPF           **
11188C               **       LAMSF            **
11189C               **       LGNCDF           **
11190C               **       LGNPDF           **
11191C               **       LGNPPF           **
11192C               **       LOGCDF           **
11193C               **       LOGPDF           **
11194C               **       LOGPPF           **
11195C               **       LOGSF            **
11196C               **  ADD: SEPTEMBER 1994   **
11197C               **       LNBETA           **
11198C               **       LOGINT           **
11199C               **  ADD: APRIL 1995       **
11200C               **       LLGCDF           **
11201C               **       LLGPDF           **
11202C               **       LLGPPF           **
11203C               **  ADD: JULY  1995       **
11204C               **       LAGUERRE         **
11205C               **       LAGUERRL         **
11206C               **       LEGENDRE         **
11207C               **       LEGP             **
11208C               **       LEGQ             **
11209C               **       LNHERMIT         **
11210C               **  ADD: OCTOBER 1995     **
11211C               **       LGACDF           **
11212C               **       LGAPDF           **
11213C               **       LGAPPF           **
11214C               **  ADD: JANUARY  1997    **
11215C               **       LOGBETA          **
11216C               **       LNGAMMA          **
11217C               **       LAMBDA           **
11218C               **  ADD: MARCH    1997    **
11219C               **       LAMBDA           **
11220C               **       LAMBDAP          **
11221C               **       L0, L1, LV       **
11222C               **  ADD: APRIL 1998       **
11223C               **       LGNHAZ, LGNCHAZ  **
11224C               **       LOGHAZ, LLOGHAZ  **
11225C               **  ADD: MARCH  1999      **
11226C               **       LOBACH           **
11227C               **  ADD: SEPTEMBER 2001   **
11228C               **       LDECDF           **
11229C               **       LDEPDF           **
11230C               **       LDEPPF           **
11231C               **  ADD: APRIL 2003       **
11232C               **       LANCDF           **
11233C               **       LANPDF           **
11234C               **       LANPPF           **
11235C               **       LANXM1           **
11236C               **       LANXM2           **
11237C               **       LANDIF           **
11238C               **  ADD: MARCH 2004       **
11239C               **       LSNCDF           **
11240C               **       LSNPDF           **
11241C               **       LSNPPF           **
11242C               **       LSTCDF           **
11243C               **       LSTPDF           **
11244C               **       LSTPPF           **
11245C               **  ADD: MARCH 2005       **
11246C               **       LGNAFR           **
11247C               **  ADD: MAY   2006       **
11248C               **       LBECDF           **
11249C               **       LBEPDF           **
11250C               **       LBEPPF           **
11251C               **  ADD: JUNE  2006       **
11252C               **       LPOCDF           **
11253C               **       LPOPDF           **
11254C               **       LPOPPF           **
11255C               **       LCTCDF           **
11256C               **       LCTPDF           **
11257C               **       LCTPPF           **
11258C               **       LOSCDF           **
11259C               **       LOSPDF           **
11260C               **       LOSPPF           **
11261C               **  ADD: AUGUST  2006     **
11262C               **       LKCDF            **
11263C               **       LKPDF            **
11264C               **       LKPPF            **
11265C               **  ADD: JANUARY 2008     **
11266C               **       LEXCDF           **
11267C               **       LEXPDF           **
11268C               **       LEXPPF           **
11269C               **       LEXHAZ           **
11270C               **       LEXCHAZ          **
11271C               **  ADD: MARCH   2008     **
11272C               **       LE3CDF           **
11273C               **       LE3PDF           **
11274C               **       LE3PPF           **
11275C               **       LE3HAZ           **
11276C               **       LE3CHAZ          **
11277C               **  ADD: AUGUST  2013     **
11278C               **  ADD: MAY     2014     **
11279C               **       LGNSURV          **
11280C               **       LGNISURV         **
11281C               **       LOGSURV          **
11282C               **       LOGISURV         **
11283C               ****************************
11284C
11285      IF(IA(I).EQ.'L')GOTO1209
11286      GOTO1290
11287 1209 CONTINUE
11288C
11289      IP1=I+1
11290      IP2=I+2
11291      IP3=I+3
11292      IP4=I+4
11293      IP5=I+5
11294      IP6=I+6
11295      IP7=I+7
11296C
11297      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'U'.AND.
11298     1IA(IP4).EQ.'E'.AND.IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'R'.AND.
11299     1IA(IP7).EQ.'E')GOTO7800
11300      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'U'.AND.
11301     1IA(IP4).EQ.'E'.AND.IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'R'.AND.
11302     1IA(IP7).EQ.'L')GOTO7800
11303      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'E'.AND.
11304     1IA(IP4).EQ.'N'.AND.IA(IP5).EQ.'D'.AND.IA(IP6).EQ.'R'.AND.
11305     1IA(IP7).EQ.'E')GOTO7800
11306      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'P')
11307     1GOTO7400
11308      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'Q')
11309     1GOTO7400
11310      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'H'.AND.IA(IP3).EQ.'E'.AND.
11311     1IA(IP4).EQ.'R'.AND.IA(IP5).EQ.'M'.AND.IA(IP6).EQ.'I'.AND.
11312     1IA(IP7).EQ.'T')GOTO7800
11313      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'A'.AND.
11314     1IA(IP4).EQ.'M'.AND.IA(IP5).EQ.'M'.AND.IA(IP6).EQ.'A')GOTO7700
11315      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'B'.AND.
11316     1IA(IP4).EQ.'E'.AND.IA(IP5).EQ.'T'.AND.IA(IP6).EQ.'A')GOTO7700
11317      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'M'.AND.IA(IP3).EQ.'B'.AND.
11318     1IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'A'.AND.IA(IP6).EQ.'P')GOTO7700
11319      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'M'.AND.IA(IP3).EQ.'B'.AND.
11320     1IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'A')GOTO7600
11321      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'B'.AND.IA(IP3).EQ.'A'.AND.
11322     1IA(IP4).EQ.'C'.AND.IA(IP5).EQ.'H')
11323     1GOTO7600
11324      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'I'.AND.
11325     1IA(IP4).EQ.'N'.AND.IA(IP5).EQ.'T'.AND.IA(IP6).EQ.'E'.AND.
11326     1IA(IP7).EQ.'R')
11327     1GOTO7800
11328C
11329      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'S')GOTO1230
11330      IF(IA(IP1).EQ.'N')GOTO1240
11331      IF(IA(IP1).EQ.'O')GOTO1210
11332      IF(IA(IP1).EQ.'K')GOTO1250
11333      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'M')GOTO1220
11334      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'N')GOTO1220
11335      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'N')GOTO1220
11336      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'G')GOTO1220
11337      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'A')GOTO1220
11338      IF(IA(IP1).EQ.'D'.AND.IA(IP2).EQ.'E')GOTO1230
11339      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'N')GOTO1230
11340      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'T')GOTO1230
11341      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'E')GOTO1230
11342      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'O')GOTO1230
11343      IF(IA(IP1).EQ.'C'.AND.IA(IP2).EQ.'T')GOTO1230
11344      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'X')GOTO1260
11345      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'3')GOTO1260
11346      IF(IA(IP1).EQ.'0')GOTO7200
11347      IF(IA(IP1).EQ.'1')GOTO7200
11348      IF(IA(IP1).EQ.'V')GOTO7200
11349      GOTO9000
11350C
11351 1210 CONTINUE
11352      IF(IA(IP2).EQ.'G')GOTO1215
11353      GOTO9000
11354 1215 CONTINUE
11355      IF(IA(IP3).EQ.'G'.AND.IA(IP4).EQ.'A'.AND.
11356     1IA(IP5).EQ.'M'.AND.IA(IP6).EQ.'M'.AND.
11357     1IA(IP7).EQ.'A')GOTO7800
11358      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'N'.AND.
11359     1IA(IP5).EQ.'T')GOTO7600
11360      IF(IA(IP3).EQ.'1'.AND.IA(IP4).EQ.'0')GOTO7500
11361      IF(IA(IP3).EQ.'E')GOTO7400
11362      IF(IA(IP3).EQ.'2')GOTO7400
11363      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11364      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11365      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11366      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'F')GOTO7500
11367      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
11368      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
11369     1IA(IP6).EQ.'Z')GOTO7700
11370      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.IA(IP5).EQ.'R'.AND.
11371     1IA(IP6).EQ.'V')GOTO7700
11372      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'U'.AND.
11373     1IA(IP6).EQ.'R'.AND.IA(IP7).EQ.'V')GOTO7800
11374      GOTO7300
11375C
11376 1220 CONTINUE
11377      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11378      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11379      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11380      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'F')GOTO7500
11381      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
11382      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
11383     1IA(IP6).EQ.'Z')GOTO7700
11384      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.IA(IP5).EQ.'R'.AND.
11385     1IA(IP6).EQ.'V')GOTO7700
11386      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'U'.AND.
11387     1IA(IP6).EQ.'R'.AND.IA(IP7).EQ.'V')GOTO7800
11388      IF(IA(IP3).EQ.'A'.AND.IA(IP4).EQ.'F'.AND.IA(IP5).EQ.'R')GOTO7600
11389      IF(IA(IP3).EQ.'X'.AND.IA(IP4).EQ.'M'.AND.IA(IP5).EQ.'1')GOTO7600
11390      IF(IA(IP3).EQ.'X'.AND.IA(IP4).EQ.'M'.AND.IA(IP5).EQ.'2')GOTO7600
11391      IF(IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'F')GOTO7600
11392      GOTO9000
11393C
11394 1230 CONTINUE
11395      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11396      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11397      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11398      GOTO9000
11399C
11400 1240 CONTINUE
11401      IF(IA(IP2).EQ.'B'.AND.IA(IP3).EQ.'E'.AND.IA(IP4).EQ.'T'
11402     1.AND.IA(IP5).EQ.'A')GOTO7600
11403      GOTO7200
11404C
11405 1250 CONTINUE
11406      IF(IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
11407      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
11408      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'F')GOTO7500
11409      GOTO9000
11410C
11411 1260 CONTINUE
11412      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11413      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11414      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11415      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
11416      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
11417     1IA(IP6).EQ.'Z')GOTO7700
11418      GOTO9000
11419C
11420 1290 CONTINUE
11421C
11422C               ****************************
11423C               **  STEP 13--             **
11424C               **  SEARCH FOR FUNCTIONS  **
11425C               **  STARTING WITH M--     **
11426C               **       MAX              **
11427C               **       MIN              **
11428C               **       MODULO           **
11429C               **       MOD              **
11430C               **       MSD              **
11431C               **  DECEMBER  2003        **
11432C               **       MAKCDF           **
11433C               **       MAKPDF           **
11434C               **       MAKPPF           **
11435C               **       MAKHAZ           **
11436C               **       MAKCHAZ          **
11437C               **  JUNE      2004        **
11438C               **  MAXCDF, MAXPDF, MAXPPF**
11439C               **  AUGUST    2004        **
11440C               **  MCLCDF, MCLPDF, MCLPPF**
11441C               **  JUNE      2006        **
11442C               **  MATCDF, MATPDF, MATPPF**
11443C               **  JANUARY   2008        **
11444C               **  MMXCDF, MMXPDF, MMXPPF**
11445C               **  MUTCDF, MUTPDF, MUTPPF**
11446C               **  MUTHAZ, MUTCHAZ       **
11447C               **  MIECDF, MIEPDF, MIEPPF**
11448C               **  DECEMBER  2010        **
11449C               **  MERGE, MERGE3         **
11450C               ****************************
11451C
11452      IF(IA(I).EQ.'M')GOTO1309
11453      GOTO1390
11454 1309 CONTINUE
11455C
11456      IP1=I+1
11457      IP2=I+2
11458      IP3=I+3
11459      IP4=I+4
11460      IP5=I+5
11461      IP6=I+6
11462      IP7=I+7
11463C
11464      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'N')GOTO7300
11465      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'D'.AND.
11466     1IA(IP3).EQ.'U'.AND.IA(IP4).EQ.'L'.AND.
11467     1IA(IP5).EQ.'O')GOTO7600
11468      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
11469     1IA(IP3).EQ.'G'.AND.IA(IP4).EQ.'E'.AND.
11470     1IA(IP5).EQ.'3')GOTO7600
11471      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
11472     1IA(IP3).EQ.'G'.AND.IA(IP4).EQ.'E')GOTO7500
11473      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'D')GOTO7300
11474CCCCC THE FOLLOWING LINE WAS ADDED DECEMBER 1988
11475      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'D')GOTO7300
11476      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'X')GOTO1330
11477      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'K')GOTO1340
11478      IF(IA(IP1).EQ.'C'.AND.IA(IP2).EQ.'L')GOTO1330
11479      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'T')GOTO1330
11480      IF(IA(IP1).EQ.'M'.AND.IA(IP2).EQ.'X')GOTO1330
11481      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'T')GOTO1340
11482      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'E')GOTO1330
11483      GOTO9000
11484C
11485 1330 CONTINUE
11486      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11487      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11488      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11489      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'X')GOTO7300
11490      GOTO9000
11491C
11492 1340 CONTINUE
11493      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11494      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11495      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11496      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
11497      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
11498     1   IA(IP6).EQ.'Z')GOTO7700
11499      GOTO9000
11500C
11501 1390 CONTINUE
11502C
11503C               ****************************
11504C               **  STEP 14--             **
11505C               **  SEARCH FOR FUNCTIONS  **
11506C               **  STARTING WITH N--     **
11507C               **       NORCDF           **
11508C               **       NORPDF           **
11509C               **       NORPPF           **
11510C               **  ADD: APRIL 1994       **
11511C               **       NBCDF            **
11512C               **       NBPDF            **
11513C               **       NBPPF            **
11514C               **       NORSF            **
11515C               **  ADD: SEPTEMBER 1994   **
11516C               **       NCBCDF           **
11517C               **       NCBPDF           **
11518C               **       NCBPPF           **
11519C               **       NCCCDF           **
11520C               **       NCCPDF           **
11521C               **       NCCNCP           **
11522C               **       NCCPPF           **
11523C               **       NCFCDF           **
11524C               **       NCFPDF           **
11525C               **       NCFPDF           **
11526C               **       NCFPPF           **
11527C               **       NCTCDF           **
11528C               **       NCTPDF           **
11529C               **       NCTPPF           **
11530C               **  ADD: APRIL     1995   **
11531C               **       NCTPDF           **
11532C               **  ADD: JULY      1995   **
11533C               **       NRMLAG           **
11534C               **       NRMLEG           **
11535C               **       NRMLEGP          **
11536C               **       NRMLEGQ          **
11537C               **       NRMLAGL          **
11538C               **  ADD: JANUARY   1996   **
11539C               **       NCCCDF           **
11540C               **  ADD: APRIL     1998   **
11541C               **       NORHAZ, NORCHAZ  **
11542C               **  ADD: JUNE  2006       **
11543C               **       NEYCDF           **
11544C               **       NEYPDF           **
11545C               **       NEYPPF           **
11546C               **  ADD: MAY       2014   **
11547C               **       NORSURV          **
11548C               **       NORISURV         **
11549C               **  ADD: JULY      2014   **
11550C               **       NORPPCV          **
11551C               ****************************
11552C
11553      IF(IA(I).EQ.'N')GOTO1409
11554      GOTO1490
11555 1409 CONTINUE
11556C
11557      IP1=I+1
11558      IP2=I+2
11559      IP3=I+3
11560      IP4=I+4
11561      IP5=I+5
11562      IP6=I+6
11563      IP7=I+7
11564C
11565      IF(IA(IP1).EQ.'O')GOTO1410
11566      IF(IA(IP1).EQ.'B')GOTO1420
11567      IF(IA(IP1).EQ.'C')GOTO1430
11568      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'Y')GOTO1460
11569C
11570      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'M'.AND.
11571     1IA(IP3).EQ.'L'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'G')
11572     1GOTO7600
11573CCCCC IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'M'.AND.
11574CCCCC1IA(IP3).EQ.'L'.AND.IA(IP4).EQ.'E'.AND.IA(IP5).EQ.'G'.AND.
11575CCCCC1IA(IP6).EQ.'P')GOTO7700
11576CCCCC IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'M'.AND.
11577CCCCC1IA(IP3).EQ.'L'.AND.IA(IP4).EQ.'E'.AND.IA(IP5).EQ.'G'.AND.
11578CCCCC1IA(IP6).EQ.'Q')GOTO7700
11579      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'M'.AND.
11580     1IA(IP3).EQ.'L'.AND.IA(IP4).EQ.'E'.AND.IA(IP5).EQ.'G')
11581     1GOTO7600
11582      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'M'.AND.
11583     1IA(IP3).EQ.'L'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'G'.AND.
11584     1IA(IP6).EQ.'L')
11585     1GOTO7700
11586C
11587      GOTO9000
11588C
11589 1410 CONTINUE
11590      IF(IA(IP2).EQ.'R')GOTO1415
11591      GOTO9000
11592 1415 CONTINUE
11593      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11594      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11595      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11596      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'F')GOTO7500
11597      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
11598      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
11599     1IA(IP6).EQ.'Z')GOTO7700
11600      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'C'.AND.
11601     1IA(IP6).EQ.'V')GOTO7700
11602      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.IA(IP5).EQ.'R'.AND.
11603     1IA(IP6).EQ.'V')GOTO7700
11604      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'U'.AND.
11605     1IA(IP6).EQ.'R'.AND.IA(IP7).EQ.'V')GOTO7800
11606      IF(IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'X'.AND.IA(IP5).EQ.'C'.AND.
11607     1IA(IP6).EQ.'D'.AND.IA(IP7).EQ.'F')GOTO7800
11608      IF(IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'X'.AND.IA(IP5).EQ.'P'.AND.
11609     1IA(IP6).EQ.'D'.AND.IA(IP7).EQ.'F')GOTO7800
11610      IF(IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'X'.AND.IA(IP5).EQ.'P'.AND.
11611     1IA(IP6).EQ.'P'.AND.IA(IP7).EQ.'F')GOTO7800
11612      GOTO9000
11613C
11614 1420 CONTINUE
11615      IF(IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
11616      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
11617      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'F')GOTO7500
11618      GOTO9000
11619C
11620 1430 CONTINUE
11621      IF(IA(IP2).EQ.'B')GOTO1460
11622      IF(IA(IP2).EQ.'C')GOTO1470
11623      IF(IA(IP2).EQ.'F')GOTO1460
11624      IF(IA(IP2).EQ.'T')GOTO1480
11625      GOTO9000
11626C
11627 1460 CONTINUE
11628      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11629      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11630      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11631      GOTO9000
11632C
11633 1470 CONTINUE
11634      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11635      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11636      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11637      IF(IA(IP3).EQ.'N'.AND.IA(IP4).EQ.'C'.AND.IA(IP5).EQ.'P')GOTO7600
11638      GOTO9000
11639C
11640 1480 CONTINUE
11641      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11642      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11643      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11644      GOTO9000
11645C
11646 1490 CONTINUE
11647C
11648C               ********************************
11649C               **  STEP 15--                 **
11650C               **  SEARCH FOR FUNCTIONS      **
11651C               **  STARTING WITH O--         **
11652C               **    OCTAL                   **
11653C               **    OCTDEC                  **
11654C               **    OCCCDF, OCCPDF, OCCPPF  **
11655C               **    OGICDF, OGIPDF, OGIPPF  **
11656C               **  AUGUST 2015               **
11657C               **    OCTBIN, OCTALBIN        **
11658C               ********************************
11659C
11660      IF(IA(I).EQ.'O')GOTO1509
11661      GOTO1590
11662 1509 CONTINUE
11663C
11664      IP1=I+1
11665      IP2=I+2
11666      IP3=I+3
11667      IP4=I+4
11668      IP5=I+5
11669      IP6=I+6
11670      IP7=I+7
11671C
11672      IF(IA(IP1).EQ.'C'.AND.IA(IP2).EQ.'C')GOTO1580
11673      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'I')GOTO1580
11674      IF(IA(IP1).EQ.'C')GOTO1510
11675      GOTO9000
11676C
11677 1510 CONTINUE
11678      IF(IA(IP2).EQ.'T'.AND.IA(IP3).EQ.'A'.AND.IA(IP4).EQ.'L'.AND.
11679     1IA(IP5).EQ.'B'.AND.IA(IP6).EQ.'I'.AND.IA(IP7).EQ.'N')GOTO7800
11680      IF(IA(IP2).EQ.'T'.AND.IA(IP3).EQ.'A'.AND.IA(IP4).EQ.'L')GOTO7500
11681      IF(IA(IP2).EQ.'T'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'E'.AND.
11682     1IA(IP5).EQ.'C')GOTO7600
11683      IF(IA(IP2).EQ.'T'.AND.IA(IP3).EQ.'B'.AND.IA(IP4).EQ.'I'.AND.
11684     1IA(IP5).EQ.'N')GOTO7600
11685C
11686 1580 CONTINUE
11687      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11688      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11689      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11690      GOTO9000
11691C
11692      GOTO9000
11693C
11694 1590 CONTINUE
11695C
11696C               ****************************
11697C               **  STEP 16--             **
11698C               **  SEARCH FOR FUNCTIONS  **
11699C               **  STARTING WITH P--     **
11700C               **       PERDEF           **
11701C               **  ADD: APRIL 1994       **
11702C               **       POICDF           **
11703C               **       POIPDF           **
11704C               **       POIPPF           **
11705C               **       PARCDF           **
11706C               **       PARPDF           **
11707C               **       PARPPF           **
11708C               **  ADD: SEPTEMBER 1994   **
11709C               **       POCH             **
11710C               **       POCH1            **
11711C               **  ADD: NOVEMBER  1994   **
11712C               **       PEQ, PEQ1        **
11713C               **       PLEM, PLEM1      **
11714C               **       PEQI, PEQ1I      **
11715C               **       PLEMI, PLEM1I    **
11716C               **  ADD: APRIL     1995   **
11717C               **       PNRCDF           **
11718C               **       PNRPDF           **
11719C               **       PNRPPF           **
11720C               **  ADD: APRIL     1995   **
11721C               **       PLNCDF           **
11722C               **       PLNPDF           **
11723C               **       PLNPPF           **
11724C               **  ADD: APRIL     1995   **
11725C               **       POWCDF           **
11726C               **       POWPDF           **
11727C               **       POWPPF           **
11728C               **  ADD: OCTOBER 1995     **
11729C               **       PA2CDF           **
11730C               **       PA2PDF           **
11731C               **       PA2PPF           **
11732C               **  ADD: DECEMBER 1995    **
11733C               **       PEXCDF           **
11734C               **       PEXPDF           **
11735C               **       PEXPPF           **
11736C               **  ADD: AUGUST   1997    **
11737C               **       PBDV             **
11738C               **       PBDV1            **
11739C               **       PBVV             **
11740C               **       PBVV1            **
11741C               **       PBWA             **
11742C               **       PBWA1            **
11743C               **  ADD: SEPTEMBER 1997   **
11744C               **       PSI              **
11745C               **  ADD: OCTOBER   1997   **
11746C               **       PSIFN            **
11747C               **  ADD: APRIL     1998   **
11748C               **       PARHAZ, PARCHAZ  **
11749C               **       PNRHAZ, PNRCHAZ  **
11750C               **       PLNHAZ, PLNCHAZ  **
11751C               **       PEXHAZ, PEXCHAZ  **
11752C               **  ADD: MARCH    2004    **
11753C               **       POLCDF           **
11754C               **       POLPDF           **
11755C               **       POLPPF           **
11756C               **  ADD: JUNE     2006    **
11757C               **       PAPCDF           **
11758C               **       PAPPDF           **
11759C               **       PAPPPF           **
11760C               **  ADD: JULY     2006    **
11761C               **       PIGCDF           **
11762C               **       PIGPDF           **
11763C               **       PIGPPF           **
11764C               **  ADD: DECEMBER  2007   **
11765C               **       POWHAZ           **
11766C               **       POWCHAZ          **
11767C               **  ADD: MAY      2008    **
11768C               **       PE3CDF           **
11769C               **       PE3PDF           **
11770C               **       PE3PPF           **
11771C               **  ADD: DECEMBER 2010    **
11772C               **       PERCDIF          **
11773C               **       PERCERR          **
11774C               **  ADD: JANUARY  2011    **
11775C               **       PERCDIF2         **
11776C               **  ADD: MAY       2014   **
11777C               **       PLNSURV          **
11778C               **       PLNISURV         **
11779C               **       PNRSURV          **
11780C               **       PNRISURV         **
11781C               ****************************
11782C
11783CCCCC THE ENTIRE P SECTION IS NEW MAY 1989
11784      IF(IA(I).EQ.'P')GOTO1609
11785      GOTO1690
11786 1609 CONTINUE
11787C
11788      IP1=I+1
11789      IP2=I+2
11790      IP3=I+3
11791      IP4=I+4
11792      IP5=I+5
11793      IP6=I+6
11794      IP7=I+7
11795C
11796      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'D'.AND.
11797     1IA(IP3).EQ.'V'.AND.IA(IP4).EQ.'1')GOTO7500
11798      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
11799     1IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
11800     1IA(IP5).EQ.'I'.AND.IA(IP6).EQ.'F'.AND.
11801     1IA(IP7).EQ.'2')GOTO7800
11802      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
11803     1IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.
11804     1IA(IP5).EQ.'I'.AND.IA(IP6).EQ.'F')GOTO7700
11805      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
11806     1IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'E'.AND.
11807     1IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'R')GOTO7700
11808      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'D'.AND.
11809     1IA(IP3).EQ.'V')GOTO7400
11810      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'V'.AND.
11811     1IA(IP3).EQ.'V'.AND.IA(IP4).EQ.'1')GOTO7500
11812      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'V'.AND.
11813     1IA(IP3).EQ.'V')GOTO7400
11814      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'W'.AND.
11815     1IA(IP3).EQ.'A'.AND.IA(IP4).EQ.'1')GOTO7500
11816      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'W'.AND.
11817     1IA(IP3).EQ.'A')GOTO7400
11818      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'I'.AND.IA(IP3).EQ.'F'.AND.
11819     1IA(IP4).EQ.'N')GOTO7500
11820      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'I')GOTO7300
11821      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'Q'.AND.
11822     1IA(IP3).EQ.'1'.AND.IA(IP4).EQ.'I')GOTO7500
11823      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'Q'.AND.
11824     1IA(IP3).EQ.'1')GOTO7400
11825      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'Q'.AND.
11826     1IA(IP3).EQ.'I')GOTO7400
11827      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'Q')GOTO7300
11828      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'E'.AND.IA(IP3).EQ.'M'.AND.
11829     1IA(IP4).EQ.'1'.AND.IA(IP5).EQ.'I')GOTO7600
11830      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'E'.AND.
11831     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'1')GOTO7500
11832      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'E'.AND.
11833     1IA(IP3).EQ.'M'.AND.IA(IP4).EQ.'I')GOTO7500
11834      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'E'.AND.
11835     1IA(IP3).EQ.'M')GOTO7400
11836      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'R'.AND.
11837     1IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'E'.AND.
11838     1IA(IP5).EQ.'F')GOTO7600
11839      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'I')GOTO1610
11840CCCCC IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'W')GOTO1610
11841      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'W')GOTO1620
11842      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'L')GOTO1610
11843      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'P')GOTO1610
11844      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'G')GOTO1610
11845      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'3')GOTO1610
11846      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'H'.AND.
11847     1IA(IP4).EQ.'1')GOTO7500
11848      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'H')GOTO7400
11849      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'R')GOTO1620
11850      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'2')GOTO1620
11851      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'R')GOTO1620
11852      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'N')GOTO1620
11853      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'X')GOTO1620
11854      GOTO9000
11855C
11856 1610 CONTINUE
11857      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11858      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11859      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11860      GOTO9000
11861C
11862 1620 CONTINUE
11863      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11864      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11865      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11866      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
11867      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
11868     1IA(IP6).EQ.'Z')GOTO7700
11869      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.IA(IP5).EQ.'R'.AND.
11870     1IA(IP6).EQ.'V')GOTO7700
11871      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'U'.AND.
11872     1IA(IP6).EQ.'R'.AND.IA(IP7).EQ.'V')GOTO7800
11873      GOTO9000
11874C
11875 1690 CONTINUE
11876C
11877C               *******************************
11878C               **  STEP 17--                **
11879C               **  SEARCH FOR FUNCTIONS     **
11880C               **  STARTING WITH Q--        **
11881C               **  ADD: JULY  2006          **
11882C               **   QBICDF, QBIPDF, QBIPPF  **
11883C               *******************************
11884C
11885      IF(IA(I).EQ.'Q')GOTO1709
11886      GOTO1790
11887 1709 CONTINUE
11888C
11889      IP1=I+1
11890      IP2=I+2
11891      IP3=I+3
11892      IP4=I+4
11893      IP5=I+5
11894      IP6=I+6
11895      IP7=I+7
11896C
11897      IF(IA(IP1).EQ.'B'.AND.IA(IP2).EQ.'I')GOTO1710
11898      GOTO9000
11899C
11900 1710 CONTINUE
11901      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11902      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11903      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11904      GOTO9000
11905C
11906 1790 CONTINUE
11907C
11908C               ****************************
11909C               **  STEP 18--             **
11910C               **  SEARCH FOR FUNCTIONS  **
11911C               **  STARTING WITH R--     **
11912C               **       ROUND            **
11913C               **       RIGCDF (MAY 1990)**
11914C               **       RIGPDF (MAY 1990)**
11915C               **       RIGPPF (MAY 1990)**
11916C               **  SEPTEMBER 1994        **
11917C               **       RC, RD, RF, RJ   **
11918C               **  MAY 1996              **
11919C               **  RECCDF, RECPDF,RECPPF **
11920C               **  APRIL 1998            **
11921C               **       RIGHAZ, RIGCHAZ  **
11922C               **  JUNE 2004             **
11923C               **  RAYCDF, RAYPDF,RAYPPF **
11924C               **  FEBRUARY 2007         **
11925C               **  RGTCDF, RGTPDF,RGTPPF **
11926C               **  DECEMBER 2007         **
11927C               **  RPOCDF, RPOPDF,RPOPPF **
11928C               **  DECEMBER 2010         **
11929C               **     RELDIF             **
11930C               **  JANUARY  2011         **
11931C               **     RELERR, RELDIF2    **
11932C               **  MAY 2014              **
11933C               **       RIGSURV          **
11934C               **       RIGISURV         **
11935C               ****************************
11936C
11937      IF(IA(I).EQ.'R')GOTO1809
11938      GOTO1890
11939 1809 CONTINUE
11940C
11941      IP1=I+1
11942      IP2=I+2
11943      IP3=I+3
11944      IP4=I+4
11945      IP5=I+5
11946      IP6=I+6
11947      IP7=I+7
11948C
11949      IF(IA(IP1).EQ.'O')GOTO1810
11950      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'G')GOTO1820
11951      IF(IA(IP1).EQ.'C')GOTO7200
11952      IF(IA(IP1).EQ.'D')GOTO7200
11953      IF(IA(IP1).EQ.'F')GOTO7200
11954      IF(IA(IP1).EQ.'J')GOTO7200
11955      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'L'.AND.IA(IP3).EQ.'D'.AND.
11956     1   IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'F'.AND.
11957     1   IA(IP6).EQ.'2')GOTO7700
11958      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'L'.AND.IA(IP3).EQ.'D'.AND.
11959     1   IA(IP4).EQ.'I'.AND.IA(IP5).EQ.'F')GOTO7600
11960      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'L'.AND.IA(IP3).EQ.'E'.AND.
11961     1   IA(IP4).EQ.'R'.AND.IA(IP5).EQ.'R')GOTO7600
11962      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'C')GOTO1820
11963      IF(IA(IP1).EQ.'A'.AND.IA(IP2).EQ.'Y')GOTO1820
11964      IF(IA(IP1).EQ.'G'.AND.IA(IP2).EQ.'T')GOTO1820
11965      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'O')GOTO1820
11966CCCCC THE FOLLOWING LINE WAS ADDED MAY 1990
11967      GOTO9000
11968C
11969 1810 CONTINUE
11970      IF(IA(IP2).EQ.'U'.AND.IA(IP3).EQ.'N'.AND.IA(IP4).EQ.'D')GOTO7500
11971      GOTO9000
11972C
11973CCCCC THE FOLLOWING SECTION WAS ADDED MAY 1990
11974 1820 CONTINUE
11975      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11976      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
11977      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
11978      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
11979      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
11980     1IA(IP6).EQ.'Z')GOTO7700
11981      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.IA(IP5).EQ.'R'.AND.
11982     1IA(IP6).EQ.'V')GOTO7700
11983      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'U'.AND.
11984     1IA(IP6).EQ.'R'.AND.IA(IP7).EQ.'V')GOTO7800
11985      GOTO9000
11986C
11987 1890 CONTINUE
11988C
11989C               ****************************
11990C               **  STEP 19--             **
11991C               **  SEARCH FOR FUNCTIONS  **
11992C               **  STARTING WITH S--     **
11993C               **       SECH             **
11994C               **       SEC              **
11995C               **       SIGN             **
11996C               **       SINH             **
11997C               **       SIN              **
11998C               **       SQRT             **
11999C               **  ADD: APRIL 1994       **
12000C               **       SEMCDF           **
12001C               **       SEMPDF           **
12002C               **       SEMPPF           **
12003C               **  SEPTEMBER 1994        **
12004C               **       SPENCE           **
12005C               **       SININT, SINHINT  **
12006C               **  NOVEMBER  1994        **
12007C               **       SN               **
12008C               **  MARCH     1995        **
12009C               **       STEP             **
12010C               **  JULY      1995        **
12011C               **       SPHRHRMR         **
12012C               **       SPHRHRMC         **
12013C               **  MARCH     1999        **
12014C               **       SRACDF           **
12015C               **       SRAPDF           **
12016C               **       SRAPPF           **
12017C               **       STROM            **
12018C               **       SYNCH1           **
12019C               **       SYNCH2           **
12020C               **  JANUARY   2003        **
12021C               **       SLACDF           **
12022C               **       SLAPDF           **
12023C               **  NOVEMBER  2003        **
12024C               **       SNCDF            **
12025C               **       SNPDF            **
12026C               **       SNPPF            **
12027C               **       STCDF            **
12028C               **       STPDF            **
12029C               **       STPPF            **
12030C               **  JUNE      2004        **
12031C               **       SDECDF           **
12032C               **       SDEPDF           **
12033C               **       SDEPPF           **
12034C               **  SEPTEMBER 2007        **
12035C               **       SLOCDF           **
12036C               **       SLOPDF           **
12037C               **       SLOPPF           **
12038C               **  JANUARY   2013        **
12039C               **       SLOPE            **
12040C               **  MARCH     2013        **
12041C               **       SINCDF           **
12042C               **       SINPDF           **
12043C               **       SINPPF           **
12044C               ****************************
12045C
12046      IF(IA(I).EQ.'S')GOTO1909
12047      GOTO1990
12048 1909 CONTINUE
12049C
12050      IP1=I+1
12051      IP2=I+2
12052      IP3=I+3
12053      IP4=I+4
12054      IP5=I+5
12055      IP6=I+6
12056      IP7=I+7
12057C
12058      IF(IA(IP1).EQ.'E')GOTO1910
12059      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'N')GOTO1940
12060      IF(IA(IP1).EQ.'I')GOTO1920
12061      IF(IA(IP1).EQ.'Q')GOTO1930
12062      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'A')GOTO1945
12063      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'A')GOTO1945
12064      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'O'.AND.IA(IP3).EQ.'P'.AND.
12065     1IA(IP4).EQ.'E')GOTO7500
12066      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'O')GOTO1940
12067      IF(IA(IP1).EQ.'D'.AND.IA(IP2).EQ.'E')GOTO1940
12068      IF(IA(IP1).EQ.'Y'.AND.IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'C'.AND.
12069     1IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'1')GOTO7600
12070      IF(IA(IP1).EQ.'Y'.AND.IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'C'.AND.
12071     1IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'2')GOTO7600
12072      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'E'.AND.IA(IP3).EQ.'N'.AND.
12073     1IA(IP4).EQ.'C'.AND.IA(IP5).EQ.'E')GOTO7600
12074      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'H'.AND.IA(IP3).EQ.'R'.AND.
12075     1IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'M'.AND.
12076     1IA(IP7).EQ.'R')GOTO7800
12077      IF(IA(IP1).EQ.'P'.AND.IA(IP2).EQ.'H'.AND.IA(IP3).EQ.'R'.AND.
12078     1IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'R'.AND.IA(IP6).EQ.'M'.AND.
12079     1IA(IP7).EQ.'C')GOTO7800
12080      IF(IA(IP1).EQ.'T'.AND.IA(IP2).EQ.'E'.AND.IA(IP3).EQ.'P')GOTO7400
12081      IF(IA(IP1).EQ.'T'.AND.IA(IP2).EQ.'R'.AND.IA(IP3).EQ.'O'.AND.
12082     1IA(IP4).EQ.'M')GOTO7500
12083      IF(IA(IP1).EQ.'N')GOTO1950
12084      IF(IA(IP1).EQ.'T')GOTO1950
12085      GOTO9000
12086C
12087 1910 CONTINUE
12088      IF(IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'H')GOTO7400
12089      IF(IA(IP2).EQ.'C')GOTO7300
12090      IF(IA(IP2).EQ.'M')GOTO1940
12091      GOTO9000
12092C
12093 1920 CONTINUE
12094      IF(IA(IP2).EQ.'G'.AND.IA(IP3).EQ.'N')GOTO7400
12095      GOTO9000
12096C
12097 1930 CONTINUE
12098      IF(IA(IP2).EQ.'R'.AND.IA(IP3).EQ.'T')GOTO7400
12099      GOTO9000
12100C
12101 1940 CONTINUE
12102      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'I'.AND.
12103     1IA(IP5).EQ.'N'.AND.IA(IP6).EQ.'T')GOTO7700
12104      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'N'.AND.IA(IP5).EQ.'T')GOTO7600
12105      IF(IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'H')GOTO7400
12106      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12107      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12108      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12109      GOTO7300
12110      GOTO9000
12111C
12112 1945 CONTINUE
12113      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12114      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12115      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12116      GOTO9000
12117C
12118 1950 CONTINUE
12119      IF(IA(IP2).EQ.'C'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
12120      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'D'.AND.IA(IP4).EQ.'F')GOTO7500
12121      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'F')GOTO7500
12122      IF(IA(IP1).EQ.'N')GOTO7200
12123      GOTO7200
12124C
12125 1990 CONTINUE
12126C
12127C               ****************************
12128C               **  STEP X.20--           **
12129C               **  SEARCH FOR FUNCTIONS  **
12130C               **  STARTING WITH T--     **
12131C               **       TANH             **
12132C               **       TAN              **
12133C               **       TCDF             **
12134C               **       TPDF             **
12135C               **       TPPF             **
12136C               **  SEPTEMBER 1994:       **
12137C               **       TRICDF           **
12138C               **       TRIPDF           **
12139C               **       TRIPPF           **
12140C               **       TRICOMI          **
12141C               **  APRIL     1995:       **
12142C               **       TNRCDF           **
12143C               **       TNRPDF           **
12144C               **       TNRPPF           **
12145C               **  OCTOBER   1995:       **
12146C               **       TNECDF           **
12147C               **       TNEPDF           **
12148C               **       TNEPPF           **
12149C               **  MARCH     1999:       **
12150C               **       TRAN             **
12151C               **  MAY       2002:       **
12152C               **       TSPCDF           **
12153C               **       TSPPDF           **
12154C               **       TSPPPF           **
12155C               **  JUNE      2003:       **
12156C               **       TRACDF           **
12157C               **       TRAPDF           **
12158C               **       TRAPPF           **
12159C               **  FEBRUARY  2007:       **
12160C               **       TOPCDF           **
12161C               **       TOPPDF           **
12162C               **       TOPPPF           **
12163C               **  SEPTEMBER 2007:       **
12164C               **       TSSCDF           **
12165C               **       TSSPDF           **
12166C               **       TSSPPF           **
12167C               **       TSOCDF           **
12168C               **       TSOPDF           **
12169C               **       TSOPPF           **
12170C               **  MARCH     2008:       **
12171C               **       TNECDF           **
12172C               **       TNEPDF           **
12173C               **       TNEPPF           **
12174C               **  MARCH     2014:       **
12175C               **       TRIGAMMA         **
12176C               ****************************
12177C
12178      IF(IA(I).EQ.'T')GOTO2009
12179      GOTO2090
12180 2009 CONTINUE
12181C
12182      IP1=I+1
12183      IP2=I+2
12184      IP3=I+3
12185      IP4=I+4
12186      IP5=I+5
12187      IP6=I+6
12188      IP7=I+7
12189C
12190      IF(IA(IP1).EQ.'A')GOTO2010
12191      IF(IA(IP1).EQ.'C')GOTO2020
12192      IF(IA(IP1).EQ.'P')GOTO2030
12193      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'A'.AND.
12194     1IA(IP3).EQ.'N')GOTO7400
12195      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'A')GOTO2040
12196      IF(IA(IP1).EQ.'R'.AND.IA(IP2).EQ.'I')GOTO2040
12197      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'R')GOTO2050
12198      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'E')GOTO2050
12199      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'P')GOTO2040
12200      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'P')GOTO2040
12201      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'S')GOTO2040
12202      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'O')GOTO2040
12203      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'P')GOTO2050
12204      GOTO9000
12205C
12206 2010 CONTINUE
12207      IF(IA(IP2).EQ.'N'.AND.IA(IP3).EQ.'H')GOTO7400
12208      IF(IA(IP2).EQ.'N')GOTO7300
12209      GOTO9000
12210C
12211 2020 CONTINUE
12212      IF(IA(IP2).EQ.'D'.AND.IA(IP3).EQ.'F')GOTO7400
12213      GOTO9000
12214C
12215 2030 CONTINUE
12216      IF(IA(IP2).EQ.'D'.AND.IA(IP3).EQ.'F')GOTO7400
12217      IF(IA(IP2).EQ.'P'.AND.IA(IP3).EQ.'F')GOTO7400
12218      GOTO9000
12219C
12220 2040 CONTINUE
12221C
12222      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'O'.AND.IA(IP5).EQ.'M'.AND.
12223     1IA(IP6).EQ.'I')GOTO7700
12224      IF(IA(IP3).EQ.'G'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'M'.AND.
12225     1IA(IP6).EQ.'M'.AND.IA(IP7).EQ.'A')GOTO7800
12226C
12227      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12228      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12229      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12230      IF(IA(IP2).EQ.'A')GOTO9000
12231      GOTO9000
12232C
12233 2050 CONTINUE
12234      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12235      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12236      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12237      GOTO9000
12238C
12239 2090 CONTINUE
12240C
12241CCCCC THIS SECTION ADDED APRIL, 1994.
12242C               ****************************
12243C               **  STEP 21--             **
12244C               **  SEARCH FOR FUNCTIONS  **
12245C               **  STARTING WITH U--     **
12246C               **       UNICDF           **
12247C               **       UNIPDF           **
12248C               **       UNIPPF           **
12249C               **       UNISF            **
12250C               **  JULY    1995          **
12251C               **       ULTRASPH         **
12252C               **  STARTING WITH U--     **
12253C               **       UNIHAZ, UNICHAZ  **
12254C               **  STARTING WITH U--     **
12255C               **       UTSCDF           **
12256C               **       UTSPDF           **
12257C               **       UTSPPF           **
12258C               ****************************
12259      IF(IA(I).EQ.'U')GOTO2109
12260      GOTO2190
12261 2109 CONTINUE
12262C
12263      IP1=I+1
12264      IP2=I+2
12265      IP3=I+3
12266      IP4=I+4
12267      IP5=I+5
12268      IP6=I+6
12269      IP7=I+7
12270C
12271      IF(IA(IP1).EQ.'N'.AND.IA(IP2).EQ.'I')GOTO2110
12272      IF(IA(IP1).EQ.'T'.AND.IA(IP2).EQ.'S')GOTO2110
12273      IF(IA(IP1).EQ.'L'.AND.IA(IP2).EQ.'T'.AND.IA(IP3).EQ.'R'.AND.
12274     1IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'S'.AND.IA(IP6).EQ.'P'.AND.
12275     1IA(IP7).EQ.'H')GOTO7800
12276      GOTO9000
12277C
12278 2110 CONTINUE
12279      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12280      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12281      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12282      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'F')GOTO7500
12283      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
12284      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
12285     1IA(IP6).EQ.'Z')GOTO7700
12286      GOTO9000
12287C
12288 2190 CONTINUE
12289C
12290CCCCC THIS SECTION ADDED OCTOBER, 1994.
12291C               ****************************
12292C               **  STEP 22--             **
12293C               **  SEARCH FOR FUNCTIONS  **
12294C               **  STARTING WITH V--     **
12295C               **       VONCDF           **
12296C               **       VONPDF           **
12297C               **       VONPPF           **
12298C               **       VSUM, VSUM2, VSSQ**
12299C               ****************************
12300      IF(IA(I).EQ.'V')GOTO2209
12301      GOTO2290
12302 2209 CONTINUE
12303C
12304      IP1=I+1
12305      IP2=I+2
12306      IP3=I+3
12307      IP4=I+4
12308      IP5=I+5
12309      IP6=I+6
12310      IP7=I+7
12311C
12312      IF(IA(IP1).EQ.'O'.AND.IA(IP2).EQ.'N')GOTO2210
12313      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'U'.AND.IA(IP3).EQ.'M'.AND.
12314     1IA(IP4).EQ.'2')GOTO7500
12315      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'U'.AND.IA(IP3).EQ.'M')GOTO7400
12316      IF(IA(IP1).EQ.'S'.AND.IA(IP2).EQ.'S'.AND.IA(IP3).EQ.'Q')GOTO7400
12317      GOTO9000
12318C
12319 2210 CONTINUE
12320      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12321      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12322      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12323      GOTO9000
12324C
12325 2290 CONTINUE
12326C
12327C
12328C               ****************************
12329C               **  STEP 23--             **
12330C               **  SEARCH FOR FUNCTIONS  **
12331C               **  STARTING WITH W--     **
12332C               **       WEICDF           **
12333C               **       WEIPDF           **
12334C               **       WEIPPF           **
12335C               **       WALCDF (MAY 1990)**
12336C               **       WALPDF (MAY 1990)**
12337C               **       WALPPF (MAY 1990)**
12338C               **  APRIL 1995            **
12339C               **       WARCDF           **
12340C               **       WARPDF           **
12341C               **       WARPPF           **
12342C               **  OCTOBER 1995          **
12343C               **       WCACDF           **
12344C               **       WCAPDF           **
12345C               **       WCAPPF           **
12346C               **  APRIL   1998          **
12347C               **       WEIHAZ, WEICHAZ  **
12348C               **  MARCH   2005          **
12349C               **       WEIAFR           **
12350C               **  FEBRUARY  2006        **
12351C               **  WAKCDF, WAKPDF, WAKPPF**
12352C               **  MAY     2014          **
12353C               **       WEISURV          **
12354C               **       WEIISURV         **
12355C               **       WALSURV          **
12356C               **       WALISURV         **
12357C               ****************************
12358C
12359      IF(IA(I).EQ.'W')GOTO2309
12360      GOTO2390
12361 2309 CONTINUE
12362C
12363      IP1=I+1
12364      IP2=I+2
12365      IP3=I+3
12366      IP4=I+4
12367      IP5=I+5
12368      IP6=I+6
12369      IP7=I+7
12370C
12371      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'I')GOTO2310
12372CCCCC THE FOLLOWING LINE WAS ADDED MAY 1990
12373      IF(IA(IP1).EQ.'A')GOTO2320
12374      IF(IA(IP1).EQ.'C'.AND.IA(IP2).EQ.'A')GOTO2310
12375      GOTO9000
12376C
12377 2310 CONTINUE
12378      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12379      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12380      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12381      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
12382      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
12383     1IA(IP6).EQ.'Z')GOTO7700
12384      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.IA(IP5).EQ.'R'.AND.
12385     1IA(IP6).EQ.'V')GOTO7700
12386      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'U'.AND.
12387     1IA(IP6).EQ.'R'.AND.IA(IP7).EQ.'V')GOTO7800
12388      IF(IA(IP3).EQ.'A'.AND.IA(IP4).EQ.'F'.AND.IA(IP5).EQ.'R')GOTO7600
12389      GOTO9000
12390C
12391CCCCC THE FOLLOWING 8 LINES WERE ADDED MAY 1990
12392 2320 CONTINUE
12393      IF(IA(IP2).EQ.'L')GOTO2328
12394      IF(IA(IP2).EQ.'R')GOTO2325
12395      IF(IA(IP2).EQ.'K')GOTO2325
12396      GOTO9000
12397 2325 CONTINUE
12398      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12399      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12400      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12401      GOTO9000
12402 2328 CONTINUE
12403      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12404      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12405      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12406      IF(IA(IP3).EQ.'H'.AND.IA(IP4).EQ.'A'.AND.IA(IP5).EQ.'Z')GOTO7600
12407      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'H'.AND.IA(IP5).EQ.'A'.AND.
12408     1IA(IP6).EQ.'Z')GOTO7700
12409      IF(IA(IP3).EQ.'S'.AND.IA(IP4).EQ.'U'.AND.IA(IP5).EQ.'R'.AND.
12410     1IA(IP6).EQ.'V')GOTO7700
12411      IF(IA(IP3).EQ.'I'.AND.IA(IP4).EQ.'S'.AND.IA(IP5).EQ.'U'.AND.
12412     1IA(IP6).EQ.'R'.AND.IA(IP7).EQ.'V')GOTO7800
12413      GOTO9000
12414C
12415 2390 CONTINUE
12416C
12417CCCCC THIS SECTION ADDED APRIL 2004
12418C               ******************************
12419C               **  STEP 24--               **
12420C               **  SEARCH FOR FUNCTIONS    **
12421C               **  STARTING WITH Y--       **
12422C               **  YULCDF, YULPDF, YULPPF  **
12423C               **  NOVEMBER 2005:          **
12424C               **  Y0INT                   **
12425C               ******************************
12426      IF(IA(I).EQ.'Y')GOTO2409
12427      GOTO2490
12428 2409 CONTINUE
12429C
12430      IP1=I+1
12431      IP2=I+2
12432      IP3=I+3
12433      IP4=I+4
12434      IP5=I+5
12435      IP6=I+6
12436      IP7=I+7
12437C
12438      IF(IA(IP1).EQ.'U'.AND.IA(IP2).EQ.'L')GOTO2420
12439      IF(IA(IP1).EQ.'0'.AND.IA(IP2).EQ.'I'.AND.
12440     1IA(IP3).EQ.'N'.AND.IA(IP4).EQ.'T')GOTO7500
12441      GOTO9000
12442C
12443 2420 CONTINUE
12444      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12445      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12446      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12447C
12448 2490 CONTINUE
12449C
12450CCCCC THIS SECTION ADDED SEPTEMBER, 1997.
12451C               ****************************
12452C               **  STEP 25--             **
12453C               **  SEARCH FOR FUNCTIONS  **
12454C               **  STARTING WITH Z--     **
12455C               **       ZETA             **
12456C               ****************************
12457      IF(IA(I).EQ.'Z')GOTO2509
12458      GOTO2590
12459 2509 CONTINUE
12460C
12461      IP1=I+1
12462      IP2=I+2
12463      IP3=I+3
12464      IP4=I+4
12465      IP5=I+5
12466      IP6=I+6
12467      IP7=I+7
12468C
12469      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'T'.AND.IA(IP3).EQ.'A')GOTO7400
12470      IF(IA(IP1).EQ.'I'.AND.IA(IP2).EQ.'P')GOTO2520
12471      IF(IA(IP1).EQ.'E'.AND.IA(IP2).EQ.'T')GOTO2520
12472      GOTO9000
12473 2520 CONTINUE
12474      IF(IA(IP3).EQ.'C'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12475      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'D'.AND.IA(IP5).EQ.'F')GOTO7600
12476      IF(IA(IP3).EQ.'P'.AND.IA(IP4).EQ.'P'.AND.IA(IP5).EQ.'F')GOTO7600
12477C
12478 2590 CONTINUE
12479C
12480C               ********************************************
12481C               **  STEP 30--                             **
12482C               **  SINCE NO LEAD CHARACTER MATCH FOUND,  **
12483C               **  GO TO END OF SUBROUTINE.              **
12484C               ********************************************
12485C
12486      GOTO9000
12487C
12488C               **********************************************
12489C               **  STEP 70--                               **
12490C               **  CHECK FOR A TRAILING LEFT PARENTHESIS.  **
12491C               **********************************************
12492C
12493C7100 CONTINUE
12494CCCCC IF(IA(IP1).EQ.'(')GOTO7110
12495CCCCC GOTO9000
12496C7110 CONTINUE
12497CCCCC IFOUND='YES'
12498CCCCC NCLF=1
12499CCCCC GOTO9000
12500C
12501 7200 CONTINUE
12502      IF(IA(IP2).EQ.'(')GOTO7210
12503      GOTO9000
12504 7210 CONTINUE
12505      IFOUND='YES'
12506      NCLF=2
12507      GOTO9000
12508C
12509 7300 CONTINUE
12510      IF(IA(IP3).EQ.'(')GOTO7310
12511      GOTO9000
12512 7310 CONTINUE
12513      IFOUND='YES'
12514      NCLF=3
12515      GOTO9000
12516C
12517 7400 CONTINUE
12518      IF(IA(IP4).EQ.'(')GOTO7410
12519      GOTO9000
12520 7410 CONTINUE
12521      IFOUND='YES'
12522      NCLF=4
12523      GOTO9000
12524C
12525 7500 CONTINUE
12526      IF(IA(IP5).EQ.'(')GOTO7510
12527      GOTO9000
12528 7510 CONTINUE
12529      IFOUND='YES'
12530      NCLF=5
12531      GOTO9000
12532C
12533 7600 CONTINUE
12534      IF(IA(IP6).EQ.'(')GOTO7610
12535      GOTO9000
12536 7610 CONTINUE
12537      IFOUND='YES'
12538      NCLF=6
12539      GOTO9000
12540C
12541 7700 CONTINUE
12542      IF(IA(IP7).EQ.'(')GOTO7710
12543      GOTO9000
12544 7710 CONTINUE
12545      IFOUND='YES'
12546      NCLF=7
12547      GOTO9000
12548C
12549 7800 CONTINUE
12550      IP8=I+8
12551      IF(IA(IP8).EQ.'(')GOTO7810
12552      GOTO9000
12553 7810 CONTINUE
12554      IFOUND='YES'
12555      NCLF=8
12556      GOTO9000
12557C
12558C               *****************
12559C               **  STEP 90--  **
12560C               **  EXIT       **
12561C               *****************
12562C
12563 9000 CONTINUE
12564      IF(IBUGCK.EQ.'OFF')GOTO9990
12565      WRITE(ICOUT,999)
12566      CALL DPWRST('XXX','BUG ')
12567      WRITE(ICOUT,9911)
12568 9911 FORMAT('AT THE END       OF CKLIB2--')
12569      CALL DPWRST('XXX','BUG ')
12570      WRITE(ICOUT,9912)IFOUND,IERROR
12571 9912 FORMAT('IFOUND = ',A4,'  IERROR = ',A4)
12572      CALL DPWRST('XXX','BUG ')
12573      WRITE(ICOUT,9913)NCLF
12574 9913 FORMAT('NCLF = ',I8)
12575      CALL DPWRST('XXX','BUG ')
12576 9990 CONTINUE
12577C
12578      RETURN
12579      END
12580      SUBROUTINE CKLOSC(X,N,ISORSW,ICASAX,
12581     1ISUBG4,IBUGG4,IERRG4)
12582C
12583C     PURPOSE--CHECK THAT ALL DATA IN X(.) ARE VALID
12584C              (IN THIS CASE, MEANING POSITIVE)
12585C              IN PREPARATION FOR A LOG SCALE TRANSFORMATION.
12586C     WRITTEN BY--JAMES J. FILLIBEN
12587C                 STATISTICAL ENGINEERING DIVISION
12588C                 INFORMATION TECHNOLOGY LABORATORY
12589C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
12590C                 GAITHERSBURG, MD 20899-8980
12591C                 PHONE--301-975-2855
12592C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
12593C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
12594C     LANGUAGE--ANSI FORTRAN (1977)
12595C     VERSION NUMBER--88.10
12596C     ORIGINAL VERSION--MAY        1983.
12597C     ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--SEPTEMBER 1988.
12598C     UPDATED         --DECEMBER  1988.  IBUGG4 FOR IBUGPL
12599C
12600C-----NON-COMMON VARIABLES (GRAPHICS)-------------------------------------------
12601C
12602      CHARACTER*4 ISORSW
12603      CHARACTER*4 ICASAX
12604C
12605      CHARACTER*4 ISUBG4
12606      CHARACTER*4 IBUGG4
12607      CHARACTER*4 IERRG4
12608C
12609C---------------------------------------------------------------------
12610C
12611      DIMENSION X(*)
12612C
12613C-----COMMON VARIABLES (GENERAL)--------------------------------------
12614C
12615      INCLUDE 'DPCOP2.INC'
12616C
12617C-----START POINT-----------------------------------------------------
12618C
12619      IERRG4='NO'
12620C
12621      IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'LOSC')GOTO90
12622      WRITE(ICOUT,999)
12623  999 FORMAT(1X)
12624      CALL DPWRST('XXX','BUG ')
12625      WRITE(ICOUT,51)
12626   51 FORMAT('***** AT THE BEGINNING OF CKLOSC--')
12627      CALL DPWRST('XXX','BUG ')
12628      WRITE(ICOUT,52)IBUGG4,ISUBG4,IERRG4
12629   52 FORMAT('IBUGG4,ISUBG4,IERRG4 = ',3A4)
12630      CALL DPWRST('XXX','BUG ')
12631      WRITE(ICOUT,53)ISORSW,ICASAX
12632   53 FORMAT('ISORSW,ICASAX = ',A4,2X,A4)
12633      CALL DPWRST('XXX','BUG ')
12634      WRITE(ICOUT,61)N
12635   61 FORMAT('N = ',I8)
12636      CALL DPWRST('XXX','BUG ')
12637      DO62I=1,N
12638      WRITE(ICOUT,63)I,X(I)
12639   63 FORMAT('I,X(I) = ',I8,E15.7)
12640      CALL DPWRST('XXX','BUG ')
12641   62 CONTINUE
12642   90 CONTINUE
12643C
12644C               **************************************************
12645C               **  STEP 11--                                   **
12646C               **  CHECK THAT ALL X(.) ARE > 0                 **
12647C               **************************************************
12648C
12649      IF(ISORSW.EQ.'ON')GOTO1120
12650      GOTO1130
12651C
12652 1120 CONTINUE
12653      J=1
12654      IF(X(J).LE.0.0)GOTO1150
12655      GOTO9000
12656C
12657 1130 CONTINUE
12658      DO1135I=1,N
12659      J=I
12660      IF(X(J).LE.0.0)GOTO1150
12661 1135 CONTINUE
12662      GOTO9000
12663C
12664 1150 CONTINUE
12665      WRITE(ICOUT,999)
12666      CALL DPWRST('XXX','BUG ')
12667      WRITE(ICOUT,1151)
12668 1151 FORMAT('***** ERROR IN CKLOSC--')
12669      CALL DPWRST('XXX','BUG ')
12670      WRITE(ICOUT,1152)
12671 1152 FORMAT('      THE LOG OF A NON-POSITIVE DATA VALUE ')
12672      CALL DPWRST('XXX','BUG ')
12673      WRITE(ICOUT,1153)
12674 1153 FORMAT('      WAS ENCOUNTERED IN FORMING A PLOT.')
12675      CALL DPWRST('XXX','BUG ')
12676      WRITE(ICOUT,1154)
12677 1154 FORMAT('      DATA MAY NOT BE ZERO OR NEGATIVE')
12678      CALL DPWRST('XXX','BUG ')
12679      WRITE(ICOUT,1155)
12680 1155 FORMAT('      WHEN A LOG SCALE PLOT IS USED.')
12681      CALL DPWRST('XXX','BUG ')
12682      WRITE(ICOUT,1156)X(J)
12683 1156 FORMAT('      THE VALUE = ',E15.7)
12684      CALL DPWRST('XXX','BUG ')
12685      WRITE(ICOUT,1160)
12686 1160 FORMAT('      THIS VALUE CAME FROM THE ')
12687      CALL DPWRST('XXX','BUG ')
12688      IF(ICASAX.EQ.'2DHO')WRITE(ICOUT,1161)
12689 1161 FORMAT('      2-D HORIZONTAL AXIS VARIABLE.')
12690      IF(ICASAX.EQ.'2DHO')CALL DPWRST('XXX','BUG ')
12691      IF(ICASAX.EQ.'2DVE')WRITE(ICOUT,1162)
12692 1162 FORMAT('      2-D VERTICAL AXIS VARIABLE.')
12693      IF(ICASAX.EQ.'2DVE')CALL DPWRST('XXX','BUG ')
12694      IF(ICASAX.EQ.'3DH1')WRITE(ICOUT,1163)
12695 1163 FORMAT('      FIRST 3-D HORIZONTAL AXIS VARIABLE.')
12696      IF(ICASAX.EQ.'3DH1')CALL DPWRST('XXX','BUG ')
12697      IF(ICASAX.EQ.'3DH2')WRITE(ICOUT,1164)
12698 1164 FORMAT('      2ND 3-D HORIZONTAL AXIS VARIABLE.')
12699      IF(ICASAX.EQ.'3DH2')CALL DPWRST('XXX','BUG ')
12700      IF(ICASAX.EQ.'3DVE')WRITE(ICOUT,1165)
12701 1165 FORMAT('      3-D VERTICAL AXIS VARIABLE.')
12702      IF(ICASAX.EQ.'3DVE')CALL DPWRST('XXX','BUG ')
12703      WRITE(ICOUT,1171)
12704 1171 FORMAT('      CORRECTIVE ACTION--')
12705      CALL DPWRST('XXX','BUG ')
12706      WRITE(ICOUT,1172)
12707 1172 FORMAT('      CHANGE DATA OR CHANGE LIMITS.')
12708      CALL DPWRST('XXX','BUG ')
12709      IERRG4='YES'
12710      GOTO9000
12711C
12712C               *****************
12713C               **  STEP 90--  **
12714C               **  EXIT.      **
12715C               *****************
12716C
12717 9000 CONTINUE
12718      IF(IBUGG4.EQ.'OFF'.AND.ISUBG4.NE.'LOSC')GOTO9090
12719      WRITE(ICOUT,999)
12720      CALL DPWRST('XXX','BUG ')
12721      WRITE(ICOUT,9011)
12722 9011 FORMAT('***** AT THE END       OF CKLOSC--')
12723      CALL DPWRST('XXX','BUG ')
12724      WRITE(ICOUT,9012)IBUGG4,ISUBG4,IERRG4
12725 9012 FORMAT('IBUGG4,ISUBG4,IERRG4 = ',3A4)
12726      CALL DPWRST('XXX','BUG ')
12727      WRITE(ICOUT,9013)ISORSW,ICASAX
12728 9013 FORMAT('ISORSW,ICASAX = ',A4,2X,A4)
12729      CALL DPWRST('XXX','BUG ')
12730      WRITE(ICOUT,9021)N,J
12731 9021 FORMAT('N,J = ',2I8)
12732      CALL DPWRST('XXX','BUG ')
12733      DO9022I=1,N
12734      WRITE(ICOUT,9023)I,X(I)
12735 9023 FORMAT('I,X(I) = ',I8,E15.7)
12736      CALL DPWRST('XXX','BUG ')
12737 9022 CONTINUE
12738 9090 CONTINUE
12739C
12740      RETURN
12741      END
12742      SUBROUTINE CKMATH(IBUGA3,ISUBRO,IFOUN7,ICASL7,ICASS7,ISTANR,
12743     1                  IMSUBC,ILOCV)
12744C
12745C     PURPOSE--CHECK TO SEE IF A TYPE 7 LET
12746C              COMMAND HAS BEEN GIVEN--
12747C                      SORT
12748C                      SORT2 (= SORT WITH 2 VARIABLES)
12749C                      SORTC (= SORT AND CARRY)
12750C                      GROUP SORT
12751C                      COCODE (= CORANK)
12752C                      COCOPY
12753C                      EXPAND
12754C                      RANK
12755C                      RANK2 (= RANKS WITHIN A GROUP)
12756C                      RANK INDEX
12757C                      PERCENTAGE RANK
12758C                      CODE
12759C                      CODEH
12760C                      CODE2
12761C                      CODE4
12762C                      CODE8
12763C                      CODE10
12764C                      CODEZ
12765C                      CODEX
12766C                      CODE DEX
12767C                      CODE DEX 2-LEVEL
12768C                      CODE CROSS TABULATE
12769C                      COMBINE
12770C                      KEEP/OMIT
12771C                      THRESHOLD MINIMUM
12772C                      THRESHOLD MAXIMUM
12773C                      SHUFFLE GROUP
12774C                      BREAK LOCATION
12775C                      FRAGMENT LOCATION
12776C                      FRAGMENT LENGTH
12777C                      2D GRID
12778C                      3D GRID
12779C
12780C                      DISTINCT
12781C                      SEQUENTIAL DIFFERENCE
12782C                      SEQUENTIAL SUM
12783C                      SEQUENTIAL MEAN
12784C                      SEQUENTIAL MINIMUM
12785C                      SEQUENTIAL MAXIMUM
12786C                      SEQUENTIAL PRODUCT
12787C                      SEQUENTIAL LOWER
12788C                      SEQUENTIAL UPPER
12789C                      INTERARRIVAL TIMES
12790C                      CUMULATIVE AVERAGE (MEAN)
12791C                      CUMULATIVE SUM
12792C                      CUMULATIVE INTEGRAL
12793C                      CUMULATIVE PRODUCT
12794C                      CUMULATIVE MINIMUM
12795C                      CUMULATIVE MAXIMUM
12796C                      CUMULATIVE <STAT>
12797C                      CONVOLUTION
12798C                      DECONVOLUTION
12799C                      INTERPOLATE
12800C                      LINEAR INTERPOLATE
12801C                      2D INTERPOLATE (SCATTERED TO RECTANGULAR GRID)
12802C                      BILINEAR INTERPOLATE (FROM RECTANGULAR GRID)
12803C                      BIVARIATE INTERPOLATE (FROM RECTANGULAR GRID)
12804C                      HERMITE INTERPOLATE
12805C                      HERMITE INTEGRATION
12806C
12807C                      SINE TRANSFORM
12808C                      COSINE TRANSFORM
12809C                      LAPLACE TRANSFORM  (NOT IMPLEMENTED)
12810C                      INVERSE LAPLACE TRANSFORM (NOT IMPLEMENTED)
12811C
12812C                      FOURIER TRANSFORM
12813C                      INVERSE FOURIER TRANSFORM
12814C                      FFT
12815C                      INVERSE FFT
12816C
12817C                      LOW  PASS FILTER
12818C                      HIGH PASS FILTER
12819C
12820C                      NORMAL KERNEL DENSITY MIXTURE
12821C
12822C                      COMPLEX ADDITION
12823C                      COMPLEX SUBTRACTION
12824C                      COMPLEX MULTIPLICATION
12825C                      COMPLEX DIVISION
12826C                      COMPLEX EXPONENTIATION
12827C                      COMPLEX SQUARE ROOT
12828C                      COMPLEX ROOT (OF A POLYNOMIAL)  (2 OR 1 ARGUMENTS)
12829C                      COMPLEX CONJUGATE
12830C
12831C                      POLYNOMIAL ADDITION
12832C                      POLYNOMIAL SUBTRACTION
12833C                      POLYNOMIAL MULTIPLICATION
12834C                      POLYNOMIAL DIVISION
12835C                      POLYNOMIAL SQUARE
12836C                      POLYNOMIAL SQUARE ROOT  (FUTURE--NOT YET IMPLEMENTED)
12837C                      POLYNOMIAL GCD          (FUTURE--NOT YET IMPLEMENTED)
12838C                      POLYNOMIAL LCM          (FUTURE--NOT YET IMPLEMENTED)
12839C                      POLYNOMIAL EVALUATION
12840C
12841C                      VECTOR ADDITION
12842C                      VECTOR SUBTRACTION
12843C                      VECTOR DOT PRODUCT (OR INNER PRODUCT)
12844C                      VECTOR CROSS PRODUCT    (FUTURE--NOT YET IMPLEMENTED)
12845C                      VECTOR LENGTH (OR MAGNITUDE)
12846C                      VECTOR DISTANCE
12847C                      VECTOR ANGLE
12848C
12849C                      SET UNION (OR ADDITION)
12850C                      SET INTERSECTION
12851C                      SET COMPLEMENT
12852C                      SET CARDINALITY
12853C                      SET CARTESIAN PRODUCT
12854C                      SET ELEMENTS (DISTINCT)
12855C
12856C                      LOGICAL AND (OR CONJUNCTION OR MULTIPLICATION)
12857C                      LOGICAL OR (OR DISJUNCTION OR ADDITION)
12858C                      LOGICAL NAND
12859C                      LOGICAL NOR
12860C                      LOGICAL IFTHEN (OR IMPLICATION)
12861C                      LOGICAL IFF (OR EQUIVALENCE)
12862C                      LOGICAL NOT (OR NEGATION OR NOT OR COMPLEMENT)
12863C                      LOGICAL XOR (OR EXCLUSIVE OR   OR EXCL. DISJ.)
12864C
12865C                      MATRIX DEFINITION
12866C                      MATRIX SUBMATRIX
12867C                      CREATE MATRIX
12868C                      MATRIX TRANSPOSE
12869C                      MATRIX NUMBER OF ROWS
12870C                      MATRIX NUMBER OF COLUMNS
12871C                      MATRIX ROW
12872C                      MATRIX ELEMENT
12873C                      MATRIX REPLACE ROW
12874C                      MATRIX ADD ROW
12875C                      MATRIX DELETE ROW
12876C                      MATRIX REPLACE ELEMENT
12877C                      MATRIX AUGMENT
12878C                      MATRIX DIAGONAL
12879C                      DIAGONAL MATRIX
12880C                      VARIABLE TO MATRIX
12881C                      MATRIX TO VARIABLE
12882C                      MATRIX COMBINE ROWS
12883C                      MATRIX COMBINE COLUMNS
12884C
12885C                      MATRIX ADDITION
12886C                      MATRIX SUBTRACTION
12887C                      MATRIX MULTIPLICATION
12888C
12889C                      MATRIX CONDITION NUMBER
12890C                      MATRIX RECIPROCAL CONDITION NUMBER
12891C                      MATRIX INVERSE
12892C                      MATRIX SOLUTION
12893C                      MATRIX ITERATIVE SOLUTION
12894C                      TRIDIAGONAL SOLVE
12895C                      TRIANGULAR SOLVE
12896C                      TRIANGULAR INVERSE
12897C                      MATRIX CHOLESKY DECOMP
12898C                      MATRIX SIMPLEX SOLUTION
12899C                      PSUEDO INVERSE
12900C                      QR DECOMPOSITION (NOT DONE)
12901C
12902C                      MATRIX EIGENVALUES
12903C                      MATRIX EIGENVECTORS
12904C                      MATRIX SINGULAR VALUES
12905C                      MATRIX SINGULAR VALUE DECOMPOSITION
12906C                      MATRIX SINGULAR VALUE FACTORIZATION
12907C
12908C                      MATRIX DETERMINANT
12909C                      MATRIX ADJOINT
12910C                      MATRIX MINOR
12911C                      MATRIX COFACTOR
12912C                      MATRIX CHARACTERISTIC EQ. (FUTURE--NOT YET IMP.)
12913C                      MATRIX PERMANENT
12914C
12915C                      MATRIX RANK
12916C                      MATRIX TRACE
12917C                      MATRIX SPECTRAL NORM
12918C                      MATRIX SPECTRAL RADIUS
12919C                      MATRIX EUCLIDEAN NORM
12920C
12921C                      VARIANCE-COVARIANCE MATRIX
12922C                      CORRELATION MATRIX
12923C                      PARTIAL CORRELATION MATRIX
12924C                      PARTIAL CORRELATION CDF MATRIX
12925C                      PARTIAL CORRELATION PVALUE MATRIX
12926C                      COMOVEMENT MATRIX
12927C                      POOLED VARIANCE-COVARIANCE MATRIX
12928C                      PRINCIPLE COMPONENTS
12929C                      PRINCIPLE COMPONENTS EIGENVECTORS
12930C                      PRINCIPLE COMPONENTS EIGENVALUES
12931C                      ... PRINCIPLE COMPONENT
12932C                      ... PRINCIPLE COMPONENTS EIGENVECTORS
12933C                      ... PRINCIPLE COMPONENTS EIGENVALUES
12934C
12935C                      CATCHER MATRIX
12936C                      XTXINV MATRIX
12937C                      VARIANCE INFLATION FACTORS
12938C                      CONDITION INDICES
12939C                      QUADRATIC FORM
12940C                      LINEAR COMBINATION
12941C                      VECTOR TIMES TRANSPOSE
12942C
12943C                      HOTELLING 1-SAMPLE T-SQUARE
12944C                      HOTELLING 2-SAMPLE T-SQUARE
12945C                      MATRIX MEAN
12946C                      MATRIX SUM
12947C                      DISTANCE FROM MEAN
12948C                      MATRIX ROW <STAT>
12949C                      MATRIX COLUMN <STAT>
12950C                      MATRIX PARTITION <STAT>
12951C                      MATRIX GRAND <STAT>
12952C                      MATRIX BIN
12953C                      MATRIX GROUP MEANS
12954C                      MATRIX GROUP STANDARD DEVIATIONS
12955C                      MATRIX ROW SCALE
12956C                      MATRIX COLUMN SCALE
12957C                      EUCLIDEAN ROW DISTANCE
12958C                      EUCLIDEAN COLUMN DISTANCE
12959C                      MAHALANOBIS ROW DISTANCE
12960C                      MAHALANOBIS COLUMN DISTANCE
12961C                      MINKOWSKY ROW DISTANCE
12962C                      MINKOWSKY COLUMN DISTANCE
12963C                      CHEBYCHEV ROW DISTANCE
12964C                      CHEBYCHEV COLUMN DISTANCE
12965C                      BLOCK ROW DISTANCE
12966C                      BLOCK COLUMN DISTANCE
12967C                      COSINE ROW DISTANCE
12968C                      COSINE COLUMN DISTANCE
12969C                      COSINE ROW SIMILARITY
12970C                      COSINE COLUMN SIMILARITY
12971C                      JACCARD ROW DISTANCE
12972C                      JACCARD COLUMN DISTANCE
12973C                      JACCARD ROW SIMILARITY
12974C                      JACCARD COLUMN SIMILARITY
12975C                      CANBERRA ROW DISTANCE
12976C                      CANBERRA COLUMN DISTANCE
12977C                      PEARSON ROW DISTANCE
12978C                      PEARSON COLUMN DISTANCE
12979C                      PEARSON ROW SIMILARITY
12980C                      PEARSON COLUMN SIMILARITY
12981C                      GENERATE MATRIX <STAT>
12982C                      DEX CORE
12983C                      DEX CONFOUND
12984C                      DEX CHECK CLASSIC
12985C
12986C                      MULTIVARIATE NORMAL RANDOM NUMBERS
12987C                      INDEPENDENT UNIFORM RANDOM NUMBERS
12988C                      CORRELATED UNIFORM RANDOM NUMBERS
12989C                      MULTIVARIATE T RANDOM NUMBERS
12990C                      MULTINOMIAL RANDOM NUMBERS
12991C                      MULTINOMIAL PDF
12992C                      WISHART RANDOM NUMBERS
12993C                      DIRICHLET RANDOM NUMBERS
12994C                      DIRICHLET PDF
12995C                      DIRICHLET LOG PDF
12996C                      MULTIVARIATE NORMAL CDF
12997C                      MULTIVARIATE T CDF
12998C
12999C                      MATRIX ROW FIT
13000C                      MATRIX COLUMN FIT
13001C                      BIPLOT
13002C
13003C                      MATRIX RENUMBER M SIG TAU
13004C                      EDGES TO ADJANCENCY MATRIX
13005C
13006C                      FRACTAL
13007C                      BOOTSTRAP SAMPLE
13008C                      RANDOM SAMPLE = BOOTSTRAP SAMPLE
13009C                      JACKNIFE SAMPLE = BOOTSTRAP SAMPLE
13010C                      JACKNIFE INDEX
13011C                      REVERSE
13012C                      CUMULATIVE HAZARD
13013C                      HAZARD
13014C                      EXPONENTIAL SMOOTHING
13015C                      SAMPLED RANDOM PERMUTATION
13016C
13017C                      BINNED (= FREQUENCY TABLE)
13018C                      RELATIVE BINNED (= RELATIVE FREQUENCY TABLE)
13019C                      CODED BINNED
13020C                      CODED RELATIVE BINNED
13021C                      ASH BINNED
13022C                      COUNTS ASH BINNED
13023C                      FREQUENCY TO RAW
13024C                      COMBINE FREQUENCY TABLE
13025C                      INTEGER FREQUENCY TABLE
13026C                      PEAKS OF FREQUENCY TABLE (FREQUENCY TABLE PEAKS)
13027C                      PEAKS
13028C                      PEAK TRIANGLE AREAS
13029C                      EMPIRICAL QUANTILE FUNCTION
13030C                      INFORMATIVE QUANTILE FUNCTION
13031C                      TRUNCATED INFORMATIVE QUANTILE FUNCTION
13032C
13033C                      CUSUM ARL (= TWO SIDED CUSUM ARL)
13034C                      ONE-SIDED CUSUM ARL
13035C                      TWO-SIDED CUSUM ARL
13036C
13037C                      STANDARDIZE
13038C                      LOCATION STANDARDIZE
13039C                      SCALE STANDARDIZE
13040C                      ZSCORE
13041C                      USCORE
13042C                      MEAN RANK
13043C                      JSCORE
13044C                      JSCORE TABLE
13045C                      EN
13046C                      ISO 13528 ZSCORE
13047C                      ISO 13528 ZPRIME SCORE
13048C                      ISO 13528 ZETA SCORE
13049C                      ISO 13528 EZ- SCORE
13050C                      ISO 13528 EZ+ SCORE
13051C                      ISO 13528 EN  SCORE
13052C                      ISO 13528 PA  SCORE
13053C                      ISO 13528 DI PERCENT  SCORE
13054C                      RANDOM ERROR QUANTITY
13055C
13056C                      VARIANCES WELCH-SATTERTHWAITE
13057C                      GUM WELCH-SATTERTHWAITE
13058C
13059C                      CROSS TABULATE <STAT>
13060C                      CROSS TABULATE CUMULATIVE <STAT>
13061C                      MOVING <STAT>
13062C                      WINDOW <STAT>
13063C
13064C                      SORT BY <STAT>
13065C
13066C                      MATCH
13067C                      CELL MATCH
13068C                      REPLACE
13069C                      STACK
13070C                      REPLICATED STACK
13071C                      UNSTACK
13072C                      INSERT
13073C
13074C                      WINSOR
13075C
13076C                      H CONSISTENCY STATISTIC
13077C                      K CONSISTENCY STATISTIC
13078C
13079C                      PROBABILITY WEIGHTED MOMENTS
13080C                      BETA PROBABILITY WEIGHTED MOMENTS
13081C                      L MOMENTS
13082C
13083C                      GENERATOR MULTIPLICATION
13084C
13085C                      JITTER
13086C                      AGRESTI COULL LIMITS
13087C                      EXACT BINOMIAL LOWER LIMIT
13088C                      EXACT BINOMIAL UPPER LIMIT
13089C                      EXACT BINOMIAL LIMITS
13090C                      DIFFERENCE OF PROPORTIONS CONFIDENCE LIMITS
13091C                      DIFFERENCE OF PROPORTIONS HYPOTHESIS TEST
13092C                      RUHKIN 1 TEST  (P1 = P2*P3)
13093C                      RUHKIN 2 TEST  (P1 = 0.5*P2)
13094C                      RUHKIN 3 TEST  (P1*P2 = P3*P4)
13095C                      BINOMIAL RATIO CONFIDENCE LIMITS
13096C                      BINOMIAL PRODUCT STANDARD ERROR
13097C
13098C                      MANN WHITNEY U STATISTIC FREQUENCY
13099C
13100C                      2D CONVEX HULL
13101C                      POINT IN POLYGON
13102C                      NEAREST NEIGHBOR INDEX
13103C                      NEAREST NEIGHBOR DISTANCE
13104C                      NEAREST NEIGHBOR
13105C                      FIRST NEAREST NEIGHBOR
13106C                      ALL NEAREST NEIGHBORS
13107C                      JOIN
13108C                      TRANSFORM POINTS
13109C                      EXTREME POINTS
13110C                      ENCLOSING BOX
13111C                      LINE INTERSECTIONS
13112C                      PARALLEL LINES
13113C                      PERPINDICULAR LINES
13114C                      MINIMUM SPANNING TREE
13115C                      SPANNING FORST
13116C
13117C                      NEXT SUBSET
13118C                      NEXT PERMUTATION
13119C                      NEXT K-SET OF N-SET
13120C                      NEXT COMPOSITION
13121C                      NEXT PARTITION
13122C                      NEXT EQUIVALENCE RELATION
13123C                      NEXT YOUNG TABLEAUX
13124C                      CONVERT YOUNG TABLEAUX
13125C                      YOUNG TABLEAUX HOOK LENGTH
13126C
13127C                      GATHER
13128C                      SCATTER
13129C                      SHIFT
13130C                      SHIFTC
13131C
13132C                      DIGITS
13133C
13134C                      LARGEST
13135C                      SMALLEST
13136C
13137C                      BRITTLE FIBER WEIBULL PDF
13138C                      BRITTLE FIBER WEIBULL CDF
13139C                      BRITTLE FIBER WEIBULL PPF
13140C                      END EFFECTS WEIBULL PDF
13141C                      END EFFECTS WEIBULL CDF
13142C                      END EFFECTS WEIBULL PPF
13143C                      WEIBULL MOMENT ESTIMATE
13144C                      LOGNORMAL MOMENT ESTIMATE
13145C                      GAMMA MOMENT ESTIMATE
13146C                      INVERSE GAUSSIAN MOMENT ESTIMATE
13147C
13148C                      YFRAME LIMITS
13149C                      XFRAME LIMITS
13150C                      YTIC <SCREEN/DATA> COORDINATES
13151C                      XTIC <SCREEN/DATA> COORDINATES
13152C
13153C                      VECTOR PERCENTILE
13154C
13155C                 NOTE: CHECK FOR THE COMMANDS:
13156C
13157C                          LET Y = X       (I.E., COPY A VECTOR)
13158C
13159C                       TREAT THIS AS AN IMPLCIT
13160C
13161C                          LET Y = COPY X
13162C
13163C     WRITTEN BY--JAMES J. FILLIBEN
13164C                 STATISTICAL ENGINEERING DIVISION
13165C                 INFORMATION TECHNOLOGY LABORATORY
13166C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
13167C                 GAITHERSBURG, MD 20899-8980
13168C                 PHONE--301-975-2899
13169C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
13170C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
13171C     LANGUAGE--ANSI FORTRAN (1977)
13172C     VERSION NUMBER--87/10
13173C     ORIGINAL VERSION--JULY      1981.
13174C     UPDATED         --SEPTEMBER 1981.
13175C     UPDATED         --NOVEMBER  1981.
13176C     UPDATED         --MAY       1982.
13177C     UPDATED         --JANUARY   1987.
13178C     UPDATED         --APRIL     1987.
13179C     UPDATED         --AUGUST    1987. COMPLEX SQUARE ROOT
13180C     UPDATED         --AUGUST    1987. COMPLEX ROOTS (OF POLYNOMIAL)
13181C     UPDATED         --AUGUST    1987. POLYNOMIAL ARITHMETIC
13182C     UPDATED         --AUGUST    1987. VECTOR ARITHMETIC
13183C     UPDATED         --AUGUST    1987. SET ARITHMETIC
13184C     UPDATED         --AUGUST    1987. LOGICAL ARITHMETIC
13185C     UPDATED         --SEPTEMBER 1987. FFT AND INVERSE FFT
13186C     UPDATED         --SEPTEMBER 1987. MATRIX OPERATIONS
13187C     UPDATED         --SEPTEMBER 1987. COMPLEX CONJUGATE
13188C     UPDATED         --FEBRUARY  1988. BIWEIGHT AND TRICUBE
13189C     UPDATED         --JULY      1988. FRACTAL
13190C     UPDATED         --JANUARY   1989. BOOTSTRAP SAMPLE
13191C     UPDATED         --JANUARY   1989. JACKNIFE SAMPLE = BOOTSTRAP SAMPLE
13192C     UPDATED         --JANUARY   1990. RANDOM (SUB)SAMPLE  (GENERALIZE)
13193C
13194C     UPDATED         --AUGUST    1988  (VARIANCE-COVARIANCE MATRIX)
13195C     UPDATED         --AUGUST    1988  (CORRELATION MATRIX)
13196C     UPDATED         --AUGUST    1988  (PRINCIPLE COMPONENTS ...)
13197C     UPDATED         --AUGUST    1988  (... PRINCIPLE COMPONENTS ...)
13198C
13199C     UPDATED         --DECEMBER  1989. GENERATOR MULTIPLICATION
13200C     UPDATED         --JULY      1991. COCODE ('COCD')
13201C     UPDATED         --JULY      1991. COCOPY ('COCP')
13202C     UPDATED         --OCTOBER   1991. CORANK SYNONYM FOR COCODE
13203C     UPDATED         --MARCH     1992. RECOGNIZE   SORT & CARRY
13204C     UPDATED         --JULY      1993. MATRIX SINGULAR VALUES AND
13205C                                       MATRIX SING VALUE DECOMP
13206C     UPDATED         --SEPTEMBER 1993. MATRIX ROW
13207C                                       MATRIX ELEMENT
13208C     UPDATED         --OCTOBER   1993. JACKNIFE INDEX
13209C     UPDATED         --OCTOBER   1993. CHOLESKY DECOMP, MATRIX
13210C                                       REPLACE ROW, MATRIX REPLACE
13211C                                       ELEMENT, MATRIX AUGMENT, MATRIX
13212C                                       DIAGONAL, DIAGONAL MATRIX,
13213C                                       TRIDIAGONAL SOLVE
13214C     UPDATED         --MAY       1994. LINEAR INTERPOLATE, 2D
13215C                                       INTERPOLATE, BILINEAR INTERPOL
13216C     UPDATED         --FEBRUARY  1998. CODED AS SYNONYM FOR CODE
13217C     UPDATED         --MAY       1998. INTERARRIVAL TIMES
13218C     UPDATED         --MAY       1998. CUMULATIVE AVERAGE
13219C     UPDATED         --MAY       1998. REVERSE (OR FLIP)
13220C     UPDATED         --MAY       1998. HAZARD
13221C     UPDATED         --MAY       1998. CUMULATIVE HAZARD
13222C     UPDATED         --JUNE      1998. SOME NEW MATRIX COMMANDS
13223C     UPDATED         --AUGUST    1998. MATRIX MEAN
13224C     UPDATED         --AUGUST    1998. MATRIX ADD ROW
13225C     UPDATED         --AUGUST    1998. MATRIX DELETE ROW
13226C     UPDATED         --SEPTEMBER 1998. MATRIX GROUP MEAN
13227C     UPDATED         --SEPTEMBER 1998. MATRIX GROUP STANDARD DEVIATION
13228C     UPDATED         --NOVEMBER  1998. BINNED, RELATIVE BINNED
13229C     UPDATED         --MARCH     1999. CUSUM ARL
13230C     UPDATED         --MARCH     2001. STANDARDIZE
13231C     UPDATED         --MARCH     2001. LOCATION STANDARDIZE
13232C     UPDATED         --SEPTEMBER 2001. FIXES TO STANDARDIZE
13233C     UPDATED         --SEPTEMBER 2001. LOCATION STANDARDIZE
13234C     UPDATED         --OCTOBER   2001. MATCH
13235C     UPDATED         --MAY       2002. MULTIVARIATE NORM RAND NUMB
13236C     UPDATED         --MAY       2002. MULTINOMIAL RAND NUMB
13237C     UPDATED         --MAY       2002. WISHART RAND NUMB
13238C     UPDATED         --MAY       2002. FERMDIRA
13239C     UPDATED         --JUNE      2002. CATCHER MATRIX
13240C     UPDATED         --JUNE      2002. XTXINV MATRIX
13241C     UPDATED         --JUNE      2002. VARIANCE INFLATION FACTORS
13242C     UPDATED         --JUNE      2002. CONDITION INDICES
13243C     UPDATED         --JUNE      2002. CREATE MATRIX
13244C     UPDATED         --JULY      2002. WINSORIZE
13245C     UPDATED         --AUGUST    2002. UPDATE SUPPORTED STATISTICS
13246C                                       FOR CROSS TABULATE AND
13247C                                       MATRIX <ROW/COLUMN>
13248C     UPDATED         --MARCH     2003. ADD 35 "DIFFERENCE OF"
13249C                                       STATISTICS TO CROSS TABULATE
13250C     UPDATED         --APRIL     2003. MULTIVARIATE T RAND NUMB
13251C     UPDATED         --APRIL     2003. MULTIVARIATE INDE UNIF RAND NUMB
13252C     UPDATED         --APRIL     2003. MULTIVARIATE DIRE RAND NUMB
13253C     UPDATED         --APRIL     2003. MULTIVARIATE NORM CDF
13254C     UPDATED         --APRIL     2003. MULTIVARIATE NORM PDF
13255C     UPDATED         --APRIL     2003. ADD SN SCALE AND QN SCALE TO
13256C                                       CROSS TABULATE AND
13257C                                       MATRIX ROW/COLUMN STAT
13258C     UPDATED         --MAY       2003. STACK COMMAND
13259C     UPDATED         --MAY       2003. MULTINOMIAL PDF
13260C     UPDATED         --OCTOBER   2004. ASH BIN
13261C     UPDATED         --OCTOBER   2004. COUNTS ASH BIN
13262C     UPDATED         --OCTOBER   2004. COMBINE FREQUENCY TABLE
13263C     UPDATED         --FEBRUARY  2005. REPLICATED STACK
13264C     UPDATED         --FEBRUARY  2005. H CONSISTENCY STATISTIC
13265C     UPDATED         --FEBRUARY  2005. K CONSISTENCY STATISTIC
13266C     UPDATED         --JUNE      2005. L MOMENTS
13267C     UPDATED         --JUNE      2005. PROBABILITY WEIGHTED MOMENTS
13268C     UPDATED         --JUNE      2005. MATRIX <STAT>
13269C     UPDATED         --JUNE      2005. MATRIX PARTITION <STAT>
13270C     UPDATED         --SEPTEMBER 2005. CROSS TABULATE RATIO
13271C     UPDATED         --DECEMBER  2005. BETA PROBABILITY WEIGHTED
13272C                                       MOMENTS
13273C     UPDATED         --DECEMBER  2005. SORT BY <STAT>
13274C     UPDATED         --MARCH     2006. MATRIX BIN
13275C     UPDATED         --MARCH     2006. MATRIX LOWER TRUNCATE
13276C     UPDATED         --MARCH     2006. MATRIX UPPER TRUNCATE
13277C     UPDATED         --MAY       2006. INTEGER FREQUENCY TABLE
13278C     UPDATED         --JANUARY   2007. JITTER
13279C     UPDATED         --FEBRUARY  2007. AGRSTI COULL LIMITS
13280C     UPDATED         --FEBRUARY  2007. EXACT BINOMIAL LOWER LIMITS
13281C     UPDATED         --FEBRUARY  2007. EXACT BINOMIAL UPPER LIMITS
13282C     UPDATED         --MARCH     2007. MATRIX CRAMER CONT COEFF
13283C     UPDATED         --MARCH     2007. MATRIX PEARSON CONT COEFF
13284C     UPDATED         --MAY       2007. TRIMMED STANDARD DEVIATION
13285C                                       FOR "MATRIX" AND
13286C                                       "CROSS TABULATE" COMMANDS
13287C     UPDATED         --NOVEMBER  2007. COMOVEMENT MATRIX
13288C     UPDATED         --NOVEMBER  2007. LP LOCA, VARI LP LOCA,
13289C                                       SD LP LOCA FOR MATRIX <STAT>
13290C                                       AND CROSS TABULATE COMMANDS
13291C     UPDATED         --APRIL     2008. 2D CONVEX HULL
13292C     UPDATED         --APRIL     2008. MINIMUM SPANNING TREE
13293C     UPDATED         --APRIL     2008. NEXT SUBSET
13294C     UPDATED         --APRIL     2008. NEXT PERMUTATION
13295C     UPDATED         --APRIL     2008. NEXT K-SET OF N-SET
13296C     UPDATED         --MAY       2008. PEAKS OF FREQUENCY TABLE
13297C     UPDATED         --MAY       2008. LET Y = X CASE
13298C     UPDATED         --MAY       2008. NEXT COMPOSITION
13299C     UPDATED         --MAY       2008. NEXT PARTITION
13300C     UPDATED         --JUNE      2008. NEXT EQUIVALENCE RELATION
13301C     UPDATED         --JUNE      2008. MATRIX RENUMBER
13302C     UPDATED         --JUNE      2008. SPANNING FOREST
13303C     UPDATED         --JULY      2008. EDGES TO ADJACENCY MATRIX
13304C     UPDATED         --AUGUST    2008. NEXT YOUNG TABLEAUX
13305C     UPDATED         --AUGUST    2008. CONVERT YOUNG TABLEAUX
13306C     UPDATED         --AUGUST    2008. YOUNG TABLEAUX HOOK LENGTH
13307C     UPDATED         --AUGUST    2008. GROUP SORT
13308C     UPDATED         --AUGUST    2008. DIFFERENCE OF PROPORTIONS
13309C                                       CONFIDENCE LIMITS
13310C     UPDATED         --AUGUST    2008. DIFFERENCE OF PROPORTIONS
13311C                                       HYPOTHEIS TEST
13312C     UPDATED         --SEPTEMBER 2008. RUHKIN 1 TEST
13313C     UPDATED         --SEPTEMBER 2008. RUHKIN 2 TEST
13314C     UPDATED         --OCTOBER   2008. SORT2, SORT3, SORT4
13315C     UPDATED         --NOVEMBER  2008. GATHER
13316C     UPDATED         --NOVEMBER  2008. SCATTER
13317C     UPDATED         --DECEMBER  2008. RANK2, RANK3, RANK4
13318C     UPDATED         --JANUARY   2009. EDGES TO DIRECTED ADJACENCY
13319C                                       MATRIX
13320C     UPDATED         --FEBRUARY  2009. FOLLOWING STATISTICS FOR
13321C                                       CROSS TABULATE AND MATRIX
13322C                                       <COLUMN/ROW> <STAT> COMMANDS
13323C                                       INDEX MINIMUM,
13324C                                       INDEX MAXIMUM,
13325C                                       INDEX EXTREME,
13326C                                       GRUBB, GRUBB CDF,
13327C                                       GRUBB DIRECTION, GRUBB INDEX,
13328C                                       ONE SAMPLE T-TEST,
13329C                                       ONE SAMPLE T-TEST CDF,
13330C                                       CHI-SQUARE SD TEST,
13331C                                       CHI-SQUARE SD TEST CDF,
13332C                                       FREQUENCY TEST, FREQUENCY TEST CDF,
13333C                                       FREQUENCY WITHIN A BLOCK TEST,
13334C                                       FREQUENCY WITHIN A BLOCK TEST CDF
13335C     UPDATED         --FEBRUARY  2009. SHIFT, CIRCULAR SHIFT
13336C     UPDATED         --MARCH     2009. USE "EXTSTA" TO LOOK FOR
13337C                                       STATISTICS FOR
13338C                                       CROSS TABULATE, SORT BY, AND
13339C                                       MATRIX
13340C                                       <COLUMN/ROW/GRAND/PARTITION>
13341C                                       <STAT> COMMANDS
13342C     UPDATED         --MARCH     2009. BIPLOT
13343C     UPDATED         --JUNE      2009. CODE CROSS TABULATE
13344C     UPDATED         --FEBRUARY  2010. MATRIX <ROW/COLUMN> FIT
13345C     UPDATED         --JUNE      2010. RANK INDEX
13346C     UPDATED         --JUNE      2010. RUHKIN 3
13347C     UPDATED         --SEPTEMBER 2010. COMBINE
13348C     UPDATED         --OCTOBER   2010. MOVING <STAT>
13349C     UPDATED         --OCTOBER   2010. BRITTLE FIBER WEIBULL PDF/CDF/PPF
13350C     UPDATED         --OCTOBER   2010. EXACT BINOMIAL LIMITS
13351C     UPDATED         --NOVEMBER  2010. VARIABLE TO MATRIX
13352C     UPDATED         --NOVEMBER  2010. MATRIX TO VARIABLE
13353C     UPDATED         --JANUARY   2011. MATRIX COMBINE ROWS
13354C     UPDATED         --JANUARY   2011. MATRIX COMBINE COLUMNS
13355C     UPDATED         --APRIL     2011. KEEP/OMIT
13356C     UPDATED         --MAY       2011. MANN WHITNEY U STATISTIC
13357C                                       FREQUENCY
13358C     UPDATED         --JULY      2011. THRESHOLD MINIMUM
13359C     UPDATED         --JULY      2011. THRESHOLD MAXIMUM
13360C     UPDATED         --JANUARY   2012. PERCENTAGE RANK
13361C     UPDATED         --JANUARY   2012. EXPAND
13362C     UPDATED         --JANUARY   2012. EN
13363C     UPDATED         --JANUARY   2012. ISO 13528 ZSCORE
13364C     UPDATED         --JANUARY   2012. ISO 13528 ZPRIME SCORE
13365C     UPDATED         --JANUARY   2012. ISO 13528 ZETA SCORE
13366C     UPDATED         --JANUARY   2012. ISO 13528 EZMINUS SCORE
13367C     UPDATED         --JANUARY   2012. ISO 13528 EZPLUS SCORE
13368C     UPDATED         --JANUARY   2012. ISO 13528 EN SCORE
13369C     UPDATED         --FEBRUARY  2012. JSCORE
13370C     UPDATED         --MARCH     2012. BUG FIX IN "LET Y = X"
13371C     UPDATED         --JUNE      2012. WEIBULL MOMENT ESTIMATE
13372C     UPDATED         --AUGUST    2012. LOW  PASS FILTER
13373C     UPDATED         --AUGUST    2012. HIGH PASS FILTER
13374C     UPDATED         --OCTOBER   2012. TRANSFORM POINTS
13375C     UPDATED         --OCTOBER   2012. EXTREME POINTS
13376C     UPDATED         --OCTOBER   2012. ENCLOSING BOX
13377C     UPDATED         --OCTOBER   2012. PARALLEL LINES
13378C     UPDATED         --OCTOBER   2012. PERPINDICULAR LINES
13379C     UPDATED         --DECEMBER  2012. CUMULATIVE MINIMUM
13380C     UPDATED         --DECEMBER  2012. CUMULATIVE MAXIMUM
13381C     UPDATED         --JANUARY   2013. CUMULATIVE <STAT>
13382C     UPDATED         --JANUARY   2013. CROSS TABULATE CUMULATIVE <STAT>
13383C     UPDATED         --AUGUST    2013. NEAREST NEIGHBOR
13384C     UPDATED         --AUGUST    2013. NEAREST NEIGHBOR INDEX
13385C     UPDATED         --AUGUST    2013. NEAREST NEIGHBOR DISTANCE
13386C     UPDATED         --AUGUST    2013. JOIN
13387C     UPDATED         --AUGUST    2013. PEAKS
13388C     UPDATED         --AUGUST    2013. PEAKS TRAINGLE AREAS
13389C     UPDATED         --SEPTEMBER 2013. FIRST NEAREST NEIGHBOR
13390C     UPDATED         --SEPTEMBER 2013. ALL NEAREST NEIGHBORS
13391C     UPDATED         --APRIL     2014. LOGNORMAL MOMENT ESTIMATES
13392C     UPDATED         --APRIL     2014. GAMMA MOMENT ESTIMATES
13393C     UPDATED         --APRIL     2014. INVERSE GAUSSIAN MOMENT ESTIMATES
13394C     UPDATED         --JULY      2014. SHUFFLE GROUP
13395C     UPDATED         --DECEMBER  2014. RANDOM ERROR QUANTITY
13396C     UPDATED         --JANUARY   2015. DIGITS
13397C     UPDATED         --OCTOBER   2015. JSCORE TABLE
13398C     UPDATED         --DECEMBER  2015. XFRAME LIMITS
13399C     UPDATED         --DECEMBER  2015. YFRAME LIMITS
13400C     UPDATED         --FEBRUARY  2016. ISO 13528 PA SCORE
13401C     UPDATED         --FEBRUARY  2016. SEQUENTIAL SUM
13402C     UPDATED         --FEBRUARY  2016. SEQUENTIAL PRODUCT
13403C     UPDATED         --FEBRUARY  2016. SEQUENTIAL MEAN
13404C     UPDATED         --FEBRUARY  2016. SEQUENTIAL MINIMUM
13405C     UPDATED         --FEBRUARY  2016. SEQUENTIAL MAXIMUM
13406C     UPDATED         --FEBRUARY  2016. SEQUENTIAL LOWER
13407C     UPDATED         --FEBRUARY  2016. SEQUENTIAL UPPER
13408C     UPDATED         --FEBRUARY  2016. SEQUENTIAL <STAT> WITH GROUP-ID
13409C                                       VARIABLE
13410C     UPDATED         --JUNE      2016. WINDOW <STAT>
13411C     UPDATED         --JUNE      2016. VECTOR PERCENTILE
13412C     UPDATED         --JUNE      2016. CODEZ
13413C     UPDATED         --AUGUST    2016. UNSTACK
13414C     UPDATED         --JANUARY   2017. VARIANCES WELCH-SATTERTHWAITE
13415C     UPDATED         --JANUARY   2017. GUM WELCH-SATTERTHWAITE
13416C     UPDATED         --FEBRUARY  2017. NORMAL KERNEL DENISTY MIXTURE
13417C     UPDATED         --FEBRUARY  2017. EMPIRICAL QUANTILE FUNCTION
13418C     UPDATED         --MARCH     2017. INFORMATIVE QUANTILE FUNCTION
13419C     UPDATED         --MARCH     2017. TRUNCATED INFORMATIVE QUANTILE
13420C                                       FUNCTION
13421C     UPDATED         --JULY      2017. CODEX
13422C     UPDATED         --AUGUST    2017. SAMPLED RANDOM PERMUTATION
13423C     UPDATED         --AUGUST    2017. HERMITE INTERPOLATION
13424C     UPDATED         --AUGUST    2017. HERMITE INTEGRATION
13425C     UPDATED         --AUGUST    2017. GENERATE MATRIX <STAT>
13426C     UPDATED         --JANUARY   2018. DEX CORE
13427C     UPDATED         --JANUARY   2018. DEX CONFOUND
13428C     UPDATED         --JANUARY   2018. CODE DEX
13429C     UPDATED         --FEBRUARY  2018. DEX CHECK CLASSIC
13430C     UPDATED         --JULY      2018. MEAN RANK
13431C     UPDATED         --AUGUST    2018. MATRIX COSINE ROW DISTANCE
13432C     UPDATED         --AUGUST    2018. MATRIX COSINE COLUMN DISTANCE
13433C     UPDATED         --AUGUST    2018. MATRIX COSINE ROW SIMILARITY
13434C     UPDATED         --AUGUST    2018. MATRIX COSINE COLUMN SIMILARITY
13435C     UPDATED         --AUGUST    2018. MATRIX JACCARD ROW DISTANCE
13436C     UPDATED         --AUGUST    2018. MATRIX JACCARD COLUMN DISTANCE
13437C     UPDATED         --AUGUST    2018. MATRIX JACCARD ROW SIMILARITY
13438C     UPDATED         --AUGUST    2018. MATRIX JACCARD COLUMN SIMILARITY
13439C     UPDATED         --AUGUST    2018. MATRIX ANGULAR COSINE ROW DISTANCE
13440C     UPDATED         --AUGUST    2018. MATRIX ANGULAR COSINE COLUMN DISTANCE
13441C     UPDATED         --AUGUST    2018. MATRIX ANGULAR COSINE ROW SIMILARITY
13442C     UPDATED         --AUGUST    2018. MATRIX ANGULAR COSINE COLUMN SIMILARITY
13443C     UPDATED         --AUGUST    2018. MATRIX PEARSON ROW DISTANCE
13444C     UPDATED         --AUGUST    2018. MATRIX PEARSON COLUMN DISTANCE
13445C     UPDATED         --AUGUST    2018. MATRIX HAMMING ROW DISTANCE
13446C     UPDATED         --AUGUST    2018. MATRIX HAMMING COLUMN DISTANCE
13447C     UPDATED         --AUGUST    2018. MATRIX CANBERRA ROW DISTANCE
13448C     UPDATED         --AUGUST    2018. MATRIX CANBERRA COLUMN DISTANCE
13449C     UPDATED         --AUGUST    2018. CELL MATCH
13450C     UPDATED         --OCTOBER   2018. LARGEST
13451C     UPDATED         --OCTOBER   2018. SMALLEST
13452C     UPDATED         --OCTOBER   2018. <YTIC/XTIC> <SCREEN/DATA>
13453C                                       COORDINATES
13454C     UPDATED         --OCTOBER   2018. MATRIX PEARSON ROW SIMILARITY
13455C     UPDATED         --OCTOBER   2018. MATRIX PEARSON COLUMN SIMILARITY
13456C     UPDATED         --OCTOBER   2018. CODE DEX 2-LEVEL
13457C     UPDATED         --JULY      2019. BREAK LOCATION
13458C     UPDATED         --AUGUST    2019. FRAGMENT LOCATION
13459C     UPDATED         --AUGUST    2019. FRAGMENT CENTROID
13460C     UPDATED         --AUGUST    2019. FRAGMENT LENGTH
13461C     UPDATED         --AUGUST    2019. 2D GRID
13462C     UPDATED         --AUGUST    2019. 3D GRID
13463C     UPDATED         --FEBRUARY  2020. INSERT
13464C
13465C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
13466C
13467      CHARACTER*4 IBUGA3
13468      CHARACTER*4 ISUBRO
13469      CHARACTER*4 IFOUN7
13470      CHARACTER*4 ICASL7
13471      CHARACTER*4 ICASS7
13472      CHARACTER*4 IMSUBC
13473C
13474      CHARACTER*4 IERROR
13475      CHARACTER*4 IH
13476      CHARACTER*4 IH2
13477      CHARACTER*4 ISTEPN
13478      CHARACTER*4 ISUBN1
13479      CHARACTER*4 ISUBN2
13480      CHARACTER*8 IHTEMP
13481C
13482      CHARACTER*4  ISTADF
13483      CHARACTER*60 ISTANM
13484C
13485C-----COMMON----------------------------------------------------------
13486C
13487      INCLUDE 'DPCOPA.INC'
13488      INCLUDE 'DPCOHK.INC'
13489      INCLUDE 'DPCODA.INC'
13490C
13491C-----COMMON VARIABLES (GENERAL)--------------------------------------
13492C
13493      INCLUDE 'DPCOP2.INC'
13494C
13495C-----START POINT-----------------------------------------------------
13496C
13497      MAXCP1=MAXCOL+1
13498      MAXCP2=MAXCOL+2
13499C
13500      IERROR='NO'
13501      ISUBN1='CKMA'
13502      ISUBN2='TH  '
13503C
13504C               *********************************************
13505C               **  CHECK FOR A DATA MANIPULATION SUBCASE  **
13506C               *********************************************
13507C
13508      IFOUN7='NO'
13509      ICASL7='UNKN'
13510      ICASS7='UNKN'
13511      ILOCV=-1
13512      ISTANR=1
13513C
13514      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MATH')THEN
13515        WRITE(ICOUT,999)
13516  999   FORMAT(1X)
13517        CALL DPWRST('XXX','BUG ')
13518        WRITE(ICOUT,51)
13519   51   FORMAT('***** AT THE BEGINNING OF CKMATH--')
13520        CALL DPWRST('XXX','BUG ')
13521        WRITE(ICOUT,52)IBUGA3,ISUBRO,NUMARG
13522   52   FORMAT('IBUGA3,ISUBRO,NUMARG = ',2(A4,2X),I8)
13523        CALL DPWRST('XXX','BUG ')
13524        DO54I=1,NUMARG
13525          WRITE(ICOUT,55)I,IHARG(I)
13526   55     FORMAT('I,IHARG(I)    = ',I8,1X,A4)
13527          CALL DPWRST('XXX','BUG ')
13528   54   CONTINUE
13529      ENDIF
13530C
13531C               *********************************
13532C               **  STEP 1--                   **
13533C               **  DETERMINE IF OF THIS TYPE  **
13534C               **  AND BRANCH ACCORDINGLY.    **
13535C               *********************************
13536C
13537      ISTEPN='1'
13538      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
13539     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
13540C
13541CCCCC IF(NUMARG.LE.3)GOTO9000
13542      IF(NUMARG.LE.2)GOTO9000
13543C
13544CCCCC THE FOLLOWING SECTION WERE ADDED MARCH 1992
13545      IF(NUMARG.GE.5.AND.
13546     1IHARG(3).EQ.'SORT'.AND.IHARG2(3).EQ.'    '.AND.
13547     1IHARG(4).EQ.'AND '.AND.IHARG2(4).EQ.'    '.AND.
13548     1IHARG(5).EQ.'CARR'.AND.IHARG2(5).EQ.'Y   ')GOTO1110
13549      IF(NUMARG.GE.4.AND.
13550     1IHARG(3).EQ.'SORT'.AND.IHARG2(3).EQ.'    '.AND.
13551     1IHARG(4).EQ.'CARR'.AND.IHARG2(4).EQ.'Y   ')GOTO1120
13552      GOTO1190
13553 1110 CONTINUE
13554      ISHIFT=2
13555      CALL SHIFTL(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
13556     1IBUGA3,IERROR)
13557      IHARG(3)='SORT'
13558      IHARG2(3)='C   '
13559      GOTO1190
13560 1120 CONTINUE
13561      ISHIFT=1
13562      CALL SHIFTL(ISHIFT,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG,
13563     1IBUGA3,IERROR)
13564      IHARG(3)='SORT'
13565      IHARG2(3)='C   '
13566      GOTO1190
13567 1190 CONTINUE
13568C
13569C               **************************************
13570C               **  CHECK FOR   SORT BY  <STAT>     **
13571C               **************************************
13572C
13573CCCCC DECEMBER 2005: SORT BY <STAT>
13574CCCCC ONLY SUPPORT FOR STATISTICS WITH A SINGLE VARIABLE (I.E.,
13575CCCCC NO "DIFFERENCE OF", "WEIGHTED", OR 2-VARIABLE STATISTICS).
13576CCCCC PARSE HERE TO DISTINGUISH FROM SORT COMMAND.
13577CCCCC SET ICASS7 FOR SUBSEQUENT USE IN DPMATC SUBROUTINE.
13578CCCCC MARCH 2009: USE "EXTSTA" TO PARSE.  FOR THIS CASE,
13579CCCCC             ONLY COUNT A MATCH FOR STATISTICS USING A
13580CCCCC             SINGLE RESPONSE VARIABLE.
13581C
13582      ISTEPN='1A'
13583      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
13584     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
13585C
13586      IF(NUMARG.GE.6.AND.IHARG(4).EQ.'SORT'.AND.IHARG(5).EQ.'BY  ')THEN
13587        JMIN=6
13588        JMAX=MIN(NUMARG,JMIN+6)
13589        CALL EXTSTA(ICOM,ICOM2,IHARG,IHARG2,IARGT,ARG,NUMARG,JMIN,JMAX,
13590     1              ICASS7,ISTANM,ISTANR,ISTADF,IFOUN7,ILOCV,
13591     1              ISUBRO,IBUGA3,IERROR)
13592C
13593        IF(ISTANR.GT.1)IFOUN7='NO'
13594        ICASL7='SRTB'
13595        IF(IFOUN7.EQ.'YES')GOTO8020
13596      ENDIF
13597C
13598      ISTEPN='2A'
13599      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
13600     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
13601C
13602      IF(NUMARG.GE.3.AND.
13603     1IHARG(3).EQ.'SORT'.AND.IHARG2(3).EQ.'    ')GOTO1201
13604      IF(NUMARG.GE.5.AND.
13605     1IHARG(3).EQ.'RANK'.AND.IHARG(4).EQ.'INDE')GOTO5294
13606      IF(NUMARG.GE.5.AND.
13607     1IHARG(3).EQ.'PERC'.AND.IHARG(4).EQ.'RANK')GOTO5299
13608      IF(NUMARG.GE.3.AND.
13609     1IHARG(3).EQ.'RANK'.AND.IHARG2(3).EQ.'    ')GOTO1202
13610      IF(NUMARG.GE.5.AND.
13611     1IHARG(3).EQ.'CODE'.AND.IHARG(4).EQ.'CROS'.AND.
13612     1IHARG(5).EQ.'TABU')GOTO5300
13613      IF(NUMARG.GE.6.AND.
13614     1IHARG(3).EQ.'CODE'.AND.IHARG(4).EQ.'DEX '.AND.
13615     1IHARG(5).EQ.'2   '.AND.IHARG(6).EQ.'LEVE')GOTO1234
13616      IF(NUMARG.GE.6.AND.
13617     1IHARG(3).EQ.'DEX '.AND.IHARG(4).EQ.'CODE'.AND.
13618     1IHARG(5).EQ.'2   '.AND.IHARG(6).EQ.'LEVE')GOTO1234
13619      IF(NUMARG.GE.5.AND.
13620     1IHARG(3).EQ.'CODE'.AND.IHARG(4).EQ.'DEX '.AND.
13621     1IHARG(5).EQ.'2LEV')GOTO1235
13622      IF(NUMARG.GE.5.AND.
13623     1IHARG(3).EQ.'DEX '.AND.IHARG(4).EQ.'CODE'.AND.
13624     1IHARG(5).EQ.'2LEV')GOTO1235
13625      IF(NUMARG.GE.4.AND.
13626     1IHARG(3).EQ.'CODE'.AND.IHARG(4).EQ.'DEX ')GOTO1233
13627      IF(NUMARG.GE.4.AND.
13628     1IHARG(3).EQ.'DEX '.AND.IHARG(4).EQ.'CODE')GOTO1233
13629CCCCC ADD FOLLOWING 2 LINES FEBRUARY 1998.
13630      IF(NUMARG.GE.3.AND.
13631     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'    ')GOTO1203
13632CCCCC ADD FOLLOWING 2 LINES FEBRUARY 1998.
13633      IF(NUMARG.GE.3.AND.
13634     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'D   ')GOTO1203
13635      IF(NUMARG.GE.3.AND.
13636     1IHARG(3).EQ.'DIST'.AND.IHARG2(3).EQ.'INCT')GOTO1204
13637CCCCC AUGUST 2008. ADD FOLLOWING SECTION.
13638      IF(NUMARG.GE.7.AND.
13639     1IHARG(3).EQ.'DIFF'.AND.IHARG(4).EQ.'OF'.AND.
13640     1IHARG(5).EQ.'PROP'.AND.IHARG(6).EQ.'HYPO'.AND.
13641     1IHARG(7).EQ.'TEST')GOTO5264
13642C
13643      IF(NUMARG.GE.9.AND.
13644     1IHARG(3).EQ.'DIFF'.AND.IHARG(4).EQ.'OF'.AND.
13645     1IHARG(5).EQ.'PROP'.AND.IHARG(6).EQ.'LOWE'.AND.
13646     1IHARG(7).EQ.'TAIL'.AND.IHARG(8).EQ.'HYPO'.AND.
13647     1IHARG(9).EQ.'TEST')GOTO5266
13648C
13649      IF(NUMARG.GE.9.AND.
13650     1IHARG(3).EQ.'DIFF'.AND.IHARG(4).EQ.'OF'.AND.
13651     1IHARG(5).EQ.'PROP'.AND.IHARG(6).EQ.'UPPE'.AND.
13652     1IHARG(7).EQ.'TAIL'.AND.IHARG(8).EQ.'HYPO'.AND.
13653     1IHARG(9).EQ.'TEST')GOTO5268
13654C
13655      IF(NUMARG.GE.3.AND.
13656     1IHARG(3).EQ.'DIFF'.AND.IHARG2(3).EQ.'EREN')GOTO1205
13657C
13658      IF(NUMARG.GE.4.AND.
13659     1IHARG(3).EQ.'SEQU'.AND.IHARG(4).EQ.'DIFF')GOTO1206
13660      IF(NUMARG.GE.4.AND.
13661     1IHARG(3).EQ.'SEQU'.AND.IHARG(4).EQ.'SUM ')GOTO31206
13662      IF(NUMARG.GE.4.AND.
13663     1IHARG(3).EQ.'SEQU'.AND.IHARG(4).EQ.'PROD')GOTO41207
13664      IF(NUMARG.GE.4.AND.
13665     1IHARG(3).EQ.'SEQU'.AND.IHARG(4).EQ.'MEAN')GOTO31208
13666      IF(NUMARG.GE.4.AND.
13667     1IHARG(3).EQ.'SEQU'.AND.IHARG(4).EQ.'AVER')GOTO31208
13668      IF(NUMARG.GE.4.AND.
13669     1IHARG(3).EQ.'SEQU'.AND.IHARG(4)(1:3).EQ.'MIN')GOTO31209
13670      IF(NUMARG.GE.4.AND.
13671     1IHARG(3).EQ.'SEQU'.AND.IHARG(4)(1:3).EQ.'MAX')GOTO31210
13672      IF(NUMARG.GE.4.AND.
13673     1IHARG(3).EQ.'SEQU'.AND.IHARG(4).EQ.'LOWE')GOTO31211
13674      IF(NUMARG.GE.4.AND.
13675     1IHARG(3).EQ.'SEQU'.AND.IHARG(4).EQ.'UPPE')GOTO31212
13676C
13677      IF(NUMARG.GE.5.AND.
13678     1IHARG(4).EQ.'SEQU'.AND.IHARG(5).EQ.'DIFF')GOTO51206
13679      IF(NUMARG.GE.5.AND.
13680     1IHARG(4).EQ.'SEQU'.AND.IHARG(5).EQ.'SUM ')GOTO51207
13681      IF(NUMARG.GE.5.AND.
13682     1IHARG(4).EQ.'SEQU'.AND.IHARG(5).EQ.'PROD')GOTO51208
13683      IF(NUMARG.GE.5.AND.
13684     1IHARG(4).EQ.'SEQU'.AND.IHARG(5).EQ.'MEAN')GOTO51209
13685      IF(NUMARG.GE.5.AND.
13686     1IHARG(4).EQ.'SEQU'.AND.IHARG(5).EQ.'AVER')GOTO51209
13687      IF(NUMARG.GE.5.AND.
13688     1IHARG(4).EQ.'SEQU'.AND.IHARG(5)(1:3).EQ.'MIN')GOTO51210
13689      IF(NUMARG.GE.5.AND.
13690     1IHARG(4).EQ.'SEQU'.AND.IHARG(5)(1:3).EQ.'MAX')GOTO51211
13691      IF(NUMARG.GE.5.AND.
13692     1IHARG(4).EQ.'SEQU'.AND.IHARG(5).EQ.'LOWE')GOTO51212
13693      IF(NUMARG.GE.5.AND.
13694     1IHARG(4).EQ.'SEQU'.AND.IHARG(5).EQ.'UPPE')GOTO51213
13695C
13696CCCCC ADD FOLLOWING 2 LINES MAY 1998.
13697      IF(NUMARG.GE.4.AND.
13698     1IHARG(3).EQ.'INTE'.AND.IHARG(4).EQ.'TIME')GOTO11206
13699      IF(NUMARG.GE.4.AND.
13700     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'DIFF')GOTO21206
13701      IF(NUMARG.GE.4.AND.
13702     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'SUM ')GOTO1207
13703      IF(NUMARG.GE.4.AND.
13704     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'MINI')GOTO21207
13705      IF(NUMARG.GE.4.AND.
13706     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'MIN ')GOTO21207
13707      IF(NUMARG.GE.4.AND.
13708     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'MAXI')GOTO31207
13709      IF(NUMARG.GE.4.AND.
13710     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'MAX ')GOTO31207
13711      IF(NUMARG.GE.4.AND.
13712     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'AVER')GOTO11207
13713      IF(NUMARG.GE.4.AND.
13714     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'HAZA')GOTO11209
13715      IF(NUMARG.GE.3.AND.IHARG(3).EQ.'HAZA')GOTO11210
13716      IF(NUMARG.GE.4.AND.
13717     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'MEAN')GOTO11207
13718CCCCC ADD FOLLOWING 2 LINES OCTOBER 2001.
13719      IF(NUMARG.GE.3.AND.
13720     1IHARG(3).EQ.'MATC')GOTO11213
13721      IF(NUMARG.GE.3.AND.
13722     1IHARG(3).EQ.'REPL')GOTO11214
13723      IF(NUMARG.GE.4.AND.
13724     1IHARG(3).EQ.'CELL' .AND. IHARG(4).EQ.'MATC')GOTO11215
13725C
13726      IF(NUMARG.GE.4.AND.
13727     1IHARG(3).EQ.'EXPO'.AND.IHARG(4).EQ.'SMOO')GOTO11211
13728C
13729      IF(NUMARG.GE.3.AND.IHARG(3).EQ.'REVE')GOTO11208
13730      IF(NUMARG.GE.3.AND.IHARG(3).EQ.'FLIP')GOTO11208
13731      IF(NUMARG.GE.4.AND.
13732     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'PROD')GOTO1208
13733      IF(NUMARG.GE.4.AND.
13734     1IHARG(3).EQ.'CUMU'.AND.IHARG(4).EQ.'INTE')GOTO1209
13735C
13736C               **************************************
13737C               **  CHECK FOR CUMULATIVE <STAT>     **
13738C               **************************************
13739C
13740C     PUT THIS CODE HERE SO AS TO ALLOW PREVIOUSLY ENTERED
13741C     "CUMULATIVE" COMMANDS TO REMAIN.  THIS COMMAND WILL
13742C     USE A BRUTE FORCE METHOD WHILE SOME OF THE ABOVE COMMANDS
13743C     WILL BE MORE EFFICIENT.
13744C
13745      ISTEPN='2B'
13746      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
13747     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
13748C
13749      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'CUMU')THEN
13750        ICASL7='CUMU'
13751        IF(IFOUN7.EQ.'YES')GOTO8020
13752        JMIN=4
13753        JMAX=MIN(NUMARG,JMIN+6)
13754        CALL EXTSTA(ICOM,ICOM2,IHARG,IHARG2,IARGT,ARG,NUMARG,JMIN,JMAX,
13755     1              ICASS7,ISTANM,ISTANR,ISTADF,IFOUN7,ILOCV,
13756     1              ISUBRO,IBUGA3,IERROR)
13757C
13758        ICASL7='CUMU'
13759        IF(IFOUN7.EQ.'YES')GOTO8020
13760      ENDIF
13761C
13762      ISTEPN='2C'
13763      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
13764     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
13765C
13766      IF(NUMARG.GE.3.AND.
13767     1IHARG(3).EQ.'CONV'.AND.IHARG2(3).EQ.'OLUT')GOTO1210
13768      IF(NUMARG.GE.3.AND.
13769     1IHARG(3).EQ.'DECO'.AND.IHARG2(3).EQ.'NVOL')GOTO1211
13770      IF(NUMARG.GE.3.AND.
13771     1IHARG(3).EQ.'SORT'.AND.IHARG2(3).EQ.'C   ')GOTO1212
13772      IF(NUMARG.GE.5.AND.
13773     1IHARG(3).EQ.'FREQ'.AND.IHARG(4).EQ.'TO  '.AND.
13774     1IHARG(5).EQ.'RAW ')GOTO5190
13775      IF(NUMARG.GE.3.AND.
13776     1IHARG(3).EQ.'FREQ'.AND.IHARG2(3).EQ.'UENC')GOTO1213
13777      IF(NUMARG.GE.3.AND.
13778     1IHARG(3).EQ.'SUMD'.AND.IHARG2(3).EQ.'    ')GOTO1216
13779      IF(NUMARG.GE.3.AND.
13780     1IHARG(3).EQ.'INTE'.AND.IHARG2(3).EQ.'RPOL')GOTO1217
13781      IF(NUMARG.GE.4.AND.
13782     1IHARG(3).EQ.'SPLI'.AND.IHARG(4).EQ.'INTE')GOTO1218
13783CCCCC FOLLOWING 8 LINES ADDED MAY, 1994.
13784      IF(NUMARG.GE.4.AND.
13785     1IHARG(3).EQ.'LINE'.AND.IHARG(4).EQ.'INTE'.AND.IHARG2(4).NE.'RCEP')
13786     1GOTO1219
13787      IF(NUMARG.GE.4.AND.
13788     1IHARG(3).EQ.'2D  '.AND.IHARG(4).EQ.'INTE')GOTO1249
13789      IF(NUMARG.GE.4.AND.
13790     1IHARG(3).EQ.'BILI'.AND.IHARG(4).EQ.'INTE')GOTO1248
13791      IF(NUMARG.GE.4.AND.
13792     1IHARG(3).EQ.'BIVA'.AND.IHARG(4).EQ.'INTE')GOTO1250
13793      IF(NUMARG.GE.4.AND.
13794     1IHARG(3).EQ.'HERM'.AND.IHARG(4).EQ.'INTE'.AND.
13795     1IHARG2(4).EQ.'RPOL')GOTO11218
13796      IF(NUMARG.GE.4.AND.
13797     1IHARG(3).EQ.'HERM'.AND.IHARG(4).EQ.'INTE'.AND.
13798     1IHARG2(4).EQ.'GRAT')GOTO11219
13799      IF(NUMARG.GE.4.AND.
13800     1IHARG(3).EQ.'DEX '.AND.IHARG(4).EQ.'CORE')GOTO11221
13801      IF(NUMARG.GE.5.AND.
13802     1IHARG(4).EQ.'DEX '.AND.IHARG(5).EQ.'CONF')GOTO11222
13803      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'DEX '.AND.
13804     1IHARG(4).EQ.'CHEC'.AND.IHARG(5).EQ.'CLAS')GOTO11223
13805      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'DEX '.AND.
13806     1IHARG(4).EQ.'CHEC'.AND.IHARG(5).EQ.'CENT'.AND.
13807     1IHARG(6).EQ.'POIN')GOTO11224
13808C
13809      ISTEPN='2D'
13810      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
13811     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
13812C
13813      IF(NUMARG.GE.3.AND.
13814     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'H   ')GOTO1220
13815      IF(NUMARG.GE.3.AND.
13816     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'1   ')GOTO1221
13817      IF(NUMARG.GE.3.AND.
13818     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'2   ')GOTO1222
13819      IF(NUMARG.GE.3.AND.
13820     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'3   ')GOTO1223
13821      IF(NUMARG.GE.3.AND.
13822     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'4   ')GOTO1224
13823      IF(NUMARG.GE.3.AND.
13824     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'5   ')GOTO1225
13825      IF(NUMARG.GE.3.AND.
13826     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'6   ')GOTO1226
13827      IF(NUMARG.GE.3.AND.
13828     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'7   ')GOTO1227
13829      IF(NUMARG.GE.3.AND.
13830     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'8   ')GOTO1228
13831      IF(NUMARG.GE.3.AND.
13832     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'9   ')GOTO1229
13833      IF(NUMARG.GE.3.AND.
13834     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'10  ')GOTO1230
13835      IF(NUMARG.GE.3.AND.
13836     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'Z   ')GOTO1231
13837      IF(NUMARG.GE.3.AND.
13838     1IHARG(3).EQ.'CODE'.AND.IHARG2(3).EQ.'X   ')GOTO1232
13839C
13840      IF(NUMARG.GE.3.AND.
13841     1IHARG(3).EQ.'BIWE'.AND.IHARG2(3).EQ.'IGHT'.AND.
13842     1IHARG(4).NE.'LOCA'.AND.IHARG(4).NE.'SCAL')GOTO1241
13843      IF(NUMARG.GE.3.AND.
13844     1IHARG(3).EQ.'TRIC'.AND.IHARG2(3).EQ.'UBE')GOTO1242
13845C
13846      IF(NUMARG.GE.4.AND.
13847     1IHARG(4).EQ.'FRAC'.AND.IHARG2(4).EQ.'TAL')GOTO1243
13848C
13849      IF(NUMARG.GE.4.AND.
13850     1IHARG(3).EQ.'SINE'.AND.IHARG(4).EQ.'TRAN')GOTO1251
13851      IF(NUMARG.GE.4.AND.
13852     1IHARG(3).EQ.'SIN'.AND.IHARG(4).EQ.'TRAN')GOTO1251
13853      IF(NUMARG.GE.4.AND.
13854     1IHARG(3).EQ.'COSI'.AND.IHARG(4).EQ.'TRAN')GOTO1252
13855      IF(NUMARG.GE.4.AND.
13856     1IHARG(3).EQ.'COS'.AND.IHARG(4).EQ.'TRAN')GOTO1252
13857C
13858      IF(NUMARG.GE.4.AND.
13859     1IHARG(3).EQ.'BREA'.AND.IHARG(4).EQ.'LOCA')GOTO4252
13860      IF(NUMARG.GE.4.AND.
13861     1IHARG(3).EQ.'FRAG'.AND.IHARG(4).EQ.'LOCA')GOTO4253
13862      IF(NUMARG.GE.4.AND.
13863     1IHARG(3).EQ.'FRAG'.AND.IHARG(4).EQ.'CENT')GOTO4253
13864      IF(NUMARG.GE.4.AND.
13865     1IHARG(3).EQ.'FRAG'.AND.IHARG(4).EQ.'LENG')GOTO4254
13866C
13867      IF(NUMARG.GE.5.AND.
13868     1IHARG(4).EQ.'2D  '.AND.IHARG(5).EQ.'GRID')GOTO4256
13869      IF(NUMARG.GE.6.AND.
13870     1IHARG(5).EQ.'3D  '.AND.IHARG(6).EQ.'GRID')GOTO4258
13871      IF(NUMARG.GE.7.AND.
13872     1IHARG(6).EQ.'4D  '.AND.IHARG(7).EQ.'GRID')GOTO4260
13873C
13874      ISTEPN='2E'
13875      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
13876     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
13877C
13878      IF(NUMARG.GE.5.AND.
13879     1IHARG(4).EQ.'FOUR'.AND.IHARG(5).EQ.'TRAN')GOTO1253
13880      IF(NUMARG.GE.6.AND.
13881     1IHARG(4).EQ.'INVE'.AND.IHARG(5).EQ.'FOUR'.AND.
13882     1IHARG(6).EQ.'TRAN')GOTO1254
13883      IF(NUMARG.GE.4.AND.
13884     1IHARG(4).EQ.'FFT '.AND.IHARG2(4).EQ.'    ')GOTO1255
13885      IF(NUMARG.GE.5.AND.
13886     1IHARG(4).EQ.'INVE'.AND.IHARG(5).EQ.'FFT')GOTO1256
13887C
13888      IF(NUMARG.GE.7.AND.
13889     1IHARG(4).EQ.'PEAK'.AND.IHARG(5).EQ.'OF  '.AND.
13890     1IHARG(6).EQ.'FREQ'.AND.IHARG(7).EQ.'TABL')GOTO55112
13891      IF(NUMARG.GE.8.AND.
13892     1IHARG(4).EQ.'RELAT'.AND.
13893     1IHARG(5).EQ.'PEAK'.AND.IHARG(6).EQ.'OF  '.AND.
13894     1IHARG(7).EQ.'FREQ'.AND.IHARG(8).EQ.'TABL')GOTO55114
13895      IF(NUMARG.GE.6.AND.
13896     1IHARG(4).EQ.'FREQ'.AND.IHARG(5).EQ.'TABL'.AND.
13897     1IHARG(6).EQ.'PEAK')GOTO55113
13898      IF(NUMARG.GE.7.AND.
13899     1IHARG(4).EQ.'RELAT'.AND.
13900     1IHARG(5).EQ.'FREQ'.AND.IHARG(6).EQ.'TABL'.AND.
13901     1IHARG(7).EQ.'PEAK')GOTO55115
13902C
13903      IF(NUMARG.GE.5.AND.
13904     1IHARG(3).EQ.'PEAK'.AND.IHARG(4).EQ.'TRIA'.AND.
13905     1IHARG(5).EQ.'AREA')GOTO55212
13906      IF(NUMARG.GE.4.AND.
13907     1IHARG(4).EQ.'PEAK')GOTO55214
13908C
13909      IF(NUMARG.GE.6.AND.
13910     1IHARG(5).EQ.'CODE' .AND. IHARG(6).EQ.'BINN')GOTO5108
13911      IF(NUMARG.GE.6.AND.
13912     1IHARG(5).EQ.'BINN' .AND. IHARG(6).EQ.'CODE')GOTO5108
13913      IF(NUMARG.GE.7.AND.
13914     1IHARG(5).EQ.'RELA' .AND. IHARG(6).EQ.'CODE' .AND.
13915     1IHARG(7).EQ.'BINN')GOTO5109
13916      IF(NUMARG.GE.7.AND.
13917     1IHARG(5).EQ.'CODE' .AND. IHARG(6).EQ.'RELA' .AND.
13918     1IHARG(7).EQ.'BINN')GOTO5109
13919      IF(NUMARG.GE.7.AND.
13920     1IHARG(5).EQ.'RELA' .AND. IHARG(6).EQ.'BINN' .AND.
13921     1IHARG(7).EQ.'CODE')GOTO5109
13922      IF(NUMARG.GE.4.AND.
13923     1IHARG(4).EQ.'BINN')GOTO5110
13924      IF(NUMARG.GE.4.AND.
13925     1IHARG(4).EQ.'BIN ')GOTO5110
13926      IF(NUMARG.GE.5.AND.
13927     1IHARG(4).EQ.'FREQ'.AND.IHARG(5).EQ.'TABL')GOTO5112
13928      IF(NUMARG.GE.5.AND.
13929     1IHARG(4).EQ.'RELA'.AND.IHARG(5).EQ.'BINN')GOTO5114
13930      IF(NUMARG.GE.5.AND.
13931     1IHARG(4).EQ.'RELA'.AND.IHARG(5).EQ.'BIN ')GOTO5114
13932      IF(NUMARG.GE.6.AND.
13933     1IHARG(4).EQ.'RELA'.AND.IHARG(5).EQ.'FREQ'.AND.
13934     1IHARG(6).EQ.'TABL')GOTO5116
13935C
13936      ISTEPN='2F'
13937      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
13938     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
13939C
13940      IF(NUMARG.GE.4.AND.
13941     1IHARG(3).EQ.'LAPL'.AND.IHARG(4).EQ.'TRAN')GOTO1261
13942      IF(NUMARG.GE.5.AND.
13943     1IHARG(3).EQ.'INVE'.AND.IHARG(4).EQ.'LAPL'.AND.
13944     1IHARG(5).EQ.'TRAN')GOTO1262
13945C
13946CCCCC THE FOLLOWING 6 LINES WERE ADDED JANUARY 1989
13947      IF(NUMARG.GE.4.AND.
13948     1IHARG(3).EQ.'BOOT'.AND.IHARG(4).EQ.'SAMP')GOTO1271
13949CCCCC THE FOLLOWING 2 LINES WERE COMMENTED OUT JANUARY 1990
13950CCCCC IF(NUMARG.GE.4.AND.
13951CCCCC1IHARG(3).EQ.'RAND'.AND.IHARG(4).EQ.'SAMP')GOTO1271
13952      IF(NUMARG.GE.4.AND.
13953     1IHARG(3).EQ.'JACK'.AND.IHARG(4).EQ.'SAMP')GOTO1271
13954C
13955CCCCC THE FOLLOWING 6 LINES WERE ADDED JANUARY 1990
13956      IF(NUMARG.GE.3.AND.
13957     1IHARG(3).EQ.'SUBS')GOTO1272
13958      IF(NUMARG.GE.4.AND.
13959     1IHARG(3).EQ.'RAND'.AND.IHARG(4).EQ.'SAMP')GOTO1273
13960      IF(NUMARG.GE.4.AND.
13961     1IHARG(3).EQ.'RAND'.AND.IHARG(4).EQ.'SUBS')GOTO1273
13962CCCCC THE FOLLOWING 2 LINES WERE ADDED OCTOBER 1993
13963      IF(NUMARG.GE.4.AND.
13964     1IHARG(3).EQ.'JACK'.AND.IHARG(4).EQ.'INDE')GOTO1274
13965C
13966      IF(NUMARG.GE.6.AND.IHARG(4).EQ.'SAMP'.AND.
13967     1IHARG(5).EQ.'RAND'.AND.IHARG(6).EQ.'PERM')GOTO1275
13968C
13969C               ***********************************************
13970C               **  CHECK FOR   COMPLEX ARITHMETIC SUBCASES  **
13971C               ***********************************************
13972C
13973      ISTEPN='2G'
13974      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
13975     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
13976C
13977      IF(NUMARG.GE.5.AND.IHARG(4).EQ.'COMP')GOTO1010
13978      GOTO1019
13979C
13980 1010 CONTINUE
13981      IF(IHARG(5).EQ.'ADDI')GOTO2101
13982      IF(IHARG(5).EQ.'SUBT')GOTO2102
13983      IF(IHARG(5).EQ.'MULT')GOTO2103
13984      IF(IHARG(5).EQ.'DIVI')GOTO2104
13985      IF(IHARG(5).EQ.'EXPO')GOTO2105
13986      IF(NUMARG.GE.6.AND.
13987     1   IHARG(5).EQ.'SQUA'.AND.IHARG(6).EQ.'ROOT')GOTO2106
13988      IF(IHARG(5).EQ.'ROOT')GOTO2107
13989      IF(IHARG(5).EQ.'ZERO')GOTO2107
13990      IF(IHARG(5).EQ.'CONJ')GOTO2108
13991 1019 CONTINUE
13992C
13993C               **************************************************
13994C               **  CHECK FOR   POLYNOMIAL ARITHMETIC SUBCASES  **
13995C               **************************************************
13996C
13997      ISTEPN='2H'
13998      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
13999     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
14000C
14001      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'POLY')GOTO1020
14002      IF(NUMARG.GE.5.AND.IHARG(4).EQ.'POLY'.AND.
14003     1   IHARG(5).EQ.'DIVI')GOTO2204
14004      GOTO1029
14005C
14006 1020 CONTINUE
14007      IF(IHARG(4).EQ.'ADDI')GOTO2201
14008      IF(IHARG(4).EQ.'SUBT')GOTO2202
14009      IF(IHARG(4).EQ.'MULT')GOTO2203
14010      IF(NUMARG.GE.5.AND.
14011     1   IHARG(4).EQ.'SQUA'.AND.IHARG(5).NE.'ROOT')GOTO2205
14012      IF(NUMARG.GE.5.AND.
14013     1   IHARG(4).EQ.'SQUA'.AND.IHARG(5).EQ.'ROOT')GOTO2206
14014      IF(IHARG(4).EQ.'GCD')GOTO2207
14015      IF(IHARG(4).EQ.'LCM')GOTO2208
14016      IF(IHARG(4).EQ.'EVAL')GOTO2209
14017      IF(IHARG(4).EQ.'ADDI')GOTO2210
14018 1029 CONTINUE
14019C
14020C               **************************************************
14021C               **  CHECK FOR   VECTOR     ARITHMETIC SUBCASES  **
14022C               **************************************************
14023C
14024      ISTEPN='2I'
14025      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
14026     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
14027C
14028      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'VECT'.AND.
14029     1   IHARG(4).NE.'PERC')GOTO1030
14030      GOTO1039
14031C
14032 1030 CONTINUE
14033      IF(IHARG(4).EQ.'ADDI')GOTO2301
14034      IF(IHARG(4).EQ.'SUBT')GOTO2302
14035      IF(NUMARG.GE.5.AND.
14036     1   IHARG(4).EQ.'DOT'.AND.IHARG(5).EQ.'PROD')GOTO2303
14037      IF(NUMARG.GE.5.AND.
14038     1   IHARG(4).EQ.'INNE'.AND.IHARG(5).EQ.'PROD')GOTO2303
14039      IF(NUMARG.GE.5.AND.
14040     1   IHARG(4).EQ.'CROS'.AND.IHARG(5).EQ.'PROD')GOTO2304
14041      IF(IHARG(4).EQ.'LENG')GOTO2305
14042      IF(IHARG(4).EQ.'MAGN')GOTO2305
14043      IF(IHARG(4).EQ.'DIST')GOTO2306
14044      IF(IHARG(4).EQ.'ANGL')GOTO2307
14045 1039 CONTINUE
14046C
14047C               **************************************************
14048C               **  CHECK FOR   SET        ARITHMETIC SUBCASES  **
14049C               **************************************************
14050C
14051      ISTEPN='2J'
14052      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
14053     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
14054C
14055      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'SET ')GOTO1040
14056      IF(NUMARG.GE.6.AND.IHARG(4).EQ.'SET '.AND.
14057     1   IHARG(5).EQ.'CART'.AND.IHARG(6).EQ.'PROD')GOTO2405
14058      GOTO1049
14059C
14060 1040 CONTINUE
14061      IF(IHARG(4).EQ.'UNIO')GOTO2401
14062      IF(IHARG(4).EQ.'ADDI')GOTO2401
14063      IF(IHARG(4).EQ.'INTE')GOTO2402
14064      IF(IHARG(4).EQ.'COMP')GOTO2403
14065      IF(IHARG(4).EQ.'CARD')GOTO2404
14066      IF(IHARG(4).EQ.'ELEM')GOTO2406
14067      IF(IHARG(4).EQ.'DIST')GOTO2406
14068 1049 CONTINUE
14069C
14070C               **************************************************
14071C               **  CHECK FOR   LOGICAL    ARITHMETIC SUBCASES  **
14072C               **************************************************
14073C
14074      ISTEPN='2K'
14075      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
14076     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
14077C
14078      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'LOGI')GOTO1050
14079      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'BOOL')GOTO1050
14080      GOTO1059
14081C
14082 1050 CONTINUE
14083      IF(IHARG(4).EQ.'AND')GOTO2501
14084      IF(IHARG(4).EQ.'CONJ')GOTO2501
14085      IF(IHARG(4).EQ.'MULT')GOTO2501
14086      IF(IHARG(4).EQ.'OR')GOTO2502
14087      IF(IHARG(4).EQ.'DISJ')GOTO2502
14088      IF(IHARG(4).EQ.'ADDI')GOTO2502
14089      IF(IHARG(4).EQ.'NAND')GOTO2503
14090      IF(IHARG(4).EQ.'NOR')GOTO2504
14091      IF(IHARG(4).EQ.'IMPL')GOTO2505
14092      IF(IHARG(4).EQ.'IFTH')GOTO2505
14093      IF(IHARG(4).EQ.'EQUI')GOTO2506
14094      IF(IHARG(4).EQ.'IFF')GOTO2506
14095      IF(IHARG(4).EQ.'NOT')GOTO2507
14096      IF(IHARG(4).EQ.'NEGA')GOTO2507
14097      IF(IHARG(4).EQ.'COMP')GOTO2507
14098      IF(IHARG(4).EQ.'XOR')GOTO2508
14099 1059 CONTINUE
14100C
14101C               **************************************************
14102C               **  CHECK FOR   MATRIX     ARITHMETIC SUBCASES  **
14103C               **************************************************
14104C
14105CCCCC AUGUST 2017: USE "EXTSTA" TO PARSE   GENERATE MATRIX <STAT>.
14106CCCCC              ONLY COUNT A MATCH FOR STATISTICS HAVING EXACTLY
14107CCCCC              TWO RESPONSE VARIABLES.
14108C
14109      ISTEPN='2L'
14110      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
14111     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
14112C
14113      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'GENE'.AND.
14114     1   IHARG(4).EQ.'MATR')THEN
14115C
14116        JMIN=5
14117        JMAX=MIN(NUMARG,JMIN+6)
14118        CALL EXTSTA(ICOM,ICOM2,IHARG,IHARG2,IARGT,ARG,NUMARG,
14119     1              JMIN,JMAX,
14120     1              ICASS7,ISTANM,ISTANR,ISTADF,IFOUN7,ILOCV,
14121     1              ISUBRO,IBUGA3,IERROR)
14122C
14123        IF(ISTANR.NE.2)THEN
14124          IFOUN7='NO'
14125          GOTO9000
14126        ENDIF
14127        ICASL7='GMST'
14128        IF(IFOUN7.EQ.'YES')GOTO8020
14129      ENDIF
14130C
14131      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'MATR')GOTO1060
14132      GOTO1065
14133C
14134 1060 CONTINUE
14135      IF(IHARG(4).EQ.'ADDI')GOTO2601
14136      IF(IHARG(4).EQ.'SUBT')GOTO2602
14137      IF(IHARG(4).EQ.'MULT')GOTO2603
14138      IF(IHARG(4).EQ.'SOLU')GOTO2604
14139      IF(IHARG(4).EQ.'INVE')GOTO2605
14140      IF(IHARG(4).EQ.'TRAN')GOTO2606
14141      IF(IHARG(4).EQ.'ADJO')GOTO2607
14142      IF(IHARG(4).EQ.'TRUN')GOTO2668
14143      IF(IHARG(4).EQ.'LOWE'.AND.IHARG(5).EQ.'TRUN')GOTO2669
14144      IF(IHARG(4).EQ.'UPPE'.AND.IHARG(5).EQ.'TRUN')GOTO2670
14145CCCCC OCTOBER 1993.  ADD FOLLOWING LINE
14146      IF(NUMARG.GE.5.AND.
14147     1IHARG(4).EQ.'ITER'.AND.IHARG(5).EQ.'SOLU')GOTO2962
14148      IF(NUMARG.GE.5.AND.
14149     1   IHARG(4).EQ.'CHAR'.AND.IHARG(5).EQ.'EQUA')GOTO2608
14150      IF(NUMARG.GE.5.AND.
14151     1   IHARG(4).EQ.'CHAR'.AND.IHARG(5).EQ.'FUNC')GOTO2608
14152      IF(NUMARG.GE.5.AND.
14153     1   IHARG(4).EQ.'CHAR'.AND.IHARG(5).EQ.'POLY')GOTO2608
14154      IF(IHARG(4).EQ.'EIGE'.AND.IHARG2(4).EQ.'NVAL')GOTO2609
14155      IF(NUMARG.GE.5.AND.
14156     1   IHARG(4).EQ.'CHAR'.AND.IHARG(5).EQ.'VALU')GOTO2610
14157      IF(NUMARG.GE.5.AND.
14158     1   IHARG(4).EQ.'LATE'.AND.IHARG(5).EQ.'ROOT')GOTO2610
14159      IF(IHARG(4).EQ.'EIGE'.AND.IHARG2(4).EQ.'NVEC')GOTO2611
14160      IF(NUMARG.GE.5.AND.
14161     1   IHARG(4).EQ.'PRIN'.AND.IHARG(5).EQ.'AXES')GOTO2612
14162      IF(NUMARG.GE.5.AND.
14163     1   IHARG(4).EQ.'PRIN'.AND.IHARG(5).EQ.'AXIS')GOTO2612
14164      IF(IHARG(4).EQ.'RANK')GOTO2613
14165      IF(IHARG(4).EQ.'DETE')GOTO2614
14166      IF(IHARG(4).EQ.'PERM')GOTO2615
14167      IF(NUMARG.GE.5.AND.
14168     1   IHARG(4).EQ.'SPEC'.AND.IHARG(5).EQ.'NORM')GOTO2616
14169      IF(NUMARG.GE.5.AND.
14170     1   IHARG(4).EQ.'SPEC'.AND.IHARG(5).EQ.'RADI')GOTO2617
14171      IF(NUMARG.GE.5.AND.
14172     1   IHARG(4).EQ.'NUMB'.AND.IHARG(5).EQ.'ROWS')GOTO2618
14173      IF(NUMARG.GE.6.AND.
14174     1   IHARG(4).EQ.'NUMB'.AND.IHARG(5).EQ.'OF'.AND.
14175     1   IHARG(6).EQ.'ROWS')GOTO2619
14176      IF(NUMARG.GE.5.AND.
14177     1   IHARG(4).EQ.'NUMB'.AND.IHARG(5).EQ.'COLU')GOTO2620
14178      IF(NUMARG.GE.6.AND.
14179     1   IHARG(4).EQ.'NUMB'.AND.IHARG(5).EQ.'OF'.AND.
14180     1   IHARG(6).EQ.'COLU')GOTO2621
14181      IF(NUMARG.GE.5.AND.
14182     1   IHARG(4).EQ.'SIMP'.AND.IHARG(5).EQ.'SOLU')GOTO2622
14183      IF(NUMARG.GE.5.AND.
14184     1   IHARG(4).EQ.'SIMP'.AND.IHARG(5).EQ.'METH')GOTO2622
14185      IF(NUMARG.GE.5.AND.
14186     1   IHARG(4).EQ.'LINE'.AND.IHARG(5).EQ.'PROG')GOTO2622
14187      IF(NUMARG.GE.4.AND.
14188     1   IHARG(4).EQ.'LP'.AND.IHARG2(4).EQ.'    ')GOTO2623
14189      IF(IHARG(4).EQ.'RENU')GOTO2624
14190      IF(IHARG(4).EQ.'TRAC')GOTO2631
14191      IF(IHARG(4).EQ.'SUBM')GOTO2632
14192      IF(IHARG(4).EQ.'MINO')GOTO2633
14193      IF(IHARG(4).EQ.'COFA')GOTO2634
14194      IF(IHARG(4).EQ.'DEFI')GOTO2635
14195      IF(NUMARG.GE.5.AND.
14196     1   IHARG(4).EQ.'EUCL'.AND.IHARG(5).EQ.'NORM')GOTO2636
14197      IF(IHARG(4).EQ.'NORM')GOTO2637
14198CCCCC OCTOBER 1993.  ADD FOLLOWING LINES.
14199      IF(NUMARG.GE.5.AND.
14200     1IHARG(4).EQ.'CHOL'.AND.IHARG(5).EQ.'DECO')GOTO2651
14201      IF(IHARG(4).EQ.'CHOL')GOTO2652
14202      IF(IHARG(4).EQ.'AUGM')GOTO2902
14203      IF(IHARG(4).EQ.'DIAG')GOTO2912
14204      IF(NUMARG.GE.5.AND.
14205     1IHARG(4).EQ.'REPL'.AND.IHARG(5).EQ.'ROW ')GOTO2922
14206      IF(NUMARG.GE.5.AND.
14207     1IHARG(4).EQ.'REPL'.AND.IHARG(5).EQ.'ELEM')GOTO2932
14208CCCCC FOLLOWING SECTION AUGUST 1998.
14209      IF(NUMARG.GE.5.AND.
14210     1IHARG(4).EQ.'ADD '.AND.IHARG(5).EQ.'ROW ')GOTO5088
14211      IF(NUMARG.GE.5.AND.
14212     1IHARG(4).EQ.'DELE'.AND.IHARG(5).EQ.'ROW ')GOTO5090
14213      IF(NUMARG.GE.4.AND.IHARG(4).EQ.'MEAN')GOTO5092
14214      IF(NUMARG.GE.4.AND.IHARG(4).EQ.'SUM ')GOTO5093
14215CCCCC END CHANGE
14216CCCCC FOLLOWING SECTION SEPTEMBER 1998.
14217C
14218      IF(NUMARG.GE.5.AND.
14219     1IHARG(4).EQ.'GROU'.AND.IHARG(5).EQ.'MEAN')GOTO5102
14220      IF(NUMARG.GE.5.AND.
14221     1IHARG(4).EQ.'GROU'.AND.IHARG(5).EQ.'SD  ')GOTO5104
14222      IF(NUMARG.GE.6.AND.
14223     1IHARG(4).EQ.'GROU'.AND.IHARG(5).EQ.'STAN'.AND.
14224     1IHARG(6).EQ.'DEVI')GOTO5106
14225C
14226CCCCC MARCH 2009: USE "EXTSTA" TO PARSE ROW/COLUMN/GRAND/PARTITION
14227CCCCC             <STAT>.  ONLY COUNT A MATCH FOR STATISTICS USING A
14228CCCCC             SINGLE RESPONSE VARIABLE.
14229CCCCC
14230CCCCC             TREAT THE "CRAMER CONT COEF" AND
14231CCCCC             "PEARSON CONT COEFF" AS SPECIAL CASES AS THESE
14232CCCCC             ARE ONLY APPLICABLE TO "MATRIX GRAND" AND ARE
14233CCCCC             NOT FUNNELLED THROUGH "EXTSTA" AND "CMPSTA".
14234C
14235      IF(NUMARG.GE.4.AND.
14236     1  (IHARG(4).EQ.'ROW ' .OR. IHARG(4).EQ.'COLU' .OR.
14237     1   IHARG(4).EQ.'GRAN' .OR. IHARG(4).EQ.'PART'))THEN
14238C
14239        JMIN=5
14240        JMAX=MIN(NUMARG,JMIN+6)
14241        IF(IHARG(JMIN).EQ.'CRAM' .AND. IHARG(JMIN+1).EQ.'CONT' .AND.
14242     1     IHARG(JMIN+2).EQ.'COEF' .AND. IHARG(JMIN-1).EQ.'GRAN')THEN
14243          ICASL7='MGRA'
14244          ICASS7='CRAM'
14245          IFOUN7='YES'
14246          ILOCV=JMIN+3
14247        ELSEIF(IHARG(JMIN).EQ.'PEAR'.AND.IHARG(JMIN+1).EQ.'CONT'.AND.
14248     1     IHARG(JMIN+2).EQ.'COEF' .AND. IHARG(JMIN-1).EQ.'GRAN')THEN
14249          ICASL7='MGRA'
14250          ICASS7='PEAR'
14251          IFOUN7='YES'
14252          ILOCV=JMIN+3
14253        ELSE
14254          CALL EXTSTA(ICOM,ICOM2,IHARG,IHARG2,IARGT,ARG,NUMARG,
14255     1                JMIN,JMAX,
14256     1                ICASS7,ISTANM,ISTANR,ISTADF,IFOUN7,ILOCV,
14257     1                ISUBRO,IBUGA3,IERROR)
14258C
14259          IF(ISTANR.GT.1)IFOUN7='NO'
14260          ICASL7='MROW'
14261          IF(IHARG(4).EQ.'COLU')ICASL7='MCOL'
14262          IF(IHARG(4).EQ.'GRAN')ICASL7='MGRA'
14263          IF(IHARG(4).EQ.'PART')ICASL7='MPAR'
14264          IF(IFOUN7.EQ.'YES')GOTO8020
14265       ENDIF
14266      ENDIF
14267C
14268      ISTEPN='2M'
14269      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
14270     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
14271C
14272CCCCC SEPTEMBER 1993.  ADD FOLLOWING LINES.
14273      IF(IHARG(4).EQ.'ROW ')GOTO2649
14274      IF(IHARG(4).EQ.'ELEM')GOTO2650
14275      IF(NUMARG.GE.5.AND.
14276     1IHARG(4).EQ.'COND' .AND. IHARG(5).EQ.'NUMB')GOTO5134
14277      IF(NUMARG.GE.6.AND.IHARG(4).EQ.'RECI'.AND.
14278     1IHARG(5).EQ.'COND' .AND. IHARG(6).EQ.'NUMB')GOTO5136
14279CCCCC END CHANGE
14280 1065 CONTINUE
14281      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'VARI'.AND.
14282     1   IHARG(4).EQ.'COVA'.AND.IHARG(5).EQ.'MATR')GOTO2641
14283      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'CORR'.AND.
14284     1   IHARG(4).EQ.'MATR')GOTO2642
14285      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'CORR'.AND.
14286     1   IHARG(4).EQ.'CDF'.AND.IHARG(5).EQ.'MATR')GOTO2659
14287      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'CORR'.AND.
14288     1   IHARG(4).EQ.'PVAL'.AND.IHARG(5).EQ.'MATR')GOTO2660
14289      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'PART'.AND.
14290     1   IHARG(4).EQ.'CORR'.AND.IHARG(5).EQ.'MATR')GOTO2656
14291      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'PART'.AND.
14292     1   IHARG(4).EQ.'CORR'.AND.IHARG(5).EQ.'CDF'.AND.
14293     1   IHARG(6).EQ.'MATR')GOTO2657
14294      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'PART'.AND.
14295     1   IHARG(4).EQ.'CORR'.AND.IHARG(5).EQ.'PVAL'.AND.
14296     1   IHARG(6).EQ.'MATR')GOTO2658
14297      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'COMO'.AND.
14298     1   IHARG(4).EQ.'MATR')GOTO2672
14299C
14300      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'PRIN'.AND.
14301     1   IHARG(4).EQ.'COMP'.AND.
14302     1   IHARG(5).EQ.'EIGE'.AND.IHARG2(5).EQ.'NVEC')GOTO2643
14303      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'PRIN'.AND.
14304     1   IHARG(4).EQ.'COMP'.AND.
14305     1   IHARG(5).EQ.'EIGE'.AND.IHARG2(5).EQ.'NVAL')GOTO2644
14306      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'PRIN'.AND.
14307     1   IHARG(4).EQ.'COMP')GOTO2645
14308C
14309      IF(NUMARG.GE.6.AND.IHARG(4).EQ.'PRIN'.AND.
14310     1   IHARG(5).EQ.'COMP'.AND.
14311     1   IHARG(6).EQ.'EIGE'.AND.IHARG2(6).EQ.'NVEC')GOTO2653
14312      IF(NUMARG.GE.6.AND.IHARG(4).EQ.'PRIN'.AND.
14313     1   IHARG(5).EQ.'COMP'.AND.
14314     1   IHARG(6).EQ.'EIGE'.AND.IHARG2(6).EQ.'NVAL')GOTO2654
14315      IF(NUMARG.GE.5.AND.IHARG(4).EQ.'PRIN'.AND.
14316     1   IHARG(5).EQ.'COMP')GOTO2655
14317C
14318      IF(IHARG(3).EQ.'EIGE'.AND.IHARG2(3).EQ.'NVEC')GOTO2661
14319      IF(IHARG(3).EQ.'EIGE'.AND.IHARG2(3).EQ.'NVAL')GOTO2662
14320CCCCC JULY 1993.  FOLLOWING LINES ADDED FOR MATRIX SINGULAR VALUES AND
14321CCCCC MATRIX SINGULAR VALUE DECOMPOSITION.
14322      IF(NUMARG.GE.7.AND.
14323     1   IHARG(5).EQ.'SING'.AND.IHARG(6).EQ.'VALU'.AND.
14324     1   IHARG(7).EQ.'DECO')GOTO2646
14325      IF(NUMARG.GE.7.AND.
14326     1   IHARG(5).EQ.'SING'.AND.IHARG(6).EQ.'VALU'.AND.
14327     1   IHARG(7).EQ.'FACT')GOTO2648
14328      IF(NUMARG.GE.4.AND.
14329     1   IHARG(3).EQ.'SING'.AND.IHARG(4).EQ.'VALU')GOTO2647
14330CCCCC OCTOBER 1993.  ADD FOLLOWING LINES.
14331      IF(NUMARG.GE.4.AND.
14332     1IHARG(3).EQ.'CHOL'.AND.IHARG(4).EQ.'DECO')GOTO2652
14333      IF(NUMARG.GE.3.AND.
14334     1IHARG(3).EQ.'CHOL')GOTO2666
14335C
14336      IF(NUMARG.GE.4.AND.
14337     1IHARG(3).EQ.'DIAG'.AND.IHARG(4).EQ.'MATR')GOTO2942
14338      IF(NUMARG.GE.4.AND.
14339     1IHARG(3).EQ.'TRID'.AND.IHARG(4).EQ.'SOLV')GOTO2952
14340      IF(NUMARG.GE.4.AND.
14341     1IHARG(3).EQ.'TRID'.AND.IHARG(4).EQ.'SOLU')GOTO2952
14342      IF(NUMARG.GE.4.AND.
14343     1IHARG(3).EQ.'TRIA'.AND.IHARG(4).EQ.'SOLV')GOTO2972
14344      IF(NUMARG.GE.4.AND.
14345     1IHARG(3).EQ.'TRIA'.AND.IHARG(4).EQ.'SOLU')GOTO2972
14346      IF(NUMARG.GE.4.AND.
14347     1IHARG(3).EQ.'TRIA'.AND.IHARG(4).EQ.'INVE')GOTO2982
14348CCCCC END CHANGE
14349CCCCC JUNE 1998.  ADD FOLLOWING LINES.
14350      IF(NUMARG.GE.4.AND.
14351     1IHARG(3).EQ.'PSEU'.AND.IHARG(4).EQ.'INVE')GOTO5002
14352      IF(NUMARG.GE.4.AND.
14353     1IHARG(3).EQ.'QUAD'.AND.IHARG(4).EQ.'FORM')GOTO5012
14354      IF(NUMARG.GE.4.AND.
14355     1IHARG(3).EQ.'LINE'.AND.IHARG(4).EQ.'COMB')GOTO5096
14356      IF(NUMARG.GE.5.AND.
14357     1IHARG(3).EQ.'VECT'.AND.IHARG(4).EQ.'TIME'.AND.
14358     1IHARG(5).EQ.'TRAN')GOTO5098
14359      IF(NUMARG.GE.6.AND.
14360     1IHARG(3).EQ.'HOTE'.AND.IHARG(4).EQ.'1   '.AND.
14361     1IHARG(5).EQ.'SAMP'.AND.IHARG(6).EQ.'T2  ')GOTO5022
14362      IF(NUMARG.GE.6.AND.
14363     1IHARG(3).EQ.'HOTE'.AND.IHARG(4).EQ.'1   '.AND.
14364     1IHARG(5).EQ.'SAMP'.AND.IHARG(6).EQ.'TSQU')GOTO5022
14365      IF(NUMARG.GE.6.AND.
14366     1IHARG(3).EQ.'HOTE'.AND.IHARG(4).EQ.'ONE '.AND.
14367     1IHARG(5).EQ.'SAMP'.AND.IHARG(6).EQ.'TSQU')GOTO5022
14368      IF(NUMARG.GE.6.AND.
14369     1IHARG(3).EQ.'HOTE'.AND.IHARG(4).EQ.'ONE '.AND.
14370     1IHARG(5).EQ.'SAMP'.AND.IHARG(6).EQ.'T2  ')GOTO5022
14371      IF(NUMARG.GE.6.AND.
14372     1IHARG(3).EQ.'HOTE'.AND.IHARG(4).EQ.'2   '.AND.
14373     1IHARG(5).EQ.'SAMP'.AND.IHARG(6).EQ.'TSQU')GOTO5023
14374      IF(NUMARG.GE.6.AND.
14375     1IHARG(3).EQ.'HOTE'.AND.IHARG(4).EQ.'2   '.AND.
14376     1IHARG(5).EQ.'SAMP'.AND.IHARG(6).EQ.'T2  ')GOTO5023
14377      IF(NUMARG.GE.6.AND.
14378     1IHARG(3).EQ.'HOTE'.AND.IHARG(4).EQ.'TWO '.AND.
14379     1IHARG(5).EQ.'SAMP'.AND.IHARG(6).EQ.'TSQU')GOTO5023
14380      IF(NUMARG.GE.6.AND.
14381     1IHARG(3).EQ.'HOTE'.AND.IHARG(4).EQ.'TWO '.AND.
14382     1IHARG(5).EQ.'SAMP'.AND.IHARG(6).EQ.'T2  ')GOTO5023
14383C
14384      IF(NUMARG.GE.5.AND.
14385     1IHARG(3).EQ.'EUCL'.AND.IHARG(4).EQ.'ROW '.AND.
14386     1IHARG(5).EQ.'DIST')GOTO5032
14387      IF(NUMARG.GE.5.AND.
14388     1IHARG(3).EQ.'EUCL'.AND.IHARG(4).EQ.'COLU'.AND.
14389     1IHARG(5).EQ.'DIST')GOTO5033
14390      IF(NUMARG.GE.5.AND.
14391     1IHARG(3).EQ.'MAHA'.AND.IHARG(4).EQ.'ROW '.AND.
14392     1IHARG(5).EQ.'DIST')GOTO5042
14393      IF(NUMARG.GE.5.AND.
14394     1IHARG(3).EQ.'MAHA'.AND.IHARG(4).EQ.'COLU'.AND.
14395     1IHARG(5).EQ.'DIST')GOTO5044
14396      IF(NUMARG.GE.5.AND.
14397     1IHARG(3).EQ.'MINK'.AND.IHARG(4).EQ.'ROW '.AND.
14398     1IHARG(5).EQ.'DIST')GOTO5062
14399      IF(NUMARG.GE.5.AND.
14400     1IHARG(3).EQ.'MINK'.AND.IHARG(4).EQ.'COLU'.AND.
14401     1IHARG(5).EQ.'DIST')GOTO5064
14402      IF(NUMARG.GE.5.AND.
14403     1IHARG(3).EQ.'BLOC'.AND.IHARG(4).EQ.'ROW '.AND.
14404     1IHARG(5).EQ.'DIST')GOTO5072
14405      IF(NUMARG.GE.5.AND.
14406     1IHARG(3).EQ.'MANH'.AND.IHARG(4).EQ.'ROW '.AND.
14407     1IHARG(5).EQ.'DIST')GOTO5072
14408      IF(NUMARG.GE.5.AND.
14409     1IHARG(3).EQ.'BLOC'.AND.IHARG(4).EQ.'COLU'.AND.
14410     1IHARG(5).EQ.'DIST')GOTO5074
14411      IF(NUMARG.GE.5.AND.
14412     1IHARG(3).EQ.'MANH'.AND.IHARG(4).EQ.'COLU'.AND.
14413     1IHARG(5).EQ.'DIST')GOTO5074
14414      IF(NUMARG.GE.5.AND.
14415     1IHARG(3).EQ.'CHEB'.AND.IHARG(4).EQ.'ROW '.AND.
14416     1IHARG(5).EQ.'DIST')GOTO5082
14417      IF(NUMARG.GE.5.AND.
14418     1IHARG(3).EQ.'CHEB'.AND.IHARG(4).EQ.'COLU'.AND.
14419     1IHARG(5).EQ.'DIST')GOTO5084
14420      IF(NUMARG.GE.5.AND.
14421     1IHARG(3).EQ.'COSI'.AND.IHARG(4).EQ.'ROW '.AND.
14422     1IHARG(5).EQ.'SIMI')GOTO5034
14423      IF(NUMARG.GE.5.AND.
14424     1IHARG(3).EQ.'COSI'.AND.IHARG(4).EQ.'COLU'.AND.
14425     1IHARG(5).EQ.'SIMI')GOTO5035
14426      IF(NUMARG.GE.5.AND.
14427     1IHARG(3).EQ.'COSI'.AND.IHARG(4).EQ.'ROW '.AND.
14428     1IHARG(5).EQ.'DIST')GOTO5036
14429      IF(NUMARG.GE.5.AND.
14430     1IHARG(3).EQ.'COSI'.AND.IHARG(4).EQ.'COLU'.AND.
14431     1IHARG(5).EQ.'DIST')GOTO5037
14432      IF(NUMARG.GE.5.AND.
14433     1IHARG(3).EQ.'JACC'.AND.IHARG(4).EQ.'ROW '.AND.
14434     1IHARG(5).EQ.'SIMI')GOTO5038
14435      IF(NUMARG.GE.5.AND.
14436     1IHARG(3).EQ.'JACC'.AND.IHARG(4).EQ.'COLU'.AND.
14437     1IHARG(5).EQ.'SIMI')GOTO5039
14438      IF(NUMARG.GE.5.AND.
14439     1IHARG(3).EQ.'JACC'.AND.IHARG(4).EQ.'ROW '.AND.
14440     1IHARG(5).EQ.'DIST')GOTO5040
14441      IF(NUMARG.GE.5.AND.
14442     1IHARG(3).EQ.'JACC'.AND.IHARG(4).EQ.'COLU'.AND.
14443     1IHARG(5).EQ.'DIST')GOTO5041
14444      IF(NUMARG.GE.6.AND.
14445     1IHARG(3).EQ.'ANGU'.AND.IHARG(4).EQ.'COSI'.AND.
14446     1IHARG(5).EQ.'ROW '.AND.IHARG(6).EQ.'SIMI')GOTO5045
14447      IF(NUMARG.GE.6.AND.
14448     1IHARG(3).EQ.'ANGU'.AND.IHARG(4).EQ.'COSI'.AND.
14449     1IHARG(5).EQ.'COLU '.AND.IHARG(6).EQ.'SIMI')GOTO5046
14450      IF(NUMARG.GE.6.AND.
14451     1IHARG(3).EQ.'ANGU'.AND.IHARG(4).EQ.'COSI'.AND.
14452     1IHARG(5).EQ.'ROW '.AND.IHARG(6).EQ.'DIST')GOTO5047
14453      IF(NUMARG.GE.6.AND.
14454     1IHARG(3).EQ.'ANGU'.AND.IHARG(4).EQ.'COSI'.AND.
14455     1IHARG(5).EQ.'COLU '.AND.IHARG(6).EQ.'DIST')GOTO5048
14456      IF(NUMARG.GE.5.AND.
14457     1IHARG(3).EQ.'PEAR'.AND.IHARG(4).EQ.'ROW '.AND.
14458     1IHARG(5).EQ.'DIST')GOTO5049
14459      IF(NUMARG.GE.5.AND.
14460     1IHARG(3).EQ.'PEAR'.AND.IHARG(4).EQ.'ROW '.AND.
14461     1IHARG(5).EQ.'SIMI')GOTO55049
14462      IF(NUMARG.GE.5.AND.
14463     1IHARG(3).EQ.'PEAR'.AND.IHARG(4).EQ.'COLU'.AND.
14464     1IHARG(5).EQ.'DIST')GOTO5050
14465      IF(NUMARG.GE.5.AND.
14466     1IHARG(3).EQ.'PEAR'.AND.IHARG(4).EQ.'COLU'.AND.
14467     1IHARG(5).EQ.'SIMI')GOTO55050
14468      IF(NUMARG.GE.5.AND.
14469     1IHARG(3).EQ.'HAMM'.AND.IHARG(4).EQ.'ROW '.AND.
14470     1IHARG(5).EQ.'DIST')GOTO5051
14471      IF(NUMARG.GE.5.AND.
14472     1IHARG(3).EQ.'HAMM'.AND.IHARG(4).EQ.'COLU'.AND.
14473     1IHARG(5).EQ.'DIST')GOTO5053
14474      IF(NUMARG.GE.5.AND.
14475     1IHARG(3).EQ.'CANB'.AND.IHARG(4).EQ.'ROW '.AND.
14476     1IHARG(5).EQ.'DIST')GOTO5054
14477      IF(NUMARG.GE.5.AND.
14478     1IHARG(3).EQ.'CANB'.AND.IHARG(4).EQ.'COLU'.AND.
14479     1IHARG(5).EQ.'DIST')GOTO5055
14480C
14481      IF(NUMARG.GE.6.AND.
14482     1IHARG(3).EQ.'POOL'.AND.IHARG(4).EQ.'VARI'.AND.
14483     1IHARG(5).EQ.'COVA'.AND.IHARG(6).EQ.'MATR')GOTO5086
14484      IF(NUMARG.GE.5.AND.
14485     1IHARG(3).EQ.'POOL'.AND.IHARG(4).EQ.'COVA'.AND.
14486     1IHARG(5).EQ.'MATR')GOTO5087
14487      IF(NUMARG.GE.4.AND.
14488     1IHARG(3).EQ.'QR  '.AND.IHARG(4).EQ.'DECO')GOTO5052
14489      IF(NUMARG.GE.5.AND.
14490     1IHARG(3).EQ.'DIST'.AND.IHARG(4).EQ.'FROM'.AND.
14491     1IHARG(5).EQ.'MEAN')GOTO5094
14492      IF(NUMARG.GE.6.AND.
14493     1IHARG(3).EQ.'MULT'.AND.IHARG(4).EQ.'NORM'.AND.
14494     1IHARG(5).EQ.'RAND'.AND.IHARG(6).EQ.'NUMB')GOTO5118
14495      IF(NUMARG.GE.6.AND.
14496     1IHARG(3).EQ.'MULT'.AND.IHARG(4).EQ.'T   '.AND.
14497     1IHARG(5).EQ.'RAND'.AND.IHARG(6).EQ.'NUMB')GOTO5119
14498      IF(NUMARG.GE.4.AND.
14499     1IHARG(3).EQ.'CATC'.AND.IHARG(4).EQ.'MATR')GOTO5120
14500      IF(NUMARG.GE.5.AND.
14501     1IHARG(3).EQ.'MULT'.AND.IHARG(4).EQ.'RAND'.AND.
14502     1IHARG(5).EQ.'NUMB')GOTO5122
14503      IF(NUMARG.GE.4.AND.
14504     1IHARG(3).EQ.'MULT'.AND.IHARG(4).EQ.'PDF')GOTO5123
14505      IF(NUMARG.GE.5.AND.
14506     1IHARG(3).EQ.'WISH'.AND.IHARG(4).EQ.'RAND'.AND.
14507     1IHARG(5).EQ.'NUMB')GOTO5124
14508      IF(NUMARG.GE.5.AND.
14509     1IHARG(3).EQ.'DIRI'.AND.IHARG(4).EQ.'RAND'.AND.
14510     1IHARG(5).EQ.'NUMB')GOTO5125
14511      IF(NUMARG.GE.4.AND.
14512     1IHARG(3).EQ.'DIRI'.AND.IHARG(4).EQ.'PDF')GOTO15125
14513      IF(NUMARG.GE.5.AND.
14514     1IHARG(3).EQ.'DIRI'.AND.IHARG(4).EQ.'LOG'.AND.
14515     1IHARG(5).EQ.'PDF')GOTO15127
14516      IF(NUMARG.GE.5.AND.
14517     1IHARG(3).EQ.'VARI'.AND.IHARG(4).EQ.'INFL'.AND.
14518     1IHARG(5).EQ.'FACT')GOTO5126
14519      IF(NUMARG.GE.4.AND.
14520     1IHARG(3).EQ.'COND'.AND.IHARG(4).EQ.'INDI')GOTO5128
14521      IF(NUMARG.GE.4.AND.
14522     1IHARG(3).EQ.'XTXI'.AND.IHARG(4).EQ.'MATR')GOTO5130
14523      IF(NUMARG.GE.4.AND.
14524     1IHARG(3).EQ.'CREA'.AND.IHARG(4).EQ.'MATR')GOTO5132
14525CCCCC END CHANGE
14526      IF(NUMARG.GE.3.AND.
14527     1IHARG(3).EQ.'WINS')GOTO5152
14528      IF(NUMARG.GE.6.AND.
14529     1IHARG(3).EQ.'MULT'.AND.IHARG(4).EQ.'NORM'.AND.
14530     1IHARG(5).EQ.'CDF')GOTO5154
14531      IF(NUMARG.GE.6.AND.
14532     1IHARG(3).EQ.'MULT'.AND.IHARG(4).EQ.'T'.AND.
14533     1IHARG(5).EQ.'CDF')GOTO5156
14534      IF(NUMARG.GE.6.AND.
14535     1IHARG(3).EQ.'INDE'.AND.IHARG(4).EQ.'UNIF'.AND.
14536     1IHARG(5).EQ.'RAND'.AND.IHARG(6).EQ.'NUMB')GOTO5158
14537      IF(NUMARG.GE.6.AND.
14538     1IHARG(3).EQ.'CORR'.AND.IHARG(4).EQ.'UNIF'.AND.
14539     1IHARG(5).EQ.'RAND'.AND.IHARG(6).EQ.'NUMB')GOTO5160
14540C
14541      IF(NUMARG.GE.5.AND.
14542     1IHARG(4).EQ.'MATR'.AND.IHARG(5)(1:3).EQ.'BIN')GOTO5197
14543      IF(NUMARG.GE.6.AND.
14544     1IHARG(4).EQ.'MATR'.AND.IHARG(5).EQ.'COUN'.AND.
14545     1IHARG(6)(1:3).EQ.'BIN')GOTO5198
14546      IF(NUMARG.GE.6.AND.
14547     1IHARG(4).EQ.'MATR'.AND.IHARG(5).EQ.'RELA'.AND.
14548     1IHARG(6)(1:3).EQ.'BIN')GOTO5199
14549C
14550CCCCC OCTOBER 2004.  ADD FOLLOWING SECTION.
14551      IF(NUMARG.GE.5.AND.
14552     1IHARG(4).EQ.'ASH '.AND.IHARG(5)(1:3).EQ.'BIN')GOTO5192
14553      IF(NUMARG.GE.4.AND.IHARG(4).EQ.'ASH ')GOTO5193
14554      IF(NUMARG.GE.6.AND.
14555     1IHARG(4).EQ.'COUN'.AND.IHARG(5).EQ.'ASH '.AND.
14556     1IHARG(6)(1:3).EQ.'BIN')GOTO5194
14557      IF(NUMARG.GE.7.AND.
14558     1IHARG(5).EQ.'COMB'.AND.IHARG(6).EQ.'FREQ'.AND.
14559     1IHARG(7).EQ.'TABL')GOTO5196
14560      IF(NUMARG.GE.7.AND.
14561     1IHARG(5).EQ.'INTE'.AND.IHARG(6).EQ.'FREQ'.AND.
14562     1IHARG(7).EQ.'TABL')GOTO5195
14563C
14564CCCCC FEBRAURY 2005.  ADD FOLLOWING SECTION.
14565      IF(NUMARG.GE.5.AND.
14566     1IHARG(3).EQ.'H   '.AND.IHARG(4).EQ.'CONS'.AND.
14567     1IHARG(5).EQ.'STAT')GOTO5202
14568      IF(NUMARG.GE.4.AND.
14569     1IHARG(3).EQ.'H   '.AND.IHARG(4).EQ.'CONS')GOTO5203
14570      IF(NUMARG.GE.5.AND.
14571     1IHARG(3).EQ.'K   '.AND.IHARG(4).EQ.'CONS'.AND.
14572     1IHARG(5).EQ.'STAT')GOTO5204
14573      IF(NUMARG.GE.4.AND.
14574     1IHARG(3).EQ.'K   '.AND.IHARG(4).EQ.'CONS')GOTO5205
14575C
14576      IF(NUMARG.GE.7.AND.
14577     1IHARG(5).EQ.'H   '.AND.IHARG(6).EQ.'CONS'.AND.
14578     1IHARG(7).EQ.'STAT')GOTO5206
14579      IF(NUMARG.GE.6.AND.
14580     1IHARG(5).EQ.'H   '.AND.IHARG(6).EQ.'CONS')GOTO5207
14581      IF(NUMARG.GE.7.AND.
14582     1IHARG(5).EQ.'K   '.AND.IHARG(6).EQ.'CONS'.AND.
14583     1IHARG(7).EQ.'STAT')GOTO5208
14584      IF(NUMARG.GE.6.AND.
14585     1IHARG(5).EQ.'K   '.AND.IHARG(6).EQ.'CONS')GOTO5209
14586C
14587CCCCC JUNE 2005. ADD FOLLOWING SECTION.
14588      IF(NUMARG.GE.4.AND.
14589     1IHARG(3).EQ.'L   '.AND.IHARG(4).EQ.'MOME')GOTO5211
14590      IF(NUMARG.GE.5.AND.
14591     1IHARG(3).EQ.'PROB'.AND.IHARG(4).EQ.'WEIG'.AND.
14592     1IHARG(5).EQ.'MOME')GOTO5213
14593      IF(NUMARG.GE.6.AND.
14594     1IHARG(3).EQ.'BETA'.AND.
14595     1IHARG(4).EQ.'PROB'.AND.IHARG(5).EQ.'WEIG'.AND.
14596     1IHARG(6).EQ.'MOME')GOTO5215
14597C
14598CCCCC JANUARY 2007. ADD FOLLOWING SECTION.
14599      IF(NUMARG.GE.3.AND.
14600     1IHARG(3).EQ.'JITT')GOTO5217
14601C
14602CCCCC FEBRUARY 2007. ADD FOLLOWING SECTION.
14603      IF(NUMARG.GE.6.AND.
14604     1IHARG(4).EQ.'AGRE'.AND.IHARG(5).EQ.'COUL'.AND.
14605     1(IHARG(6).EQ.'LIMI'.OR.IHARG(6).EQ.'INTE'))GOTO5219
14606      IF(NUMARG.GE.7.AND.
14607     1IHARG(4).EQ.'AGRE'.AND.IHARG(5).EQ.'COUL'.AND.
14608     1IHARG(6).EQ.'CONF'.AND.
14609     1(IHARG(7).EQ.'LIMI'.OR.IHARG(7).EQ.'INTE'))GOTO5220
14610C
14611CCCCC FEBRUARY 2007. ADD FOLLOWING SECTION.
14612      IF(NUMARG.GE.6.AND.
14613     1IHARG(3).EQ.'EXAC'.AND.IHARG(4).EQ.'BINO'.AND.
14614     1IHARG(5).EQ.'LOWE'.AND.
14615     1(IHARG(6).EQ.'LIMI'.OR.IHARG(6).EQ.'INTE'))GOTO5221
14616C
14617      IF(NUMARG.GE.6.AND.
14618     1IHARG(3).EQ.'EXAC'.AND.IHARG(4).EQ.'BINO'.AND.
14619     1IHARG(5).EQ.'LOWE'.AND.IHARG(6).EQ.'BOUN')GOTO5221
14620C
14621      IF(NUMARG.GE.6.AND.
14622     1IHARG(3).EQ.'BINO'.AND.IHARG(4).EQ.'EXAC'.AND.
14623     1IHARG(5).EQ.'LOWE'.AND.
14624     1(IHARG(6).EQ.'LIMI'.OR.IHARG(6).EQ.'INTE'))GOTO5221
14625C
14626      IF(NUMARG.GE.6.AND.
14627     1IHARG(3).EQ.'BINO'.AND.IHARG(4).EQ.'EXAC'.AND.
14628     1IHARG(5).EQ.'LOWE'.AND.IHARG(6).EQ.'BOUN')GOTO5221
14629C
14630CCCCC FEBRUARY 2007. ADD FOLLOWING SECTION.
14631      IF(NUMARG.GE.6.AND.
14632     1IHARG(3).EQ.'EXAC'.AND.IHARG(4).EQ.'BINO'.AND.
14633     1IHARG(5).EQ.'UPPE'.AND.
14634     1(IHARG(6).EQ.'LIMI'.OR.IHARG(6).EQ.'INTE'))GOTO5223
14635C
14636      IF(NUMARG.GE.6.AND.
14637     1IHARG(3).EQ.'EXAC'.AND.IHARG(4).EQ.'BINO'.AND.
14638     1IHARG(5).EQ.'UPPE'.AND.IHARG(6).EQ.'BOUN')GOTO5223
14639C
14640      IF(NUMARG.GE.6.AND.
14641     1IHARG(3).EQ.'BINO'.AND.IHARG(4).EQ.'EXAC'.AND.
14642     1IHARG(5).EQ.'UPPE'.AND.
14643     1(IHARG(6).EQ.'LIMI'.OR.IHARG(6).EQ.'INTE'))GOTO5223
14644C
14645      IF(NUMARG.GE.6.AND.
14646     1IHARG(3).EQ.'BINO'.AND.IHARG(4).EQ.'EXAC'.AND.
14647     1IHARG(5).EQ.'UPPE'.AND.IHARG(6).EQ.'BOUN')GOTO5223
14648C
14649CCCCC OCTOBER  2009. ADD FOLLOWING SECTION.
14650      IF(NUMARG.GE.8.AND.
14651     1IHARG(5).EQ.'BINO'.AND.IHARG(6).EQ.'RATI'.AND.
14652     1IHARG(7).EQ.'CONF'.AND.
14653     1(IHARG(8).EQ.'LIMI'.OR.IHARG(8).EQ.'INTE'))GOTO5224
14654C
14655      IF(NUMARG.GE.5.AND.
14656     1IHARG(4).EQ.'2D  '.AND.IHARG(5).EQ.'CONV'.AND.
14657     1IHARG(6).EQ.'HULL')GOTO5225
14658C
14659      IF(NUMARG.GE.5.AND.
14660     1IHARG(3).EQ.'POIN'.AND.IHARG(4).EQ.'IN  '.AND.
14661     1IHARG(5).EQ.'POLY')GOTO5226
14662C
14663      IF(NUMARG.GE.7.AND.
14664     1IHARG(5).EQ.'MINI'.AND.IHARG(6).EQ.'SPAN'.AND.
14665     1IHARG(7).EQ.'TREE')GOTO5227
14666C
14667      IF(NUMARG.GE.6.AND.
14668     1IHARG(4).EQ.'MINI'.AND.IHARG(5).EQ.'SPAN'.AND.
14669     1IHARG(6).EQ.'TREE')GOTO5229
14670C
14671      IF(NUMARG.GE.7.AND.
14672     1IHARG(5).EQ.'EDGE'.AND.IHARG(6).EQ.'TO  '.AND.
14673     1IHARG(7).EQ.'VERT')GOTO5231
14674C
14675      IF(NUMARG.GE.4.AND.
14676     1IHARG(3).EQ.'NEXT'.AND.IHARG(4).EQ.'SUBS')GOTO5233
14677C
14678      IF(NUMARG.GE.4.AND.
14679     1IHARG(3).EQ.'NEXT'.AND.IHARG(4).EQ.'PERM')GOTO5235
14680C
14681      IF(NUMARG.GE.8.AND.
14682     1IHARG(3).EQ.'NEXT'.AND.IHARG(4).EQ.'K   '.AND.
14683     1IHARG(5).EQ.'SET '.AND.IHARG(6).EQ.'OF  '.AND.
14684     1IHARG(7).EQ.'N   '.AND.IHARG(8).EQ.'SET ')GOTO5237
14685C
14686      IF(NUMARG.GE.4.AND.
14687     1IHARG(3).EQ.'NEXT'.AND.IHARG(4).EQ.'COMP')GOTO5239
14688C
14689      IF(NUMARG.GE.5.AND.
14690     1IHARG(4).EQ.'NEXT'.AND.IHARG(5).EQ.'PART')GOTO5240
14691C
14692      IF(NUMARG.GE.6.AND.
14693     1IHARG(4).EQ.'NEXT'.AND.IHARG(5).EQ.'EQUI'.AND.
14694     1IHARG(6).EQ.'RELA')GOTO5246
14695C
14696      IF(NUMARG.GE.6.AND.
14697     1IHARG(5).EQ.'SPAN'.AND.IHARG(6).EQ.'FORE')GOTO5248
14698C
14699      IF(NUMARG.GE.7.AND.
14700     1IHARG(6).EQ.'SPAN'.AND.IHARG(7).EQ.'FORE')GOTO5250
14701C
14702      IF(NUMARG.GE.4.AND.
14703     1IHARG(3).EQ.'ADJA'.AND.IHARG(4).EQ.'MATR')GOTO5252
14704C
14705      IF(NUMARG.GE.5.AND.
14706     1IHARG(3).EQ.'DIRE'.AND.IHARG(4).EQ.'ADJA'.AND.
14707     1IHARG(4).EQ.'MATR')GOTO5253
14708C
14709      IF(NUMARG.GE.6.AND.
14710     1IHARG(3).EQ.'EDGE'.AND.IHARG(4).EQ.'TO  '.AND.
14711     1IHARG(5).EQ.'ADJA'.AND.IHARG(6).EQ.'MATR')GOTO5254
14712C
14713      IF(NUMARG.GE.7.AND.
14714     1IHARG(3).EQ.'EDGE'.AND.IHARG(4).EQ.'TO  '.AND.
14715     1IHARG(5).EQ.'DIRE'.AND.IHARG(6).EQ.'ADJA'.AND.
14716     1IHARG(7).EQ.'MATR')GOTO5255
14717C
14718      IF(NUMARG.GE.5.AND.
14719     1IHARG(3).EQ.'NEXT'.AND.IHARG(4).EQ.'YOUN'.AND.
14720     1IHARG(5).EQ.'TABL')GOTO5256
14721C
14722      IF(NUMARG.GE.6.AND.
14723     1IHARG(4).EQ.'CONV'.AND.IHARG(5).EQ.'YOUN'.AND.
14724     1IHARG(6).EQ.'TABL')GOTO5257
14725C
14726      IF(NUMARG.GE.4.AND.
14727     1IHARG(3).EQ.'GROU'.AND.IHARG(4).EQ.'SORT')GOTO5258
14728C
14729      IF(NUMARG.GE.6.AND.
14730     1IHARG(3).EQ.'YOUN'.AND.IHARG(4).EQ.'TABL'.AND.
14731     1IHARG(5).EQ.'HOOK'.AND.IHARG(6).EQ.'LENG')GOTO5260
14732C
14733CCCCC AUGUST 2008. ADD FOLLOWING SECTION.
14734      IF(NUMARG.GE.9.AND.
14735     1IHARG(5).EQ.'DIFF'.AND.IHARG(6).EQ.'OF'.AND.
14736     1IHARG(7).EQ.'PROP'.AND.IHARG(8).EQ.'CONF'.AND.
14737     1(IHARG(9).EQ.'LIMI'.OR.IHARG(9).EQ.'INTE'))GOTO5262
14738C
14739      IF(NUMARG.GE.9.AND.
14740     1IHARG(3).EQ.'DIFF'.AND.IHARG(4).EQ.'OF'.AND.
14741     1IHARG(5).EQ.'PROP'.AND.IHARG(6).EQ.'LOWE'.AND.
14742     1IHARG(7).EQ.'TAIL'.AND.IHARG(8).EQ.'HYPO'.AND.
14743     1IHARG(9).EQ.'TEST')GOTO5266
14744C
14745      IF(NUMARG.GE.9.AND.
14746     1IHARG(3).EQ.'DIFF'.AND.IHARG(4).EQ.'OF'.AND.
14747     1IHARG(5).EQ.'PROP'.AND.IHARG(6).EQ.'UPPE'.AND.
14748     1IHARG(7).EQ.'TAIL'.AND.IHARG(8).EQ.'HYPO'.AND.
14749     1IHARG(9).EQ.'TEST')GOTO5268
14750C
14751      ISTEPN='2N'
14752      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
14753     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
14754C
14755CCCCC SEPTEMBER 2008. ADD FOLLOWING SECTION.
14756      IF(NUMARG.GE.7.AND.
14757     1(IHARG(5).EQ.'RUHK'.OR.IHARG(5).EQ.'RUKH').AND.
14758     1(IHARG(6).EQ.'ONE'.OR.IHARG(6).EQ.'1').AND.
14759     1IHARG(7).EQ.'TEST')GOTO5270
14760C
14761      IF(NUMARG.GE.9.AND.
14762     1(IHARG(5).EQ.'RUHK'.OR.IHARG(5).EQ.'RUKH').AND.
14763     1(IHARG(6).EQ.'ONE'.OR.IHARG(6).EQ.'1').AND.
14764     1IHARG(7).EQ.'LOWE'.AND.IHARG(8).EQ.'TAIL'.AND.
14765     1IHARG(9).EQ.'TEST')GOTO5272
14766C
14767      IF(NUMARG.GE.9.AND.
14768     1(IHARG(5).EQ.'RUHK'.OR.IHARG(5).EQ.'RUKH').AND.
14769     1(IHARG(6).EQ.'ONE'.OR.IHARG(6).EQ.'1').AND.
14770     1IHARG(7).EQ.'UPPE'.AND.IHARG(8).EQ.'TAIL'.AND.
14771     1IHARG(9).EQ.'TEST')GOTO5274
14772C
14773CCCCC SEPTEMBER 2008. ADD FOLLOWING SECTION.
14774      IF(NUMARG.GE.7.AND.
14775     1(IHARG(5).EQ.'RUHK'.OR.IHARG(5).EQ.'RUKH').AND.
14776     1(IHARG(6).EQ.'TWO'.OR.IHARG(6).EQ.'2').AND.
14777     1IHARG(7).EQ.'TEST')GOTO5276
14778C
14779      IF(NUMARG.GE.9.AND.
14780     1(IHARG(5).EQ.'RUHK'.OR.IHARG(5).EQ.'RUKH').AND.
14781     1(IHARG(6).EQ.'TWO'.OR.IHARG(6).EQ.'2').AND.
14782     1IHARG(7).EQ.'LOWE'.AND.IHARG(8).EQ.'TAIL'.AND.
14783     1IHARG(9).EQ.'TEST')GOTO5278
14784C
14785      IF(NUMARG.GE.9.AND.
14786     1(IHARG(5).EQ.'RUHK'.OR.IHARG(5).EQ.'RUKH').AND.
14787     1(IHARG(6).EQ.'TWO'.OR.IHARG(6).EQ.'2').AND.
14788     1IHARG(7).EQ.'UPPE'.AND.IHARG(8).EQ.'TAIL'.AND.
14789     1IHARG(9).EQ.'TEST')GOTO5280
14790C
14791CCCCC JUNE 2010. ADD FOLLOWING SECTION.
14792      IF(NUMARG.GE.7.AND.
14793     1(IHARG(5).EQ.'RUHK'.OR.IHARG(5).EQ.'RUKH').AND.
14794     1(IHARG(6).EQ.'THRE'.OR.IHARG(6).EQ.'3').AND.
14795     1IHARG(7).EQ.'TEST')GOTO5306
14796C
14797      IF(NUMARG.GE.9.AND.
14798     1(IHARG(5).EQ.'RUHK'.OR.IHARG(5).EQ.'RUKH').AND.
14799     1(IHARG(6).EQ.'THRE'.OR.IHARG(6).EQ.'3').AND.
14800     1IHARG(7).EQ.'LOWE'.AND.IHARG(8).EQ.'TAIL'.AND.
14801     1IHARG(9).EQ.'TEST')GOTO5308
14802C
14803      IF(NUMARG.GE.9.AND.
14804     1(IHARG(5).EQ.'RUHK'.OR.IHARG(5).EQ.'RUKH').AND.
14805     1(IHARG(6).EQ.'THRE'.OR.IHARG(6).EQ.'3').AND.
14806     1IHARG(7).EQ.'UPPE'.AND.IHARG(8).EQ.'TAIL'.AND.
14807     1IHARG(9).EQ.'TEST')GOTO5310
14808C
14809      IF(NUMARG.GE.8.AND.
14810     1IHARG(5).EQ.'BINO'.AND.IHARG(6).EQ.'PROD'.AND.
14811     1IHARG(7).EQ.'STAN'.AND.IHARG(8).EQ.'ERRO')GOTO5312
14812C
14813      IF(NUMARG.GE.8.AND.
14814     1IHARG(5).EQ.'BINO'.AND.IHARG(6).EQ.'PROD'.AND.
14815     1IHARG(7).EQ.'CONF'.AND.IHARG(8).EQ.'LIMI')GOTO5312
14816C
14817      IF(NUMARG.GE.8.AND.
14818     1IHARG(5).EQ.'BINO'.AND.IHARG(6).EQ.'PROD'.AND.
14819     1IHARG(7).EQ.'CONF'.AND.IHARG(8).EQ.'INTE')GOTO5312
14820C
14821      IF(NUMARG.GE.7.AND.
14822     1IHARG(5).EQ.'BINO'.AND.IHARG(6).EQ.'PROD'.AND.
14823     1IHARG(7).EQ.'SE  ')GOTO5314
14824C
14825CCCCC OCTOBER 2010. ADD FOLLOWING SECTION.
14826      IF(NUMARG.GE.7.AND.
14827     1IHARG(4).EQ.'EXAC'.AND.IHARG(5).EQ.'BINO'.AND.
14828     1IHARG(6).EQ.'CONF'.AND.
14829     1(IHARG(7).EQ.'LIMI'.OR.IHARG(7).EQ.'INTE'))GOTO5318
14830C
14831      IF(NUMARG.GE.7.AND.
14832     1IHARG(4).EQ.'BINO'.AND.IHARG(5).EQ.'EXAC'.AND.
14833     1IHARG(6).EQ.'CONF'.AND.
14834     1(IHARG(7).EQ.'LIMI'.OR.IHARG(7).EQ.'INTE'))GOTO5318
14835C
14836      IF(NUMARG.GE.6.AND.
14837     1IHARG(4).EQ.'EXAC'.AND.IHARG(5).EQ.'BINO'.AND.
14838     1(IHARG(6).EQ.'LIMI'.OR.IHARG(6).EQ.'INTE'))GOTO5320
14839C
14840      IF(NUMARG.GE.4.AND.
14841     1IHARG(4).EQ.'SORT'.AND.IHARG2(4).EQ.'2   ')GOTO5281
14842      IF(NUMARG.GE.5.AND.
14843     1IHARG(5).EQ.'SORT'.AND.IHARG2(5).EQ.'3   ')GOTO5282
14844      IF(NUMARG.GE.6.AND.
14845     1IHARG(6).EQ.'SORT'.AND.IHARG2(6).EQ.'4   ')GOTO5283
14846C
14847      IF(NUMARG.GE.3.AND.
14848     1IHARG(3).EQ.'GATH')GOTO5285
14849C
14850      IF(NUMARG.GE.3.AND.
14851     1IHARG(3).EQ.'SCAT')GOTO5287
14852C
14853      IF(NUMARG.GE.3.AND.
14854     1IHARG(3).EQ.'RANK'.AND.IHARG2(3).EQ.'2   ')GOTO5289
14855      IF(NUMARG.GE.3.AND.
14856     1IHARG(3).EQ.'RANK'.AND.IHARG2(3).EQ.'3   ')GOTO5291
14857      IF(NUMARG.GE.3.AND.
14858     1IHARG(3).EQ.'RANK'.AND.IHARG2(3).EQ.'4   ')GOTO5293
14859C
14860      IF(NUMARG.GE.3.AND.
14861     1IHARG(3).EQ.'SHIF')GOTO5295
14862      IF(NUMARG.GE.4.AND.
14863     1IHARG(3).EQ.'CIRC'.AND.IHARG(4).EQ.'SHIF')GOTO5296
14864C
14865      IF(NUMARG.GE.5.AND.
14866     1IHARG(5).EQ.'BIPL')GOTO5298
14867C
14868      IF(NUMARG.GE.3.AND.
14869     1IHARG(3).EQ.'LARG')GOTO15300
14870      IF(NUMARG.GE.3.AND.
14871     1IHARG(3).EQ.'SMAL')GOTO15301
14872C
14873      IF(NUMARG.GE.6.AND.
14874     1IHARG(6).EQ.'MATR' .AND. IHARG(7).EQ.'ROW ' .AND.
14875     1IHARG(8).EQ.'FIT ')GOTO5302
14876      IF(NUMARG.GE.6.AND.
14877     1IHARG(6).EQ.'MATR' .AND. IHARG(7).EQ.'COLU' .AND.
14878     1IHARG(8).EQ.'FIT ')GOTO5304
14879C
14880      IF(NUMARG.GE.4.AND.
14881     1IHARG(3).EQ.'COMB')GOTO5316
14882C
14883      IF(NUMARG.GE.6.AND.
14884     1IHARG(3).EQ.'BRIT' .AND. IHARG(4).EQ.'FIBE' .AND.
14885     1IHARG(5).EQ.'WEIB' .AND. IHARG(6).EQ.'PDF')GOTO5322
14886C
14887      IF(NUMARG.GE.6.AND.
14888     1IHARG(3).EQ.'BRIT' .AND. IHARG(4).EQ.'FIBE' .AND.
14889     1IHARG(5).EQ.'WEIB' .AND. IHARG(6).EQ.'CDF')GOTO5324
14890C
14891      IF(NUMARG.GE.6.AND.
14892     1IHARG(3).EQ.'BRIT' .AND. IHARG(4).EQ.'FIBE' .AND.
14893     1IHARG(5).EQ.'WEIB' .AND. IHARG(6).EQ.'PDF')GOTO5326
14894C
14895      IF(NUMARG.GE.6.AND.
14896     1IHARG(3).EQ.'END ' .AND. IHARG(4).EQ.'EFFE' .AND.
14897     1IHARG(5).EQ.'WEIB' .AND. IHARG(6).EQ.'PDF')GOTO5328
14898C
14899      IF(NUMARG.GE.6.AND.
14900     1IHARG(3).EQ.'END ' .AND. IHARG(4).EQ.'EFFE' .AND.
14901     1IHARG(5).EQ.'WEIB' .AND. IHARG(6).EQ.'CDF')GOTO5330
14902C
14903      IF(NUMARG.GE.6.AND.
14904     1IHARG(3).EQ.'END ' .AND. IHARG(4).EQ.'EFFE' .AND.
14905     1IHARG(5).EQ.'WEIB' .AND. IHARG(6).EQ.'PPF')GOTO5332
14906C
14907      IF(NUMARG.GE.5.AND.
14908     1IHARG(3).EQ.'VARI' .AND. IHARG(4).EQ.'TO  ' .AND.
14909     1IHARG(5).EQ.'MATR')GOTO5334
14910C
14911      IF(NUMARG.GE.5.AND.
14912     1IHARG(3).EQ.'MATR' .AND. IHARG(4).EQ.'TO  ' .AND.
14913     1IHARG(5).EQ.'VARI')GOTO5336
14914C
14915      IF(NUMARG.GE.5.AND.
14916     1IHARG(3).EQ.'MATR' .AND. IHARG(4).EQ.'COMB' .AND.
14917     1IHARG(5)(1:3).EQ.'ROW')GOTO5338
14918C
14919      IF(NUMARG.GE.5.AND.
14920     1IHARG(3).EQ.'MATR' .AND. IHARG(4).EQ.'COMB' .AND.
14921     1IHARG(5).EQ.'COLU')GOTO5340
14922C
14923      IF(NUMARG.GE.3.AND.IHARG(3).EQ.'KEEP')GOTO5342
14924      IF(NUMARG.GE.3.AND.IHARG(3).EQ.'OMIT')GOTO5344
14925      IF(NUMARG.GE.9.AND.IHARG(5).EQ.'MANN'.AND.
14926     1   IHARG(6).EQ.'WHIT' .AND. IHARG(7).EQ.'U   ' .AND.
14927     1   IHARG(8).EQ.'STAT' .AND. IHARG(9).EQ.'FREQ')GOTO5346
14928C
14929      IF(NUMARG.GE.5.AND.IHARG(4).EQ.'THRE'.AND.
14930     1   (IHARG(5).EQ.'MINI' .OR. IHARG(5).EQ.'MIN '))GOTO5348
14931C
14932      IF(NUMARG.GE.5.AND.IHARG(4).EQ.'THRE'.AND.
14933     1   (IHARG(5).EQ.'MAXI' .OR. IHARG(5).EQ.'MAX '))GOTO5350
14934C
14935      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'EN')GOTO5352
14936      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'PA')GOTO5353
14937      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'DIPE')GOTO55353
14938      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'EXPA')GOTO5354
14939      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'JSCO'.AND.
14940     1   IHARG(4).NE.'STAT')GOTO5355
14941      IF(NUMARG.GE.6.AND.IHARG(5).EQ.'JSCO'.AND.
14942     1   IHARG(6).EQ.'TABL')GOTO55355
14943      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'ISO '.AND.
14944     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'ZSCO')GOTO5356
14945C
14946C     2016/02: MAKE THE WORD "SCORE" OPTIONAL
14947C
14948      IF(NUMARG.GE.7.AND.IHARG(3).EQ.'ISO '.AND.
14949     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'ZPRI' .AND.
14950     1   IHARG(6).EQ.'SCOR')GOTO5358
14951      IF(NUMARG.GE.7.AND.IHARG(3).EQ.'ISO '.AND.
14952     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'ZETA' .AND.
14953     1   IHARG(6).EQ.'SCOR')GOTO5360
14954      IF(NUMARG.GE.7.AND.IHARG(3).EQ.'ISO '.AND.
14955     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'EZMI' .AND.
14956     1   IHARG(6).EQ.'SCOR')GOTO5362
14957      IF(NUMARG.GE.7.AND.IHARG(3).EQ.'ISO '.AND.
14958     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'EZPL' .AND.
14959     1   IHARG(6).EQ.'SCOR')GOTO5364
14960      IF(NUMARG.GE.7.AND.IHARG(3).EQ.'ISO '.AND.
14961     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'EN  ' .AND.
14962     1   IHARG(6).EQ.'SCOR')GOTO5366
14963      IF(NUMARG.GE.7.AND.IHARG(3).EQ.'ISO '.AND.
14964     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'PA  ' .AND.
14965     1   IHARG(6).EQ.'SCOR')GOTO5367
14966      IF(NUMARG.GE.7.AND.IHARG(3).EQ.'ISO '.AND.
14967     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'DIPE' .AND.
14968     1   IHARG(6).EQ.'SCOR')GOTO45367
14969      IF(NUMARG.GE.8.AND.IHARG(3).EQ.'ISO '.AND.
14970     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'DI  ' .AND.
14971     1   IHARG(6).EQ.'PERC' .AND. IHARG(7).EQ.'SCOR')GOTO46367
14972C
14973      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'ISO '.AND.
14974     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'ZPRI')GOTO55358
14975      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'ISO '.AND.
14976     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'ZETA')GOTO55360
14977      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'ISO '.AND.
14978     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'EZMI')GOTO55362
14979      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'ISO '.AND.
14980     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'EZPL')GOTO55364
14981      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'ISO '.AND.
14982     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'EN  ')GOTO55366
14983      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'ISO '.AND.
14984     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'PA  ')GOTO55367
14985      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'ISO '.AND.
14986     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'DIPE')GOTO55368
14987      IF(NUMARG.GE.7.AND.IHARG(3).EQ.'ISO '.AND.
14988     1   IHARG(4).EQ.'1352' .AND. IHARG(5).EQ.'DI  '.AND.
14989     1   IHARG(6).EQ.'PERC')GOTO55369
14990C
14991      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'WEIB'.AND.
14992     1   IHARG(4).EQ.'MOME' .AND. IHARG(5).EQ.'ESTI')GOTO5368
14993      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'LOGN'.AND.
14994     1   IHARG(4).EQ.'MOME' .AND. IHARG(5).EQ.'ESTI')GOTO5369
14995      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'LOW '.AND.
14996     1   IHARG(4).EQ.'PASS' .AND. IHARG(5).EQ.'FILT')GOTO5370
14997      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'GAMM'.AND.
14998     1   IHARG(4).EQ.'MOME' .AND. IHARG(5).EQ.'ESTI')GOTO5371
14999      IF(NUMARG.GE.7.AND.IHARG(3).EQ.'INVE'.AND.
15000     1   IHARG(4).EQ.'GAUS'.AND.IHARG(5).EQ.'MOME' .AND.
15001     1   IHARG(6).EQ.'ESTI')GOTO5373
15002      IF(NUMARG.GE.6.AND.IHARG(3).EQ.'HIGH'.AND.
15003     1   IHARG(4).EQ.'PASS' .AND. IHARG(5).EQ.'FILT')GOTO5372
15004      IF(NUMARG.GE.5.AND.
15005     1   IHARG(4).EQ.'TRAN'.AND.IHARG(5).EQ.'POIN')GOTO5374
15006      IF(NUMARG.GE.5.AND.
15007     1   IHARG(4).EQ.'EXTR'.AND.IHARG(5).EQ.'POIN')GOTO5376
15008      IF(NUMARG.GE.5.AND.
15009     1   IHARG(4).EQ.'ENCL'.AND.IHARG(5).EQ.'RECT')GOTO5378
15010      IF(NUMARG.GE.5.AND.
15011     1   IHARG(4).EQ.'ENCL'.AND.IHARG(5).EQ.'BOX ')GOTO5378
15012      IF(NUMARG.GE.5.AND.
15013     1   IHARG(4).EQ.'LINE'.AND.IHARG(5).EQ.'INTE')GOTO5380
15014      IF(NUMARG.GE.5.AND.
15015     1   IHARG(4).EQ.'INTE'.AND.IHARG(5).EQ.'LINE')GOTO5380
15016      IF(NUMARG.GE.5.AND.
15017     1   IHARG(4).EQ.'PARA'.AND.IHARG(5).EQ.'LINE')GOTO5382
15018      IF(NUMARG.GE.5.AND.
15019     1   IHARG(4).EQ.'PERP'.AND.IHARG(5).EQ.'LINE')GOTO5384
15020      IF(NUMARG.GE.5.AND.
15021     1   IHARG(3).EQ.'NEAR'.AND.IHARG(4).EQ.'NEIG'.AND.
15022     1   IHARG(5).EQ.'INDE')GOTO5386
15023      IF(NUMARG.GE.5.AND.
15024     1   IHARG(3).EQ.'NEAR'.AND.IHARG(4).EQ.'NEIG'.AND.
15025     1   IHARG(5).EQ.'DIST')GOTO5388
15026      IF(NUMARG.GE.5.AND.
15027     1   IHARG(4).EQ.'NEAR'.AND.IHARG(5).EQ.'NEIG')GOTO5390
15028      IF(NUMARG.GE.4.AND.
15029     1   IHARG(3).EQ.'NEAR'.AND.IHARG(4).EQ.'NEIG')GOTO5392
15030      IF(NUMARG.GE.7.AND.
15031     1   IHARG(5).EQ.'NEAR'.AND.IHARG(6).EQ.'NEIG'.AND.
15032     1   IHARG(7).EQ.'JOIN')GOTO5394
15033      IF(NUMARG.GE.7.AND.
15034     1   IHARG(5).EQ.'FIRS'.AND.IHARG(6).EQ.'NEAR'.AND.
15035     1   IHARG(7).EQ.'NEIG')GOTO5396
15036      IF(NUMARG.GE.9.AND.
15037     1   IHARG(7).EQ.'ALL '.AND.IHARG(8).EQ.'NEAR'.AND.
15038     1   IHARG(9).EQ.'NEIG')GOTO5398
15039      IF(NUMARG.GE.4.AND.
15040     1   IHARG(3).EQ.'SHUF'.AND.IHARG(4).EQ.'GROU')GOTO5400
15041      IF(NUMARG.GE.5.AND.
15042     1   IHARG(3).EQ.'RAND'.AND.IHARG(4).EQ.'ERRO'.AND.
15043     1   IHARG(5).EQ.'QUAN')GOTO5402
15044      IF(NUMARG.GE.3.AND.
15045     1   IHARG(3).EQ.'DIGI')GOTO5404
15046C
15047      IF(NUMARG.GE.4.AND.
15048     1   IHARG(4).EQ.'YFRA')GOTO5406
15049      IF(NUMARG.GE.4.AND.
15050     1   IHARG(4).EQ.'XFRA')GOTO5408
15051C
15052      IF(NUMARG.GE.5.AND.
15053     1  (IHARG(3).EQ.'YTIC' .OR. IHARG(3).EQ.'Y1TI').AND.
15054     1   IHARG(4).EQ.'SCRE'.AND.IHARG(5).EQ.'COOR')GOTO55401
15055      IF(NUMARG.GE.5.AND.
15056     1  (IHARG(3).EQ.'YTIC' .OR. IHARG(3).EQ.'Y1TI').AND.
15057     1   IHARG(4).EQ.'DATA'.AND.IHARG(5).EQ.'COOR')GOTO55402
15058      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'Y2TI'.AND.
15059     1   IHARG(4).EQ.'SCRE'.AND.IHARG(5).EQ.'COOR')GOTO55403
15060      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'Y2TI'.AND.
15061     1   IHARG(4).EQ.'DATA'.AND.IHARG(5).EQ.'COOR')GOTO55404
15062      IF(NUMARG.GE.5.AND.
15063     1  (IHARG(3).EQ.'XTIC' .OR. IHARG(3).EQ.'X1TI').AND.
15064     1   IHARG(4).EQ.'SCRE'.AND.IHARG(5).EQ.'COOR')GOTO55406
15065      IF(NUMARG.GE.5.AND.
15066     1  (IHARG(3).EQ.'XTIC' .OR. IHARG(3).EQ.'X1TI').AND.
15067     1   IHARG(4).EQ.'DATA'.AND.IHARG(5).EQ.'COOR')GOTO55407
15068      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'X2TI'.AND.
15069     1   IHARG(4).EQ.'SCRE'.AND.IHARG(5).EQ.'COOR')GOTO55408
15070      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'X2TI'.AND.
15071     1   IHARG(4).EQ.'DATA'.AND.IHARG(5).EQ.'COOR')GOTO55409
15072C
15073      IF(NUMARG.GE.6.AND.
15074     1   IHARG(4).EQ.'VARI'.AND.IHARG(5).EQ.'WELC'.AND.
15075     1   IHARG(6).EQ.'SATT')GOTO5410
15076      IF(NUMARG.GE.5.AND.
15077     1   IHARG(3).EQ.'GUM '.AND.IHARG(4).EQ.'WELC'.AND.
15078     1   IHARG(5).EQ.'SATT')GOTO5411
15079      IF(NUMARG.GE.7.AND.
15080     1   IHARG(4).EQ.'NORM'.AND.IHARG(5).EQ.'KERN'.AND.
15081     1   IHARG(6).EQ.'DENS'.AND.IHARG(7).EQ.'MIXT')GOTO5412
15082      IF(NUMARG.GE.6.AND.
15083     1   IHARG(4).EQ.'EMPI'.AND.IHARG(5).EQ.'QUAN'.AND.
15084     1   IHARG(6).EQ.'FUNC')GOTO5414
15085      IF(NUMARG.GE.6.AND.
15086     1   IHARG(4).EQ.'INFO'.AND.IHARG(5).EQ.'QUAN'.AND.
15087     1   IHARG(6).EQ.'FUNC')GOTO5416
15088      IF(NUMARG.GE.7.AND.
15089     1   IHARG(4).EQ.'TRUN'.AND.IHARG(5).EQ.'INFO'.AND.
15090     1   IHARG(6).EQ.'QUAN'.AND.IHARG(7).EQ.'FUNC')GOTO5418
15091C
15092      IF(NUMARG.GE.3.AND.IHARG(3).EQ.'INSE')GOTO5420
15093C
15094CCCCC CHECK FOR:  Y = X
15095CCCCC CHECK FOR:  Y = X
15096CCCCC CHECK FOR:  Y = X
15097CCCCC WHERE X IS A VARIABLE OR PARAMETER
15098C
15099CCCCC NOTE 8/2008: CHECK FOR SOMETHING LIKE
15100CCCCC
15101CCCCC                 LET ITEMP = OUTEQMAV(3)
15102CCCCC
15103CCCCC              WHEN THE VARIABLE NAME ON THE RIGHT HAS
15104CCCCC              8 (OR MORE) CHARACTERS, WE NEED TO EXPLICITLY
15105CCCCC              CHECK FOR "(" ANYWHERE ON THE COMMAND STRING.
15106CCCCC NOTE 3/2012: EXPRESSIONS LIKE
15107CCCCC                  LET CUTOFF = SDEFFECT*12.7062
15108CCCCC              SHOULD NOT BE HANDLED HERE.
15109C
15110      ISTEPN='2O'
15111      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
15112     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
15113C
15114      IF(IHARG(2).EQ.'=')THEN
15115        IF(NUMARG.EQ.3 .OR. IHARG(4).EQ.'SUBS' .OR.
15116     1     IHARG(4).EQ.'EXCE' .OR. IHARG(4).EQ.'FOR ')THEN
15117          IH=IHARG(3)
15118          IH2=IHARG2(3)
15119          DO77001I=1,NUMNAM
15120            IF(IH.EQ.IHNAME(I).AND.IH2.EQ.IHNAM2(I).AND.
15121     1         IUSE(I).EQ.'V')THEN
15122C
15123C              8/2008: CHECK FOR "NAME(INDEX)" SYNTAX.
15124C
15125C              3/2012: DO A MORE COMPLETE CHECK OF IANS.
15126C                      THE VARIABLE NAME AFTER THE "=" MUST
15127C                      CONTAIN THAT VARIABLE NAME AND NOTHING
15128C                      ELSE.  FIRST, SEARCH FOR EQUAL SIGN.
15129C                      THEN SEARCH FOR VARIABLE NAME.
15130C
15131CCCCC          DO77003J=1,IWIDTH
15132CCCCC            IF(IANS(J)(1:1).EQ.'(')GOTO77009
15133C77003         CONTINUE
15134               DO7703J=1,IWIDTH
15135                 IF(IANS(J)(1:1).EQ.'=')THEN
15136                   IHTEMP=' '
15137                   ICNT=0
15138                   DO7704JJ=J+1,IWIDTH
15139                     IF(IANS(JJ).NE.' ')THEN
15140                       DO7705KK=JJ,MIN(JJ+11,IWIDTH)
15141                         IF(IANS(KK).EQ.' ')GOTO7707
15142                         ICNT=ICNT+1
15143                         IF(ICNT.GT.8)GOTO77009
15144                         IHTEMP(ICNT:ICNT)=IANS(KK)(1:1)
15145 7705                  CONTINUE
15146                     ENDIF
15147 7704              CONTINUE
15148 7707              CONTINUE
15149                   IF(IHTEMP(1:4).NE.IH(1:4) .OR.
15150     1                IHTEMP(5:8).NE.IH2(1:4))GOTO77009
15151                 ENDIF
15152 7703          CONTINUE
15153C
15154               GOTO5241
15155C
15156            ENDIF
1515777001     CONTINUE
1515877009     CONTINUE
15159        ENDIF
15160      ENDIF
15161C
15162CCCCC THE FOLLOWING SECTION WAS ADDED DECEMBER 1989
15163C               *****************************************************
15164C               **  CHECK FOR (DEX) GENERATOR ARITHMETIC SUBCASES  **
15165C               *****************************************************
15166C
15167      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'GENE')GOTO1070
15168      GOTO1079
15169C
15170 1070 CONTINUE
15171      IF(IHARG(4).EQ.'ADDI')GOTO2701
15172      IF(IHARG(4).EQ.'SUBT')GOTO2702
15173      IF(IHARG(4).EQ.'MULT')GOTO2703
15174 1079 CONTINUE
15175C
15176CCCCC THE FOLLOWING 4 LINES WERE ADDED JULY 1991
15177C               ************************
15178C               **  CHECK FOR   COCODE (= CORANK)
15179C               ************************
15180C
15181      IF(NUMARG.GE.3.AND.
15182     1IHARG(3).EQ.'COCO'.AND.IHARG2(3).EQ.'DE  ')GOTO2801
15183      IF(NUMARG.GE.3.AND.
15184     1IHARG(3).EQ.'COCO'.AND.IHARG2(3).EQ.'DED ')GOTO2801
15185CCCCC THE FOLLOWING 4 LINES WERE ADDED OCTOBER 1991
15186      IF(NUMARG.GE.3.AND.
15187     1IHARG(3).EQ.'CORA'.AND.IHARG2(3).EQ.'NK  ')GOTO2801
15188      IF(NUMARG.GE.3.AND.
15189     1IHARG(3).EQ.'CORA'.AND.IHARG2(3).EQ.'NKED')GOTO2801
15190C
15191CCCCC THE FOLLOWING SECTION WAS ADDED JULY 1991
15192C               ************************
15193C               **  CHECK FOR   COCOPY
15194C               ************************
15195C
15196      IF(NUMARG.GE.3.AND.
15197     1IHARG(3).EQ.'COCO'.AND.IHARG2(3).EQ.'PY  ')GOTO2802
15198      IF(NUMARG.GE.3.AND.
15199     1IHARG(3).EQ.'COCO'.AND.IHARG2(3).EQ.'PIED')GOTO2802
15200C
15201C               **************************************
15202C               **  CHECK FOR   CUSUM ARL           **
15203C               **  CHECK FOR   ONE-SIDED CUSUM ARL **
15204C               **  CHECK FOR   TWO-SIDED CUSUM ARL **
15205C               **************************************
15206      IF(NUMARG.GE.4.AND.
15207     1IHARG(3).EQ.'CUSU'.AND.IHARG(4).EQ.'ARL ')GOTO2806
15208      IF(NUMARG.GE.6.AND.
15209     1IHARG(3).EQ.'TWO'.AND.IHARG(4).EQ.'SIDE'.AND.
15210     1IHARG(5).EQ.'CUSU'.AND.IHARG(6).EQ.'ARL ')GOTO2808
15211      IF(NUMARG.GE.6.AND.
15212     1IHARG(3).EQ.'2'.AND.IHARG(4).EQ.'SIDE'.AND.
15213     1IHARG(5).EQ.'CUSU'.AND.IHARG(6).EQ.'ARL ')GOTO2808
15214      IF(NUMARG.GE.6.AND.
15215     1IHARG(3).EQ.'ONE'.AND.IHARG(4).EQ.'SIDE'.AND.
15216     1IHARG(5).EQ.'CUSU'.AND.IHARG(6).EQ.'ARL ')GOTO2810
15217      IF(NUMARG.GE.6.AND.
15218     1IHARG(3).EQ.'1'.AND.IHARG(4).EQ.'SIDE'.AND.
15219     1IHARG(5).EQ.'CUSU'.AND.IHARG(6).EQ.'ARL ')GOTO2810
15220C
15221C               **************************************
15222C               **  CHECK FOR   STANDARDIZE         **
15223C               **  CHECK FOR   LOCATION STANDARDIZE**
15224C               **  CHECK FOR   ZSCORE STANDARDIZE  **
15225C               **  CHECK FOR   ZSCORE              **
15226C               **  CHECK FOR   USCORE              **
15227C               **  CHECK FOR   MEAN RANK           **
15228C               **  CHECK FOR   MEDIAN RANK         **
15229C               **************************************
15230C
15231      IF(NUMARG.GE.3.AND.
15232     1IHARG(3).EQ.'STAN')GOTO2812
15233      IF(NUMARG.GE.3.AND.
15234     1IHARG(3).EQ.'ZSCO')GOTO2818
15235      IF(NUMARG.GE.3.AND.
15236     1IHARG(3).EQ.'USCO')GOTO2820
15237      IF(NUMARG.GE.4.AND.
15238     1IHARG(3).EQ.'ZSCO'.AND.IHARG(4).EQ.'STAN')GOTO2814
15239      IF(NUMARG.GE.4.AND.
15240     1IHARG(3).EQ.'LOCA'.AND.IHARG(4).EQ.'STAN')GOTO2816
15241      IF(NUMARG.GE.4.AND.
15242     1IHARG(3).EQ.'SCAL'.AND.IHARG(4).EQ.'STAN')GOTO2822
15243      IF(NUMARG.GE.4.AND.
15244     1IHARG(3).EQ.'MEAN'.AND.IHARG(4).EQ.'RANK')GOTO2819
15245      IF(NUMARG.GE.4.AND.
15246     1IHARG(3).EQ.'AVER'.AND.IHARG(4).EQ.'RANK')GOTO2819
15247      IF(NUMARG.GE.4.AND.
15248     1IHARG(3).EQ.'MEDI'.AND.IHARG(4).EQ.'RANK')GOTO2821
15249C
15250      IF(NUMARG.GE.4.AND.
15251     1IHARG(4).EQ.'STAC')GOTO2824
15252      IF(NUMARG.GE.6.AND.
15253     1IHARG(5).EQ.'REPL'.AND.IHARG(6).EQ.'STAC')GOTO2825
15254      IF(NUMARG.GE.3.AND.
15255     1IHARG(3).EQ.'UNST')GOTO2826
15256C
15257C               **************************************
15258C               **  CHECK FOR   CROSS TABULATE      **
15259C               **              <STAT>              **
15260C               **************************************
15261C
15262CCCCC SEPTEMBER 2001: CROSS TABULATE <STAT>
15263CCCCC AUGUST 2002: ADD ADDITIONAL STATISTICS, ALSO SET
15264CCCCC ICASS7 FOR SUBSEQUENT USE IN DPMATC, DPMAT2
15265CCCCC MARCH 2009: USE "EXTSTA" TO PARSE.
15266C
15267CCCCC JANUARY 2013: CHECK FOR "CROSS TABULATE CUMULATIVE"
15268C
15269      ISTEPN='2P'
15270      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
15271     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
15272C
15273      IF(NUMARG.GE.5.AND.IHARG(3).EQ.'CROS'.AND.IHARG(4).EQ.'TABU'.AND.
15274     1   IHARG(5).EQ.'CUMU')THEN
15275        JMIN=6
15276        JMAX=MIN(NUMARG,JMIN+6)
15277        CALL EXTSTA(ICOM,ICOM2,IHARG,IHARG2,IARGT,ARG,NUMARG,JMIN,JMAX,
15278     1              ICASS7,ISTANM,ISTANR,ISTADF,IFOUN7,ILOCV,
15279     1              ISUBRO,IBUGA3,IERROR)
15280C
15281        ICASL7='CTCU'
15282        IF(IFOUN7.EQ.'YES')GOTO8020
15283      ENDIF
15284C
15285      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'CROS'.AND.IHARG(4).EQ.'TABU')THEN
15286        JMIN=5
15287        JMAX=MIN(NUMARG,JMIN+6)
15288        CALL EXTSTA(ICOM,ICOM2,IHARG,IHARG2,IARGT,ARG,NUMARG,JMIN,JMAX,
15289     1              ICASS7,ISTANM,ISTANR,ISTADF,IFOUN7,ILOCV,
15290     1              ISUBRO,IBUGA3,IERROR)
15291C
15292        ICASL7='CTAB'
15293        IF(IFOUN7.EQ.'YES')GOTO8020
15294      ENDIF
15295C
15296C               **************************************
15297C               **  CHECK FOR   MOVING <STAT>       **
15298C               **************************************
15299C
15300      ISTEPN='2Q'
15301      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
15302     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
15303C
15304      IF(NUMARG.GE.3.AND.IHARG(3).EQ.'MOVI')THEN
15305        JMIN=4
15306        JMAX=MIN(NUMARG,JMIN+6)
15307        CALL EXTSTA(ICOM,ICOM2,IHARG,IHARG2,IARGT,ARG,NUMARG,JMIN,JMAX,
15308     1              ICASS7,ISTANM,ISTANR,ISTADF,IFOUN7,ILOCV,
15309     1              ISUBRO,IBUGA3,IERROR)
15310C
15311        ICASL7='MOVI'
15312        IF(IFOUN7.EQ.'YES')GOTO8020
15313      ENDIF
15314C
15315C               **************************************
15316C               **  CHECK FOR   WINDOW <STAT>       **
15317C               **************************************
15318C
15319      ISTEPN='2R'
15320      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
15321     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
15322C
15323      IF(NUMARG.GE.3.AND.IHARG(3).EQ.'WIND')THEN
15324        JMIN=4
15325        JMAX=MIN(NUMARG,JMIN+6)
15326        CALL EXTSTA(ICOM,ICOM2,IHARG,IHARG2,IARGT,ARG,NUMARG,JMIN,JMAX,
15327     1              ICASS7,ISTANM,ISTANR,ISTADF,IFOUN7,ILOCV,
15328     1              ISUBRO,IBUGA3,IERROR)
15329C
15330        ICASL7='WIND'
15331        IF(IFOUN7.EQ.'YES')GOTO8020
15332      ENDIF
15333C
15334C               **************************************
15335C               **  CHECK FOR   VECTOR PERCENTILE   **
15336C               **************************************
15337C
15338      IF(NUMARG.GE.4.AND.IHARG(3).EQ.'VECT'.AND.
15339     1   IHARG(4).EQ.'PERC')GOTO2830
15340C
15341C               ********************************
15342C               **  IF NO MATCH, THEN RETURN  **
15343C               ********************************
15344C
15345      ISTEPN='2S'
15346      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
15347     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
15348C
15349      IFOUN7='NO'
15350      GOTO9000
15351C
15352C               **********************
15353C               **  STEP 2--        **
15354C               **  DEFINE ICASL7.  **
15355C               **********************
15356C
15357 1201 CONTINUE
15358      ICASL7='SORT'
15359      GOTO8004
15360C
15361 1202 CONTINUE
15362      ICASL7='RANK'
15363      GOTO8004
15364C
15365 1203 CONTINUE
15366      ICASL7='CODE'
15367      GOTO8004
15368C
15369 1204 CONTINUE
15370      ICASL7='DIST'
15371      GOTO8004
15372C
15373C     ---------------
15374C
15375 1205 CONTINUE
15376      ICASL7='SEQD'
15377      GOTO8004
15378C
15379 1206 CONTINUE
15380      ICASL7='SEQD'
15381      GOTO8005
15382C
1538331206 CONTINUE
15384      ICASL7='SEQS'
15385      GOTO8005
15386C
1538741207 CONTINUE
15388      ICASL7='SEQP'
15389      GOTO8005
15390C
1539131208 CONTINUE
15392      ICASL7='SEME'
15393      GOTO8005
15394C
1539531209 CONTINUE
15396      ICASL7='SEMN'
15397      GOTO8005
15398C
1539931210 CONTINUE
15400      ICASL7='SEMX'
15401      GOTO8005
15402C
1540331211 CONTINUE
15404      ICASL7='SEQL'
15405      GOTO8005
15406C
1540731212 CONTINUE
15408      ICASL7='SEQU'
15409      GOTO8005
15410C
1541151206 CONTINUE
15412      ICASL7='GSQD'
15413      GOTO8006
15414C
1541551207 CONTINUE
15416      ICASL7='GSQS'
15417      GOTO8006
15418C
1541951208 CONTINUE
15420      ICASL7='GSQP'
15421      GOTO8006
15422C
1542351209 CONTINUE
15424      ICASL7='GSQM'
15425      GOTO8006
15426C
1542751210 CONTINUE
15428      ICASL7='GQMN'
15429      GOTO8006
15430C
1543151211 CONTINUE
15432      ICASL7='GQMX'
15433      GOTO8006
15434C
1543551212 CONTINUE
15436      ICASL7='GSQL'
15437      GOTO8006
15438C
1543951213 CONTINUE
15440      ICASL7='GSQU'
15441      GOTO8006
15442C
1544311206 CONTINUE
15444      ICASL7='IART'
15445      GOTO8005
15446C
1544721206 CONTINUE
15448      ICASL7='CUMD'
15449      GOTO8005
15450C
15451 1207 CONTINUE
15452      ICASL7='CUMS'
15453      GOTO8005
15454C
1545511207 CONTINUE
15456      ICASL7='CUMA'
15457      GOTO8005
15458C
1545921207 CONTINUE
15460      ICASL7='CMIN'
15461      GOTO8005
15462C
1546331207 CONTINUE
15464      ICASL7='CMAX'
15465      GOTO8005
15466C
1546711208 CONTINUE
15468      ICASL7='FLIP'
15469      GOTO8004
15470C
1547111209 CONTINUE
15472      ICASL7='CUMH'
15473      GOTO8005
15474C
1547511211 CONTINUE
15476      ICASL7='EXPS'
15477      GOTO8005
15478C
1547911210 CONTINUE
15480      ICASL7='HAZA'
15481      GOTO8004
15482C
15483 1208 CONTINUE
15484      ICASL7='CUMP'
15485      GOTO8005
15486C
15487 1209 CONTINUE
15488      ICASL7='CUMI'
15489      GOTO8005
15490C
1549111213 CONTINUE
15492      ICASL7='MTCH'
15493      GOTO8004
15494C
1549511214 CONTINUE
15496      ICASL7='REPL'
15497      GOTO8004
15498C
1549911215 CONTINUE
15500      ICASL7='MTC2'
15501      GOTO8005
15502C
15503C     ---------------
15504C
15505 1210 CONTINUE
15506      ICASL7='CONV'
15507      GOTO8004
15508C
15509 1211 CONTINUE
15510      ICASL7='DECO'
15511      GOTO8004
15512C
15513 1212 CONTINUE
15514      ICASL7='SORC'
15515      GOTO8004
15516C
15517 1213 CONTINUE
15518      ICASL7='FREQ'
15519      GOTO8004
15520C
15521 1216 CONTINUE
15522      ICASL7='SUMD'
15523      GOTO8004
15524C
15525 1217 CONTINUE
15526      ICASL7='INTR'
15527      GOTO8004
15528C
15529 1218 CONTINUE
15530      ICASL7='INTR'
15531      GOTO8005
15532C
1553311218 CONTINUE
15534      ICASL7='HERI'
15535      GOTO8005
15536C
1553711219 CONTINUE
15538      ICASL7='HERG'
15539      GOTO8005
15540C
1554111221 CONTINUE
15542      ICASL7='CORE'
15543      GOTO8005
15544C
1554511222 CONTINUE
15546      ICASL7='CONF'
15547      GOTO8006
15548C
1554911223 CONTINUE
15550      ICASL7='CKCL'
15551      GOTO8006
15552C
1555311224 CONTINUE
15554      ICASL7='CKCP'
15555      GOTO8007
15556C
15557CCCCC FOLLOWING SECTION ADDED MAY 1995.
15558 1219 CONTINUE
15559      ICASL7='LINT'
15560      GOTO8005
15561C
15562C     -----CODINGS-----
15563C
15564 1220 CONTINUE
15565      ICASL7='CODH'
15566      GOTO8004
15567C
15568 1221 CONTINUE
15569      ICASL7='COD1'
15570      GOTO8004
15571C
15572 1222 CONTINUE
15573      ICASL7='COD2'
15574      GOTO8004
15575C
15576 1223 CONTINUE
15577      ICASL7='COD3'
15578      GOTO8004
15579C
15580 1224 CONTINUE
15581      ICASL7='COD4'
15582      GOTO8004
15583C
15584 1225 CONTINUE
15585      ICASL7='COD5'
15586      GOTO8004
15587C
15588 1226 CONTINUE
15589      ICASL7='COD6'
15590      GOTO8004
15591C
15592 1227 CONTINUE
15593      ICASL7='COD7'
15594      GOTO8004
15595C
15596 1228 CONTINUE
15597      ICASL7='COD8'
15598      GOTO8004
15599C
15600 1229 CONTINUE
15601      ICASL7='COD9'
15602      GOTO8004
15603C
15604 1230 CONTINUE
15605      ICASL7='CO10'
15606      GOTO8004
15607C
15608 1231 CONTINUE
15609      ICASL7='CODZ'
15610      GOTO8004
15611C
15612 1232 CONTINUE
15613      ICASL7='CODX'
15614      GOTO8004
15615C
15616 1233 CONTINUE
15617      ICASL7='CDEX'
15618      GOTO8005
15619C
15620 1234 CONTINUE
15621      ICASL7='CDE2'
15622      GOTO8007
15623C
15624 1235 CONTINUE
15625      ICASL7='CDE2'
15626      GOTO8006
15627C
15628 1241 CONTINUE
15629      ICASL7='BIWE'
15630      GOTO8004
15631C
15632 1242 CONTINUE
15633      ICASL7='TRIC'
15634      GOTO8004
15635C
15636 1243 CONTINUE
15637      ICASL7='FRAC'
15638      GOTO8005
15639C
15640CCCCC FOLLOWING SECTION ADDED MAY 1994.
15641 1248 CONTINUE
15642      ICASL7='BILI'
15643      GOTO8005
15644C
15645CCCCC FOLLOWING SECTION ADDED MAY 1994.
15646 1249 CONTINUE
15647      ICASL7='2DIN'
15648      GOTO8005
15649C
15650CCCCC FOLLOWING SECTION ADDED MAY 1994.
15651 1250 CONTINUE
15652      ICASL7='BIVA'
15653      GOTO8005
15654C
15655C     -----TRANSFORMS-----
15656C
15657 1251 CONTINUE
15658      ICASL7='SINT'
15659      GOTO8005
15660C
15661 1252 CONTINUE
15662      ICASL7='COST'
15663      GOTO8005
15664C
15665 1253 CONTINUE
15666      ICASL7='FOUT'
15667      IF(NUMARG.LE.6)ICASL7='FOU1'
15668      IF(NUMARG.GE.7.AND.
15669     1   IHARG(7).EQ.'SUBS'.AND.IHARG2(7).EQ.'ET  ')ICASL7='FOU1'
15670      IF(NUMARG.GE.7.AND.
15671     1   IHARG(7).EQ.'EXCE'.AND.IHARG2(7).EQ.'PT  ')ICASL7='FOU1'
15672      IF(NUMARG.GE.7.AND.
15673     1   IHARG(7).EQ.'FOR '.AND.IHARG2(7).EQ.'    ')ICASL7='FOU1'
15674      GOTO8006
15675C
15676 1254 CONTINUE
15677      ICASL7='IFOU'
15678      IF(NUMARG.LE.7)ICASL7='IFO1'
15679      IF(NUMARG.GE.8.AND.
15680     1   IHARG(8).EQ.'SUBS'.AND.IHARG2(8).EQ.'ET  ')ICASL7='IFO1'
15681      IF(NUMARG.GE.8.AND.
15682     1   IHARG(8).EQ.'EXCE'.AND.IHARG2(8).EQ.'PT  ')ICASL7='IFO1'
15683      IF(NUMARG.GE.8.AND.
15684     1   IHARG(8).EQ.'FOR '.AND.IHARG2(8).EQ.'    ')ICASL7='IFO1'
15685      GOTO8007
15686C
15687 1255 CONTINUE
15688      ICASL7='FFT'
15689      IF(NUMARG.LE.5)ICASL7='FFT1'
15690      IF(NUMARG.GE.6.AND.
15691     1   IHARG(6).EQ.'SUBS'.AND.IHARG2(6).EQ.'ET  ')ICASL7='FFT1'
15692      IF(NUMARG.GE.6.AND.
15693     1   IHARG(6).EQ.'EXCE'.AND.IHARG2(6).EQ.'PT  ')ICASL7='FFT1'
15694      IF(NUMARG.GE.6.AND.
15695     1   IHARG(6).EQ.'FOR '.AND.IHARG2(6).EQ.'    ')ICASL7='FFT1'
15696      GOTO8005
15697C
15698 1256 CONTINUE
15699      ICASL7='IFFT'
15700      IF(NUMARG.LE.6)ICASL7='IFF1'
15701      IF(NUMARG.GE.7.AND.
15702     1   IHARG(7).EQ.'SUBS'.AND.IHARG2(7).EQ.'ET  ')ICASL7='IFF1'
15703      IF(NUMARG.GE.7.AND.
15704     1   IHARG(7).EQ.'EXCE'.AND.IHARG2(7).EQ.'PT  ')ICASL7='IFF1'
15705      IF(NUMARG.GE.7.AND.
15706     1   IHARG(7).EQ.'FOR '.AND.IHARG2(7).EQ.'    ')ICASL7='IFF1'
15707      GOTO8006
15708C
15709 1261 CONTINUE
15710      ICASL7='LAPT'
15711      GOTO8005
15712C
15713 1262 CONTINUE
15714      ICASL7='ILAT'
15715      GOTO8006
15716C
15717CCCCC THE FOLLOWING SECTION WAS ADDED JANUARY 1989
15718 1271 CONTINUE
15719      ICASL7='BOOT'
15720      GOTO8005
15721C
15722CCCCC THE FOLLOWING SECTION WAS ADDED JANUARY 1990
15723 1272 CONTINUE
15724      ICASL7='SUBS'
15725      GOTO8004
15726C
15727CCCCC THE FOLLOWING SECTION WAS ADDED JANUARY 1990
15728 1273 CONTINUE
15729      ICASL7='SUBS'
15730      GOTO8005
15731CCCCC THE FOLLOWING SECTION WAS ADDED OCTOBER 1993
15732 1274 CONTINUE
15733      ICASL7='JAIN'
15734      GOTO8005
15735C
15736 1275 CONTINUE
15737      ICASL7='SRNP'
15738      GOTO8007
15739C
15740C     -----COMPLEX NUMBERS-----
15741C
15742 2101 CONTINUE
15743      ICASL7='COAD'
15744      GOTO8006
15745C
15746 2102 CONTINUE
15747      ICASL7='COSU'
15748      GOTO8006
15749C
15750 2103 CONTINUE
15751      ICASL7='COMU'
15752      GOTO8006
15753C
15754 2104 CONTINUE
15755      ICASL7='CODI'
15756      GOTO8006
15757C
15758 2105 CONTINUE
15759      ICASL7='COEX'
15760      GOTO8006
15761C
15762 2106 CONTINUE
15763      ICASL7='COSR'
15764      GOTO8007
15765C
15766 2107 CONTINUE
15767      ICASL7='CORO'
15768      IF(NUMARG.LE.6)ICASL7='COR1'
15769      IF(NUMARG.GE.7.AND.
15770     1   IHARG(7).EQ.'SUBS'.AND.IHARG2(7).EQ.'ET  ')ICASL7='COR1'
15771      IF(NUMARG.GE.7.AND.
15772     1   IHARG(7).EQ.'EXCE'.AND.IHARG2(7).EQ.'PT  ')ICASL7='COR1'
15773      IF(NUMARG.GE.7.AND.
15774     1   IHARG(7).EQ.'FOR '.AND.IHARG2(7).EQ.'    ')ICASL7='COR1'
15775      GOTO8006
15776C
15777 2108 CONTINUE
15778      ICASL7='COCO'
15779      GOTO8006
15780C
15781C     -----POLYNOMIALS-----
15782C
15783 2201 CONTINUE
15784      ICASL7='POAD'
15785      GOTO8005
15786C
15787 2202 CONTINUE
15788      ICASL7='POSU'
15789      GOTO8005
15790C
15791 2203 CONTINUE
15792      ICASL7='POMU'
15793      GOTO8005
15794C
15795 2204 CONTINUE
15796      ICASL7='PODI'
15797      GOTO8006
15798C
15799 2205 CONTINUE
15800      ICASL7='POSQ'
15801      GOTO8005
15802C
15803 2206 CONTINUE
15804      ICASL7='POSR'
15805      GOTO8006
15806C
15807 2207 CONTINUE
15808      ICASL7='POGC'
15809      GOTO8005
15810C
15811 2208 CONTINUE
15812      ICASL7='POLC'
15813      GOTO8005
15814C
15815 2209 CONTINUE
15816      ICASL7='POEV'
15817      GOTO8005
15818C
15819 2210 CONTINUE
15820      ICASL7='PODI'
15821      GOTO8005
15822C
15823C     -----VECTORS-----
15824C
15825 2301 CONTINUE
15826      ICASL7='VEAD'
15827      GOTO8005
15828C
15829 2302 CONTINUE
15830      ICASL7='VESU'
15831      GOTO8005
15832C
15833 2303 CONTINUE
15834      ICASL7='VEDP'
15835      GOTO8006
15836C
15837 2304 CONTINUE
15838      ICASL7='VECP'
15839      GOTO8006
15840C
15841 2305 CONTINUE
15842      ICASL7='VELE'
15843      GOTO8005
15844C
15845 2306 CONTINUE
15846      ICASL7='VEDI'
15847      GOTO8005
15848C
15849 2307 CONTINUE
15850      ICASL7='VEAN'
15851      GOTO8005
15852C
15853C     -----SETS-----
15854C
15855 2401 CONTINUE
15856      ICASL7='SEUN'
15857      GOTO8005
15858C
15859 2402 CONTINUE
15860      ICASL7='SEIN'
15861      GOTO8005
15862C
15863 2403 CONTINUE
15864      ICASL7='SECO'
15865      GOTO8005
15866C
15867 2404 CONTINUE
15868      ICASL7='SECA'
15869      GOTO8005
15870C
15871 2405 CONTINUE
15872      ICASL7='SECP'
15873      GOTO8007
15874C
15875 2406 CONTINUE
15876      ICASL7='SEEL'
15877      GOTO8005
15878C
15879C     -----LOGICALS-----
15880C
15881 2501 CONTINUE
15882      ICASL7='LOAN'
15883      GOTO8005
15884C
15885 2502 CONTINUE
15886      ICASL7='LOOR'
15887      GOTO8005
15888C
15889 2503 CONTINUE
15890      ICASL7='LONA'
15891      GOTO8005
15892C
15893 2504 CONTINUE
15894      ICASL7='LONO'
15895      GOTO8005
15896C
15897 2505 CONTINUE
15898      ICASL7='LOIM'
15899      GOTO8005
15900C
15901 2506 CONTINUE
15902      ICASL7='LOEQ'
15903      GOTO8005
15904C
15905 2507 CONTINUE
15906      ICASL7='LONT'
15907      GOTO8005
15908C
15909 2508 CONTINUE
15910      ICASL7='LOXO'
15911      GOTO8005
15912C
15913C     -----MATRICES-----
15914C
15915 2601 CONTINUE
15916      ICASL7='MAAD'
15917      GOTO8005
15918C
15919 2602 CONTINUE
15920      ICASL7='MASU'
15921      GOTO8005
15922C
15923 2603 CONTINUE
15924      ICASL7='MAMU'
15925      GOTO8005
15926C
15927 2604 CONTINUE
15928      ICASL7='MASO'
15929      GOTO8005
15930C
15931 2605 CONTINUE
15932      ICASL7='MAIN'
15933      GOTO8005
15934C
15935 2606 CONTINUE
15936      ICASL7='MATR'
15937      GOTO8005
15938C
15939 2607 CONTINUE
15940      ICASL7='MAAJ'
15941      GOTO8005
15942C
15943 2608 CONTINUE
15944      ICASL7='MACE'
15945      GOTO8006
15946C
15947 2609 CONTINUE
15948      ICASL7='MAEA'
15949      GOTO8005
15950C
15951 2610 CONTINUE
15952      ICASL7='MAEA'
15953      GOTO8006
15954C
15955 2611 CONTINUE
15956      ICASL7='MAEE'
15957      GOTO8005
15958C
15959 2612 CONTINUE
15960      ICASL7='MAEE'
15961      GOTO8006
15962C
15963 2613 CONTINUE
15964      ICASL7='MARA'
15965      GOTO8005
15966C
15967 2614 CONTINUE
15968      ICASL7='MADE'
15969      GOTO8005
15970C
15971 2615 CONTINUE
15972      ICASL7='MAPE'
15973      GOTO8005
15974C
15975 2616 CONTINUE
15976      ICASL7='MASN'
15977      GOTO8006
15978C
15979 2617 CONTINUE
15980      ICASL7='MASR'
15981      GOTO8006
15982C
15983 2618 CONTINUE
15984      ICASL7='MANR'
15985      GOTO8006
15986C
15987 2619 CONTINUE
15988      ICASL7='MANR'
15989      GOTO8007
15990C
15991 2620 CONTINUE
15992      ICASL7='MANC'
15993      GOTO8006
15994C
15995 2621 CONTINUE
15996      ICASL7='MANC'
15997      GOTO8007
15998C
15999 2622 CONTINUE
16000      ICASL7='MASS'
16001      GOTO8006
16002C
16003 2623 CONTINUE
16004      ICASL7='MASS'
16005      GOTO8005
16006C
16007 2624 CONTINUE
16008      ICASL7='MARN'
16009      GOTO8005
16010C
16011 2631 CONTINUE
16012      ICASL7='MATC'
16013      GOTO8005
16014C
16015 2632 CONTINUE
16016      ICASL7='MASM'
16017      GOTO8005
16018C
16019 2633 CONTINUE
16020      ICASL7='MAMI'
16021      GOTO8005
16022C
16023 2634 CONTINUE
16024      ICASL7='MACF'
16025      GOTO8005
16026C
16027 2635 CONTINUE
16028      ICASL7='MADF'
16029      GOTO8005
16030C
16031 2636 CONTINUE
16032      ICASL7='MAEN'
16033      GOTO8006
16034C
16035 2637 CONTINUE
16036      ICASL7='MAEN'
16037      GOTO8005
16038C
16039 2641 CONTINUE
16040      ICASL7='MAVC'
16041      GOTO8006
16042C
16043 2642 CONTINUE
16044      ICASL7='MACO'
16045      GOTO8005
16046C
16047 2643 CONTINUE
16048      ICASL7='MAPC'
16049      IMSUBC='EVEC'
16050      GOTO8006
16051 2644 CONTINUE
16052      ICASL7='MAPC'
16053      IMSUBC='EVAL'
16054      GOTO8006
16055 2645 CONTINUE
16056      ICASL7='MAPC'
16057      IMSUBC='PC'
16058      GOTO8005
16059CCCCC JULY 1993.  FOLLOWING LINES ADDED FOR SINGULAR VALUE DECOMP.
16060 2646 CONTINUE
16061      ICASL7='MASD'
16062      GOTO8008
16063 2647 CONTINUE
16064      ICASL7='MASV'
16065      GOTO8005
16066 2648 CONTINUE
16067      ICASL7='MASF'
16068      GOTO8008
16069CCCCC END CHANGE
16070CCCCC SEPTEMBER 1993.  FOLLOWING LINES ADDED FOR MATRIX ROW,
16071CCCCC MATRIX ELEMENT.
16072 2649 CONTINUE
16073      ICASL7='MARW'
16074      GOTO8005
16075 2650 CONTINUE
16076      ICASL7='MAEL'
16077      GOTO8005
16078CCCCC END CHANGE
16079CCCCC OCTOBER 1993.  FOLLOWING SECTION ADDED FOR CHOLESKY DECOMP
16080 2651 CONTINUE
16081      ICASL7='MACH'
16082      GOTO8006
16083 2652 CONTINUE
16084      ICASL7='MACH'
16085      GOTO8005
16086C
16087 2653 CONTINUE
16088      IMSUBC='EVEC'
16089      ICASL7='MAP1'
16090      IF(IHARG(3).EQ.'SECO')ICASL7='MAP2'
16091      IF(IHARG(3).EQ.'THIR')ICASL7='MAP3'
16092      IF(IHARG(3).EQ.'FOUR')ICASL7='MAP4'
16093      IF(IHARG(3).EQ.'FIFT')ICASL7='MAP5'
16094      IF(IHARG(3).EQ.'SIXT')ICASL7='MAP6'
16095      IF(IHARG(3).EQ.'SEVE')ICASL7='MAP7'
16096      IF(IHARG(3).EQ.'EIGH')ICASL7='MAP8'
16097      IF(IHARG(3).EQ.'NINT')ICASL7='MAP9'
16098      IF(IHARG(3).EQ.'TENT')ICASL7='MA10'
16099      GOTO8007
16100 2654 CONTINUE
16101      IMSUBC='EVAL'
16102      ICASL7='MAP1'
16103      IF(IHARG(3).EQ.'SECO')ICASL7='MAP2'
16104      IF(IHARG(3).EQ.'THIR')ICASL7='MAP3'
16105      IF(IHARG(3).EQ.'FOUR')ICASL7='MAP4'
16106      IF(IHARG(3).EQ.'FIFT')ICASL7='MAP5'
16107      IF(IHARG(3).EQ.'SIXT')ICASL7='MAP6'
16108      IF(IHARG(3).EQ.'SEVE')ICASL7='MAP7'
16109      IF(IHARG(3).EQ.'EIGH')ICASL7='MAP8'
16110      IF(IHARG(3).EQ.'NINT')ICASL7='MAP9'
16111      IF(IHARG(3).EQ.'TENT')ICASL7='MA10'
16112      GOTO8007
16113 2655 CONTINUE
16114      IMSUBC='PC'
16115      ICASL7='MAP1'
16116      IF(IHARG(3).EQ.'SECO')ICASL7='MAP2'
16117      IF(IHARG(3).EQ.'THIR')ICASL7='MAP3'
16118      IF(IHARG(3).EQ.'FOUR')ICASL7='MAP4'
16119      IF(IHARG(3).EQ.'FIFT')ICASL7='MAP5'
16120      IF(IHARG(3).EQ.'SIXT')ICASL7='MAP6'
16121      IF(IHARG(3).EQ.'SEVE')ICASL7='MAP7'
16122      IF(IHARG(3).EQ.'EIGH')ICASL7='MAP8'
16123      IF(IHARG(3).EQ.'NINT')ICASL7='MAP9'
16124      IF(IHARG(3).EQ.'TENT')ICASL7='MA10'
16125      GOTO8006
16126C
16127 2656 CONTINUE
16128      ICASL7='MPCO'
16129      GOTO8006
16130C
16131 2657 CONTINUE
16132      ICASL7='MPCC'
16133      GOTO8007
16134C
16135 2658 CONTINUE
16136      ICASL7='MPCP'
16137      GOTO8007
16138C
16139 2659 CONTINUE
16140      ICASL7='MACC'
16141      GOTO8006
16142C
16143 2660 CONTINUE
16144      ICASL7='MACP'
16145      GOTO8006
16146C
16147 2661 CONTINUE
16148      ICASL7='MAEE'
16149      GOTO8004
16150C
16151 2662 CONTINUE
16152      ICASL7='MAEA'
16153      GOTO8004
16154CCCCC OCTOBER 1993.  FOLLOWING SECTION ADDED FOR CHOLESKY DECOMP
16155 2666 CONTINUE
16156      ICASL7='MACH'
16157      GOTO8004
16158C
16159 2668 CONTINUE
16160      ICASL7='MATZ'
16161      GOTO8005
16162C
16163 2669 CONTINUE
16164      ICASL7='MATZ'
16165      GOTO8006
16166C
16167 2670 CONTINUE
16168      ICASL7='MAUZ'
16169      GOTO8006
16170C
16171 2672 CONTINUE
16172      ICASL7='MACM'
16173      GOTO8005
16174C
16175CCCCC THE FOLLOWING SECTION WAS ADDED DECEMBER 1989
16176C     -----(DEX) GENERATORS-----
16177C
16178 2701 CONTINUE
16179      ICASL7='GEAD'
16180      GOTO8005
16181C
16182 2702 CONTINUE
16183      ICASL7='GESU'
16184      GOTO8005
16185C
16186 2703 CONTINUE
16187      ICASL7='GEMU'
16188      GOTO8005
16189C
16190CCCCC THE FOLLOWING WAS ADDED JULY 1991
16191 2801 CONTINUE
16192      ICASL7='COCD'
16193      GOTO8004
16194C
16195CCCCC THE FOLLOWING WAS ADDED JULY 1991
16196 2802 CONTINUE
16197      ICASL7='COCP'
16198      GOTO8004
16199C
16200CCCCC THE FOLLOWING WAS ADDED JUNE 1999
16201 2806 CONTINUE
16202      ICASL7='CUSA'
16203      GOTO8005
16204C
16205CCCCC THE FOLLOWING WAS ADDED JUNE 1999
16206 2808 CONTINUE
16207      ICASL7='CUSA'
16208      GOTO8007
16209C
16210CCCCC THE FOLLOWING WAS ADDED JUNE 1999
16211 2810 CONTINUE
16212      ICASL7='CU1A'
16213      GOTO8007
16214C
16215CCCCC THE FOLLOWING WAS ADDED MARCH 2001
16216 2812 CONTINUE
16217      ICASL7='STAN'
16218      GOTO8004
16219C
16220CCCCC THE FOLLOWING WAS ADDED MARCH 2001
16221 2814 CONTINUE
16222      ICASL7='LSST'
16223      GOTO8005
16224C
16225CCCCC THE FOLLOWING WAS ADDED MARCH 2001
16226 2816 CONTINUE
16227      ICASL7='LSTA'
16228      GOTO8005
16229C
16230CCCCC THE FOLLOWING WAS ADDED MARCH 2001
16231 2818 CONTINUE
16232      ICASL7='ZSCO'
16233      GOTO8004
16234C
16235CCCCC THE FOLLOWING WAS ADDED JUNE 2018
16236 2819 CONTINUE
16237      ICASL7='MNRK'
16238      GOTO8005
16239C
16240CCCCC THE FOLLOWING WAS ADDED MARCH 2001
16241 2820 CONTINUE
16242      ICASL7='USCO'
16243      GOTO8004
16244C
16245CCCCC THE FOLLOWING WAS ADDED JUNE 2018
16246 2821 CONTINUE
16247      ICASL7='MDRK'
16248      GOTO8005
16249C
16250CCCCC THE FOLLOWING WAS ADDED MARCH 2001
16251 2822 CONTINUE
16252      ICASL7='LSST'
16253      GOTO8005
16254C
16255CCCCC THE FOLLOWING WAS ADDED MARCH 2001
16256 2824 CONTINUE
16257      ICASL7='STAC'
16258      GOTO8005
16259C
16260 2825 CONTINUE
16261      ICASL7='RSTA'
16262      GOTO8007
16263C
16264CCCCC THE FOLLOWING WAS ADDED AUGUST 2016
16265 2826 CONTINUE
16266      ICASL7='UNST'
16267      GOTO8004
16268C
16269 2830 CONTINUE
16270      ICASL7='VPER'
16271      GOTO8005
16272C
16273CCCCC THE FOLLOWING SECTION WAS ADDED OCTOBER 1993
16274C     -----MORE MATRIX COMMANDS-
16275C
16276 2902 CONTINUE
16277      ICASL7='MAAU'
16278      GOTO8005
16279C
16280 2912 CONTINUE
16281      ICASL7='MADI'
16282      GOTO8005
16283C
16284 2922 CONTINUE
16285      ICASL7='MARR'
16286      GOTO8006
16287C
16288 2932 CONTINUE
16289      ICASL7='MARE'
16290      GOTO8006
16291C
16292 2942 CONTINUE
16293      ICASL7='DIMA'
16294      GOTO8005
16295C
16296 2952 CONTINUE
16297      ICASL7='MATD'
16298      GOTO8005
16299C
16300 2962 CONTINUE
16301      ICASL7='MAIS'
16302      GOTO8006
16303C
16304 2972 CONTINUE
16305      ICASL7='MATS'
16306      GOTO8005
16307C
16308 2982 CONTINUE
16309      ICASL7='MATI'
16310      GOTO8005
16311C
16312 4252 CONTINUE
16313      ICASL7='BLOC'
16314      GOTO8005
16315C
16316 4253 CONTINUE
16317      ICASL7='FLOC'
16318      GOTO8005
16319C
16320 4254 CONTINUE
16321      ICASL7='FLEN'
16322      GOTO8005
16323C
16324 4256 CONTINUE
16325      ICASL7='2DGR'
16326      GOTO8006
16327C
16328 4258 CONTINUE
16329      ICASL7='3DGR'
16330      GOTO8007
16331C
16332 4260 CONTINUE
16333      ICASL7='4DGR'
16334      GOTO8008
16335C
16336 5002 CONTINUE
16337      ICASL7='MPIN'
16338      GOTO8005
16339C
16340 5012 CONTINUE
16341      ICASL7='MQFO'
16342      GOTO8005
16343C
16344 5022 CONTINUE
16345      ICASL7='MHT1'
16346      GOTO8007
16347C
16348 5023 CONTINUE
16349      ICASL7='MHT2'
16350      GOTO8007
16351C
16352 5032 CONTINUE
16353      ICASL7='MDER'
16354      GOTO8006
16355C
16356 5033 CONTINUE
16357      ICASL7='MDEC'
16358      GOTO8006
16359C
16360 5034 CONTINUE
16361      ICASL7='MCSR'
16362      GOTO8006
16363C
16364 5035 CONTINUE
16365      ICASL7='MCSC'
16366      GOTO8006
16367C
16368 5036 CONTINUE
16369      ICASL7='MCDR'
16370      GOTO8006
16371C
16372 5037 CONTINUE
16373      ICASL7='MCDC'
16374      GOTO8006
16375C
16376 5038 CONTINUE
16377      ICASL7='MJSR'
16378      GOTO8006
16379C
16380 5039 CONTINUE
16381      ICASL7='MJSC'
16382      GOTO8006
16383C
16384 5040 CONTINUE
16385      ICASL7='MJDR'
16386      GOTO8006
16387C
16388 5041 CONTINUE
16389      ICASL7='MJDC'
16390      GOTO8006
16391C
16392 5042 CONTINUE
16393      ICASL7='MDMR'
16394      GOTO8006
16395C
16396 5044 CONTINUE
16397      ICASL7='MDMC'
16398      GOTO8006
16399C
16400 5045 CONTINUE
16401      ICASL7='MZSR'
16402      GOTO8007
16403C
16404 5046 CONTINUE
16405      ICASL7='MASC'
16406      GOTO8007
16407C
16408 5047 CONTINUE
16409      ICASL7='MZDR'
16410      GOTO8007
16411C
16412 5048 CONTINUE
16413      ICASL7='MADC'
16414      GOTO8007
16415C
16416 5049 CONTINUE
16417      ICASL7='MPDR'
16418      GOTO8006
16419C
1642055049 CONTINUE
16421      ICASL7='MPSR'
16422      GOTO8006
16423C
16424 5050 CONTINUE
16425      ICASL7='MPDC'
16426      GOTO8006
16427C
1642855050 CONTINUE
16429      ICASL7='MPSC'
16430      GOTO8006
16431C
16432 5051 CONTINUE
16433      ICASL7='MHDR'
16434      GOTO8006
16435C
16436 5052 CONTINUE
16437      ICASL7='MQRD'
16438      GOTO8005
16439C
16440 5053 CONTINUE
16441      ICASL7='MHDC'
16442      GOTO8006
16443C
16444 5054 CONTINUE
16445      ICASL7='MXDR'
16446      GOTO8006
16447C
16448 5055 CONTINUE
16449      ICASL7='MXDC'
16450      GOTO8006
16451C
16452 5062 CONTINUE
16453      ICASL7='MDKR'
16454      GOTO8006
16455C
16456 5064 CONTINUE
16457      ICASL7='MDKC'
16458      GOTO8006
16459C
16460 5072 CONTINUE
16461      ICASL7='MDBR'
16462      GOTO8006
16463C
16464 5074 CONTINUE
16465      ICASL7='MDBC'
16466      GOTO8006
16467C
16468 5082 CONTINUE
16469      ICASL7='MDCR'
16470      GOTO8006
16471C
16472 5084 CONTINUE
16473      ICASL7='MDCC'
16474      GOTO8006
16475C
16476 5086 CONTINUE
16477      ICASL7='MPVC'
16478      GOTO8007
16479C
16480 5087 CONTINUE
16481      ICASL7='MPVC'
16482      GOTO8006
16483C
16484 5088 CONTINUE
16485      ICASL7='MAAR'
16486      GOTO8006
16487C
16488 5090 CONTINUE
16489      ICASL7='MADR'
16490      GOTO8006
16491C
16492 5092 CONTINUE
16493      ICASL7='MAMM'
16494      GOTO8005
16495C
16496 5093 CONTINUE
16497      ICASL7='MSUM'
16498      GOTO8005
16499C
16500 5094 CONTINUE
16501      ICASL7='MADM'
16502      GOTO8006
16503C
16504 5096 CONTINUE
16505      ICASL7='MALC'
16506      GOTO8005
16507C
16508 5098 CONTINUE
16509      ICASL7='MAVT'
16510      GOTO8006
16511C
16512 5102 CONTINUE
16513      ICASL7='MAGM'
16514      GOTO8006
16515C
16516 5104 CONTINUE
16517      ICASL7='MAGS'
16518      GOTO8006
16519C
16520 5106 CONTINUE
16521      ICASL7='MAGS'
16522      GOTO8007
16523C
16524 5108 CONTINUE
16525      ICASL7='CBIN'
16526      GOTO8007
16527C
16528 5109 CONTINUE
16529      ICASL7='CBIR'
16530      GOTO8008
16531C
16532 5110 CONTINUE
16533      ICASL7='BINN'
16534      GOTO8005
16535C
16536 5112 CONTINUE
16537      ICASL7='BINN'
16538      GOTO8006
16539C
16540 5114 CONTINUE
16541      ICASL7='BINR'
16542      GOTO8006
16543C
16544 5116 CONTINUE
16545      ICASL7='BINR'
16546      GOTO8007
16547C
1654855112 CONTINUE
16549      ICASL7='BINP'
16550      GOTO8008
16551C
1655255113 CONTINUE
16553      ICASL7='BINP'
16554      GOTO8007
16555C
1655655114 CONTINUE
16557      ICASL7='BIRP'
16558      GOTO8009
16559C
1656055115 CONTINUE
16561      ICASL7='BIRP'
16562      GOTO8008
16563C
1656455212 CONTINUE
16565      ICASL7='PEAR'
16566      GOTO8006
16567C
1656855214 CONTINUE
16569      ICASL7='PEAK'
16570      GOTO8005
16571C
16572 5118 CONTINUE
16573      ICASL7='MVRN'
16574      GOTO8007
16575C
16576 5119 CONTINUE
16577      ICASL7='MTRN'
16578      GOTO8007
16579C
16580 5120 CONTINUE
16581      ICASL7='MACA'
16582      GOTO8005
16583C
16584 5122 CONTINUE
16585      ICASL7='MURN'
16586      GOTO8006
16587C
16588 5123 CONTINUE
16589      ICASL7='MPDF'
16590      GOTO8005
16591C
16592 5124 CONTINUE
16593      ICASL7='WIRN'
16594      GOTO8006
16595C
16596 5125 CONTINUE
16597      ICASL7='DIRN'
16598      GOTO8006
16599C
1660015125 CONTINUE
16601      ICASL7='DPDF'
16602      GOTO8005
16603C
16604 5126 CONTINUE
16605      ICASL7='VINF'
16606      GOTO8006
16607C
1660815127 CONTINUE
16609      ICASL7='DLPD'
16610      GOTO8006
16611C
16612 5128 CONTINUE
16613      ICASL7='CIND'
16614      GOTO8005
16615C
16616 5130 CONTINUE
16617      ICASL7='XTXI'
16618      GOTO8005
16619C
16620 5132 CONTINUE
16621      ICASL7='CRMA'
16622      GOTO8005
16623C
16624 5134 CONTINUE
16625      ICASL7='MACN'
16626      GOTO8006
16627C
16628 5136 CONTINUE
16629      ICASL7='MARC'
16630      GOTO8007
16631C
16632 5152 CONTINUE
16633      ICASL7='WINS'
16634      GOTO8004
16635C
16636 5154 CONTINUE
16637      ICASL7='NCDF'
16638      GOTO8006
16639C
16640 5156 CONTINUE
16641      ICASL7='TCDF'
16642      GOTO8006
16643C
16644 5158 CONTINUE
16645      ICASL7='IURN'
16646      GOTO8007
16647C
16648 5160 CONTINUE
16649      ICASL7='INRN'
16650      GOTO8007
16651C
16652 5190 CONTINUE
16653      ICASL7='FRAW'
16654      GOTO8006
16655C
16656 5192 CONTINUE
16657      ICASL7='ASHR'
16658      GOTO8006
16659C
16660 5193 CONTINUE
16661      ICASL7='ASHR'
16662      GOTO8005
16663C
16664 5194 CONTINUE
16665      ICASL7='ASHC'
16666      GOTO8007
16667C
16668 5195 CONTINUE
16669      ICASL7='IFRT'
16670      GOTO8008
16671C
16672 5196 CONTINUE
16673      ICASL7='CFRT'
16674      GOTO8008
16675C
16676 5197 CONTINUE
16677      ICASL7='MATB'
16678      GOTO8006
16679C
16680 5198 CONTINUE
16681      ICASL7='MATB'
16682      GOTO8007
16683C
16684 5199 CONTINUE
16685      ICASL7='MARB'
16686      GOTO8007
16687C
16688 5202 CONTINUE
16689      ICASL7='HCON'
16690      GOTO8006
16691C
16692 5203 CONTINUE
16693      ICASL7='HCON'
16694      GOTO8005
16695C
16696 5204 CONTINUE
16697      ICASL7='KCON'
16698      GOTO8006
16699C
16700 5205 CONTINUE
16701      ICASL7='KCON'
16702      GOTO8005
16703C
16704 5206 CONTINUE
16705      ICASL7='HCO2'
16706      GOTO8008
16707C
16708 5207 CONTINUE
16709      ICASL7='HCO2'
16710      GOTO8007
16711C
16712 5208 CONTINUE
16713      ICASL7='KCO2'
16714      GOTO8008
16715C
16716 5209 CONTINUE
16717      ICASL7='KCO2'
16718      GOTO8007
16719C
16720 5211 CONTINUE
16721      ICASL7='LMOM'
16722      GOTO8005
16723C
16724 5213 CONTINUE
16725      ICASL7='PWMO'
16726      GOTO8006
16727C
16728 5215 CONTINUE
16729      ICASL7='BPWM'
16730      GOTO8007
16731C
16732 5217 CONTINUE
16733      ICASL7='JITT'
16734      GOTO8004
16735C
16736 5219 CONTINUE
16737      ICASL7='AGCO'
16738      GOTO8007
16739C
16740 5220 CONTINUE
16741      ICASL7='AGCO'
16742      GOTO8008
16743C
16744 5221 CONTINUE
16745      ICASL7='EBLL'
16746      GOTO8007
16747C
16748 5223 CONTINUE
16749      ICASL7='EBUL'
16750      GOTO8007
16751C
16752 5224 CONTINUE
16753      ICASL7='BRAT'
16754      GOTO8009
16755C
16756 5225 CONTINUE
16757      ICASL7='2DCH'
16758      GOTO8007
16759C
16760 5226 CONTINUE
16761      ICASL7='POPL'
16762      GOTO8006
16763C
16764 5227 CONTINUE
16765      ICASL7='MSPT'
16766      GOTO8008
16767C
16768 5229 CONTINUE
16769      ICASL7='MSP2'
16770      GOTO8007
16771C
16772 5231 CONTINUE
16773      ICASL7='EDGV'
16774      GOTO8008
16775C
16776 5233 CONTINUE
16777      ICASL7='NEXS'
16778      GOTO8005
16779C
16780 5235 CONTINUE
16781      ICASL7='NEXP'
16782      GOTO8005
16783C
16784 5237 CONTINUE
16785      ICASL7='KNSE'
16786      GOTO8009
16787C
16788 5239 CONTINUE
16789      ICASL7='NEXC'
16790      GOTO8005
16791C
16792 5240 CONTINUE
16793      ICASL7='NEPA'
16794      GOTO8006
16795C
16796 5241 CONTINUE
16797      ICASL7='COPV'
16798      GOTO8003
16799C
16800 5246 CONTINUE
16801      ICASL7='NEXE'
16802      GOTO8007
16803C
16804 5248 CONTINUE
16805      ICASL7='SPF1'
16806      GOTO8007
16807C
16808 5250 CONTINUE
16809      ICASL7='SPF2'
16810      GOTO8008
16811C
16812 5252 CONTINUE
16813      ICASL7='ADMA'
16814      GOTO8005
16815C
16816 5253 CONTINUE
16817      ICASL7='ADMD'
16818      GOTO8006
16819C
16820 5254 CONTINUE
16821      ICASL7='ADMA'
16822      GOTO8007
16823C
16824 5255 CONTINUE
16825      ICASL7='ADMD'
16826      GOTO8008
16827C
16828 5256 CONTINUE
16829      ICASL7='NEYT'
16830      GOTO8006
16831C
16832 5257 CONTINUE
16833      ICASL7='CYTB'
16834      GOTO8007
16835C
16836 5258 CONTINUE
16837      ICASL7='SORG'
16838      GOTO8005
16839C
16840 5260 CONTINUE
16841      ICASL7='YTHL'
16842      GOTO8007
16843C
16844 5262 CONTINUE
16845      ICASL7='DPCL'
16846      GOTO8010
16847C
16848 5264 CONTINUE
16849      ICASL7='DPTS'
16850      GOTO8008
16851C
16852 5266 CONTINUE
16853      ICASL7='DPLT'
16854      GOTO8010
16855C
16856 5268 CONTINUE
16857      ICASL7='DPUT'
16858      GOTO8010
16859C
16860 5270 CONTINUE
16861      ICASL7='R1TS'
16862      GOTO8008
16863C
16864 5272 CONTINUE
16865      ICASL7='R1LT'
16866      GOTO8010
16867C
16868 5274 CONTINUE
16869      ICASL7='R1UT'
16870      GOTO8010
16871C
16872 5276 CONTINUE
16873      ICASL7='R2TS'
16874      GOTO8008
16875C
16876 5278 CONTINUE
16877      ICASL7='R2LT'
16878      GOTO8010
16879C
16880 5280 CONTINUE
16881      ICASL7='R2UT'
16882      GOTO8010
16883C
16884 5281 CONTINUE
16885      ICASL7='SOR2'
16886      GOTO8005
16887C
16888 5282 CONTINUE
16889      ICASL7='SOR3'
16890      GOTO8006
16891C
16892 5283 CONTINUE
16893      ICASL7='SOR4'
16894      GOTO8007
16895C
16896 5285 CONTINUE
16897      ICASL7='GATH'
16898      GOTO8004
16899C
16900 5287 CONTINUE
16901      ICASL7='SCAT'
16902      GOTO8004
16903C
16904 5289 CONTINUE
16905      ICASL7='RAN2'
16906      GOTO8004
16907C
16908 5291 CONTINUE
16909      ICASL7='RAN3'
16910      GOTO8004
16911C
16912 5293 CONTINUE
16913      ICASL7='RAN4'
16914      GOTO8004
16915C
16916 5294 CONTINUE
16917      ICASL7='RANI'
16918      GOTO8005
16919C
16920 5295 CONTINUE
16921      ICASL7='SHIF'
16922      GOTO8004
16923C
16924 5296 CONTINUE
16925      ICASL7='CSHI'
16926      GOTO8005
16927C
16928 5298 CONTINUE
16929      ICASL7='BIPL'
16930      GOTO8006
16931C
16932 5299 CONTINUE
16933      ICASL7='PERA'
16934      GOTO8005
16935C
1693615300 CONTINUE
16937      ICASL7='LARG'
16938      GOTO8004
16939C
1694015301 CONTINUE
16941      ICASL7='SMAL'
16942      GOTO8004
16943C
16944 5300 CONTINUE
16945      ICASL7='CDCT'
16946      GOTO8006
16947C
16948 5302 CONTINUE
16949      ICASL7='MFTR'
16950      GOTO8009
16951C
16952 5304 CONTINUE
16953      ICASL7='MFTC'
16954      GOTO8009
16955C
16956 5306 CONTINUE
16957      ICASL7='R3TS'
16958      GOTO8008
16959C
16960 5308 CONTINUE
16961      ICASL7='R3LT'
16962      GOTO8010
16963C
16964 5310 CONTINUE
16965      ICASL7='R3UT'
16966      GOTO8010
16967C
16968 5312 CONTINUE
16969      ICASL7='BPSE'
16970      GOTO8009
16971C
16972 5314 CONTINUE
16973      ICASL7='BPSE'
16974      GOTO8008
16975C
16976 5316 CONTINUE
16977      ICASL7='COMB'
16978      GOTO8004
16979C
16980 5318 CONTINUE
16981      ICASL7='EBCL'
16982      GOTO8008
16983C
16984 5320 CONTINUE
16985      ICASL7='EBCL'
16986      GOTO8007
16987C
16988 5322 CONTINUE
16989      ICASL7='BFPD'
16990      GOTO8007
16991C
16992 5324 CONTINUE
16993      ICASL7='BFCD'
16994      GOTO8007
16995C
16996 5326 CONTINUE
16997      ICASL7='BFPP'
16998      GOTO8007
16999C
17000 5328 CONTINUE
17001      ICASL7='EEPD'
17002      GOTO8007
17003C
17004 5330 CONTINUE
17005      ICASL7='EECD'
17006      GOTO8007
17007C
17008 5332 CONTINUE
17009      ICASL7='EEPP'
17010      GOTO8007
17011C
17012 5334 CONTINUE
17013      ICASL7='VMAT'
17014      GOTO8006
17015C
17016 5336 CONTINUE
17017      ICASL7='MVAR'
17018      GOTO8006
17019C
17020 5338 CONTINUE
17021      ICASL7='MCRO'
17022      GOTO8006
17023C
17024 5340 CONTINUE
17025      ICASL7='MCCO'
17026      GOTO8006
17027C
17028 5342 CONTINUE
17029      ICASL7='KEEP'
17030      GOTO8004
17031C
17032 5344 CONTINUE
17033      ICASL7='OMIT'
17034      GOTO8004
17035C
17036 5346 CONTINUE
17037      ICASL7='MWUF'
17038      GOTO8010
17039C
17040 5348 CONTINUE
17041      ICASL7='TMIN'
17042      GOTO8006
17043C
17044 5350 CONTINUE
17045      ICASL7='TMAX'
17046      GOTO8006
17047C
17048 5352 CONTINUE
17049      ICASL7='EN'
17050      GOTO8004
17051C
17052 5353 CONTINUE
17053      ICASL7='PA'
17054      GOTO8004
17055C
1705655353 CONTINUE
17057      ICASL7='DIPE'
17058      GOTO8004
17059C
17060 5354 CONTINUE
17061      ICASL7='EXPA'
17062      GOTO8004
17063C
17064 5355 CONTINUE
17065      ICASL7='JSCO'
17066      GOTO8004
17067C
1706855355 CONTINUE
17069      ICASL7='JSCT'
17070      GOTO8007
17071C
17072 5356 CONTINUE
17073      ICASL7='IZSC'
17074      GOTO8006
17075C
17076 5358 CONTINUE
17077      ICASL7='ZPRI'
17078      GOTO8007
17079C
17080 5360 CONTINUE
17081      ICASL7='IZET'
17082      GOTO8007
17083C
17084 5362 CONTINUE
17085      ICASL7='EZMI'
17086      GOTO8007
17087C
17088 5364 CONTINUE
17089      ICASL7='EZPL'
17090      GOTO8007
17091C
17092 5366 CONTINUE
17093      ICASL7='EN  '
17094      GOTO8007
17095C
17096 5367 CONTINUE
17097      ICASL7='PA  '
17098      GOTO8007
17099C
1710045367 CONTINUE
17101      ICASL7='DIPE'
17102      GOTO8007
17103C
1710446367 CONTINUE
17105      ICASL7='DIPE'
17106      GOTO8008
17107C
1710855358 CONTINUE
17109      ICASL7='ZPRI'
17110      GOTO8006
17111C
1711255360 CONTINUE
17113      ICASL7='IZET'
17114      GOTO8006
17115C
1711655362 CONTINUE
17117      ICASL7='EZMI'
17118      GOTO8006
17119C
1712055364 CONTINUE
17121      ICASL7='EZPL'
17122      GOTO8006
17123C
1712455366 CONTINUE
17125      ICASL7='EN  '
17126      GOTO8006
17127C
1712855367 CONTINUE
17129      ICASL7='PA  '
17130      GOTO8006
17131C
1713255368 CONTINUE
17133      ICASL7='DIPE'
17134      GOTO8006
17135C
1713655369 CONTINUE
17137      ICASL7='DIPE'
17138      GOTO8007
17139C
17140 5368 CONTINUE
17141      ICASL7='WMOM'
17142      GOTO8006
17143C
17144 5369 CONTINUE
17145      ICASL7='LNMO'
17146      GOTO8006
17147C
17148 5370 CONTINUE
17149      ICASL7='LPFI'
17150      GOTO8006
17151C
17152 5371 CONTINUE
17153      ICASL7='GAMO'
17154      GOTO8006
17155C
17156 5372 CONTINUE
17157      ICASL7='HPFI'
17158      GOTO8006
17159C
17160 5373 CONTINUE
17161      ICASL7='IGMO'
17162      GOTO8007
17163C
17164 5374 CONTINUE
17165      ICASL7='TPOI'
17166      GOTO8006
17167C
17168 5376 CONTINUE
17169      ICASL7='EXTP'
17170      GOTO8006
17171C
17172 5378 CONTINUE
17173      ICASL7='ENCB'
17174      GOTO8006
17175C
17176 5380 CONTINUE
17177      ICASL7='INTL'
17178      GOTO8006
17179C
17180 5382 CONTINUE
17181      ICASL7='PARL'
17182      GOTO8006
17183C
17184 5384 CONTINUE
17185      ICASL7='PERL'
17186      GOTO8006
17187C
17188 5386 CONTINUE
17189      ICASL7='NNE1'
17190      GOTO8006
17191C
17192 5388 CONTINUE
17193      ICASL7='NNE2'
17194      GOTO8006
17195C
17196 5390 CONTINUE
17197      ICASL7='NNE3'
17198      GOTO8006
17199C
17200 5392 CONTINUE
17201      ICASL7='NNE4'
17202      GOTO8005
17203C
17204 5394 CONTINUE
17205      ICASL7='JOIN'
17206      GOTO8008
17207C
17208 5396 CONTINUE
17209      ICASL7='FNNE'
17210      GOTO8008
17211C
17212 5398 CONTINUE
17213      ICASL7='ANNE'
17214      GOTO8010
17215C
17216 5400 CONTINUE
17217      ICASL7='GRPS'
17218      GOTO8005
17219C
17220 5402 CONTINUE
17221      ICASL7='RAEQ'
17222      GOTO8006
17223C
17224 5404 CONTINUE
17225      ICASL7='DIGI'
17226      GOTO8004
17227C
17228 5406 CONTINUE
17229      ICASL7='YFRA'
17230      GOTO8005
17231C
1723255401 CONTINUE
17233      ICASL7='Y1TS'
17234      GOTO8007
17235C
1723655402 CONTINUE
17237      ICASL7='Y1TD'
17238      GOTO8007
17239C
1724055403 CONTINUE
17241      ICASL7='Y2TS'
17242      GOTO8007
17243C
1724455404 CONTINUE
17245      ICASL7='Y2TD'
17246      GOTO8007
17247C
1724855406 CONTINUE
17249      ICASL7='X1TS'
17250      GOTO8007
17251C
1725255407 CONTINUE
17253      ICASL7='X1TD'
17254      GOTO8007
17255C
1725655408 CONTINUE
17257      ICASL7='X2TS'
17258      GOTO8007
17259C
1726055409 CONTINUE
17261      ICASL7='X2TD'
17262      GOTO8007
17263C
17264 5408 CONTINUE
17265      ICASL7='XFRA'
17266      GOTO8005
17267C
17268 5410 CONTINUE
17269      ICASL7='WSAT'
17270      GOTO8007
17271C
17272 5411 CONTINUE
17273      ICASL7='GWSA'
17274      GOTO8006
17275C
17276 5412 CONTINUE
17277      ICASL7='NKDM'
17278      GOTO8008
17279C
17280 5414 CONTINUE
17281      ICASL7='EQUF'
17282      GOTO8007
17283C
17284 5416 CONTINUE
17285      ICASL7='IQUF'
17286      GOTO8007
17287C
17288 5418 CONTINUE
17289      ICASL7='TIQF'
17290      GOTO8008
17291C
17292 5420 CONTINUE
17293      ICASL7='INSE'
17294      GOTO8004
17295C
17296C               *****************************************************
17297C               **  STEP 80--                                      **
17298C               **  DETERMINE IF THE WORD (OR COLUMN DESIGNATION)  **
17299C               **  AFTER THE KEY WORD (SORT, RANK, ETC.) IS A     **
17300C               **  VALID DATA VARIABLE OR COLUMN.                 **
17301C               **  DEFINE ILOCV.                                  **
17302C               *****************************************************
17303C
17304C8002 CONTINUE
17305CCCCC ILOCV=2
17306CCCCC GOTO8020
17307C
17308 8003 CONTINUE
17309      ILOCV=3
17310      GOTO8020
17311C
17312 8004 CONTINUE
17313      ILOCV=4
17314      GOTO8020
17315C
17316 8005 CONTINUE
17317      ILOCV=5
17318      GOTO8020
17319C
17320 8006 CONTINUE
17321      ILOCV=6
17322      GOTO8020
17323C
17324 8007 CONTINUE
17325      ILOCV=7
17326      GOTO8020
17327CCCCC JULY 1993.  FOLLOWING ADDED FOR SINGULAR VALUE DECOMPOSITION.
17328 8008 CONTINUE
17329      ILOCV=8
17330      GOTO8020
17331C
17332CCCCC JUNE 1998.  FOLLOWING ADDED FOR MATRIX <ROW/COLU> <STAT>
17333 8009 CONTINUE
17334      ILOCV=9
17335      GOTO8020
17336C
17337 8010 CONTINUE
17338      ILOCV=10
17339      GOTO8020
17340C
17341C8011 CONTINUE
17342CCCCC ILOCV=11
17343CCCCC GOTO8020
17344C
17345C8012 CONTINUE
17346CCCCC ILOCV=12
17347CCCCC GOTO8020
17348C
17349C8013 CONTINUE
17350CCCCC ILOCV=13
17351CCCCC GOTO8020
17352C
17353 8020 CONTINUE
17354C
17355      ISTEPN='3'
17356      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MATH')
17357     1   CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
17358C
17359      IF(ICASL7.EQ.'Y1TS')GOTO8040
17360      IF(ICASL7.EQ.'Y1TD')GOTO8040
17361      IF(ICASL7.EQ.'Y2TS')GOTO8040
17362      IF(ICASL7.EQ.'Y2TD')GOTO8040
17363      IF(ICASL7.EQ.'X1TS')GOTO8040
17364      IF(ICASL7.EQ.'X1TD')GOTO8040
17365      IF(ICASL7.EQ.'X2TS')GOTO8040
17366      IF(ICASL7.EQ.'X2TD')GOTO8040
17367      IF(ILOCV.GT.NUMARG)GOTO8039
17368C
17369C     FOLLOWING ACCEPT SCALAR AS FIRST ARGUMENT
17370C
17371      IF(ICASL7.EQ.'JAIN')GOTO8040
17372      IF(ICASL7.EQ.'AGCO')GOTO8040
17373      IF(ICASL7.EQ.'EBLL')GOTO8040
17374      IF(ICASL7.EQ.'EBUL')GOTO8040
17375      IF(ICASL7.EQ.'EBCL')GOTO8040
17376      IF(ICASL7.EQ.'DPCL')GOTO8040
17377      IF(ICASL7.EQ.'DPTS')GOTO8040
17378      IF(ICASL7.EQ.'DPLT')GOTO8040
17379      IF(ICASL7.EQ.'DPUT')GOTO8040
17380      IF(ICASL7.EQ.'R1TS')GOTO8040
17381      IF(ICASL7.EQ.'R1LT')GOTO8040
17382      IF(ICASL7.EQ.'R1UT')GOTO8040
17383      IF(ICASL7.EQ.'R2TS')GOTO8040
17384      IF(ICASL7.EQ.'R2LT')GOTO8040
17385      IF(ICASL7.EQ.'R2UT')GOTO8040
17386      IF(ICASL7.EQ.'R3TS')GOTO8040
17387      IF(ICASL7.EQ.'R3LT')GOTO8040
17388      IF(ICASL7.EQ.'R3UT')GOTO8040
17389      IF(ICASL7.EQ.'BPSE')GOTO8040
17390      IF(ICASL7.EQ.'BRAT')GOTO8040
17391      IF(ICASL7.EQ.'NEXS')GOTO8040
17392      IF(ICASL7.EQ.'NEXP')GOTO8040
17393      IF(ICASL7.EQ.'KNSE')GOTO8040
17394      IF(ICASL7.EQ.'NEXC')GOTO8040
17395      IF(ICASL7.EQ.'NEPA')GOTO8040
17396      IF(ICASL7.EQ.'NEXE')GOTO8040
17397      IF(ICASL7.EQ.'NEYT')GOTO8040
17398      IF(ICASL7.EQ.'COMB')GOTO8040
17399      IF(ICASL7.EQ.'VMAT')GOTO8040
17400      IF(ICASL7.EQ.'MWUF')GOTO8040
17401      IF(ICASL7.EQ.'INTL')GOTO8040
17402      IF(ICASL7.EQ.'PARL')GOTO8040
17403      IF(ICASL7.EQ.'PERL')GOTO8040
17404      IF(ICASL7.EQ.'DIGI')GOTO8040
17405      IF(ICASL7.EQ.'SRNP')GOTO8040
17406C
17407      IH=IHARG(ILOCV)
17408      IH2=IHARG2(ILOCV)
17409      DO8030I=1,NUMNAM
17410      IF(IH.EQ.IHNAME(I).AND.IH2.EQ.IHNAM2(I).AND.
17411     1IUSE(I).EQ.'V')GOTO8040
17412      IF(IH.EQ.IHNAME(I).AND.IH2.EQ.IHNAM2(I).AND.
17413     1IUSE(I).EQ.'M')GOTO8040
17414 8030 CONTINUE
17415 8039 CONTINUE
17416      IFOUN7='NO'
17417      ICASL7='UNKN'
17418      GOTO9000
17419 8040 CONTINUE
17420      IFOUN7='YES'
17421      GOTO9000
17422C
17423C               *****************
17424C               **  STEP 90--  **
17425C               **  EXIT.      **
17426C               *****************
17427C
17428 9000 CONTINUE
17429C
17430      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MATH')THEN
17431        WRITE(ICOUT,999)
17432        CALL DPWRST('XXX','BUG ')
17433        WRITE(ICOUT,9011)
17434 9011   FORMAT('***** AT THE END       OF CKMATH--')
17435        CALL DPWRST('XXX','BUG ')
17436        WRITE(ICOUT,9013)IBUGA3,ISUBRO
17437 9013   FORMAT('IBUGA3,ISUBRO = ',A4,2X,A4)
17438        CALL DPWRST('XXX','BUG ')
17439        WRITE(ICOUT,9014)IFOUN7,ICASL7,IMSUBC,ILOCV
17440 9014   FORMAT('IFOUN7,ICASL7,IMSUBC,ILOCV = ',3(A4,2X),I8)
17441        CALL DPWRST('XXX','BUG ')
17442      ENDIF
17443C
17444      RETURN
17445      END
17446      SUBROUTINE CKPREF(ICASFI,ILOCFI,IBUGA3,IFOUND,IERROR)
17447C
17448C     PURPOSE--CHECK TO SEE THE TYPE OF PRE-FIT COMMAND
17449C              THAT HAS BEEN GIVEN
17450C              (E.G., WHAT DEGREE).
17451C     OUTPUT ARGUMENTS--IFOUND ('YES' OR 'NO')
17452C                     --IERROR ('YES' OR 'NO')
17453C                     --ICASFI ('FIT', '1FIT', '2FIT', '3FIT', ETC.)
17454C                     --ILOCFI (AN INTEGER VALUE WHICH GIVES
17455C                              THE ARGUMENT NUMBER (1, 2, 3, ...)
17456C                              OF THE WORD    FIT     .
17457C     WRITTEN BY--JAMES J. FILLIBEN
17458C                 STATISTICAL ENGINEERING DIVISION
17459C                 INFORMATION TECHNOLOGY LABORATORY
17460C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
17461C                 GAITHERSBURG, MD 20899-8980
17462C                 PHONE--301-975-2855
17463C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
17464C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
17465C     LANGUAGE--ANSI FORTRAN (1977)
17466C     VERSION NUMBER--82/7
17467C     ORIGINAL VERSION--AUGUST    1981.
17468C     UPDATED         --SEPTEMBER 1981.
17469C     UPDATED         --MAY       1982.
17470C
17471C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
17472C
17473      CHARACTER*4 ICASFI
17474      CHARACTER*4 IBUGA3
17475      CHARACTER*4 IFOUND
17476      CHARACTER*4 IERROR
17477C
17478C-----COMMON----------------------------------------------------------
17479C
17480      INCLUDE 'DPCOPA.INC'
17481      INCLUDE 'DPCOHK.INC'
17482      INCLUDE 'DPCODA.INC'
17483C
17484C-----COMMON VARIABLES (GENERAL)--------------------------------------
17485C
17486      INCLUDE 'DPCOP2.INC'
17487C
17488C-----START POINT-----------------------------------------------------
17489C
17490C               *****************************
17491C               **  CHECK FOR PRE-FITTING  **
17492C               *****************************
17493C
17494      IFOUND='NO'
17495      IERROR='NO'
17496      ICASFI='UNKN'
17497      ILOCFI=-99
17498C
17499      IF(IBUGA3.EQ.'OFF')GOTO90
17500      WRITE(ICOUT,999)
17501  999 FORMAT(1X)
17502      CALL DPWRST('XXX','BUG ')
17503      WRITE(ICOUT,51)
17504   51 FORMAT('***** AT THE BEGINNING OF CKPREF--')
17505      CALL DPWRST('XXX','BUG ')
17506      WRITE(ICOUT,52)IBUGA3
17507   52 FORMAT('IBUGA3 = ',A4)
17508      CALL DPWRST('XXX','BUG ')
17509      WRITE(ICOUT,53)NUMARG
17510   53 FORMAT('NUMARG = ',I8)
17511      CALL DPWRST('XXX','BUG ')
17512      WRITE(ICOUT,54)ICOM,ICOM2
17513   54 FORMAT('ICOM,ICOM2 = ',A4,A4)
17514      CALL DPWRST('XXX','BUG ')
17515      DO55I=1,NUMARG
17516      WRITE(ICOUT,56)I,IHARG(I),IHARG2(I)
17517   56 FORMAT('I,IHARG(I),IHARG2(I) = ',I8,A4,2X,A4)
17518      CALL DPWRST('XXX','BUG ')
17519   55 CONTINUE
17520   90 CONTINUE
17521C
17522C               *********************************
17523C               **  STEP 1.1--                 **
17524C               **  SEARCH FOR PRE-FIT         **
17525C               **  (WITH UNSPECIFIED DEGREE)  **
17526C               *********************************
17527C
17528      ICASFI='FIT'
17529C
17530      IF(ICOM.EQ.'PREF')GOTO110
17531      IF(ICOM.EQ.'PRE ')GOTO111
17532C
17533      DO210I=1,NUMARG
17534      I2=I
17535      IF(IHARG(I).EQ.'PREF'.AND.IHARG2(I).EQ.'IT  ')GOTO219
17536  210 CONTINUE
17537      GOTO249
17538  219 CONTINUE
17539C
17540      NUMARG=NUMARG+1
17541      I2P1=I2+1
17542      IF(I2P1.GT.NUMARG)GOTO239
17543      DO230I=I2P1,NUMARG
17544      IREV=NUMARG-I+I2P1
17545      IREVM1=IREV-1
17546      IHARG(IREV)=IHARG(IREVM1)
17547      IHARG2(IREV)=IHARG2(IREVM1)
17548      IARGT(IREV)=IARGT(IREVM1)
17549      ARG(IREV)=ARG(IREVM1)
17550  230 CONTINUE
17551  239 CONTINUE
17552C
17553      IHARG(I2)='PRE '
17554      IHARG2(I2)='    '
17555      IARGT(I2)='WORD'
17556      IARG(I2)=-999
17557      ARG(I2)=-999.0
17558      IHARG(I2P1)='FIT '
17559      IHARG2(I2P1)='    '
17560      IARGT(I2P1)='WORD'
17561      IARG(I2P1)=-999
17562      ARG(I2P1)=-999.0
17563  249 CONTINUE
17564C
17565C               *********************************
17566C               **  STEP 1.2--                 **
17567C               **  SEARCH FOR ROBUST FITTING  **
17568C               *********************************
17569C
17570      ICASFI='RFIT'
17571C
17572      IF(NUMARG.GE.2.AND.
17573     1ICOM.EQ.'ROBU'.AND.IHARG(2).EQ.'PRE ')GOTO113
17574C
17575C               *******************************************
17576C               **  STEP 1.20--                          **
17577C               **  SEARCH FOR 0-TH DEGREE    FITTING     **
17578C               *******************************************
17579C
17580      ICASFI='0FIT'
17581C
17582      IF(NUMARG.GE.3.AND.
17583     1ICOM.EQ.'0'.AND.IHARG(1).EQ.'TH'.AND.IHARG(2).EQ.'DEGR'.AND.
17584     1IHARG(3).EQ.'PRE ')GOTO114
17585      IF(NUMARG.GE.2.AND.
17586     1ICOM.EQ.'0TH'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17587     1GOTO113
17588      IF(NUMARG.GE.2.AND.
17589     1ICOM.EQ.'ZERO'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17590     1GOTO113
17591      IF(NUMARG.GE.2.AND.
17592     1ICOM.EQ.'0'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17593     1GOTO113
17594      IF(NUMARG.GE.2.AND.
17595     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'0'.AND.IHARG(2).EQ.'PRE ')
17596     1GOTO113
17597      IF(NUMARG.GE.2.AND.
17598     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'ZERO'.AND.IHARG(2).EQ.'PRE ')
17599     1GOTO113
17600      IF(NUMARG.GE.1.AND.
17601     1ICOM.EQ.'CONS'.AND.IHARG(1).EQ.'PRE ')GOTO112
17602      IF(NUMARG.GE.1.AND.
17603     1ICOM.EQ.'RECT'.AND.IHARG(1).EQ.'PRE ')GOTO112
17604      IF(NUMARG.GE.1.AND.
17605     1ICOM.EQ.'FLAT'.AND.IHARG(1).EQ.'PRE ')GOTO112
17606C
17607C               *******************************************
17608C               **  STEP 1.21--                          **
17609C               **  SEARCH FOR 1-ST DEGREE    FITTING     **
17610C               *******************************************
17611C
17612      ICASFI='1FIT'
17613C
17614      IF(NUMARG.GE.3.AND.
17615     1ICOM.EQ.'1'.AND.IHARG(1).EQ.'ST'.AND.IHARG(2).EQ.'DEGR'.AND.
17616     1IHARG(3).EQ.'PRE ')GOTO114
17617      IF(NUMARG.GE.2.AND.
17618     1ICOM.EQ.'1ST'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17619     1GOTO113
17620      IF(NUMARG.GE.2.AND.
17621     1ICOM.EQ.'FIRS'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17622     1GOTO113
17623      IF(NUMARG.GE.2.AND.
17624     1ICOM.EQ.'1'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17625     1GOTO113
17626      IF(NUMARG.GE.2.AND.
17627     1ICOM.EQ.'ONE'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17628     1GOTO113
17629      IF(NUMARG.GE.2.AND.
17630     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'1'.AND.IHARG(2).EQ.'PRE ')
17631     1GOTO113
17632      IF(NUMARG.GE.2.AND.
17633     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'ONE'.AND.IHARG(2).EQ.'PRE ')
17634     1GOTO113
17635      IF(NUMARG.GE.1.AND.
17636     1ICOM.EQ.'LINE'.AND.IHARG(1).EQ.'PRE ')GOTO112
17637C
17638C               *******************************************
17639C               **  STEP 1.22--                          **
17640C               **  SEARCH FOR 2-ND DEGREE    FITTING     **
17641C               *******************************************
17642C
17643      ICASFI='2FIT'
17644C
17645      IF(NUMARG.GE.3.AND.
17646     1ICOM.EQ.'2'.AND.IHARG(1).EQ.'ND'.AND.IHARG(2).EQ.'DEGR'.AND.
17647     1IHARG(3).EQ.'PRE ')GOTO114
17648      IF(NUMARG.GE.2.AND.
17649     1ICOM.EQ.'2ND'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17650     1GOTO113
17651      IF(NUMARG.GE.2.AND.
17652     1ICOM.EQ.'SECO'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17653     1GOTO113
17654      IF(NUMARG.GE.2.AND.
17655     1ICOM.EQ.'2'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17656     1GOTO113
17657      IF(NUMARG.GE.2.AND.
17658     1ICOM.EQ.'TWO'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17659     1GOTO113
17660      IF(NUMARG.GE.2.AND.
17661     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'2'.AND.IHARG(2).EQ.'PRE ')
17662     1GOTO113
17663      IF(NUMARG.GE.2.AND.
17664     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'TWO'.AND.IHARG(2).EQ.'PRE ')
17665     1GOTO113
17666      IF(NUMARG.GE.1.AND.
17667     1ICOM.EQ.'QUAD'.AND.IHARG(1).EQ.'PRE ')GOTO112
17668C
17669C               *******************************************
17670C               **  STEP 1.23--                          **
17671C               **  SEARCH FOR 3-RD DEGREE    FITTING     **
17672C               *******************************************
17673C
17674      ICASFI='3FIT'
17675C
17676      IF(NUMARG.GE.3.AND.
17677     1ICOM.EQ.'3'.AND.IHARG(1).EQ.'RD'.AND.IHARG(2).EQ.'DEGR'.AND.
17678     1IHARG(3).EQ.'PRE ')GOTO114
17679      IF(NUMARG.GE.2.AND.
17680     1ICOM.EQ.'3RD'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17681     1GOTO113
17682      IF(NUMARG.GE.2.AND.
17683     1ICOM.EQ.'THIR'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17684     1GOTO113
17685      IF(NUMARG.GE.2.AND.
17686     1ICOM.EQ.'3'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17687     1GOTO113
17688      IF(NUMARG.GE.2.AND.
17689     1ICOM.EQ.'THRE'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17690     1GOTO113
17691      IF(NUMARG.GE.2.AND.
17692     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'3'.AND.IHARG(2).EQ.'PRE ')
17693     1GOTO113
17694      IF(NUMARG.GE.2.AND.
17695     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'THRE'.AND.IHARG(2).EQ.'PRE ')
17696     1GOTO113
17697      IF(NUMARG.GE.1.AND.
17698     1ICOM.EQ.'CUBI'.AND.IHARG(1).EQ.'PRE ')GOTO112
17699C
17700C               *******************************************
17701C               **  STEP 1.24--                          **
17702C               **  SEARCH FOR 4-TH DEGREE    FITTING     **
17703C               *******************************************
17704C
17705      ICASFI='4FIT'
17706C
17707      IF(NUMARG.GE.3.AND.
17708     1ICOM.EQ.'4'.AND.IHARG(1).EQ.'TH'.AND.IHARG(2).EQ.'DEGR'.AND.
17709     1IHARG(3).EQ.'PRE ')GOTO114
17710      IF(NUMARG.GE.2.AND.
17711     1ICOM.EQ.'4TH'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17712     1GOTO113
17713      IF(NUMARG.GE.2.AND.
17714     1ICOM.EQ.'FOUR'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17715     1GOTO113
17716      IF(NUMARG.GE.2.AND.
17717     1ICOM.EQ.'4'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17718     1GOTO113
17719      IF(NUMARG.GE.2.AND.
17720     1ICOM.EQ.'FOUR'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17721     1GOTO113
17722      IF(NUMARG.GE.2.AND.
17723     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'4'.AND.IHARG(2).EQ.'PRE ')
17724     1GOTO113
17725      IF(NUMARG.GE.2.AND.
17726     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'FOUR'.AND.IHARG(2).EQ.'PRE ')
17727     1GOTO113
17728      IF(NUMARG.GE.1.AND.
17729     1ICOM.EQ.'QUAR'.AND.IHARG(1).EQ.'PRE ')GOTO112
17730C
17731C               *******************************************
17732C               **  STEP 1.25--                          **
17733C               **  SEARCH FOR 5-TH DEGREE    FITTING     **
17734C               *******************************************
17735C
17736      ICASFI='5FIT'
17737C
17738      IF(NUMARG.GE.3.AND.
17739     1ICOM.EQ.'5'.AND.IHARG(1).EQ.'TH'.AND.IHARG(2).EQ.'DEGR'.AND.
17740     1IHARG(3).EQ.'PRE ')GOTO114
17741      IF(NUMARG.GE.2.AND.
17742     1ICOM.EQ.'5TH'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17743     1GOTO113
17744      IF(NUMARG.GE.2.AND.
17745     1ICOM.EQ.'FIFT'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17746     1GOTO113
17747      IF(NUMARG.GE.2.AND.
17748     1ICOM.EQ.'5'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17749     1GOTO113
17750      IF(NUMARG.GE.2.AND.
17751     1ICOM.EQ.'FIVE'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17752     1GOTO113
17753      IF(NUMARG.GE.2.AND.
17754     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'5'.AND.IHARG(2).EQ.'PRE ')
17755     1GOTO113
17756      IF(NUMARG.GE.2.AND.
17757     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'FIVE'.AND.IHARG(2).EQ.'PRE ')
17758     1GOTO113
17759      IF(NUMARG.GE.1.AND.
17760     1ICOM.EQ.'QUIN'.AND.IHARG(1).EQ.'PRE ')GOTO112
17761C
17762C               *******************************************
17763C               **  STEP 1.26--                          **
17764C               **  SEARCH FOR 6-TH DEGREE    FITTING     **
17765C               *******************************************
17766C
17767      ICASFI='6FIT'
17768C
17769      IF(NUMARG.GE.3.AND.
17770     1ICOM.EQ.'6'.AND.IHARG(1).EQ.'TH'.AND.IHARG(2).EQ.'DEGR'.AND.
17771     1IHARG(3).EQ.'PRE ')GOTO114
17772      IF(NUMARG.GE.2.AND.
17773     1ICOM.EQ.'6TH'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17774     1GOTO113
17775      IF(NUMARG.GE.2.AND.
17776     1ICOM.EQ.'SIXT'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17777     1GOTO113
17778      IF(NUMARG.GE.2.AND.
17779     1ICOM.EQ.'6'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17780     1GOTO113
17781      IF(NUMARG.GE.2.AND.
17782     1ICOM.EQ.'SIX'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17783     1GOTO113
17784      IF(NUMARG.GE.2.AND.
17785     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'6'.AND.IHARG(2).EQ.'PRE ')
17786     1GOTO113
17787      IF(NUMARG.GE.2.AND.
17788     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'SIX'.AND.IHARG(2).EQ.'PRE ')
17789     1GOTO113
17790      IF(NUMARG.GE.1.AND.
17791     1ICOM.EQ.'SEXT'.AND.IHARG(1).EQ.'PRE ')GOTO112
17792C
17793C               *******************************************
17794C               **  STEP 1.27--                          **
17795C               **  SEARCH FOR 7-TH DEGREE    FITTING     **
17796C               *******************************************
17797C
17798      ICASFI='7FIT'
17799C
17800      IF(NUMARG.GE.3.AND.
17801     1ICOM.EQ.'7'.AND.IHARG(1).EQ.'TH'.AND.IHARG(2).EQ.'DEGR'.AND.
17802     1IHARG(3).EQ.'PRE ')GOTO114
17803      IF(NUMARG.GE.2.AND.
17804     1ICOM.EQ.'7TH'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17805     1GOTO113
17806      IF(NUMARG.GE.2.AND.
17807     1ICOM.EQ.'SEVE'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17808     1GOTO113
17809      IF(NUMARG.GE.2.AND.
17810     1ICOM.EQ.'7'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17811     1GOTO113
17812      IF(NUMARG.GE.2.AND.
17813     1ICOM.EQ.'SEVE'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17814     1GOTO113
17815      IF(NUMARG.GE.2.AND.
17816     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'7'.AND.IHARG(2).EQ.'PRE ')
17817     1GOTO113
17818      IF(NUMARG.GE.2.AND.
17819     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'SEVE'.AND.IHARG(2).EQ.'PRE ')
17820     1GOTO113
17821      IF(NUMARG.GE.1.AND.
17822     1ICOM.EQ.'SEPT'.AND.IHARG(1).EQ.'PRE ')GOTO112
17823C
17824C               *******************************************
17825C               **  STEP 1.28--                          **
17826C               **  SEARCH FOR 8-TH DEGREE    FITTING     **
17827C               *******************************************
17828C
17829      ICASFI='8FIT'
17830C
17831      IF(NUMARG.GE.3.AND.
17832     1ICOM.EQ.'8'.AND.IHARG(1).EQ.'TH'.AND.IHARG(2).EQ.'DEGR'.AND.
17833     1IHARG(3).EQ.'PRE ')GOTO114
17834      IF(NUMARG.GE.2.AND.
17835     1ICOM.EQ.'8TH'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17836     1GOTO113
17837      IF(NUMARG.GE.2.AND.
17838     1ICOM.EQ.'EIGH'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17839     1GOTO113
17840      IF(NUMARG.GE.2.AND.
17841     1ICOM.EQ.'8'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17842     1GOTO113
17843      IF(NUMARG.GE.2.AND.
17844     1ICOM.EQ.'EIGH'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17845     1GOTO113
17846      IF(NUMARG.GE.2.AND.
17847     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'8'.AND.IHARG(2).EQ.'PRE ')
17848     1GOTO113
17849      IF(NUMARG.GE.2.AND.
17850     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'EIGH'.AND.IHARG(2).EQ.'PRE ')
17851     1GOTO113
17852      IF(NUMARG.GE.1.AND.
17853     1ICOM.EQ.'OCTI'.AND.IHARG(1).EQ.'PRE ')GOTO112
17854C
17855C               *******************************************
17856C               **  STEP 1.29--                          **
17857C               **  SEARCH FOR 9-TH DEGREE    FITTING     **
17858C               *******************************************
17859C
17860      ICASFI='9FIT'
17861C
17862      IF(NUMARG.GE.3.AND.
17863     1ICOM.EQ.'9'.AND.IHARG(1).EQ.'TH'.AND.IHARG(2).EQ.'DEGR'.AND.
17864     1IHARG(3).EQ.'PRE ')GOTO114
17865      IF(NUMARG.GE.2.AND.
17866     1ICOM.EQ.'9TH'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17867     1GOTO113
17868      IF(NUMARG.GE.2.AND.
17869     1ICOM.EQ.'NINT'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17870     1GOTO113
17871      IF(NUMARG.GE.2.AND.
17872     1ICOM.EQ.'9'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17873     1GOTO113
17874      IF(NUMARG.GE.2.AND.
17875     1ICOM.EQ.'NINE'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17876     1GOTO113
17877      IF(NUMARG.GE.2.AND.
17878     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'9'.AND.IHARG(2).EQ.'PRE ')
17879     1GOTO113
17880      IF(NUMARG.GE.2.AND.
17881     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'NINE'.AND.IHARG(2).EQ.'PRE ')
17882     1GOTO113
17883      IF(NUMARG.GE.1.AND.
17884     1ICOM.EQ.'NONI'.AND.IHARG(1).EQ.'PRE ')GOTO112
17885C
17886C               *******************************************
17887C               **  STEP 1.20--                          **
17888C               **  SEARCH FOR 10-TH DEGREE   FITTING     **
17889C               *******************************************
17890C
17891      ICASFI='10FI'
17892C
17893      IF(NUMARG.GE.3.AND.
17894     1ICOM.EQ.'10'.AND.IHARG(1).EQ.'TH'.AND.IHARG(2).EQ.'DEGR'.AND.
17895     1IHARG(3).EQ.'PRE ')GOTO114
17896      IF(NUMARG.GE.2.AND.
17897     1ICOM.EQ.'10TH'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17898     1GOTO113
17899      IF(NUMARG.GE.2.AND.
17900     1ICOM.EQ.'TENT'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17901     1GOTO113
17902      IF(NUMARG.GE.2.AND.
17903     1ICOM.EQ.'10'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17904     1GOTO113
17905      IF(NUMARG.GE.2.AND.
17906     1ICOM.EQ.'TEN'.AND.IHARG(1).EQ.'DEGR'.AND.IHARG(2).EQ.'PRE ')
17907     1GOTO113
17908      IF(NUMARG.GE.2.AND.
17909     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'10'.AND.IHARG(2).EQ.'PRE ')
17910     1GOTO113
17911      IF(NUMARG.GE.2.AND.
17912     1ICOM.EQ.'DEGR'.AND.IHARG(1).EQ.'TEN'.AND.IHARG(2).EQ.'PRE ')
17913     1GOTO113
17914      IF(NUMARG.GE.1.AND.
17915     1ICOM.EQ.'DEXI'.AND.IHARG(1).EQ.'PRE ')GOTO112
17916C
17917C               ********************************************
17918C               **  STEP 1.31--                           **
17919C               **  SINCE VALID COMMAND NOT FOUND, EXIT.  **
17920C               ********************************************
17921C
17922      ICASFI='    '
17923C
17924      IFOUND='NO'
17925      GOTO9000
17926C
17927  110 CONTINUE
17928      ILASTC=0
17929      CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
17930      GOTO180
17931C
17932  111 CONTINUE
17933      ILASTC=1
17934      CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
17935      GOTO180
17936C
17937  112 CONTINUE
17938      ILASTC=2
17939      CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
17940      GOTO180
17941C
17942  113 CONTINUE
17943      ILASTC=3
17944      CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
17945      GOTO180
17946C
17947  114 CONTINUE
17948      ILASTC=4
17949      CALL ADJUST(ILASTC,IHARG,IHARG2,IARG,ARG,IARGT,NUMARG)
17950      GOTO180
17951C
17952  180 CONTINUE
17953      ILOCFI=ILASTC
17954      IFOUND='YES'
17955      GOTO190
17956C
17957  190 CONTINUE
17958C
17959C               *****************
17960C               **  STEP 90--  **
17961C               **  EXIT       **
17962C               *****************
17963C
17964 9000 CONTINUE
17965      IF(IBUGA3.EQ.'OFF')GOTO9090
17966      WRITE(ICOUT,999)
17967      CALL DPWRST('XXX','BUG ')
17968      WRITE(ICOUT,9011)
17969 9011 FORMAT('***** AT THE END       OF CKPREF--')
17970      CALL DPWRST('XXX','BUG ')
17971      WRITE(ICOUT,9012)IFOUND,IERROR
17972 9012 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
17973      CALL DPWRST('XXX','BUG ')
17974      WRITE(ICOUT,9013)ICASFI,ILOCFI
17975 9013 FORMAT('ICASFI,ILOCFI = ',A4,I8)
17976      CALL DPWRST('XXX','BUG ')
17977      WRITE(ICOUT,9016)NUMARG
17978 9016 FORMAT('NUMARG = ',I8)
17979      CALL DPWRST('XXX','BUG ')
17980      WRITE(ICOUT,9017)ICOM,ICOM2
17981 9017 FORMAT('ICOM,ICOM2 = ',A4,A4)
17982      CALL DPWRST('XXX','BUG ')
17983      DO9020I=1,NUMARG
17984      WRITE(ICOUT,9021)I,IHARG(I),IHARG2(I)
17985 9021 FORMAT('I,IHARG(I),IHARG2(I) = ',I8,A4,2X,A4)
17986      CALL DPWRST('XXX','BUG ')
17987 9020 CONTINUE
17988 9090 CONTINUE
17989C
17990      RETURN
17991      END
17992      SUBROUTINE CKPRPA(ANOPL1,ANOPL2,IBUGG3,ISUBRO,IERROR)
17993C
17994C     PURPOSE--CHECK THE PARAMETERS NEEDED
17995C              FOR THE PROPORTION (= ANOP) STATISTIC.
17996
17997C     WRITTEN BY--JAMES J. FILLIBEN
17998C                 STATISTICAL ENGINEERING DIVISION
17999C                 INFORMATION TECHNOLOGY LABORATORY
18000C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
18001C                 GAITHERSBURG, MD 20899-8980
18002C                 PHONE--301-975-2855
18003C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
18004C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
18005C     LANGUAGE--ANSI FORTRAN (1977)
18006C     VERSION NUMBER--89/6
18007C     ORIGINAL VERSION--MAY       1988.
18008C
18009C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
18010C
18011      CHARACTER*4 IBUGG3
18012      CHARACTER*4 ISUBRO
18013      CHARACTER*4 IERROR
18014C
18015      CHARACTER*4 IHP
18016      CHARACTER*4 IHP2
18017      CHARACTER*4 IHWUSE
18018      CHARACTER*4 MESSAG
18019CCCCC CHARACTER*4 IWRITE
18020C
18021      CHARACTER*4 ISUBN1
18022      CHARACTER*4 ISUBN2
18023CCCCC CHARACTER*4 ISTEPN
18024C
18025C---------------------------------------------------------------------
18026C
18027C-----COMMON----------------------------------------------------------
18028C
18029      INCLUDE 'DPCOPA.INC'
18030      INCLUDE 'DPCOHK.INC'
18031C
18032C-----COMMON VARIABLES (GENERAL)--------------------------------------
18033C
18034      INCLUDE 'DPCOP2.INC'
18035C
18036C-----START POINT-----------------------------------------------------
18037C
18038      ISUBN1='CKPR'
18039      ISUBN2='PA  '
18040C
18041      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'PRPA')GOTO90
18042      WRITE(ICOUT,999)
18043  999 FORMAT(1X)
18044      CALL DPWRST('XXX','BUG ')
18045      WRITE(ICOUT,51)
18046   51 FORMAT('***** AT THE BEGINNING OF CKPRPA--')
18047      CALL DPWRST('XXX','BUG ')
18048      WRITE(ICOUT,52)IBUGG3,ISUBRO,IERROR
18049   52 FORMAT('IBUGG3,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
18050      CALL DPWRST('XXX','BUG ')
18051   90 CONTINUE
18052C
18053C     --------------------------
18054C
18055      IHP='LOWE'
18056      IHP2='R   '
18057      IHWUSE='P'
18058      MESSAG='NO'
18059      CALL CHECKN(IHP,IHP2,IHWUSE,
18060     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
18061     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
18062      IF(IERROR.EQ.'YES')GOTO1110
18063      ANOPL1=VALUE(ILOCP)
18064      GOTO1119
18065C
18066 1110 CONTINUE
18067      WRITE(ICOUT,999)
18068      CALL DPWRST('XXX','BUG ')
18069      WRITE(ICOUT,1111)
18070 1111 FORMAT('***** ERROR IN CKPRPA--')
18071      CALL DPWRST('XXX','BUG ')
18072      WRITE(ICOUT,1112)
18073 1112 FORMAT('      IN COMPUTING THE PROPORTION STATISTIC,')
18074      CALL DPWRST('XXX','BUG ')
18075      WRITE(ICOUT,1114)
18076 1114 FORMAT('      THE LOWER BOUND (PARAMETER LOWER) OF THE')
18077      CALL DPWRST('XXX','BUG ')
18078      WRITE(ICOUT,1115)
18079 1115 FORMAT('     REGION OF INTEREST MUST BE PRE-DEFINED.')
18080      CALL DPWRST('XXX','BUG ')
18081      WRITE(ICOUT,1116)
18082 1116 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE    LOWER,')
18083      CALL DPWRST('XXX','BUG ')
18084      WRITE(ICOUT,1117)
18085 1117 FORMAT('      AS IN         LET LOWER = 900')
18086      CALL DPWRST('XXX','BUG ')
18087      IERROR='YES'
18088      GOTO9000
18089 1119 CONTINUE
18090C
18091C     --------------------------
18092C
18093      IHP='UPPE'
18094      IHP2='R   '
18095      IHWUSE='P'
18096      MESSAG='NO'
18097      CALL CHECKN(IHP,IHP2,IHWUSE,
18098     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
18099     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
18100      IF(IERROR.EQ.'YES')GOTO2110
18101      ANOPL2=VALUE(ILOCP)
18102      GOTO2119
18103C
18104 2110 CONTINUE
18105      WRITE(ICOUT,999)
18106      CALL DPWRST('XXX','BUG ')
18107      WRITE(ICOUT,2111)
18108 2111 FORMAT('***** ERROR IN CKPRPA--')
18109      CALL DPWRST('XXX','BUG ')
18110      WRITE(ICOUT,2112)
18111 2112 FORMAT('      IN COMPUTING THE PROPORTION STATISTIC,')
18112      CALL DPWRST('XXX','BUG ')
18113      WRITE(ICOUT,2114)
18114 2114 FORMAT('      THE UPPER BOUND (PARAMETER UPPER) OF THE')
18115      CALL DPWRST('XXX','BUG ')
18116      WRITE(ICOUT,2115)
18117 2115 FORMAT('     REGION OF INTEREST MUST BE PRE-DEFINED.')
18118      CALL DPWRST('XXX','BUG ')
18119      WRITE(ICOUT,2116)
18120 2116 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE    UPPER,')
18121      CALL DPWRST('XXX','BUG ')
18122      WRITE(ICOUT,2117)
18123 2117 FORMAT('      AS IN         LET UPPER = 1100')
18124      CALL DPWRST('XXX','BUG ')
18125      IERROR='YES'
18126      GOTO9000
18127 2119 CONTINUE
18128C
18129C     --------------------------
18130C
18131      IF(ANOPL1.LT.ANOPL2)GOTO3129
18132      WRITE(ICOUT,999)
18133      CALL DPWRST('XXX','BUG ')
18134      WRITE(ICOUT,3111)
18135 3111 FORMAT('***** ERROR IN CKPRPA--')
18136      CALL DPWRST('XXX','BUG ')
18137      WRITE(ICOUT,3112)
18138 3112 FORMAT('      IN COMPUTING THE PROPORTION STATISTIC,')
18139      CALL DPWRST('XXX','BUG ')
18140      WRITE(ICOUT,3114)
18141 3114 FORMAT('      THE VALUE OF THE LOWER REGION LIMIT')
18142      CALL DPWRST('XXX','BUG ')
18143      WRITE(ICOUT,3115)
18144 3115 FORMAT('      (PARAMETER LOWER) MUST BE STRICTLY')
18145      CALL DPWRST('XXX','BUG ')
18146      WRITE(ICOUT,3116)
18147 3116 FORMAT('      LESS THAN THE VALUE OF THE')
18148      CALL DPWRST('XXX','BUG ')
18149      WRITE(ICOUT,3117)
18150 3117 FORMAT('      UPPER REGION LIMIT (PARAMETER UPPER).')
18151      CALL DPWRST('XXX','BUG ')
18152      WRITE(ICOUT,3118)
18153 3118 FORMAT('      SUCH WAS NOT THE CASE HERE.')
18154      CALL DPWRST('XXX','BUG ')
18155      WRITE(ICOUT,3119)ANOPL1
18156 3119 FORMAT('            LOWER = ',E15.7)
18157      CALL DPWRST('XXX','BUG ')
18158      WRITE(ICOUT,3120)ANOPL2
18159 3120 FORMAT('            UPPER = ',E15.7)
18160      CALL DPWRST('XXX','BUG ')
18161      IERROR='YES'
18162      GOTO9000
18163 3129 CONTINUE
18164C
18165C               ******************
18166C               **   STEP 90--  **
18167C               **   EXIT       **
18168C               ******************
18169C
18170 9000 CONTINUE
18171      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'PRPA')GOTO9090
18172      WRITE(ICOUT,999)
18173      CALL DPWRST('XXX','BUG ')
18174      WRITE(ICOUT,9011)
18175 9011 FORMAT('***** AT THE END       OF CKPRPA--')
18176      CALL DPWRST('XXX','BUG ')
18177      WRITE(ICOUT,9012)IBUGG3,ISUBRO,IERROR
18178 9012 FORMAT('IBUGG3,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
18179      CALL DPWRST('XXX','BUG ')
18180      WRITE(ICOUT,9013)ANOPL1,ANOPL2
18181 9013 FORMAT('ANOPL1,ANOPL2 = ',2E15.7)
18182      CALL DPWRST('XXX','BUG ')
18183 9090 CONTINUE
18184C
18185      RETURN
18186      END
18187      SUBROUTINE CKPRSC(X,N,ISORSW,ICASAX,
18188     1ISUBG4,IBUGPL,IERRG4)
18189C
18190C     PURPOSE--CHECK THAT ALL DATA IN X(.) ARE VALID
18191C              (IN THIS CASE, MEANING    0 < X(.) < 100   )
18192C              IN PREPARATION FOR A PROBABILITY SCALE TRANSFORMATION.
18193C              (SUCH AS (0 TO 100) WEIBULL OR NORMAL)
18194C     WRITTEN BY--JAMES J. FILLIBEN
18195C                 STATISTICAL ENGINEERING DIVISION
18196C                 INFORMATION TECHNOLOGY LABORATORY
18197C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
18198C                 GAITHERSBURG, MD 20899-8980
18199C                 PHONE--301-975-2855
18200C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
18201C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
18202C     LANGUAGE--ANSI FORTRAN (1977)
18203C     VERSION NUMBER--88.10
18204C     ORIGINAL VERSION--MAY        1983.
18205C     ORIGINAL VERSION (AS A SEPARATE SUBROUTINE)--SEPTEMBER 1988.
18206C     UPDATED         --JULY       1993 ADD NORMAL TO WEIBULL
18207C
18208C-----NON-COMMON VARIABLES (GRAPHICS)-------------------------------------------
18209C
18210      CHARACTER*4 ISORSW
18211      CHARACTER*4 ICASAX
18212C
18213      CHARACTER*4 ISUBG4
18214      CHARACTER*4 IBUGPL
18215      CHARACTER*4 IERRG4
18216C
18217C---------------------------------------------------------------------
18218C
18219      DIMENSION X(*)
18220C
18221C-----COMMON VARIABLES (GENERAL)--------------------------------------
18222C
18223      INCLUDE 'DPCOP2.INC'
18224C
18225C-----START POINT-----------------------------------------------------
18226C
18227      IERRG4='NO'
18228      AHUNDR=100.0
18229C
18230      IF(IBUGPL.EQ.'OFF'.AND.ISUBG4.NE.'PRSC')GOTO90
18231      WRITE(ICOUT,999)
18232  999 FORMAT(1X)
18233      CALL DPWRST('XXX','BUG ')
18234      WRITE(ICOUT,51)
18235   51 FORMAT('***** AT THE BEGINNING OF CKPRSC--')
18236      CALL DPWRST('XXX','BUG ')
18237      WRITE(ICOUT,52)IBUGPL,ISUBG4,IERRG4
18238   52 FORMAT('IBUGPL,ISUBG4,IERRG4 = ',3A4)
18239      CALL DPWRST('XXX','BUG ')
18240      WRITE(ICOUT,53)ISORSW,ICASAX
18241   53 FORMAT('ISORSW,ICASAX = ',A4,2X,A4)
18242      CALL DPWRST('XXX','BUG ')
18243      WRITE(ICOUT,61)N
18244   61 FORMAT('N = ',I8)
18245      CALL DPWRST('XXX','BUG ')
18246      DO62I=1,N
18247      WRITE(ICOUT,63)I,X(I)
18248   63 FORMAT('I,X(I) = ',I8,E15.7)
18249      CALL DPWRST('XXX','BUG ')
18250   62 CONTINUE
18251   90 CONTINUE
18252C
18253C               **************************************************
18254C               **  STEP 11--                                   **
18255C               **  CHECK THAT ALL X(.) ARE > 0 AND < 100       **
18256C               **************************************************
18257C
18258      DO1135I=1,N
18259      J=I
18260      IF(X(J).LE.0.0.OR.X(J).GE.100.0)GOTO1150
18261 1135 CONTINUE
18262      GOTO9000
18263C
18264 1150 CONTINUE
18265      WRITE(ICOUT,999)
18266      CALL DPWRST('XXX','BUG ')
18267      WRITE(ICOUT,1151)
18268 1151 FORMAT('***** ERROR IN CKPRSC--')
18269      CALL DPWRST('XXX','BUG ')
18270      WRITE(ICOUT,1152)
18271 1152 FORMAT('      AN ILLEGAL DATA OR LIMITS VALUE ')
18272      CALL DPWRST('XXX','BUG ')
18273      WRITE(ICOUT,1153)
18274 1153 FORMAT('      WAS ENCOUNTERED IN FORMING A PLOT.')
18275      CALL DPWRST('XXX','BUG ')
18276      WRITE(ICOUT,1154)
18277 1154 FORMAT('      DATA MUST BE STRICTLY GREATER THAN 0')
18278      CALL DPWRST('XXX','BUG ')
18279      WRITE(ICOUT,1155)
18280 1155 FORMAT('      AND STRICTLY LESS THAN 100')
18281      CALL DPWRST('XXX','BUG ')
18282      WRITE(ICOUT,1156)
18283 1156 FORMAT('      WHEN A WEIBULL OR NORMAL SCALE PLOT IS USED.')
18284      CALL DPWRST('XXX','BUG ')
18285      WRITE(ICOUT,1157)X(J)
18286 1157 FORMAT('      THE VALUE = ',E15.7)
18287      CALL DPWRST('XXX','BUG ')
18288      WRITE(ICOUT,1160)
18289 1160 FORMAT('      THIS VALUE CAME FROM THE ')
18290      IF(ICASAX.EQ.'2DHO')WRITE(ICOUT,1161)
18291 1161 FORMAT('      2-D HORIZONTAL AXIS VARIABLE.')
18292      IF(ICASAX.EQ.'2DHO')CALL DPWRST('XXX','BUG ')
18293      IF(ICASAX.EQ.'2DVE')WRITE(ICOUT,1162)
18294 1162 FORMAT('      2-D VERTICAL AXIS VARIABLE.')
18295      IF(ICASAX.EQ.'2DVE')CALL DPWRST('XXX','BUG ')
18296      IF(ICASAX.EQ.'3DH1')WRITE(ICOUT,1163)
18297 1163 FORMAT('      FIRST 3-D HORIZONTAL AXIS VARIABLE.')
18298      IF(ICASAX.EQ.'3DH1')CALL DPWRST('XXX','BUG ')
18299      IF(ICASAX.EQ.'3DH2')WRITE(ICOUT,1164)
18300 1164 FORMAT('      2ND 3-D HORIZONTAL AXIS VARIABLE.')
18301      IF(ICASAX.EQ.'3DH2')CALL DPWRST('XXX','BUG ')
18302      IF(ICASAX.EQ.'3DVE')WRITE(ICOUT,1165)
18303 1165 FORMAT('      3-D VERTICAL AXIS VARIABLE.')
18304      IF(ICASAX.EQ.'3DVE')CALL DPWRST('XXX','BUG ')
18305      WRITE(ICOUT,1171)
18306 1171 FORMAT('      CORRECTIVE ACTION--')
18307      CALL DPWRST('XXX','BUG ')
18308      WRITE(ICOUT,1172)
18309 1172 FORMAT('      CHANGE DATA OR CHANGE LIMITS.')
18310      CALL DPWRST('XXX','BUG ')
18311      IERRG4='YES'
18312      GOTO9000
18313C
18314C               *****************
18315C               **  STEP 90--  **
18316C               **  EXIT.      **
18317C               *****************
18318C
18319 9000 CONTINUE
18320      IF(IBUGPL.EQ.'OFF'.AND.ISUBG4.NE.'PRSC')GOTO9090
18321      WRITE(ICOUT,999)
18322      CALL DPWRST('XXX','BUG ')
18323      WRITE(ICOUT,9011)
18324 9011 FORMAT('***** AT THE END       OF CKPRSC--')
18325      CALL DPWRST('XXX','BUG ')
18326      WRITE(ICOUT,9012)IBUGPL,ISUBG4,IERRG4
18327 9012 FORMAT('IBUGPL,ISUBG4,IERRG4 = ',3A4)
18328      CALL DPWRST('XXX','BUG ')
18329      WRITE(ICOUT,9013)ISORSW,ICASAX
18330 9013 FORMAT('ISORSW,ICASAX = ',A4,2X,A4)
18331      CALL DPWRST('XXX','BUG ')
18332      WRITE(ICOUT,9021)N,J
18333 9021 FORMAT('N,J = ',2I8)
18334      CALL DPWRST('XXX','BUG ')
18335      DO9022I=1,N
18336      WRITE(ICOUT,9023)I,X(I)
18337 9023 FORMAT('I,X(I) = ',I8,E15.7)
18338      CALL DPWRST('XXX','BUG ')
18339 9022 CONTINUE
18340 9090 CONTINUE
18341C
18342      RETURN
18343      END
18344      SUBROUTINE CKRAND(ICASRA,ILOCNU,NUMSHA,
18345     1                  SHAPE1,SHAPE2,SHAPE3,SHAPE4,
18346     1                  SHAPE5,SHAPE6,SHAPE7,
18347     1                  IBUGA3,ISUBRO,IFOUND,IERROR)
18348C
18349C     PURPOSE--CHECK TO SEE IF A RANDOM NUMBER
18350C              COMMAND HAS BEEN GIVEN.
18351C     OUTPUT ARGUMENTS--IFOUND ('YES' OR 'NO')
18352C                     --IERROR ('YES' OR 'NO')
18353C                     --ICASRA ('UNIF', 'NORM', 'LOGI', ETC.)
18354C                     --ILOCNU (AN INTEGER VALUE WHICH GIVES
18355C                              THE ARGUMENT NUMBER (1, 2, 3, ...)
18356C                              OF THE WORD    NUMBER     .
18357C     WRITTEN BY--JAMES J. FILLIBEN
18358C                 STATISTICAL ENGINEERING DIVISION
18359C                 INFORMATION TECHNOLOGY LABORATORY
18360C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
18361C                 GAITHERSBURG, MD 20899-8980
18362C                 PHONE--301-975-2855
18363C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
18364C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
18365C     LANGUAGE--ANSI FORTRAN (1977)
18366C     VERSION NUMBER--82/7
18367C     ORIGINAL VERSION--MAY       1978.
18368C     UPDATED         --JUNE      1981.
18369C     UPDATED         --SEPTEMBER 1981.
18370C     UPDATED         --MAY       1982.
18371C     UPDATED         --DECEMBER  1988.  EXTENSIVE. TO SIMPLIFY CALL
18372C     UPDATED         --DECEMBER  1988.  DISCRETE UNIFORM
18373C     UPDATED         --DECEMBER  1988.  BOOTSTRAP INDEX
18374C     UPDATED         --DECEMBER  1988.  RANDOM INDEX = BOOTSTRAP INDEX
18375C     UPDATED         --DECEMBER  1988.  RANDOM PERMUTATION
18376C     UPDATED         --DECEMBER  1988.  RAND SAMP FOR RAND NUMB
18377C     UPDATED         --JANUARY   1988.  JACKNIFE INDEX
18378C     UPDATED         --MAY       1990.  IG, WALD, RIG, FL (SAUNDERS)
18379C     UPDATED         --MAY       1993.  ADD GUMBEL AND FRECHET NAMES
18380C     UPDATED         --OCTOBER   1993.  MOVED JACKNIFE INDEX TO CKMATH
18381C     UPDATED         --DECEMBER  1993.  ADD EV1 AND EV2 NAMES
18382C     UPDATED         --DECEMBER  1993.  GENERALIZED PARETO
18383C     UPDATED         --APRIL     1995.  POWER FUNCTION
18384C     UPDATED         --AUGUST    1995.  HYPERGEOMETRIC
18385C     UPDATED         --AUGUST    1995.  NON-CENTRAL CHI-SQUARE
18386C     UPDATED         --AUGUST    1995.  NON-CENTRAL F
18387C     UPDATED         --AUGUST    1995.  DOUBLY NON-CENTRAL F
18388C     UPDATED         --OCTOBER   1995.  FOLDED NORMAL
18389C     UPDATED         --OCTOBER   1995.  HALF-CAUCHY
18390C     UPDATED         --MAY       1998.  NORMAL MIXTURE
18391C     UPDATED         --MAY       1998.  POWER LAW
18392C     UPDATED         --AUGUST    2001.  GENERALIZED LAMBDA
18393C     UPDATED         --SEPTEMBER 2001.  INVERTED WEIBULL
18394C     UPDATED         --OCTOBER   2001.  DOUBLE WEIBULL
18395C     UPDATED         --OCTOBER   2001.  DOUBLE GAMMA
18396C     UPDATED         --OCTOBER   2001.  LOG GAMMA
18397C     UPDATED         --OCTOBER   2001.  INVERTED GAMMA
18398C     UPDATED         --OCTOBER   2001.  COSINE
18399C     UPDATED         --OCTOBER   2001.  ANGLIT
18400C     UPDATED         --OCTOBER   2001.  HYPERBOLIC SECANT
18401C     UPDATED         --OCTOBER   2001.  ARCSIN
18402C     UPDATED         --OCTOBER   2001.  LOG DOUBLE EXPONENTIAL
18403C     UPDATED         --OCTOBER   2001.  GENERALIZED EXTREME VALUE
18404C     UPDATED         --OCTOBER   2001.  EXPONENTIATED WEIBULL
18405C     UPDATED         --OCTOBER   2001.  GOMPERTZ
18406C     UPDATED         --OCTOBER   2001.  HALF-LOGISTIC
18407C     UPDATED         --OCTOBER   2001.  POWER EXPONENTIAL
18408C     UPDATED         --OCTOBER   2001.  ALPHA
18409C     UPDATED         --OCTOBER   2001.  BRADFORD
18410C     UPDATED         --OCTOBER   2001.  RECIPROCAL
18411C     UPDATED         --OCTOBER   2001.  JOHNSON SU
18412C     UPDATED         --OCTOBER   2001.  JOHNSON SB
18413C     UPDATED         --OCTOBER   2001.  POWER NORMAL
18414C     UPDATED         --OCTOBER   2001.  LOG-LOGISTIC
18415C     UPDATED         --NOVEMBER  2001.  GEOMETRIC EXTREME EXPONENTIAL
18416C     UPDATED         --NOVEMBER  2001.  POWER LOGNORMAL
18417C     UPDATED         --DECEMBER  2001.  BETA-BINOMIAL
18418C     UPDATED         --MAY       2002.  TWO-SIDED POWER
18419C     UPDATED         --MAY       2002.  BIWEIBULL
18420C     UPDATED         --AUGUST    2002.  LOGARITHMIC SERIES
18421C     UPDATED         --JANUARY   2003.  G-AND-H
18422C     UPDATED         --JANUARY   2003.  SLASH
18423C     UPDATED         --APRIL     2003.  LANDAU
18424C     UPDATED         --MAY       2003.  INVERTED BETA
18425C     UPDATED         --MAY       2003.  ERROR (OR SUBBOTIN OR
18426C                                        EXPONENTIAL POWER)
18427C     UPDATED         --JUNE      2003.  TRAPEZOID, VON MISES,
18428C                                        PARETO SECOND KIND,
18429C                                        WRAPPED CAUCHY,
18430C                                        GENERALIZED TRAPEZOID
18431C     UPDATED         --JULY      2003.  TRUNCATED NORMAL, CHI,
18432C                                        FOLDED CAUCHY,
18433C                                        MIELKE BETA-KAPPA,
18434C                                        TRUNCATED EXPONENTIAL,
18435C                                        GENERALIZED EXPONENTIAL
18436C     UPDATED         --SEPTEMBER 2003.  GENERALIZED GAMMA
18437C     UPDATED         --NOVEMBER  2003.  FOLDED T
18438C     UPDATED         --NOVEMBER  2003.  SKEWED T
18439C     UPDATED         --NOVEMBER  2003.  SKEWED NORMAL
18440C     UPDATED         --NOVEMBER  2003.  ZIPF
18441C     UPDATED         --DECEMBER  2003.  GOMPERTZ-MAKEM
18442C     UPDATED         --DECEMBER  2003.  GENERALIZED INVERSE GAUSSIAN
18443C     UPDATED         --MARCH     2004.  LOG SKEWED T
18444C     UPDATED         --MARCH     2004.  LOG SKEWED NORMAL
18445C     UPDATED         --MARCH     2004.  NON-CENTRAL T
18446C     UPDATED         --MARCH     2004.  DOUBLY NON-CENTRAL T
18447C     UPDATED         --MARCH     2004.  GENERALIZED LOGISTIC
18448C     UPDATED         --MARCH     2004.  GENERALIZED HALF-LOGISTIC
18449C     UPDATED         --MARCH     2004.  POLYA
18450C     UPDATED         --APRIL     2004.  HERMITE
18451C     UPDATED         --APRIL     2004.  YULE
18452C     UPDATED         --APRIL     2004.  WARING
18453C     UPDATED         --APRIL     2004.  GENERALIZED WARING
18454C     UPDATED         --APRIL     2004.  NON-CENTRAL BETA
18455C     UPDATED         --MAY       2004.  DOUBLY NON-CENTRAL BETA
18456C     UPDATED         --JUNE      2004.  SKEW DOUBLE EXPONENTIAL
18457C     UPDATED         --JUNE      2004.  ASYMMETRIC DOUBLE EXPONENTIAL
18458C     UPDATED         --JUNE      2004.  GENERALIZED ASYMMETRIC LAPLACE
18459C     UPDATED         --JUNE      2004.  MAXWELL
18460C     UPDATED         --JUNE      2004.  RAYLEIGH
18461C     UPDATED         --AUGUST    2004.  MCLEISH
18462C     UPDATED         --AUGUST    2004.  BESSEL I FUNCTION
18463C     UPDATED         --AUGUST    2004.  BESSEL K FUNCTION
18464C     UPDATED         --SEPTEMBER 2004.  GENERALIZED MCLEISH
18465C     UPDATED         --SEPTEMBER 2004.  HYPERBOLIC
18466C     UPDATED         --FEBRUARY  2006.  GENERALIZED LOGISTIC TYPE 5
18467C     UPDATED         --FEBRUARY  2006.  WAKEBY
18468C     UPDATED         --MARCH     2006.  BETA-NORMAL
18469C     UPDATED         --MARCH     2006.  GENERALIZED LOGISTIC TYPE 2
18470C     UPDATED         --MARCH     2006.  GENERALIZED LOGISTIC TYPE 3
18471C     UPDATED         --MARCH     2006.  GENERALIZED LOGISTIC TYPE 4
18472C     UPDATED         --MARCH     2006.  ASYMMETRIC LOG LAPLACE
18473C     UPDATED         --MAY       2006.  BETA-GEOMETRIC
18474C     UPDATED         --MAY       2006.  ZETA
18475C     UPDATED         --MAY       2006.  BOREL-TANNER
18476C     UPDATED         --MAY       2006.  BETA-NEGATIVE BINOMIAL
18477C                                        (SYNONYM FOR GENERALZIED
18478C                                        WARING)
18479C     UPDATED         --JUNE      2006.  LAGRANGE POISSON
18480C     UPDATED         --JUNE      2006.  LEADS IN COIN TOSSING
18481C                                        (DISCRETE ARCSINE)
18482C     UPDATED         --JUNE      2006.  MATCHING
18483C     UPDATED         --JUNE      2006.  CLASSICAL OCCUPANCY (NOT ACTIVE)
18484C     UPDATED         --JUNE      2006.  LOG BETA (NOT ACTIVE)
18485C     UPDATED         --JUNE      2006.  POLYA-AEPPLI
18486C     UPDATED         --JUNE      2006.  LOST GAMES
18487C     UPDATED         --JUNE      2006.  NEYMAN TYPE A (NOT ACTIVE)
18488C     UPDATED         --JUNE      2006.  DXG (NOT ACTIVE)
18489C     UPDATED         --JUNE      2006.  GENERALIZED LOGARITHMIC SERIES
18490C     UPDATED         --JULY      2006.  GENERALIZED NEGATIVE BINOMIAL
18491C     UPDATED         --JULY      2006.  GEETA
18492C     UPDATED         --JULY      2006.  QUASI BINOMIAL TYPE I
18493C     UPDATED         --JULY      2006.  POISSON-INVERSE GAUSSIAN
18494C                                        (NOT ACTIVE)
18495C     UPDATED         --AUGUST    2006.  CONSUL
18496C     UPDATED         --AUGUST    2006.  LAGRANGE KATZ (NOT ACTIVE)
18497C     UPDATED         --SEPTEMBER 2006.  KATZ
18498C     UPDATED         --NOVEMBER  2006.  DISCRETE WEIBULL
18499C     UPDATED         --NOVEMBER  2006.  GENERALIZED LOST GAMES
18500C     UPDATED         --JANUARY   2007.  TRUNCATED GENERALIZED
18501C                                        NEGATIVE BINOMIAL
18502C     UPDATED         --FEBRUARY  2007.  TOPP AND LEONE
18503C     UPDATED         --FEBRUARY  2007.  GENERALIZED TOPP AND LEONE
18504C     UPDATED         --FEBRUARY  2007.  REFLECTED GENERALIZED TOPP
18505C                                        AND LEONE
18506C     UPDATED         --SEPTEMBER 2007.  SLOPE
18507C     UPDATED         --SEPTEMBER 2007.  TWO-SIDED SLOPE
18508C     UPDATED         --SEPTEMBER 2007.  OGIVE
18509C     UPDATED         --SEPTEMBER 2007.  TWO-SIDED OGIVE
18510C     UPDATED         --OCTOBER   2007.  BURR TYPE 1
18511C     UPDATED         --OCTOBER   2007.  BURR TYPE 2
18512C     UPDATED         --OCTOBER   2007.  BURR TYPE 3
18513C     UPDATED         --OCTOBER   2007.  BURR TYPE 4
18514C     UPDATED         --OCTOBER   2007.  BURR TYPE 5
18515C     UPDATED         --OCTOBER   2007.  BURR TYPE 6
18516C     UPDATED         --OCTOBER   2007.  BURR TYPE 7
18517C     UPDATED         --OCTOBER   2007.  BURR TYPE 8
18518C     UPDATED         --OCTOBER   2007.  BURR TYPE 9
18519C     UPDATED         --OCTOBER   2007.  BURR TYPE 10
18520C     UPDATED         --OCTOBER   2007.  BURR TYPE 11
18521C     UPDATED         --OCTOBER   2007.  BURR TYPE 12
18522C     UPDATED         --OCTOBER   2007.  UNEVEN TWO-SIDED POWER
18523C     UPDATED         --OCTOBER   2007.  DOUBLY UNIFORM PARETO
18524C     UPDATED         --OCTOBER   2007.  KUMARASWAMY
18525C     UPDATED         --DECEMBER  2007.  REFLECTED POWER
18526C     UPDATED         --JANUARY   2008.  MUTH
18527C     UPDATED         --FEBRUARY  2008.  LOGISTIC-EXPONENTIAL
18528C     UPDATED         --MARCH     2008.  TRUNCATED PARETO
18529C     UPDATED         --MARCH     2008.  BRITTLE FRACTURE
18530C     UPDATED         --MARCH     2008.  3-PARAMETER
18531C                                        LOGISTIC-EXPONENTIAL
18532C     UPDATED         --APRIL     2008.  RANDOM SUBSET
18533C     UPDATED         --APRIL     2008.  RANDOM K-SET OF N-SET
18534C     UPDATED         --APRIL     2008.  RANDOM COMPOSITION
18535C     UPDATED         --APRIL     2008.  RANDOM PARTITION
18536C     UPDATED         --MAY       2008.  KAPPA
18537C     UPDATED         --MAY       2008.  PEARSON TYPE 3
18538C     UPDATED         --JUNE      2008.  RANDOM EQUIVALENCE RELATION
18539C     UPDATED         --JULY      2008.  RANDOM YOUNG TABLEAUX
18540C     UPDATED         --SEPTEMBER 2009.  USE "EXTDIS" TO DETERMINE
18541C                                        DISTRIBUTION NAME (A FEW
18542C                                        COMMANDS ARE HANDLED
18543C                                        SEPARATELY, E.G. RANDOM SUBSET)
18544C
18545C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
18546C
18547      CHARACTER*4 ICASRA
18548      CHARACTER*4 ISUBRO
18549      CHARACTER*4 IBUGA3
18550      CHARACTER*4 IFOUND
18551      CHARACTER*4 IERROR
18552C
18553C-----COMMON----------------------------------------------------------
18554C
18555      INCLUDE 'DPCOPA.INC'
18556      INCLUDE 'DPCOHK.INC'
18557      INCLUDE 'DPCODA.INC'
18558C
18559      CHARACTER*4  ISTEPN
18560      CHARACTER*4  ISUBN1
18561      CHARACTER*4  ISUBN2
18562      CHARACTER*60 IDIST
18563C
18564C-----COMMON VARIABLES (GENERAL)--------------------------------------
18565C
18566      INCLUDE 'DPCOP2.INC'
18567C
18568C-----START POINT-----------------------------------------------------
18569C
18570C               ******************************************
18571C               **  CHECK FOR RANDOM NUMBER GENERATION  **
18572C               ******************************************
18573C
18574      IFOUND='NO'
18575      IERROR='NO'
18576      ICASRA='UNKN'
18577C
18578      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'RAND')THEN
18579        WRITE(ICOUT,999)
18580  999   FORMAT(1X)
18581        CALL DPWRST('XXX','BUG ')
18582        WRITE(ICOUT,51)
18583   51   FORMAT('***** AT THE BEGINNING OF CKRAND--')
18584        CALL DPWRST('XXX','BUG ')
18585        WRITE(ICOUT,52)IBUGA3,NUMARG
18586   52   FORMAT('IBUGA3,NUMARG = ',A4,2X,I8)
18587        CALL DPWRST('XXX','BUG ')
18588        WRITE(ICOUT,53)SHAPE1,SHAPE2,SHAPE3,SHAPE4
18589   53   FORMAT('SHAPE1,SHAPE2,SHAPE3,SHAPE4 = ',4G15.7)
18590        CALL DPWRST('XXX','BUG ')
18591        WRITE(ICOUT,54)SHAPE5,SHAPE6,SHAPE7
18592   54   FORMAT('SHAPE5,SHAPE6,SHAPE7 = ',3G15.7)
18593        CALL DPWRST('XXX','BUG ')
18594        DO55I=1,NUMARG
18595          WRITE(ICOUT,56)I,IHARG(I),IHARG2(I)
18596   56     FORMAT('I,IHARG(I),IHARG2(I) = ',I8,A4,2X,A4)
18597          CALL DPWRST('XXX','BUG ')
18598   55   CONTINUE
18599      ENDIF
18600C
18601      IF(IHARG(3).EQ.'RAND' .AND. IHARG(4).EQ.'PART')THEN
18602        IF(NUMARG.LE.3)GOTO9000
18603      ELSEIF(IHARG(3).EQ.'INDE' .AND. IHARG(4).EQ.'UNIF' .AND.
18604     1       IHARG(5).EQ.'RAND')THEN
18605        GOTO9000
18606      ELSEIF(IHARG(3).EQ.'CORR' .AND. IHARG(4).EQ.'UNIF' .AND.
18607     1       IHARG(5).EQ.'RAND')THEN
18608        GOTO9000
18609      ELSEIF(IHARG(3).EQ.'MULT' .AND. IHARG(4).EQ.'NORM' .AND.
18610     1       IHARG(5).EQ.'RAND')THEN
18611        GOTO9000
18612      ELSEIF(IHARG(3).EQ.'MULT' .AND. IHARG(4).EQ.'T   ' .AND.
18613     1       IHARG(5).EQ.'RAND')THEN
18614        GOTO9000
18615      ELSEIF(IHARG(3).EQ.'MULT' .AND. IHARG(4).EQ.'RAND')THEN
18616        GOTO9000
18617      ELSEIF(IHARG(3).EQ.'WISH' .AND. IHARG(4).EQ.'RAND')THEN
18618        GOTO9000
18619      ELSEIF(IHARG(3).EQ.'DIRC' .AND. IHARG(4).EQ.'RAND')THEN
18620        GOTO9000
18621      ELSE
18622        IF(NUMARG.LE.4)GOTO9000
18623      ENDIF
18624C
18625      JSTART=1
18626      JMAX=NUMARG-1
18627      DO100J=1,JMAX
18628        JP1=J+1
18629        JP2=J+2
18630        JP3=J+3
18631        JP4=J+4
18632        JP5=J+5
18633        IF(J.GE.4.AND.IHARG(J).EQ.'RAND'.AND.
18634     1     (IHARG(JP1).EQ.'NUMB' .OR. IHARG(JP1).EQ.'SAMP'))THEN
18635          JMIN=3
18636          JMAX=J-1
18637          GOTO190
18638        ELSEIF(IHARG(J).EQ.'BOOT'.AND.IHARG(JP1).EQ.'INDE')THEN
18639          ICASRA='BOOT'
18640          ILOCNU=4
18641          GOTO1190
18642        ELSEIF(IHARG(J).EQ.'RAND'.AND.IHARG(JP1).EQ.'INDE')THEN
18643          ICASRA='BOOT'
18644          ILOCNU=4
18645          GOTO1190
18646        ELSEIF(IHARG(J).EQ.'RAND'.AND.IHARG(JP1).EQ.'PERM')THEN
18647          IF(J.GE.2 .AND. IHARG(J-1).EQ.'SAMP')GOTO9000
18648          ICASRA='PERM'
18649          ILOCNU=4
18650          GOTO1190
18651        ELSEIF(IHARG(J).EQ.'RAND'.AND.IHARG(JP1).EQ.'SUBS')THEN
18652          ICASRA='SUBS'
18653          ILOCNU=5
18654          GOTO1190
18655        ELSEIF(IHARG(J).EQ.'RAND'.AND.IHARG(JP1).EQ.'COMP')THEN
18656          ICASRA='RANC'
18657          ILOCNU=5
18658          GOTO1190
18659        ELSEIF(IHARG(J).EQ.'RAND'.AND.IHARG(JP1).EQ.'PART')THEN
18660          ICASRA='RANP'
18661          ILOCNU=5
18662          GOTO1190
18663        ELSEIF(IHARG(J)  .EQ.'RAND' .AND. IHARG(JP1).EQ.'K   '.AND.
18664     1         IHARG(JP2).EQ.'SET ' .AND. IHARG(JP3).EQ.'OF  '.AND.
18665     1         IHARG(JP4).EQ.'N   ' .AND. IHARG(JP5).EQ.'SET ')THEN
18666          ICASRA='KNSE'
18667          ILOCNU=9
18668          GOTO1190
18669        ELSEIF(IHARG(J).EQ.'RAND'.AND.IHARG(JP1).EQ.'EQUI'.AND.
18670     1     IHARG(JP2).EQ.'RELA')THEN
18671          ICASRA='RANE'
18672          ILOCNU=6
18673          GOTO1190
18674        ELSEIF(IHARG(J).EQ.'RAND'.AND.IHARG(JP1).EQ.'YOUN'.AND.
18675     1     IHARG(JP2).EQ.'TABL')THEN
18676          ICASRA='RAYT'
18677          ILOCNU=6
18678          GOTO1190
18679        ELSEIF(IHARG(J)  .EQ.'EXCL' .AND. IHARG(JP1).EQ.'ZONE'.AND.
18680     1         IHARG(JP2).EQ.'UNIF' .AND. IHARG(JP3).EQ.'RAND'.AND.
18681     1         IHARG(JP4).EQ.'NUMB')THEN
18682          ICASRA='UNEX'
18683          ILOCNU=8
18684          GOTO1190
18685        ENDIF
18686C
18687  100 CONTINUE
18688      IFOUND='NO'
18689      GOTO9000
18690  190 CONTINUE
18691C
18692C  END OF SEARCH
18693C
18694      ISTEPN='2'
18695      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'RAND')THEN
18696        CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
18697        WRITE(ICOUT,211)JMIN,JMAX
18698  211   FORMAT('CKRAND: BEFORE CALL EXTDIS JMIN,JMAX=',2I8)
18699        CALL DPWRST('XXX','BUG ')
18700      ENDIF
18701C
18702      CALL EXTDIS(ICOM,ICOM2,IHARG,IHARG2,NUMARG,JMIN,JMAX,
18703     1            ICASRA,IDIST,NUMSHA,IFOUND,ILOCNU,
18704     1            ISUBRO,IBUGA3,IERROR)
18705C
18706      IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'RAND')THEN
18707        WRITE(ICOUT,999)
18708        CALL DPWRST('XXX','BUG ')
18709        WRITE(ICOUT,251)
18710  251   FORMAT('***** AFTER CALL EXTDIS--')
18711        CALL DPWRST('XXX','BUG ')
18712        WRITE(ICOUT,252)ICASRA,NUMSHA,IDIST
18713  252   FORMAT('ICASRA,NUMSHA,IDIST = ',A4,2X,I8,2X,A60)
18714        CALL DPWRST('XXX','BUG ')
18715      ENDIF
18716C
18717      GOTO1190
18718C
18719 1190 CONTINUE
18720      IFOUND='YES'
18721      GOTO9000
18722C
18723C               *****************
18724C               **  STEP 90--  **
18725C               **  EXIT       **
18726C               *****************
18727C
18728 9000 CONTINUE
18729      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'RAND')THEN
18730        WRITE(ICOUT,999)
18731        CALL DPWRST('XXX','BUG ')
18732        WRITE(ICOUT,9011)
18733 9011   FORMAT('***** AT THE END       OF CKRAND--')
18734        CALL DPWRST('XXX','BUG ')
18735        WRITE(ICOUT,9012)IFOUND,IERROR
18736 9012   FORMAT('IFOUND,IERROR = ',A4,2X,A4)
18737        CALL DPWRST('XXX','BUG ')
18738        WRITE(ICOUT,9013)ICASRA,ILOCNU
18739 9013   FORMAT('ICASRA,ILOCNU = ',A4,I8)
18740        CALL DPWRST('XXX','BUG ')
18741      ENDIF
18742C
18743      RETURN
18744      END
18745      SUBROUTINE CKSTAT(IBUGA3,IFOUN8,ICASL8,ILOCV,ISTANR)
18746C
18747C     PURPOSE--CHECK TO SEE IF A TYPE 8 LET COMMAND HAS BEEN GIVEN--
18748C
18749C              CASE 1: SINGLE RESPONSE VARIABLE
18750C
18751C              LOCATION STATISTICS (ONE RESPONSE VARIABLE)
18752C                      MIDRANGE
18753C                      MEAN
18754C                      AVERAGE
18755C                      MIDMEAN
18756C                      MEDIAN
18757C                      TRIMMED MEAN
18758C                      WINSORIZED MEAN
18759C                      GEOMETRIC MEAN
18760C                      HARMONIC MEAN
18761C                      BIWEIGHT LOCATION
18762C                      HODGES LEHMAN LOCATION
18763C                      STANDARD DEVIATION OF THE MEAN
18764C                      STANDARD DEVIATION OF MEAN
18765C                      STANDARD DEVIATION MEAN
18766C                      VARIANCE OF THE MEAN
18767C                      VARIANCE OF MEAN
18768C                      VARIANCE MEAN
18769C                      TRIMMED MEAN STANDARD ERROR (OR SD)
18770C                      LP LOCATION
18771C                      VARIANCE OF LP LOCATION
18772C                      SD OF LP LOCATION
18773C
18774C              SCALE STATISTICS (ONE RESPONSE VARIABLE)
18775C                      STANDARD DEVIATION (& SD)
18776C                      WINSORIZED STANDARD DEVIATION (OR SD)
18777C                      TRIMMED SD
18778C                      GEOMETRIC STANDARD DEVIATION
18779C                      VARIANCE (& VAR)
18780C                      WINSORIZED VARIANCE
18781C                      AVERAGE ABSOLUTE DEVIATION
18782C                      MAD (MEDIAN ABSOLUTE DEVIATION)
18783C                      MADN (RESCALED MEDIAN ABSOLUTE DEVIATION)
18784C                      SN
18785C                      QN
18786C                      INTERQUARTILE RANGE
18787C                      BIWEIGHT SCALE
18788C                      BIWEIGHT MIDVARIANCE
18789C                      PERCENTAGE BEND MIDVARIANCE
18790C                      COEFFICIENT OF VARIATION
18791C                      RELATIVE STANDARD DEVIATION
18792C                      RELATIVE VARIANCE
18793C                      RANGE
18794C
18795C              PERCENTILE STATISTICS (ONE RESPONSE VARIABLE)
18796C                      QUANTILE
18797C                      QUANTILE STANDARD ERROR
18798C                      <VALUE> PERCENTILE
18799C                      FIRST/SECOND/THIRD/FOURTH/FIFTH/SIXTH/SEVENTH/
18800C                      EIGHTH/NINTH DECILE
18801C                      LOWER HINGE
18802C                      UPPER HINGE
18803C                      LOWER QUARTILE
18804C                      UPPER QUARTILE
18805C                      MINIMUM (MIN)
18806C                      MAXIMUM (MAX)
18807C                      EXTREME
18808C                      INDEX MINIMUM
18809C                      INDEX MAXIMUM
18810C                      INDEX EXTREME
18811C
18812C                HIGHER MOMENTS
18813C                      SKEWNESS
18814C                      KURTOSIS
18815C
18816C                LOCATION AND SCALE STATISTICS (TWO RESPONSE VARIABLES)
18817C                      WEIGHTED MEAN
18818C                      WEIGHTED MEDIAN
18819C                      WEIGHTED STANDARD DEVIATION
18820C                      WEIGHTED VARIANCE
18821C                      WEIGHTED TRIMMED MEAN
18822C
18823C                TIME SERIES STATISTICS:
18824C                      AUTOCORRELATION
18825C                      AUTOCOVARIANCE
18826C                      SIN FREQUENCY
18827C                      SIN AMPLITUDE
18828C
18829C                QUALITY CONTROL STATISTICS:
18830C                      CP
18831C                      CPL
18832C                      CPU
18833C                      CPK
18834C                      CPM
18835C                      CC
18836C                      CNPK
18837C                      (ACTUAL) PERCENT DEFECTIVE
18838C                      (THEORETICAL) PERCENT DEFECTIVE
18839C                      EXPECTED LOSS
18840C                      (TAGUCHI) SN- SN0 SN+ SN00
18841C
18842C                 STATISTICAL TESTS:
18843C                      BINOMIAL PROPORTION
18844C                      GRUBB
18845C                      GRUBB CDF
18846C                      GRUBB DIRECTION
18847C                      GRUBB INDEX
18848C                      TIETJEN-MOORE
18849C                      DIXON TEST
18850C                      ONE SAMPLE T-TEST
18851C                      ONE SAMPLE T-TEST CDF
18852C                      CHI-SQUARE SD
18853C                      CHI-SQUARE SD CDF
18854C                      FREQUENCY TEST
18855C                      FREQUENCY TEST CDF
18856C                      FREQUENCY WITHIN A BLOCK TEST
18857C                      FREQUENCY WITHIN A BLOCK TEST CDF
18858C
18859C                 DISTRIBUTIONS:
18860C                      NORMAL PPCC
18861C
18862C                 MISCELLANEOUS STATISTICS (ONE RESPONSE VARIABLE)
18863C                      NUMBER (SIZE, COUNT, SAMPLE SIZE)
18864C                      SUM
18865C                      PRODUCT
18866C                      INTEGRAL
18867C                      COMMON DIGITS
18868C                      NUMBER OF COMMON DIGITS
18869C
18870C              CASE 2: TWO RESPONSE VARIABLES
18871C
18872C                 WEIGHTED STATISTICS:
18873C                      WEIGHTED MEAN
18874C                      WEIGHTED STANDARD DEVIATION
18875C                      WEIGHTED VARIANCE
18876C                      WEIGHTED TRIMMED MEAN
18877C
18878C                 CO-RELATION
18879C                      COVARIANCE
18880C                      RANK COVARIANCE
18881C                      CORRELATION
18882C                      RANK CORRELATION
18883C                      KENDELL TAU
18884C                      COMOVEMENT (LEIGH-PEARLMAN)
18885C                      RANK COMOVEMENT
18886C                      WINSORIZED COVARIANCE
18887C                      WINSORIZED CORRELATION
18888C                      BIWEIGHT MIDCOVARIANCE
18889C                      BIWEIGHT MIDCORRELATION
18890C                      PERCENTAGE BEND CORRELATION
18891C
18892C                  REGRESSION/FITTING:
18893C                      LINEAR INTERCEPT
18894C                      LINEAR SLOPE
18895C                      LINEAR RESSD
18896C                      LINEAR CORRELATION
18897C                      REPEATABILITY STANDARD DEVIATION
18898C                      REPRODUCABILITY STANDARD DEVIATION
18899C
18900C                  CATEGORICAL DATA
18901C                      RATIO
18902C                      ODDS RATIO
18903C                      ODDS RATIO STANDARD ERROR
18904C                      LOG ODDS RATIO
18905C                      LOG ODDS RATIO STANDARD ERROR
18906C                      RELATIVE RISK
18907C                      CRAMER CONTINGENCY COEFFICIENT
18908C                      PEARSON CONTINGENCY COEFFICIENT
18909C                      FALSE POSITIVES
18910C                      FALSE NEGATIVES
18911C                      TRUE POSITIVES
18912C                      TRUE NEGATIVES
18913C                      TEST SENSITIVITY
18914C                      TEST SPECIFICITY
18915C                      POSITIVE PREDICTIVE VALUE
18916C                      NEGATIVE PREDICTIVE VALUE
18917C
18918C
18919C                  DIFFERENCE OF LOCATION:
18920C                      DIFFERENCE OF MEANS
18921C                      DIFFERENCE OF MIDMEANS
18922C                      DIFFERENCE OF MEDIANS
18923C                      DIFFERENCE OF TRIMMED MEANS
18924C                      DIFFERENCE OF WINSORIZED MEANS
18925C                      DIFFERENCE OF GEOMETRIC MEANS
18926C                      DIFFERENCE OF HARMONIC MEANS
18927C                      DIFFERENCE OF HODGES-LEHMAN
18928C                      DIFFERENCE OF BIWEIGHT LOCATION
18929C                      DIFFERENCE OF LP LOCATION
18930C
18931C                  DIFFERENCE OF SCALE:
18932C                      DIFFERENCE OF STANDARD DEVIATIONS
18933C                      DIFFERENCE OF VARIANCES
18934C                      DIFFERENCE OF AAD
18935C                      DIFFERENCE OF MAD
18936C                      DIFFERENCE OF MADN
18937C                      DIFFERENCE OF SN
18938C                      DIFFERENCE OF QN
18939C                      DIFFERENCE OF INTERQUARTILE RANGE
18940C                      DIFFERENCE OF WINSORIZED SD
18941C                      DIFFERENCE OF WINSORIZED VARIANCE
18942C                      DIFFERENCE OF BIWEIGHT MIDVARIANCE
18943C                      DIFFERENCE OF BIWEIGHT SCALE
18944C                      DIFFERENCE OF PERCENTAGE BEND
18945C                      DIFFERENCE OF GEOMETRIC SD
18946C                      DIFFERENCE OF RANGE
18947C                      DIFFERENCE OF MIDRANGE
18948C                      DIFFERENCE OF QUANTILE
18949C                      DIFFERENCE OF SKEWNESS
18950C                      DIFFERENCE OF KURTOSIS
18951C                      DIFFERENCE OF RELATIVE SD
18952C                      DIFFERENCE OF SD OF MEAN
18953C                      DIFFERENCE OF RELATIVE VARIANCE
18954C                      DIFFERENCE OF VARIANCE OF THE MEAN
18955C                      DIFFERENCE OF MINIMUM
18956C                      DIFFERENCE OF MAXIMUM
18957C                      DIFFERENCE OF EXTREMES
18958C                      DIFFERENCE OF VARIANCE OF LP LOCATION
18959C                      DIFFERENCE OF SD OF LP LOCATION
18960C
18961C                  MISCELLANEOUS:
18962C                      DIFFERENCE OF BINOMIAL PROBABILITY
18963C                      DIFFERENCE OF COUNTS
18964C                      DIFFERENCE OF SUMS
18965C
18966C     OUTPUT ARGUMENTS--IFOUN8 ('YES' OR 'NO')
18967C                     --ICASL8 ('NUMB', 'SUM', ETC.)
18968C                     --ILOCV (LOCATION IN THE ARGUMENT LIST IHARG(.)
18969C                             OF THE VARIABLE OR COLUMN
18970C                             TO BE OPERATED ON.
18971C     WRITTEN BY--JAMES J. FILLIBEN
18972C                 STATISTICAL ENGINEERING DIVISION
18973C                 INFORMATION TECHNOLOGY LABORATORY
18974C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
18975C                 GAITHERSBURG, MD 20899-8980
18976C                 PHONE--301-975-2855
18977C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
18978C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
18979C     LANGUAGE--ANSI FORTRAN (1977)
18980C     VERSION NUMBER--82/7
18981C     ORIGINAL VERSION--MARCH     1979.
18982C     UPDATED         --APRIL     1979.
18983C     UPDATED         --JUNE      1979.
18984C     UPDATED         --JUNE      1981.
18985C     UPDATED         --SEPTEMBER 1981.
18986C     UPDATED         --MAY       1982.
18987C     UPDATED         --SEPTEMBER 1987.  (DECILES)
18988C     UPDATED         --AUGUST    1988.  (WEIGHTED MEAN, MEDIAN, SD, VARIANCE)
18989C     UPDATED         --JANUARY   1989.  AVERAGE ABSOLUTE DEVIATION (ALAN)
18990C     UPDATED         --APRIL     1990.  EXTREME
18991C     UPDATED         --SEPTEMBER 1990.  CP, CPK, % DEF, EXP LOSS
18992C     UPDATED         --SEPTEMBER 1990.  SD FOR STAN. DEVIATION
18993C     UPDATED         --SEPTEMBER 1990.  WINDSORIZED TO WINSORIZED
18994C     UPDATED         --AUGUST    1991.  MOVE FORMS FOR CORR COEF
18995C     UPDATED         --AUGUST    1991.  COMOVEMENT
18996C     UPDATED         --MAY       1993.  CORRELATION => CORR
18997C     UPDATED         --FEBRUARY  1994.  CHANGE ICASL8: SDM => SDME
18998C     UPDATED         --FEBRUARY  1994.  CHANGE ICASL8: RSD => RESD
18999C     UPDATED         --FEBRUARY  1994.  EXTREME
19000C     UPDATED         --FEBRUARY  1994.  RENUMBER 3XX => 7XX STATEMENTS
19001C     UPDATED         --FEBRUARY  1994.  SYNONYM: ST. DEV. OF MEAN =>
19002C     UPDATED         --FEBRUARY  1994.  SYNONYM: ST. DEV. => SD
19003C     UPDATED         --FEBRUARY  1994.  SYNONYM: VARI => VAR
19004C     UPDATED         --FEBRUARY  1994.  RELATIVE VARIANCE
19005C     UPDATED         --FEBRUARY  1994.  VARIANCE OF THE MEAN
19006C     UPDATED         --FEBRUARY  1994.  NORMAL PPCC
19007C     UPDATED         --FEBRUARY  1994.  TAGUCHI SN- SN0 SN+ SN00
19008C     UPDATED         --NOVEMBER  1994.  DISTINGUISH RELATIVE SD AND
19009C                                        COEF OF VARIATION CASES
19010C     UPDATED         --MARCH     1995.  MEDIAN ABSOLUTE DEVIATION
19011C     UPDATED         --NOVEMBER  1998. <VALUE> PERCENTILE
19012C     UPDATED         --NOVEMBER  1998. CPM, CC
19013C     UPDATED         --MARCH     1999. CNPK
19014C     UPDATED         --MARCH     1999. GEOMETRIC MEAN
19015C     UPDATED         --MARCH     1999. GEOMETRIC STANDARD DEVIATION
19016C     UPDATED         --MARCH     1999. HARMONIC MEAN
19017C     UPDATED         --APRIL     2001. CPL AND CPU
19018C     UPDATED         --AUGUST    2001. COMMON DIGITS
19019C     UPDATED         --SEPTEMBER 2001. INTERQUARTILE RANGE
19020C     UPDATED         --NOVEMBER  2001. BIWEIGHT LOCATION
19021C     UPDATED         --NOVEMBER  2001. BIWEIGHT SCALE
19022C     UPDATED         --JULY      2002. WINSORIZED VARIANCE
19023C     UPDATED         --JULY      2002. WINSORIZED STANDARD DEVIATION
19024C     UPDATED         --JULY      2002. WINSORIZED COVARIANCE
19025C     UPDATED         --JULY      2002. WINSORIZED CORRELATION
19026C     UPDATED         --JULY      2002. HODGES LEHMAN
19027C     UPDATED         --JULY      2002. PERCENTAGE BEND MIDVARIANCE
19028C     UPDATED         --JULY      2002. BIWEIGHT MIDVARIANCE
19029C     UPDATED         --JULY      2002. BIWEIGHT MIDCOVARIANCE
19030C     UPDATED         --JULY      2002. BIWEIGHT MIDCORRELATION
19031C     UPDATED         --MARCH     2003. 35 "DIFFERENCE OF" STATISTICS
19032C     UPDATED         --APRIL     2003. SN AND QN (AND DIFFERENCE OF)
19033C     UPDATED         --MAY       2003. WEIGHTED TRIMMED MEAN
19034C     UPDATED         --OCTOBER   2004. KENDELL'S TAU
19035C     UPDATED         --SEPTEMBER 2005. RATIO
19036C     UPDATED         --MARCH     2007. RELATIVE RISK
19037C     UPDATED         --MARCH     2007. CRAMER CONTINGENCY COEFFICIENT
19038C     UPDATED         --MARCH     2007. PEARSON CONTINGENCY COEFFICIENT
19039C     UPDATED         --MARCH     2007. FALSE POSITIVE
19040C     UPDATED         --MARCH     2007. FALSE NEGATIVE
19041C     UPDATED         --MARCH     2007. TRUE POSITIVE
19042C     UPDATED         --MARCH     2007. TRUE NEGATIVE
19043C     UPDATED         --MARCH     2007. TEST SENSITIVITY
19044C     UPDATED         --MARCH     2007. TEST SPECIFICITY
19045C     UPDATED         --APRIL     2007. ODDS RATIO
19046C     UPDATED         --APRIL     2007. ODDS RATIO STANDARD ERROR
19047C     UPDATED         --APRIL     2007. LOG ODDS RATIO
19048C     UPDATED         --APRIL     2007. LOG ODDS RATIO STANDARD ERROR
19049C     UPDATED         --NOVEMBER  2007. LP LOCATION
19050C     UPDATED         --NOVEMBER  2007. VARIANCE OF LP LOCATION
19051C     UPDATED         --SEPTEMBER 2008. BINOMIAL PROBABILITY
19052C     UPDATED         --SEPTEMBER 2008. DIFFERENCE OF BINOMIAL
19053C                                       PROBABILITY
19054C     UPDATED         --FEBRUARY  2009. INDEX MINIMUM
19055C     UPDATED         --FEBRUARY  2009. INDEX MAXIMUM
19056C     UPDATED         --FEBRUARY  2009. INDEX EXTREME
19057C     UPDATED         --FEBRUARY  2009. GRUBB
19058C                                       GRUBB CDF
19059C                                       GRUBB DIRECTION
19060C                                       GRUBB INDEX
19061C     UPDATED         --FEBRUARY  2009. ONE SAMPLE T TEST
19062C                                       ONE SAMPLE T TEST CDF
19063C     UPDATED         --FEBRUARY  2009. CHI-SQUARE SD TEST
19064C                                       CHI-SQUARE SD TEST CDF
19065C     UPDATED         --FEBRUARY  2009. FREQUENCY TEST
19066C                                       FREQUENCY TEST CDF
19067C     UPDATED         --FEBRUARY  2009. FREQUENCY WITHIN A BLOCK TEST
19068C                                       FREQUENCY WITHIN A BLOCK TEST CDF
19069C     UPDATED         --MARCH     2009. FUNNEL PARSING THROUGH
19070C                                       EXTSTA ROUTINE
19071C
19072C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
19073C
19074      CHARACTER*4 IBUGA3
19075      CHARACTER*4 IFOUN8
19076      CHARACTER*4 ICASL8
19077      CHARACTER*4 IERROR
19078      CHARACTER*4 ISUBRO
19079C
19080      CHARACTER*4 IH
19081      CHARACTER*4 IH2
19082      CHARACTER*4 ISUBN1
19083      CHARACTER*4 ISUBN2
19084      CHARACTER*4 ISTEPN
19085C
19086      CHARACTER*60 ISTANM
19087      CHARACTER*4  ISTADF
19088C
19089C-----COMMON----------------------------------------------------------
19090C
19091      INCLUDE 'DPCOPA.INC'
19092      INCLUDE 'DPCOHK.INC'
19093      INCLUDE 'DPCODA.INC'
19094      INCLUDE 'DPCOHO.INC'
19095C
19096C-----COMMON VARIABLES (GENERAL)--------------------------------------
19097C
19098      INCLUDE 'DPCOP2.INC'
19099C
19100C-----START POINT-----------------------------------------------------
19101C
19102      ISUBRO='    '
19103      ISUBN1='CKST'
19104      ISUBN2='AT  '
19105C
19106      MAXCP1=MAXCOL+1
19107      MAXCP2=MAXCOL+2
19108C
19109      IERROR='NO'
19110C
19111C               ***********************************
19112C               **  CHECK FOR A TYPE 8 LET CASE  **
19113C               ***********************************
19114C
19115      IFOUN8='NO'
19116      ICASL8='UNKN'
19117      ILOCV=-1
19118C
19119      IF(IBUGA3.EQ.'OFF')GOTO90
19120      WRITE(ICOUT,999)
19121  999 FORMAT(1X)
19122      CALL DPWRST('XXX','BUG ')
19123      WRITE(ICOUT,51)
19124   51 FORMAT('***** AT THE BEGINNING OF CKSTAT--')
19125      CALL DPWRST('XXX','BUG ')
19126      WRITE(ICOUT,52)IBUGA3
19127   52 FORMAT('IBUGA3 = ',A4)
19128      CALL DPWRST('XXX','BUG ')
19129      WRITE(ICOUT,53)NUMARG
19130   53 FORMAT('NUMARG = ',I8)
19131      CALL DPWRST('XXX','BUG ')
19132   90 CONTINUE
19133C
19134C               *********************************
19135C               **  STEP 1--                   **
19136C               **  DETERMINE IF OF THIS TYPE  **
19137C               **  AND BRANCH ACCORDINGLY.    **
19138C               *********************************
19139C
19140      ISTEPN='1'
19141      IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
19142C
19143      IF(NUMARG.LE.3)GOTO9000
19144C
19145      JMIN=3
19146      JMAX=MIN(NUMARG,JMIN+6)
19147      CALL EXTSTA(ICOM,ICOM2,IHARG,IHARG2,IARGT,ARG,NUMARG,JMIN,JMAX,
19148     1            ICASL8,ISTANM,ISTANR,ISTADF,IFOUN8,ILOCV,
19149     1            ISUBRO,IBUGA3,IERROR)
19150C
19151      IF(IFOUN8.EQ.'NO')GOTO9000
19152C
19153C               *****************************************************
19154C               **  STEP 3--                                       **
19155C               **  DETERMINE IF THE WORD (OR COLUMN DESIGNATION)  **
19156C               **  AFTER THE KEY WORD (SORT, RANK, ETC.) IS A     **
19157C               **  VALID DATA VARIABLE OR COLUMN.                 **
19158C               *****************************************************
19159C
19160      IF(ILOCV.GT.NUMARG)GOTO739
19161      IH=IHARG(ILOCV)
19162      IH2=IHARG2(ILOCV)
19163      DO730I=1,NUMNAM
19164      IF(IH.EQ.IHNAME(I).AND.IH2.EQ.IHNAM2(I).AND.
19165     1IUSE(I).EQ.'V')GOTO740
19166      IF(IH.EQ.IHNAME(I).AND.IH2.EQ.IHNAM2(I).AND.
19167     1IUSE(I).EQ.'M')GOTO740
19168      IF(IH.EQ.IHNAME(I).AND.IH2.EQ.IHNAM2(I).AND.
19169     1IUSE(I).EQ.'P')GOTO740
19170  730 CONTINUE
19171  739 CONTINUE
19172      IFOUN8='NO'
19173      ICASL8='UNKN'
19174      GOTO9000
19175  740 CONTINUE
19176      IFOUN8='YES'
19177      GOTO9000
19178C
19179C               *****************
19180C               **  STEP 90--  **
19181C               **  EXIT.      **
19182C               *****************
19183C
19184 9000 CONTINUE
19185C
19186      IF(IBUGA3.EQ.'OFF')GOTO9090
19187      WRITE(ICOUT,999)
19188      CALL DPWRST('XXX','BUG ')
19189      WRITE(ICOUT,9011)
19190 9011 FORMAT('***** AT THE END       OF CKSTAT--')
19191      CALL DPWRST('XXX','BUG ')
19192      WRITE(ICOUT,9014)IFOUN8,ICASL8,ILOCV,NUMARG
19193 9014 FORMAT('IFOUN8,ICASL8,ILOCV,NUMARG = ',A4,2X,A4,2I8)
19194      CALL DPWRST('XXX','BUG ')
19195 9090 CONTINUE
19196C
19197      RETURN
19198      END
19199      SUBROUTINE CKTMPA(PROP1,PROP2,IBUGG3,ISUBRO,IERROR)
19200C
19201C     PURPOSE--CHECK THE PARAMETERS NEEDED
19202C              FOR THE TRIMMED MEAN STATISTIC
19203
19204C     WRITTEN BY--JAMES J. FILLIBEN
19205C                 STATISTICAL ENGINEERING DIVISION
19206C                 INFORMATION TECHNOLOGY LABORATORY
19207C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
19208C                 GAITHERSBURG, MD 20899-8980
19209C                 PHONE--301-975-2855
19210C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
19211C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
19212C     LANGUAGE--ANSI FORTRAN (1977)
19213C     VERSION NUMBER--89/6
19214C     ORIGINAL VERSION--MAY       1988.
19215C
19216C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
19217C
19218      CHARACTER*4 IBUGG3
19219      CHARACTER*4 ISUBRO
19220      CHARACTER*4 IERROR
19221C
19222      CHARACTER*4 IHP
19223      CHARACTER*4 IHP2
19224      CHARACTER*4 IHWUSE
19225      CHARACTER*4 MESSAG
19226CCCCC CHARACTER*4 IWRITE
19227C
19228      CHARACTER*4 ISUBN1
19229      CHARACTER*4 ISUBN2
19230CCCCC CHARACTER*4 ISTEPN
19231C
19232C---------------------------------------------------------------------
19233C
19234C-----COMMON----------------------------------------------------------
19235C
19236      INCLUDE 'DPCOPA.INC'
19237      INCLUDE 'DPCOHK.INC'
19238C
19239C-----COMMON VARIABLES (GENERAL)--------------------------------------
19240C
19241      INCLUDE 'DPCOP2.INC'
19242C
19243C-----START POINT-----------------------------------------------------
19244C
19245      ISUBN1='CKTM'
19246      ISUBN2='PA  '
19247C
19248      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'TMPA')GOTO90
19249      WRITE(ICOUT,999)
19250  999 FORMAT(1X)
19251      CALL DPWRST('XXX','BUG ')
19252      WRITE(ICOUT,51)
19253   51 FORMAT('***** AT THE BEGINNING OF CKTMPA--')
19254      CALL DPWRST('XXX','BUG ')
19255      WRITE(ICOUT,52)IBUGG3,ISUBRO,IERROR
19256   52 FORMAT('IBUGG3,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
19257      CALL DPWRST('XXX','BUG ')
19258   90 CONTINUE
19259C
19260C     --------------------------
19261C
19262      IHP='P1  '
19263      IHP2='    '
19264      IHWUSE='P'
19265      MESSAG='NO'
19266      CALL CHECKN(IHP,IHP2,IHWUSE,
19267     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
19268     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
19269      IF(IERROR.EQ.'YES')GOTO1110
19270      PROP1=VALUE(ILOCP)
19271      GOTO1119
19272C
19273 1110 CONTINUE
19274      WRITE(ICOUT,999)
19275      CALL DPWRST('XXX','BUG ')
19276      WRITE(ICOUT,1111)
19277 1111 FORMAT('***** ERROR IN CKCPPA--')
19278      CALL DPWRST('XXX','BUG ')
19279      WRITE(ICOUT,1112)
19280 1112 FORMAT('      IN COMPUTING THE TRIMMED MEAN')
19281      CALL DPWRST('XXX','BUG ')
19282      WRITE(ICOUT,1113)
19283 1113 FORMAT('      AND THE WINSORIZED MEAN STATISTICS,')
19284      CALL DPWRST('XXX','BUG ')
19285      WRITE(ICOUT,1114)
19286 1114 FORMAT('      THE VALUE OF THE PROPORTION (%)')
19287      CALL DPWRST('XXX','BUG ')
19288      WRITE(ICOUT,1115)
19289 1115 FORMAT('      TO BE TRIMMED/WINSORIZED BELOW')
19290      CALL DPWRST('XXX','BUG ')
19291      WRITE(ICOUT,1116)
19292 1116 FORMAT('      MUST BE PRE-DEFINED.')
19293      CALL DPWRST('XXX','BUG ')
19294      WRITE(ICOUT,1117)
19295 1117 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE P1,')
19296      CALL DPWRST('XXX','BUG ')
19297      WRITE(ICOUT,1118)
19298 1118 FORMAT('      AS IN         LET P1 = 25')
19299      CALL DPWRST('XXX','BUG ')
19300      IERROR='YES'
19301      GOTO9000
19302 1119 CONTINUE
19303C
19304      IF(0.0.LE.PROP1.AND.PROP1.LE.100.0)GOTO1149
19305      WRITE(ICOUT,999)
19306      CALL DPWRST('XXX','BUG ')
19307      WRITE(ICOUT,1131)
19308 1131 FORMAT('***** ERROR IN CKCPPA--')
19309      CALL DPWRST('XXX','BUG ')
19310      WRITE(ICOUT,1132)
19311 1132 FORMAT('      IN COMPUTING THE TRIMMED MEAN')
19312      CALL DPWRST('XXX','BUG ')
19313      WRITE(ICOUT,1133)
19314 1133 FORMAT('      AND THE WINSORIZED MEAN STATISTICS,')
19315      CALL DPWRST('XXX','BUG ')
19316      WRITE(ICOUT,1134)
19317 1134 FORMAT('      THE VALUE OF THE PROPORTION (%)')
19318      CALL DPWRST('XXX','BUG ')
19319      WRITE(ICOUT,1135)
19320 1135 FORMAT('      TO BE TRIMMED/WINSORIZED BELOW')
19321      CALL DPWRST('XXX','BUG ')
19322      WRITE(ICOUT,1136)
19323 1136 FORMAT('      MUST BE BETWEEN 0 AND 100.')
19324      CALL DPWRST('XXX','BUG ')
19325      WRITE(ICOUT,1137)
19326 1137 FORMAT('      SUCH WAS NOT THE CASE HERE.')
19327      CALL DPWRST('XXX','BUG ')
19328      WRITE(ICOUT,1138)
19329 1138 FORMAT('      THE CURRENT VALUE OF THE PARAMETER P1 = ',E15.7)
19330      CALL DPWRST('XXX','BUG ')
19331      WRITE(ICOUT,1139)
19332 1139 FORMAT('      USE THE LET COMMAND TO RE-DEFINE P1,')
19333      CALL DPWRST('XXX','BUG ')
19334      WRITE(ICOUT,1140)
19335 1140 FORMAT('      AS IN         LET P1 = 25')
19336      CALL DPWRST('XXX','BUG ')
19337      IERROR='YES'
19338      GOTO9000
19339 1149 CONTINUE
19340C
19341C     --------------------------
19342C
19343      IHP='P2  '
19344      IHP2='    '
19345      IHWUSE='P'
19346      MESSAG='NO'
19347      CALL CHECKN(IHP,IHP2,IHWUSE,
19348     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
19349     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
19350      IF(IERROR.EQ.'YES')GOTO2110
19351      PROP2=VALUE(ILOCP)
19352      GOTO2119
19353C
19354 2110 CONTINUE
19355      WRITE(ICOUT,999)
19356      CALL DPWRST('XXX','BUG ')
19357      WRITE(ICOUT,2111)
19358 2111 FORMAT('***** ERROR IN CKCPPA--')
19359      CALL DPWRST('XXX','BUG ')
19360      WRITE(ICOUT,2112)
19361 2112 FORMAT('      IN COMPUTING THE TRIMMED MEAN')
19362      CALL DPWRST('XXX','BUG ')
19363      WRITE(ICOUT,2113)
19364 2113 FORMAT('      AND THE WINSORIZED MEAN STATISTICS,')
19365      CALL DPWRST('XXX','BUG ')
19366      WRITE(ICOUT,2114)
19367 2114 FORMAT('      THE VALUE OF THE PROPORTION (%)')
19368      CALL DPWRST('XXX','BUG ')
19369      WRITE(ICOUT,2115)
19370 2115 FORMAT('      TO BE TRIMMED/WINSORIZED ABOVE')
19371      CALL DPWRST('XXX','BUG ')
19372      WRITE(ICOUT,2116)
19373 2116 FORMAT('      MUST BE PRE-DEFINED.')
19374      CALL DPWRST('XXX','BUG ')
19375      WRITE(ICOUT,2117)
19376 2117 FORMAT('      USE THE LET COMMAND TO PRE-DEFINE P2,')
19377      CALL DPWRST('XXX','BUG ')
19378      WRITE(ICOUT,2118)
19379 2118 FORMAT('      AS IN         LET P2 = 25')
19380      CALL DPWRST('XXX','BUG ')
19381      IERROR='YES'
19382      GOTO9000
19383 2119 CONTINUE
19384C
19385      IF(0.0.LE.PROP2.AND.PROP2.LE.100.0)GOTO2149
19386      WRITE(ICOUT,999)
19387      CALL DPWRST('XXX','BUG ')
19388      WRITE(ICOUT,2131)
19389 2131 FORMAT('***** ERROR IN CKCPPA--')
19390      CALL DPWRST('XXX','BUG ')
19391      WRITE(ICOUT,2132)
19392 2132 FORMAT('      IN COMPUTING THE TRIMMED MEAN')
19393      CALL DPWRST('XXX','BUG ')
19394      WRITE(ICOUT,2133)
19395 2133 FORMAT('      AND THE WINSORIZED MEAN STATISTICS,')
19396      CALL DPWRST('XXX','BUG ')
19397      WRITE(ICOUT,2134)
19398 2134 FORMAT('      THE VALUE OF THE PROPORTION (%)')
19399      CALL DPWRST('XXX','BUG ')
19400      WRITE(ICOUT,2135)
19401 2135 FORMAT('      TO BE TRIMMED/WINSORIZED ABOVE')
19402      CALL DPWRST('XXX','BUG ')
19403      WRITE(ICOUT,2136)
19404 2136 FORMAT('      MUST BE BETWEEN 0 AND 100.')
19405      CALL DPWRST('XXX','BUG ')
19406      WRITE(ICOUT,2137)
19407 2137 FORMAT('      SUCH WAS NOT THE CASE HERE.')
19408      CALL DPWRST('XXX','BUG ')
19409      WRITE(ICOUT,2138)
19410 2138 FORMAT('      THE CURRENT VALUE OF THE PARAMETER P2 = ',E15.7)
19411      CALL DPWRST('XXX','BUG ')
19412      WRITE(ICOUT,2139)
19413 2139 FORMAT('      USE THE LET COMMAND TO RE-DEFINE P2,')
19414      CALL DPWRST('XXX','BUG ')
19415      WRITE(ICOUT,2140)
19416 2140 FORMAT('      AS IN         LET P2 = 25')
19417      CALL DPWRST('XXX','BUG ')
19418      IERROR='YES'
19419      GOTO9000
19420 2149 CONTINUE
19421C
19422C               ******************
19423C               **   STEP 90--  **
19424C               **   EXIT       **
19425C               ******************
19426C
19427 9000 CONTINUE
19428      IF(IBUGG3.EQ.'OFF'.AND.ISUBRO.NE.'TMPA')GOTO9090
19429      WRITE(ICOUT,999)
19430      CALL DPWRST('XXX','BUG ')
19431      WRITE(ICOUT,9011)
19432 9011 FORMAT('***** AT THE END       OF CKTMPA--')
19433      CALL DPWRST('XXX','BUG ')
19434      WRITE(ICOUT,9012)IBUGG3,ISUBRO,IERROR
19435 9012 FORMAT('IBUGG3,ISUBRO,IERROR = ',A4,2X,A4,2X,A4)
19436      CALL DPWRST('XXX','BUG ')
19437      WRITE(ICOUT,9013)PROP1,PROP2
19438 9013 FORMAT('PROP1,PROP2 = ',2E15.7)
19439      CALL DPWRST('XXX','BUG ')
19440 9090 CONTINUE
19441C
19442      RETURN
19443      END
19444      DOUBLE PRECISION FUNCTION CLAUSN(XVALUE)
19445C
19446C DESCRIPTION:
19447C
19448C   This program calculates Clausen's integral defined by
19449C
19450C          CLAUSN(x) = integral 0 to x of (-ln(2*sin(t/2))) dt
19451C
19452C   The code uses Chebyshev expansions with the coefficients
19453C   given to 20 decimal places.
19454C
19455C
19456C ERROR RETURNS:
19457C
19458C   If |x| is too large it is impossible to reduce the argument
19459C   to the range [0,2*pi] with any precision. An error message
19460C   is printed and the program returns the value 0.0
19461C
19462C
19463C MACHINE-DEPENDENT CONSTANTS:
19464C
19465C   NTERMS - INTEGER - the no. of terms of the array ACLAUS
19466C                      to be used. The recommended value is
19467C                      such that ABS(ACLAUS(NTERMS)) < EPS/100
19468C                      subject to 1 <= NTERMS <= 15
19469C
19470C   XSMALL - DOUBLE PRECISION - the value below which Cl(x) can be
19471C                   approximated by x (1-ln x). The recommended
19472C                   value is pi*sqrt(EPSNEG/2).
19473C
19474C   XHIGH - DOUBLE PRECISION - The value of |x| above which we cannot
19475C                  reliably reduce the argument to [0,2*pi].
19476C                  The recommended value is   1/EPS.
19477C
19478C     For values of EPS and EPSNEG refer to the file MACHCON.TXT
19479C
19480C     The machine-dependent constants are computed internally by
19481C     using the D1MACH subroutine.
19482C
19483C
19484C INTRINSIC FUNCTIONS USED:
19485C
19486C   AINT , LOG , SQRT
19487C
19488C
19489C   OTHER MISCFUN SUBROUTINES USED:
19490C
19491C          CHEVAL , ERRPRN, D1MACH
19492C
19493C
19494C AUTHOR:  Dr. Allan J. MacLeod,
19495C          Dept. of Mathematics and Statistics,
19496C          University of Paisley,
19497C          High St.
19498C          PAISLEY
19499C          SCOTLAND
19500C
19501C          ( e-mail: macl_ms0@paisley.ac.uk )
19502C
19503C
19504C LATEST MODIFICATION: 23 January, 1996
19505C
19506      INTEGER INDX,NTERMS
19507      DOUBLE PRECISION ACLAUS(0:15),CHEVAL,HALF,ONE,ONEHUN,PI,PISQ,T,
19508     &     TWOPI,TWOPIA,TWOPIB,X,XHIGH,XSMALL,XVALUE,ZERO
19509CCCCC CHARACTER FNNAME*6,ERRMSG*26
19510C
19511C-----COMMON----------------------------------------------------------
19512C
19513      INCLUDE 'DPCOMC.INC'
19514      INCLUDE 'DPCOP2.INC'
19515C
19516CCCCC DATA FNNAME/'CLAUSN'/
19517CCCCC DATA ERRMSG/'ARGUMENT TOO LARGE IN SIZE'/
19518      DATA ZERO,HALF,ONE/0.0 D 0 , 0.5 D 0 , 1.0 D 0/
19519      DATA ONEHUN/100.0 D 0/
19520      DATA PI/3.14159 26535 89793 2385 D 0/
19521      DATA PISQ/9.86960 44010 89358 6188 D 0/
19522      DATA TWOPI/6.28318 53071 79586 4769 D 0/
19523      DATA TWOPIA,TWOPIB/6.28125 D 0 , 0.19353 07179 58647 69253 D -2/
19524      DATA ACLAUS/2.14269 43637 66688 44709  D    0,
19525     1            0.72332 42812 21257 9245   D   -1,
19526     2            0.10164 24750 21151 164    D   -2,
19527     3            0.32452 50328 53164 5      D   -4,
19528     4            0.13331 51875 71472        D   -5,
19529     5            0.62132 40591 653          D   -7,
19530     6            0.31300 41353 37           D   -8,
19531     7            0.16635 72305 6            D   -9,
19532     8            0.91965 9293               D  -11,
19533     9            0.52400 462                D  -12,
19534     X            0.30580 40                 D  -13,
19535     1            0.18196 9                  D  -14,
19536     2            0.11004                    D  -15,
19537     3            0.675                      D  -17,
19538     4            0.42                       D  -18,
19539     5            0.3                        D  -19/
19540C
19541C  Start execution
19542C
19543      X = XVALUE
19544C
19545C   Compute the machine-dependent constants.
19546C
19547      T = D1MACH(3)
19548      XHIGH = ONE / T
19549C
19550C   Error test
19551C
19552      IF ( ABS(X) .GT. XHIGH ) THEN
19553CCCCC    CALL ERRPRN(FNNAME,ERRMSG)
19554         WRITE(ICOUT,999)
19555         CALL DPWRST('XXX','BUG ')
19556         WRITE(ICOUT,101)
19557         CALL DPWRST('XXX','BUG ')
19558         CLAUSN = ZERO
19559         RETURN
19560      ENDIF
19561  999 FORMAT(1X)
19562  101 FORMAT('***** ERROR FROM CLAUSN--ARGUMENT TOO LARGE.  ',
19563     1       'ARGUMENT = ',G15.7)
19564C
19565C   Continue with machine-dependent constants
19566C
19567      XSMALL = PI * SQRT ( HALF * T )
19568      T = T / ONEHUN
19569      DO 10 NTERMS = 15 , 0 , -1
19570         IF ( ABS(ACLAUS(NTERMS)) .GT. T ) GOTO 19
19571 10   CONTINUE
19572C
19573C  Continue with computation
19574C
19575 19   INDX = 1
19576      IF ( X .LT. ZERO ) THEN
19577         X = -X
19578         INDX = -1
19579      ENDIF
19580C
19581C  Argument reduced using simulated extra precision
19582C
19583      IF ( X .GT. TWOPI ) THEN
19584         T = AINT( X / TWOPI )
19585         X =  ( X - T * TWOPIA ) - T * TWOPIB
19586      ENDIF
19587      IF ( X .GT. PI ) THEN
19588         X = ( TWOPIA - X ) + TWOPIB
19589         INDX = -INDX
19590      ENDIF
19591C
19592C  Set result to zero if X multiple of PI
19593C
19594      IF ( X .EQ. ZERO ) THEN
19595         CLAUSN = ZERO
19596         RETURN
19597      ENDIF
19598C
19599C  Code for X < XSMALL
19600C
19601      IF ( X .LT. XSMALL ) THEN
19602         CLAUSN = X * ( ONE - LOG( X ) )
19603      ELSE
19604C
19605C  Code for XSMALL < =  X < =  PI
19606C
19607         T =  ( X * X ) / PISQ - HALF
19608         T = T + T
19609         IF ( T .GT. ONE ) T = ONE
19610         CLAUSN = X * CHEVAL( NTERMS,ACLAUS,T ) - X * LOG( X )
19611      ENDIF
19612      IF ( INDX .LT. 0 ) CLAUSN = -CLAUSN
19613      RETURN
19614      END
19615      COMPLEX FUNCTION CLBETA(A,B)
19616C***BEGIN PROLOGUE  CLBETA
19617C***DATE WRITTEN   770701   (YYMMDD)
19618C***REVISION DATE  820801   (YYMMDD)
19619C***CATEGORY NO.  C7B
19620C***KEYWORDS  BETA FUNCTION,COMPLETE BETA FUNCTION,COMPLEX,LOGARITHM,
19621C             SPECIAL FUNCTION
19622C***AUTHOR  FULLERTON, W., (LANL)
19623C***PURPOSE  CLBETA computes the natural log of the complex valued
19624C            complete Beta function of complex parameters A and B.
19625C***DESCRIPTION
19626C
19627C CLBETA computes the natural log of the complex valued complete beta
19628C function of complex parameters A and B.  This is a preliminary version
19629C which is not accurate.
19630C
19631C Input Parameters:
19632C       A   complex and the real part of A positive
19633C       B   complex and the real part of B positive
19634C***REFERENCES  (NONE)
19635C***ROUTINES CALLED  CLNGAM,XERROR
19636C***END PROLOGUE  CLBETA
19637      COMPLEX A, B, CLNGAM
19638C
19639      INCLUDE 'DPCOP2.INC'
19640C
19641C***FIRST EXECUTABLE STATEMENT  CLBETA
19642      IF (REAL(A).LE.0.0 .OR. REAL(B).LE.0.0) THEN
19643CCCCC   CALL XERROR ( 'CLBETA  REA
19644CCCCC1L PART OF BOTH ARGUMENTS MUST BE GT 0', 48, 1, 2)
19645        WRITE(ICOUT,11)
19646        CALL DPWRST('XXX','BUG ')
19647      ENDIF
19648   11 FORMAT('***** ERROR FROM CLBETA: REAL PARTS OF PARAMETER',
19649     1       'MUST BE POSITIVE')
19650C
19651      CLBETA = CLNGAM(A) + CLNGAM(B) - CLNGAM(A+B)
19652C
19653      RETURN
19654      END
19655      COMPLEX FUNCTION CLNGAM(ZIN)
19656C***BEGIN PROLOGUE  CLNGAM
19657C***DATE WRITTEN   780401   (YYMMDD)
19658C***REVISION DATE  820801   (YYMMDD)
19659C***CATEGORY NO.  C7A
19660C***KEYWORDS  ABSOLUTE VALUE,COMPLETE GAMMA FUNCTION,COMPLEX,
19661C             GAMMA FUNCTION,LOGARITHM,SPECIAL FUNCTION
19662C***AUTHOR  FULLERTON, W., (LANL)
19663C***PURPOSE  CLNGAM computes the natural log of the complex valued Gamma
19664C            function at ZIN, where ZIN is a complex number.
19665C***DESCRIPTION
19666C
19667C CLNGAM computes the natural log of the complex valued gamma function
19668C at ZIN, where ZIN is a complex number.  This is a preliminary version,
19669C which is not accurate.
19670C***REFERENCES  (NONE)
19671C***ROUTINES CALLED  C9LGMC,CARG,CLNREL,R1MACH,XERROR
19672C***END PROLOGUE  CLNGAM
19673      COMPLEX ZIN, Z, CORR, CEXP, CLOG, CLNREL, C9LGMC
19674C
19675      INCLUDE 'DPCOMC.INC'
19676      INCLUDE 'DPCOP2.INC'
19677C
19678      EXTERNAL CARG
19679      DATA PI / 3.1415926535 8979324E0 /
19680      DATA SQ2PIL / 0.9189385332 0467274E0 /
19681      DATA BOUND, DXREL / 2*0.0 /
19682C***FIRST EXECUTABLE STATEMENT  CLNGAM
19683      IF (BOUND.NE.0.) GO TO 10
19684      N = INT(-0.30*LOG(R1MACH(3)))
19685C BOUND = N*(0.1*EPS)**(-1/(2*N-1))/(PI*EXP(1))
19686      BOUND = 0.1171*FLOAT(N)*(0.1*R1MACH(3))**(-1./(2.*FLOAT(N)-1.))
19687      DXREL = SQRT (R1MACH(4))
19688C
19689 10   Z = ZIN
19690      X = REAL(ZIN)
19691      Y = AIMAG(ZIN)
19692C
19693      CORR = (0.0, 0.0)
19694      CABSZ = CABS(Z)
19695      IF (X.GE.0.0 .AND. CABSZ.GT.BOUND) GO TO 50
19696      IF (X.LT.0.0 .AND. ABS(Y).GT.BOUND) GO TO 50
19697C
19698      IF (CABSZ.LT.BOUND) GO TO 20
19699C
19700C USE THE REFLECTION FORMULA FOR REAL(Z) NEGATIVE, CABS(Z) LARGE, AND
19701C ABS(AIMAG(Y)) SMALL.
19702C
19703      IF (Y.GT.0.0) Z = CONJG (Z)
19704      CORR = CEXP (-CMPLX(0.0,2.0*PI)*Z)
19705      IF (REAL(CORR).EQ.1.0 .AND. AIMAG(CORR).EQ.0.0) THEN
19706CCCCC   CALL XERROR ( 'CLN
19707CCCCC1GAM  Z IS A NEGATIVE INTEGER', 31, 3, 2)
19708        WRITE(ICOUT,11)
19709        CALL DPWRST('XXX','BUG ')
19710      ENDIF
19711   11 FORMAT('***** ERROR FROM CLNGAM: ARGUMENT IS A NEGATIVE ',
19712     1       'INTEGER')
19713C
19714      CLNGAM = SQ2PIL + 1.0 - CMPLX(0.0,PI)*(Z-0.5) - CLNREL(-CORR)
19715     1  + (Z-0.5)*CLOG(1.0-Z) - Z - C9LGMC(1.0-Z)
19716      IF (Y.GT.0.0) CLNGAM = CONJG (CLNGAM)
19717      RETURN
19718C
19719C USE THE RECURSION RELATION FOR CABS(Z) SMALL.
19720C
19721 20   IF (X.GE.(-0.5) .OR. ABS(Y).GT.DXREL) GO TO 30
19722      IF (CABS((Z-AINT(X-0.5))/X).LT.DXREL) THEN
19723CCCCC   CALL XERROR ( 'CLNGAM  ANSWE
19724CCCCC1R LT HALF PRECISION BECAUSE Z TOO NEAR NEGATIVE INTEGER', 68,1,1)
19725        WRITE(ICOUT,21)
19726        CALL DPWRST('XXX','BUG ')
19727      ENDIF
19728   21 FORMAT('***** ERROR FROM CLNGAM: ARGUMENT IS TOO NEAR A ',
19729     1'NEGATIVE INTEGER')
19730C
19731   30 CONTINUE
19732      N = INT(SQRT (BOUND**2 - Y**2) - X + 1.0)
19733      ARGSUM = 0.0
19734      CORR = (1.0, 0.0)
19735      DO 40 I=1,N
19736        ARGSUM = ARGSUM + CARG(Z)
19737        CORR = Z*CORR
19738        Z = 1.0 + Z
19739 40   CONTINUE
19740C
19741      IF (REAL(CORR).EQ.0.0 .AND. AIMAG(CORR).EQ.0.0) THEN
19742CCCCC   CALL XERROR ( 'CLN
19743CCCCC1GAM  Z IS A NEGATIVE INTEGER', 31, 3, 2)
19744        WRITE(ICOUT,31)
19745        CALL DPWRST('XXX','BUG ')
19746      ENDIF
19747   31 FORMAT('***** ERROR FROM CLNGAM: ARGUMENT IS A NEGATIVE ',
19748     1       'INTEGER')
19749C
19750      CORR = -CMPLX (LOG(CABS(CORR)), ARGSUM)
19751C
19752C USE STIRLING-S APPROXIMATION FOR LARGE Z.
19753C
19754 50   CLNGAM = SQ2PIL + (Z-0.5)*CLOG(Z) - Z + CORR + C9LGMC(Z)
19755      RETURN
19756C
19757      END
19758      COMPLEX FUNCTION CLNREL(Z)
19759C***BEGIN PROLOGUE  CLNREL
19760C***DATE WRITTEN   770401   (YYMMDD)
19761C***REVISION DATE  820801   (YYMMDD)
19762C***CATEGORY NO.  C4B
19763C***KEYWORDS  COMPLEX,ELEMENTARY FUNCTION,LOGARITHM,RELATIVE ERROR
19764C***AUTHOR  FULLERTON, W., (LANL)
19765C***PURPOSE  Computes the principal value of the complex natural
19766C            logarithm of 1+Z with relative error accuracy for small
19767C            CABS(Z).
19768C***DESCRIPTION
19769C
19770C CLNREL(Z) = CLOG(1+Z) with relative error accuracy near Z = 0.
19771C Let   RHO = CABS(Z)  and
19772C       R**2 = CABS(1+Z)**2 = (1+X)**2 + Y**2 = 1 + 2*X + RHO**2 .
19773C Now if RHO is small we may evaluate CLNREL(Z) accurately by
19774C       CLOG(1+Z) = CMPLX  (LOG(R), CARG(1+Z))
19775C                 = CMPLX  (0.5*LOG(R**2), CARG(1+Z))
19776C                 = CMPLX  (0.5*ALNREL(2*X+RHO**2), CARG(1+Z))
19777C***REFERENCES  (NONE)
19778C***ROUTINES CALLED  ALNREL,CARG,R1MACH,XERROR
19779C***END PROLOGUE  CLNREL
19780      COMPLEX Z, CLOG
19781C
19782      INCLUDE 'DPCOMC.INC'
19783      INCLUDE 'DPCOP2.INC'
19784C
19785      EXTERNAL CARG
19786      DATA SQEPS /0.0/
19787C
19788      CLNREL = CMPLX (0.0, 0.0)
19789C
19790C***FIRST EXECUTABLE STATEMENT  CLNREL
19791      IF (SQEPS.EQ.0.) SQEPS = SQRT (R1MACH(4))
19792C
19793      IF (CABS(1.+Z).LT.SQEPS) THEN
19794CCCCC   CALL XERROR ( 'CLNREL  ANSWER LT HALF PRE
19795CCCCC1CISION BECAUSE Z TOO NEAR -1', 54,    1, 1)
19796        WRITE(ICOUT,102)
19797        CALL DPWRST('XXX','BUG ')
19798      ENDIF
19799 102  FORMAT('***** INTERNAL WARNING FROM CLNREL: ANSWER IS LESS THAN'
19800     1,' HALF PRECISION BECAUSE ARGUMENT TOO NEAR -1')
19801C
19802      RHO = CABS(Z)
19803      IF (RHO.GT.0.375) CLNREL = CLOG (1.0+Z)
19804      IF (RHO.GT.0.375) RETURN
19805C
19806      X = REAL(Z)
19807      CLNREL = CMPLX (0.5*ALNREL(2.*X+RHO**2), CARG(1.0+Z))
19808C
19809      RETURN
19810      END
19811      SUBROUTINE CMESUB(X,N,THRESH,SLOPE,R1,X2,R,NX,INDR,SDC)
19812C
19813CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
19814C  SUBROUTINE TO COMPUTE CME             C
19815C  (=MRL) FUNCTION :                     C
19816C  MAIN FORMULA:                         C
19817C    E[X-u | X > u] = (A + cu)/(1 - c)   C
19818C  INPUT ARGUMENTS:                      C
19819C    X  - ARRAY OF DATA (ALREADY         C
19820C         SORTED)                        C
19821C    N  - NUMBER OF POINTS IN X TO       C
19822C         USE                            C
19823C  OUTPUT ARGUMENTS:                     C
19824C    SLOPE  - = c/(1-c)                  C
19825C             (OR c = SLOPE/(1+SLOPE)    C
19826C    R1     - R(1) (= INTERCEPT)         C
19827C  NOTE THAT THE CALLING ROUTINE IS      C
19828C  REALLY INTERESTED IN A AND C.         C
19829C    C = SLOPE/(1+SLOPE)                 C
19830C    A = R(1)*(1 - C)                    C
19831C  THE CALCULATIONS FOR A AND C ARE DONE C
19832C  IN THE CALLING ROUTINE FROM THE       C
19833C  RETURNED VALUES OF SLOPE AND R(1)     C
19834C                                        C
19835C  NOTE THAT A AND C ARE THE SCALE AND   C
19836C  SHAPE PARAMETERS FOR THE GENERALIZED  C
19837C  PARETO DISTRIBUTION.                  C
19838CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
19839C
19840C  MAY 2005: ADD COMPUTATION OF SD(CHAT)
19841C
19842C  SD(CHAT) = SQRT(TERM1)*SQRT(TERM2)/(TERM3*TERM4*SQRT(TERM5 - TERM6))
19843C
19844C  WHERE
19845C
19846C  TERM1 = SUM[i=1 to n-1][n-i]
19847C  TERM2 = SUM[i=1 to n-1][(n-i)*(y(i) - intercept - x(i)*slope))**2]
19848C  TERM3 = SQRT(N-3)
19849C  TERM4 = (1 + SLOPE)**2
19850C  TERM5 = SUM[i=1 to n-1][n-i]*SUM[i=1 to n-1][(n-i)**x(i)**2]
19851C  TERM6 = {SUM[i=1 to n-1][(n-i)*x(i)]}**2
19852C
19853C  x(i) = INPUT WIND SPEEDS
19854C  y(i) = R(i)
19855C
19856C  REFERENCE: GROSS, HECKERT, LECHNER, AND SIMIU (1995).  "EXTREME
19857C             WIND ESTIMATES BY THE CONDITIONAL MEAN EXCEEDANCE
19858C             PROCEDURE", NISTIT 5531.
19859C
19860C  OCTOBER 2010: IF X(N-1) = X(N), GET "NAN" IN COMPUTATION.  NEED
19861C                TO FIND INDEX FOR THE MAXIMUM VALUE OF X(I) THAT IS
19862C                LESS THAN THE MAXIMUM.
19863C
19864      REAL X(*)
19865      REAL X2(*)
19866      REAL R(*)
19867      REAL NX(*)
19868      INTEGER INDR(*)
19869C
19870      INTEGER NM1
19871      REAL SMALLX,RSUM,NSUM,SLOPE
19872C
19873      DOUBLE PRECISION SUMRX
19874      DOUBLE PRECISION SUMXSQ
19875      DOUBLE PRECISION SUMI
19876      DOUBLE PRECISION SUMX
19877      DOUBLE PRECISION SUMR
19878      DOUBLE PRECISION DTERM1
19879      DOUBLE PRECISION DTERM2
19880      DOUBLE PRECISION DTERM3
19881      DOUBLE PRECISION DTERM4
19882      DOUBLE PRECISION DTERM5
19883      DOUBLE PRECISION DTERM6
19884      DOUBLE PRECISION DSD
19885      DOUBLE PRECISION DR1
19886      DOUBLE PRECISION DSLOPE
19887      DOUBLE PRECISION DX
19888      DOUBLE PRECISION DY
19889C
19890      INCLUDE 'DPCOBE.INC'
19891      INCLUDE 'DPCOP2.INC'
19892C
19893      IF(ISUBG4.EQ.'ESUB')THEN
19894        WRITE(ICOUT,12)
19895   12   FORMAT('FROM THE BEGINNING OF CMESUB')
19896        CALL DPWRST('XXX','BUG ')
19897        WRITE(ICOUT,13)N,THRESH
19898   13   FORMAT('N,THRESH = ',I8,G15.7)
19899        CALL DPWRST('XXX','BUG ')
19900        DO15I=1,N
19901          WRITE(ICOUT,14)I,X(I)
19902   14     FORMAT('I,X(I) = ',I8,G15.7)
19903          CALL DPWRST('XXX','BUG ')
19904   15   CONTINUE
19905      ENDIF
19906C
19907      DTERM1=0.0D0
19908      DTERM2=0.0D0
19909      DTERM3=0.0D0
19910      DTERM4=0.0D0
19911      DTERM5=0.0D0
19912C
19913      DO 1 I=N,1,-1
19914        IF(X(I).NE.X(N))THEN
19915          NLAST=I
19916          GOTO9
19917        ENDIF
199181     CONTINUE
19919      SLOPE=CPUMIN
19920      R1=CPUMIN
19921      SDC=CPUMIN
19922      GOTO9000
19923C
199249     CONTINUE
19925C
19926      NM1=NLAST
19927C
19928      DO 10 I=1,N
19929        INDR(I)=1
1993010    CONTINUE
19931C
19932      DO 11 I=1,NM1
19933        R(I)=0.
19934        NX(I)=1.
1993511    CONTINUE
19936CC
19937      DO 50 K=1,NM1
19938C
19939        SMALLX=X(K)
19940C
19941        NSUM=0.
19942C
19943        DO 21 I=K,N
19944          IF(X(I).GT.SMALLX) NSUM=NSUM+1.
1994521      CONTINUE
19946C
19947        NX(K)=NSUM
19948C
19949        DO 22 I=1,N
19950          X2(I)=X(I)-SMALLX
1995122      CONTINUE
19952C
19953        RSUM=0.
19954        DO 23 I=K,N
19955          IF(X(I).GT.SMALLX) RSUM=RSUM+X2(I)
1995623      CONTINUE
19957C
19958        R(K)=RSUM
19959CC
1996050    CONTINUE
19961CC
19962      DO 60 I=1,NM1
19963        R(I)=R(I)/NX(I)
1996460    CONTINUE
19965CC
19966CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
19967C  CME HAVING BEEN COMPUTED C
19968C  AT THIS POINT, IT REMAINS
19969C  TO COMPUTE THE TERMINAL  C
19970C  SLOPE.                   C
19971CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
19972CC
19973CCCCCCCCCCCCCCCCCC
19974C  DOT PRODUCT   C
19975C  NUMERATOR &   C
19976C  SSQ(X) DEN-   C
19977C  OMINATOR.     C
19978CCCCCCCCCCCCCCCCCC
19979C
19980      SUMI=0.0D0
19981      SUMX=0.0D0
19982      SUMR=0.0D0
19983      SUMRX=0.0D0
19984      SUMXSQ=0.0D0
19985C
19986      DO 100 I=1,NM1
19987C
19988        SUMRX=SUMRX+DBLE(R(I))*DBLE(X(I))
19989        SUMXSQ=SUMXSQ+DBLE(X(I))*DBLE(X(I))
19990        SUMI = SUMI + 1.0D0
19991        SUMX = SUMX + DBLE(X(I))
19992        SUMR = SUMR + DBLE(R(I))
19993C
19994100   CONTINUE
19995C
19996      DSLOPE=(SUMRX - SUMR*SUMX/SUMI)/(SUMXSQ-SUMX**2/SUMI)
19997      SLOPE=REAL(DSLOPE)
19998      R1=R(1)
19999C
20000CCCCC MAY 2005.  NOW COMPUTE THE STANDARD DEVIAITION
20001C
20002      DR1=DBLE(R(1))
20003      DSLOPE=DBLE(SLOPE)
20004C
20005      DTERM1=0.0D0
20006      DTERM2=0.0D0
20007      DTERM3=DSQRT(DBLE(N-3))
20008      DTERM4=(1.0D0 + DSLOPE)**2
20009      DTERM6=0.0D0
20010C
20011      DO 900 I=1,NM1
20012C
20013         DY=DBLE(R(I))
20014         DX=DBLE(X(I))
20015C
20016         DTERM1=DTERM1 + DBLE(N-I)
20017         DTERM2=DTERM2 + DBLE(N-I)*(DY - DR1 - DSLOPE*DY)**2
20018         DTERM6=DTERM6 + DBLE(N-I)*DX
20019         DTERM5=DTERM5 + DBLE(N-I)*DX**2
20020C
20021  900 CONTINUE
20022      DTERM5=DTERM1*DTERM5
20023      DTERM6=DTERM6*DTERM6
20024C
20025      DSD=DSQRT(DTERM1)*DSQRT(DTERM2)/
20026     1    (DTERM3*DTERM4*DSQRT(DTERM5 - DTERM6))
20027      SDC=REAL(DSD)
20028C
20029CCCCCCCCCCCCCCCCCCCCCCCC
20030C  RETURN CONTROL TO   C
20031C  DRIVER ROUTINE      C
20032CCCCCCCCCCCCCCCCCCCCCCCC
20033C
20034 9000 CONTINUE
20035      RETURN
20036      END
20037      SUBROUTINE CMPDIS(Y,CENSOR,XLEVEL,N,MAXNXT,ICASPL,ICASP2,
20038     1                  TEMP1,TEMP2,TEMP3,
20039     1                  DTEMP,DTMP12,DTMP13,ITEMP1,
20040     1                  ZTEMP1,ZTEMP2,ZTEMP3,ZTEMP4,ZTEMP5,ZTEMP6,
20041     1                  ZTEMP7,ZTEMP8,ZTEMP9,ZTMP10,ZTMP11,
20042     1                  YLOWLM,YUPPLM,A,B,MINMAX,NUMSHA,
20043     1                  SHAP11,SHAP12,SHAP21,SHAP22,
20044     1                  IADEDF,IGEPDF,IMAKDF,IBEIDF,
20045     1                  ILGADF,ISKNDF,IGLDDF,IBGEDF,IGETDF,ICONDF,
20046     1                  IGOMDF,IKATDF,IGIGDF,IGEODF,IGAUDF,
20047     1                  IEXPBC,IWEIBC,ICENTY,IDFTTY,
20048     1                  MAXOBV,ICENSO,KSLOC,KSSCAL,IFORSW,ISEED,
20049     1                  IPPLDP,IMETHD,IPPCBW,IPPCCC,IPPCFO,
20050     1                  IPPCDP,IPPCAP,IPPCAO,PCHSLM,ILEVEL,
20051     1                  CLLIMI,CLWIDT,IHSTCW,IHSTOU,IRELAT,IRHSTG,
20052     1                  SH1,SH2,SH3,SH4,SH5,SH6,SH7,ALOC,ASCALE,STATVA,
20053     1                  IBUGA3,ISUBRO,IERROR)
20054C
20055C     PURPOSE--ESTIMATE THE PARAMETERS OF A DISTRIBUTIONS USING ONE
20056C              OF THE FOLLOWING METHODS:
20057C
20058C              1) MAXIMUM LIKELIHOOD
20059C              2) PPCC/PROBAILITY PLOT
20060C              3) KOLMOGOROV-SMIRNOV GOODNESS OF FIT
20061C              4) ANDERSON-DARLING GOODNESS OF FIT
20062C
20063C              THIS IS FOR THE RAW DATA CASE AND IS PRIMARILY
20064C              USED TO OBTAIN THE POINT ESTIMATES.  FOR EXAMPLE,
20065C              IT IS USED BY THE DISTRIBUTIONAL BOOTSTRAP (DPJBS7)
20066C              AND THE GOODNESS OF FIT SIMULATIONS (DPGOF2).
20067C
20068C     WRITTEN BY--ALAN HECKERT
20069C                 STATISTICAL ENGINEERING DIVISION
20070C                 INFORMATION TECHNOLOGY LABORATORY
20071C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
20072C                 GAITHERSBURG, MD 20899-8980
20073C                 PHONE--301-975-2899
20074C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
20075C           OF THE NATIONAL BUREAU OF STANDARDS.
20076C     LANGUAGE--ANSI FORTRAN (1977)
20077C     VERSION NUMBER--2010/3
20078C     ORIGINAL VERSION--MARCH     2010.
20079C     UPDATED         --JULY      2019. CALL LIST TO DPPP2
20080C     UPDATED         --JULY      2019. CALL LIST TO DPPPC2
20081C     UPDATED         --JULY      2019. REMOVE ZTMP12, ZTMP13,ZTMP14
20082C                                       FROM CALL LIST
20083C
20084C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
20085C
20086      CHARACTER*4 ICASPL
20087      CHARACTER*4 ICASP2
20088      CHARACTER*4 IFORSW
20089      CHARACTER*4 IHSTCW
20090      CHARACTER*4 IHSTOU
20091      CHARACTER*4 IRELAT
20092      CHARACTER*4 IRHSTG
20093      CHARACTER*4 IBUGA3
20094      CHARACTER*4 ISUBRO
20095      CHARACTER*4 ICENSO
20096      CHARACTER*4 IADEDF
20097      CHARACTER*4 IGEPDF
20098      CHARACTER*4 IMAKDF
20099      CHARACTER*4 IBEIDF
20100      CHARACTER*4 ILGADF
20101      CHARACTER*4 ISKNDF
20102      CHARACTER*4 IGLDDF
20103      CHARACTER*4 IBGEDF
20104      CHARACTER*4 IGETDF
20105      CHARACTER*4 ICONDF
20106      CHARACTER*4 IGOMDF
20107      CHARACTER*4 IKATDF
20108      CHARACTER*4 IGIGDF
20109      CHARACTER*4 IGEODF
20110      CHARACTER*4 IGAUDF
20111      CHARACTER*4 IEXPBC
20112      CHARACTER*4 ICENTY
20113      CHARACTER*4 IDFTTY
20114      CHARACTER*4 IWEIBC
20115      CHARACTER*4 IPPCCC
20116      CHARACTER*4 IPPCFO
20117      CHARACTER*4 IPPCAO
20118      CHARACTER*4 IPPCBW
20119      CHARACTER*4 IMETHD
20120      CHARACTER*4 ILEVEL
20121      CHARACTER*4 IERROR
20122      CHARACTER*4 IFLAGF
20123      CHARACTER*4 ISUBN1
20124      CHARACTER*4 ISUBN2
20125C
20126      REAL KSLOC
20127      REAL KSSCAL
20128C
20129CCCCC DOUBLE PRECISION DM
20130CCCCC DOUBLE PRECISION DMTEMP
20131CCCCC DOUBLE PRECISION DTEMP1
20132CCCCC DOUBLE PRECISION DTEMP2
20133CCCCC DOUBLE PRECISION DOUT1
20134CCCCC DOUBLE PRECISION DN
20135CCCCC DOUBLE PRECISION DCURR
20136CCCCC DOUBLE PRECISION DCORR
20137CCCCC DOUBLE PRECISION DPROD
20138CCCCC DOUBLE PRECISION CDFGLO
20139CCCCC DOUBLE PRECISION CDFWAK
20140CCCCC DOUBLE PRECISION XPAR(5)
20141C
20142C---------------------------------------------------------------------
20143C
20144      DIMENSION Y(*)
20145      DIMENSION CENSOR(*)
20146      DIMENSION XLEVEL(*)
20147C
20148      DIMENSION TEMP1(*)
20149      DIMENSION TEMP2(*)
20150      DIMENSION TEMP3(*)
20151      DIMENSION ZTEMP1(*)
20152      DIMENSION ZTEMP2(*)
20153      DIMENSION ZTEMP3(*)
20154      DIMENSION ZTEMP4(*)
20155      DIMENSION ZTEMP5(*)
20156      DIMENSION ZTEMP6(*)
20157      DIMENSION ZTEMP7(*)
20158      DIMENSION ZTEMP8(*)
20159      DIMENSION ZTEMP9(*)
20160      DIMENSION ZTMP10(*)
20161      DIMENSION ZTMP11(*)
20162C
20163      DIMENSION CLLIMI(*)
20164      DIMENSION CLWIDT(*)
20165C
20166      DOUBLE PRECISION DTEMP(*)
20167      DOUBLE PRECISION DTMP12(*)
20168      DOUBLE PRECISION DTMP13(*)
20169      INTEGER ITEMP1(*)
20170C
20171      INTEGER IPPCAP(2)
20172C
20173C---------------------------------------------------------------------
20174C
20175      INCLUDE 'DPCOP2.INC'
20176C
20177C-----START POINT-----------------------------------------------------
20178C
20179C
20180      ISUBN1='CMPD'
20181      ISUBN2='IS  '
20182      IERROR='NO'
20183C
20184C     2012/5: FOR BRITTLE FIBER WEIBULL, THE SECOND SHAPE PARAMETER IS
20185C             ASSUMED TO BE A KNOWN FIXED CONSTANT.  SO SH2 WILL BE AN
20186C             INPUT PARAMETER.
20187C
20188      ALOC=CPUMIN
20189      ASCALE=CPUMIN
20190      SH1=CPUMIN
20191      IF(ICASPL.NE.'BFWE')SH2=CPUMIN
20192      SH3=CPUMIN
20193      SH4=CPUMIN
20194      SH5=CPUMIN
20195      SH6=CPUMIN
20196      SH7=CPUMIN
20197C
20198      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'PDIS')THEN
20199        WRITE(ICOUT,999)
20200        CALL DPWRST('XXX','BUG ')
20201        WRITE(ICOUT,71)
20202   71   FORMAT('***** AT THE BEGINNING OF CMPDIS--')
20203        CALL DPWRST('XXX','BUG ')
20204        WRITE(ICOUT,72)ICASPL,ICASP2,IPPCBW,IFORSW,N,MINMAX
20205   72   FORMAT('ICASPL,ICASP2,IPPCBW,IFORSW,N,MINMAX = ',4(A4,2X),2I8)
20206        CALL DPWRST('XXX','BUG ')
20207        WRITE(ICOUT,75)KSLOC,KSSCAL,NUMSHA,IPPLDP
20208   75   FORMAT('KSLOC,KSSCAL,NUMSHA,IPPLDP = ',2G15.7,2I8)
20209        CALL DPWRST('XXX','BUG ')
20210        IF(N.GE.1)THEN
20211          DO85I=1,N
20212            WRITE(ICOUT,86)I,Y(I),CENSOR(I)
20213   86       FORMAT('I,Y(I),CENSOR(I) = ',I8,3G15.7)
20214            CALL DPWRST('XXX','BUG ')
20215   85     CONTINUE
20216        ENDIF
20217      ENDIF
20218C
20219C               ********************************************
20220C               **  STEP 1--                              **
20221C               **  CHECK THE INPUT ARGUMENTS FOR ERRORS  **
20222C               ********************************************
20223C
20224      IF(N.LT.2)THEN
20225        WRITE(ICOUT,999)
20226  999   FORMAT(1X)
20227        CALL DPWRST('XXX','BUG ')
20228        WRITE(ICOUT,31)
20229   31   FORMAT('***** ERROR IN ESTIMATING DISTRIBUTION PARAMETERS--')
20230        CALL DPWRST('XXX','BUG ')
20231        WRITE(ICOUT,32)
20232   32   FORMAT('      THE NUMBER OF OBSERVATIONS MUST BE AT LEAST 2.')
20233        CALL DPWRST('XXX','BUG ')
20234        WRITE(ICOUT,34)N
20235   34   FORMAT('      THE ENTERED NUMBER OF OBSERVATIONS HERE = ',I6)
20236        CALL DPWRST('XXX','BUG ')
20237        WRITE(ICOUT,999)
20238        CALL DPWRST('XXX','BUG ')
20239        IERROR='YES'
20240        GOTO9000
20241      ENDIF
20242C
20243      HOLD=Y(1)
20244      DO60I=1,N
20245        IF(Y(I).NE.HOLD)GOTO69
20246   60 CONTINUE
20247      WRITE(ICOUT,999)
20248      CALL DPWRST('XXX','BUG ')
20249      WRITE(ICOUT,31)
20250      CALL DPWRST('XXX','BUG ')
20251      WRITE(ICOUT,62)HOLD
20252   62 FORMAT('      ALL ELEMENTS OF THE RESPONSE VARIABLE ARE ',
20253     1       'IDENTICALLY EQUAL TO ',G15.7)
20254
20255      CALL DPWRST('XXX','BUG ')
20256      WRITE(ICOUT,999)
20257      CALL DPWRST('XXX','BUG ')
20258      IERROR='YES'
20259      GOTO9000
20260   69 CONTINUE
20261C
20262C               ****************************************************
20263C               **  STEP 2--                                      **
20264C               **  GENERATE THE OUTPUT FOR THE DESIRED STATISTIC **
20265C               **  TO DETERMINE P-VALUES/CONFIDENCE INTERVALS    **
20266C               **  FOR THE STATISTIC.                            **
20267C               ****************************************************
20268C
20269      IF(ICASP2.EQ.'MLE')THEN
20270C
20271C       MAXIMUM LIKELIHOOD FOR RAW (UNBINNED) DATA
20272C
20273C       THE NUMSHA PARAMETER WAS BEING OVERWRITTEN ON MY LINUX
20274C       PLATFORM.  DON'T KNOW IF THIS IS A COMPILER BUG OR A
20275C       MEMORY OVERWRITE ISSUE.  IN ANY EVENT, SAVING AND RESTORING
20276C       THIS VALUE SEEMS TO BE A WORKAROUND.
20277C
20278        NUMSHZ=NUMSHA
20279        IFLAGD=0
20280        CALL DPML1(Y,CENSOR,N,ICASPL,IFLAGD,IFLAG9,
20281     1             TEMP1,TEMP2,TEMP3,ZTEMP1,ZTEMP2,ZTEMP3,
20282     1             DTEMP,DTMP12,DTMP13,ITEMP1,MAXOBV,
20283     1             ALOC,ASCALE,ALOWLI,AUPPLI,
20284     1             SH1,SH2,SH3,SH4,
20285     1             SH5,SH6,SH7,
20286     1             YLOWLM,YUPPLM,A,B,MINMAX,ISEED,
20287     1             IADEDF,IGEPDF,IMAKDF,IBEIDF,
20288     1             ILGADF,ISKNDF,IGLDDF,IGOMDF,IGIGDF,
20289     1             IGEODF,IBGEDF,IGAUDF,
20290     1             ICENSO,IEXPBC,IWEIBC,ICENTY,IDFTTY,
20291     1             CLLIMI,CLWIDT,IHSTCW,IHSTOU,IRELAT,IRHSTG,
20292     1             IBUGA3,ISUBRO,IERROR)
20293        NUMSHA=NUMSHZ
20294C
20295C       GOODNESS OF FIT FOR RAW (UNBINNED) CASE.  CURRENTLY
20296C       PPCC, KOLMOGOROV-SMIRNOV, AND ANDERSON DARLING SUPPORTED,
20297C       BUT ADDITIONAL GOODNESS OF FIT MAY BE ADDED LATER.
20298C
20299      ELSEIF(ICASP2.EQ.'PPCC' .OR. ICASP2.EQ.'KS' .OR.
20300     1        ICASP2.EQ.'AD')THEN
20301        NCURVE=1
20302        IFLAGF='OFF'
20303        PPLOC=0.0
20304        PPSCAL=1.0
20305        NHIGH=0
20306        NJUNK1=0
20307        NJUNK2=0
20308        IF(NUMSHA.EQ.0)THEN
20309          CALL DPPP2(Y,CENSOR,XLEVEL,N,ICASPL,NHIGH,
20310     1               ZTEMP1,ZTEMP2,ZTEMP3,
20311     1               YLOWLM,YUPPLM,A,B,MINMAX,
20312     1               SHAPE1,SHAPE2,SHAPE3,SHAPE4,
20313     1               SHAPE5,SHAPE6,SHAPE7,
20314     1               IADEDF,IGEPDF,IMAKDF,IBEIDF,
20315     1               ILGADF,ISKNDF,IGLDDF,IBGEDF,
20316     1               IGETDF,ICONDF,IGOMDF,IKATDF,
20317     1               IGIGDF,IGEODF,
20318     1               IPPLDP,MAXOBV,ICENSO,IMETHD,ILEVEL,
20319     1               PPLOC,PPSCAL,
20320     1               PPA0,PPA1,PPCC,SDPPA0,SDPPA1,XRESSD,XRESDF,
20321     1               CCALBE,PPA0BW,PPA1BW,
20322     1               ZTEMP4,ZTEMP5,
20323     1               TEMP1,TEMP2,TEMP3,NJUNK1,NJUNK2,NCURVE,
20324     1               IBUGA3,ISUBRO,IERROR)
20325          IF(IPPCBW.EQ.'BIWE')THEN
20326            ALOC=PPA0BW
20327            ASCALE=PPA1BW
20328          ELSE
20329            ALOC=PPA0
20330            ASCALE=PPA1
20331          ENDIF
20332          STATVA=PPCC
20333        ELSEIF(NUMSHA.EQ.1 .OR. NUMSHA.EQ.2)THEN
20334          IF(KSLOC.EQ.CPUMIN .OR. KSSCAL.EQ.CPUMIN)THEN
20335            PPLOC=CPUMIN
20336            PPSCAL=CPUMIN
20337          ELSE
20338            PPLOC=KSLOC
20339            PPSCAL=KSSCAL
20340          ENDIF
20341          IF(ICASPL.EQ.'BFWE')SHAPE2=SH2
20342          CALL DPPPC2(Y,CENSOR,XLEVEL,N,MAXNXT,
20343     1                ICASP2,ICASPL,
20344     1                SHAP11,SHAP12,SHAP21,SHAP22,
20345     1                SHAPE1,SHAPE2,SHAPE3,SHAPE4,SHAPE5,
20346     1                YLOWLM,YUPPLM,A,B,MINMAX,
20347     1                TEMP1(1),TEMP1(20001),TEMP1(40001),
20348     1                TEMP1(60001),NUMSHA,
20349     1                ZTEMP1,ZTEMP2,ZTEMP3,ZTEMP4,TEMP1(80001),
20350     1                ZTEMP5,ZTEMP6,ZTEMP7,ZTEMP8,ZTEMP9,IPPCBW,
20351     1                IADEDF,IGEPDF,IMAKDF,IBEIDF,
20352     1                ILGADF,ISKNDF,IGLDDF,IBGEDF,
20353     1                IGETDF,ICONDF,IGOMDF,IKATDF,
20354     1                IGIGDF,IGEODF,
20355     1                IPPCCC,IPPCFO,IPPLDP,PPLOC,PPSCAL,
20356     1                IPPCDP,IPPCAP,IPPCAO,IMETHD,ICENSO,
20357     1                IFLAGF,NCURVE,
20358     1                PCHSLM,ILEVEL,
20359     1                ZTMP10,ZTMP11,TEMP2,TEMP3,NJUNK1,NJUNK2,
20360     1                PPCCMX,SHA1MX,SHA2MX,A0SAVE,A1SAVE,A0BWSV,A1BWSV,
20361     1                IBUGA3,ISUBRO,IERROR)
20362          SH1=SHA1MX
20363          SH2=SHA2MX
20364          STATVA=PPCCMX
20365          ALOC=A0SAVE
20366          ASCALE=A1SAVE
20367          IF(IPPCBW.EQ.'BIWE')THEN
20368            ALOC=A0BWSV
20369            ASCALE=A1BWSV
20370          ENDIF
20371          IF(KSLOC.NE.CPUMIN .AND. KSSCAL.NE.CPUMIN)THEN
20372            ALOC=KSLOC
20373            ASCALE=KSSCAL
20374          ENDIF
20375        ENDIF
20376      ELSE
20377        WRITE(ICOUT,999)
20378        CALL DPWRST('XXX','BUG ')
20379        WRITE(ICOUT,31)
20380        CALL DPWRST('XXX','BUG ')
20381        WRITE(ICOUT,8011)
20382 8011   FORMAT('      THE REQUESTED FITTING METHOD IS NOT SUPPORTED.')
20383        CALL DPWRST('XXX','BUG ')
20384        WRITE(ICOUT,8013)ICASP2
20385 8013   FORMAT('      FITTING METHOD: ',A4)
20386        CALL DPWRST('XXX','BUG ')
20387        IERROR='YES'
20388        GOTO9000
20389      ENDIF
20390C
20391C               *****************
20392C               **  STEP 90--  **
20393C               **  EXIT       **
20394C               *****************
20395C
20396 9000 CONTINUE
20397C
20398      IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'PDIS')THEN
20399        WRITE(ICOUT,999)
20400        CALL DPWRST('XXX','BUG ')
20401        WRITE(ICOUT,9011)
20402 9011   FORMAT('***** AT THE END       OF CMPDIS--')
20403        CALL DPWRST('XXX','BUG ')
20404        WRITE(ICOUT,9013)N,NUMSHA,SHAP11,SHAP12
20405 9013   FORMAT('N,NUMSHA,SHAP11,SHAP12 = ',2I8,2G15.7)
20406        CALL DPWRST('XXX','BUG ')
20407        WRITE(ICOUT,9015)ALOC,ASCALE,SH1,SH2,STATVA
20408 9015   FORMAT('ALOC,ASCALE,SH1,SH2,STATVA = ',5G15.7)
20409        CALL DPWRST('XXX','BUG ')
20410      ENDIF
20411C
20412      RETURN
20413      END
20414      SUBROUTINE CMPLMT (WPRIME, KPRIME, SUM)
20415C
20416C        ALGORITHM AS 304.5 APPL.STATIST. (1996), VOL.45, NO.3
20417C
20418C        Reverse and complement the data in WPRIME
20419C
20420C        DATAPLOT NOTE: UTILITY ROUTINE USED BY FISHER TWO SAMPLE
20421C                       RANDOMIZATION TEST
20422C
20423      INTEGER KPRIME
20424      REAL WPRIME(*), SUM
20425C
20426      INTEGER I, J
20427      REAL TEMP
20428C
20429      J = KPRIME
20430      DO 10 I = 1, KPRIME / 2 + MOD(KPRIME, 2)
20431         TEMP = WPRIME(I)
20432         WPRIME(I) = REAL(DBLE(SUM) - DBLE(WPRIME(J)))
20433         WPRIME(J) = REAL(DBLE(SUM) - DBLE(TEMP))
20434         J = J - 1
20435   10 CONTINUE
20436C
20437      RETURN
20438      END
20439      SUBROUTINE CMPSTA(TEMP,TEMPZ,TEMPZ3,XTEMP1,XTEMP2,XTEMP3,
20440     1                  MAXNXT,NS2,NSZ,NSZ3,NUMV2,ICASPL,
20441     1                  ISEED,ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6,
20442     1                  DTEMP1,DTEMP2,DTEMP3,
20443     1                  RIGHT,
20444     1                  ISUBRO,IBUGG3,IERROR)
20445C
20446C     PURPOSE--COMPUTE THE VALUE OF ONE OF 100+ STATISTICS.  THIS
20447C              IS A COMMON ROUTINE CALLED BY:
20448C                1) CKSTAT  = LET A = <STAT>
20449C                2) DPSP    = <STAT> STATISTIC PLOT
20450C                3) DPCRPL  = CROSS TABULATE <STAT> PLOT
20451C                4) DPFLUC  = FLUCTUATION PLOT <STAT>
20452C                5) DPBLOC  = <STAT> BLOCK PLOT
20453C                6) DPJBSP  = BOOTSTRAP <STAT> PLOT
20454C                           = JACKNIFE <STAT> PLOT
20455C                7) DPDEXP  = DEX <STAT> PLOT
20456C                8) DPINCU  = <STAT> INFLUENCE CURVE
20457C                9) DPTABU  = TABULATE <MEAN>
20458C               10) DPCRTA  = CROSS TABULATE <STAT>
20459C               11) DPPOTA  = POSITIONAL TABULATION <STAT>
20460C               12) CKMATH  = MATRIX COLUMN <STAT>
20461C               13) CKMATH  = MATRIX ROW <STAT>
20462C               14) CKMATH  = MATRIX GRAND <STAT>
20463C               15) CKMATH  = MATRIX PARTITION <STAT>
20464C               16) CKMATH  = LET V = CROSS TABULATE <STAT>
20465C               17) CKMATH  = LET V = CROSS TABULATE CUMULATIVE <STAT>
20466C               18) CKMATH  = LET V = SORT BY <STAT>
20467C               19) CKMATH  = LET V = MOVING <STAT>
20468C               20) CKMATH  = LET V = CUMULATIVE <STAT>
20469C               21) DPISP   = <STAT> INTERACTION PLOT
20470C
20471C              NOTE THAT THE DEX ... PLOT, ... BLOCK PLOT, AND
20472C              ... INFLUENCE CURVE, MATRIX <COLUMN/ROW> ONLY SUPPORT
20473C              STATISTICS COMPUTED FROM A SINGLE RESPONSE VARIABLE.
20474C              ALSO, SOME COMMANDS MAY NOT SUPPORT ALL STATISTICS IN
20475C              THIS LIST (OR, LESS FREQUENTLY, A COMMAND MAY SUPPORT
20476C              SOME ADDITIONAL STATISTICS NOT COMPUTED HERE).
20477C
20478C              USING A COMMON ROUTINE MAKES IT EASIER TO ADD
20479C              A STATISTIC AND INCORPORATE IT INTO ALL THE
20480C              RELEVANT PLOTS/TABULATIONS.  SHOULD ALSO REDUCE
20481C              THE LIKELIHOOD OF BUGS, ETC.
20482C
20483C              FOLLOWING STATISTICS ARE SUPPORTED:
20484C
20485C              CASE 1: ONE RESPONSE VARIABLE
20486C
20487C              LOCATION STATISTICS:  (21)
20488C                 BIWEIGHT LOCATION
20489C                 GEOMETRIC MEAN
20490C                 H10 LOCATION
20491C                 H12 LOCATION
20492C                 H15 LOCATION
20493C                 H17 LOCATION
20494C                 H20 LOCATION
20495C                 HARMONIC MEAN
20496C                 HODGES-LEHMAN
20497C                 JSCORE
20498C                 LP LOCATION
20499C                 MEAN (OR AVERAGE)
20500C                 MEDIAN
20501C                 MIDHINGE
20502C                 MIDMEAN
20503C                 MIDRANGE
20504C                 SHORTEST HALF MIDMEAN
20505C                 SHORTEST HALF MIDRANGE
20506C                 STANDARD DEVIATION OF LP LOCATION
20507C                 STANDARD DEVIATION OF THE MEAN
20508C                 TRIMEAN
20509C                 TRIMMED MEAN
20510C                 TRIMMED MEAN STANDARD ERROR
20511C                 VARIANCE OF THE MEAN
20512C                 VARIANCE OF LP LOCATION
20513C                 WINSORIZED MEAN
20514C
20515C              SCALE STATISTICS: (32)
20516C                 AVERAGE ABSOLUTE DEVIATION (AAD)
20517C                 AVERAGE ABSOLUTE DEVIATION FROM THE MEDIAN
20518C                 BIWEIGHT MIDVARIANCE
20519C                 BIWEIGHT SCALE
20520C                 COEFFICIENT OF DISPERSION
20521C                 COEFFICIENT OF VARIATION
20522C                 GEOMETRIC STANDARD DEVIATION
20523C                 H10 SCALE
20524C                 H12 SCALE
20525C                 H15 SCALE
20526C                 H17 SCALE
20527C                 H20 SCALE
20528C                 INDEX OF DISPERSION
20529C                 INTERQUARTILE RANGE
20530C                 LOGNORMAL COEFFICIENT OF VARIATION
20531C                 LOWER SEMI-INTERQUARTILE RANGE
20532C                 MAD TO MEDIAN
20533C                 MEDIAN ABSOLUTE DEVIATION (MAD)
20534C                 NORMALIZED INTERQUARTILE RANGE
20535C                 PERCENTAGE BEND MIDVARIANCE
20536C                 PRECISION
20537C                 QN
20538C                 Q QUANTILE RANGE
20539C                 QUARTILE COEFFICIENT OF DISPERSION
20540C                 RANGE
20541C                 RELATIVE LABORATORY PERFORMANCE (RLP)
20542C                 RELATIVE SD
20543C                 RELATIVE VARIANCE
20544C                 RESCALED SUM
20545C                 ROBUST POOLED RANGE
20546C                 ROBUST POOLED STANDARD DEVIATION
20547C                 ROOT MEAN SQUARE ERROR (OR RMS)
20548C                 SCALED MEDIAN ABSOLUTE DEVIATION (MADe)
20549C                 SIGNAL TO NOISE RATIO
20550C                 SN
20551C                 STANDARD DEVIATION (OR SD)
20552C                 SUM OF SQUARES
20553C                 SUM OF SQUARES FROM MEAN
20554C                 TRIMMED SD
20555C                 UNBIASED COEFFICIENT OF VARIATION
20556C                 UPPER SEMI-INTERQUARTILE RANGE
20557C                 VARIANCE
20558C                 WINSORIZED STANDARD DEVIATION
20559C                 WINSORIZED VARIANCE
20560C
20561C              PERCENTILE STATISTICS (15)
20562C                 FIRST/SECOND/THIRD/FOURTH/FIFTH/SIXTH/SEVENTH/
20563C                 EIGHTH/NINTH DECILE
20564C                 DECILE RATIO
20565C                 EXTREME
20566C                 INDEX MINIMUM
20567C                 INDEX MAXIMUM
20568C                 INDEX EXTREME
20569C                 LOWER HINGE
20570C                 LOWER QUARTILE
20571C                 MINIMUM (MIN)
20572C                 MAXIMUM (MAX)
20573C                 <VALUE> PERCENTILE
20574C                 QUANTILE STANDARD ERROR
20575C                 UPPER HINGE
20576C                 UPPER QUARTILE
20577C
20578C              HIGHER MOMENTS (2)
20579C                 GALTON SKEWNESS
20580C                 KURTOSIS
20581C                 PEARSON TWO SKEWNESS
20582C                 SKEWNESS
20583C
20584C              TIME SERIES STATISTICS (4)
20585C                 AUTOCORRELATION
20586C                 AUTOCOVARIANCE
20587C                 SINE FREQUENCY
20588C                 SINE AMPLITUDE
20589C
20590C              QUALITY CONTROL STATISTICS (15)
20591C                 CC
20592C                 CNP
20593C                 CNPK
20594C                 CNPM
20595C                 CNPMK
20596C                 CP
20597C                 CPK
20598C                 CPL
20599C                 CPM
20600C                 CPMK
20601C                 CPU
20602C                 EXPECTED LOSS
20603C                 (ACTUAL) PERCENT DEFECTIVE
20604C                 (THEORETICAL) PERCENT DEFECTIVE
20605C                 TAGUCHI SIGNAL-TO-NOISE (SN+, SN-, SN0, SN00)
20606C
20607C              STATISTICAL TESTS:
20608C                 A BASIS NORMAL
20609C                 A BASIS LOGNORMAL
20610C                 A BASIS WEIBULL
20611C                 A BASIS NONPARAMETRIC
20612C                 B BASIS NORMAL
20613C                 B BASIS LOGNORMAL
20614C                 B BASIS WEIBULL
20615C                 B BASIS NONPARAMETRIC
20616C                 ADJACENCY RANDOMNESS TEST   (SYNONM FOR MEAN
20617C                                             SUCCESSIVE DIFFERENCES)
20618C                 ADJACENCY RANDOMNESS TEST CDF
20619C                 ADJACENCY RANDOMNESS TEST PVALUE
20620C                 ADJACENCY RANDOMNESS TEST CV01
20621C                 ADJACENCY RANDOMNESS TEST CV05
20622C                 ADJACENCY RANDOMNESS TEST CV95
20623C                 ADJACENCY RANDOMNESS TEST CV99
20624C                 BINOMIAL PROPORTIONS
20625C                 BINOMIAL PROPORTIONS LOWER CONFIDENCE LIMIT
20626C                 BINOMIAL PROPORTIONS UPPER CONFIDENCE LIMIT
20627C                 CHI-SQUARE SD TEST
20628C                 CHI-SQUARE SD TEST CDF
20629C                 CHI-SQUARE SD TEST PVALUE
20630C                 CHI-SQUARE SD TEST LOWER TAIL PVALUE
20631C                 CHI-SQUARE SD TEST UPPER TAIL PVALUE
20632C                 CUMULATIVE SUM FORWARD TEST
20633C                 CUMULATIVE SUM FORWARD TEST PVALUE
20634C                 CUMULATIVE SUM BACKWARD TEST
20635C                 CUMULATIVE SUM BACKWARD TEST PVALUE
20636C                 DAVID
20637C                 DAVID CDF
20638C                 DAVID CRITICAL VALUE
20639C                 DAVID MINIMUM INDEX
20640C                 DAVID MAXIMUM INDEX
20641C                 DAVID PVALUE
20642C                 DIXON TEST
20643C                 DIXON MINIMUM TEST
20644C                 DIXON MAXIMUM TEST
20645C                 EXTREME STUDENTIZED DEVIATE
20646C                 FREQUENCY TEST
20647C                 FREQUENCY TEST CDF
20648C                 FREQUENCY WITHIN A BLOCK TEST
20649C                 FREQUENCY WITHIN A BLOCK TEST CDF
20650C                 GRUBB
20651C                 GRUBB CDF
20652C                 GRUBB DIRECTION
20653C                 GRUBB INDEX
20654C                 JARQUE BERA
20655C                 JARQUE BERA PVALUE
20656C                 JARQUE BERA CDF
20657C                 KURTOSIS OUTLIER
20658C                 KURTOSIS OUTLIER CDF
20659C                 KURTOSIS OUTLIER CRITICAL VALUE
20660C                 KURTOSIS OUTLIER INDEX
20661C                 KURTOSIS OUTLIER PVALUE
20662C                 LOWER BONETT STANDARD DEVIATION CONFIDENCE LIMIT
20663C                 LOWER COEFFICIENT OF DISPERSION CONFIDENCE LIMIT
20664C                 LOWER COEFFICIENT OF QUARTILE DISPERSION CONFIDENCE LIMIT
20665C                 LOWER COEFFICIENT OF VARIATION CONFIDENCE LIMIT
20666C                 LOWER CONFIDENCE LIMIT
20667C                 LOWER LOGNORMAL COEFFICIENT OF VARIATION CONFIDENCE LIMIT
20668C                 LOWER PREDICTION BOUND
20669C                 LOWER PREDICTION LIMIT
20670C                 LOWER STANDARD DEVIATION CONFIDENCE LIMIT
20671C                 LOWER STANDARD DEVIATION PREDICTION LIMIT
20672C                 LJUNG BOX TEST
20673C                 MCCOOL WEIBULL LOCATION TEST
20674C                 MCCOOL WEIBULL LOCATION TEST PVALUE
20675C                 MCCOOL WEIBULL LOCATION TEST CDF
20676C                 MCCOOL WEIBULL LOCATION TEST CV50
20677C                 MCCOOL WEIBULL LOCATION TEST CV90
20678C                 MCCOOL WEIBULL LOCATION TEST CV95
20679C                 MEAN SUCCESSIVE DIFFERENCE
20680C                 MEAN SUCCESSIVE DIFFERENCE NORMALIZED
20681C                 MEAN SUCCESSIVE DIFFERENCE CDF
20682C                 MEAN SUCCESSIVE DIFFERENCE PVALUE
20683C                 NORMAL TOLERANCE K FACTOR
20684C                 NORMAL TOLERANCE LOWER LIMIT
20685C                 NORMAL TOLERANCE UPPER LIMIT
20686C                 NORMAL TOLERANCE ONE SIDED K FACTOR
20687C                 NORMAL TOLERANCE ONE SIDED LOWER LIMIT
20688C                 NORMAL TOLERANCE ONE SIDED UPPER LIMIT
20689C                 ONE SAMPLE COEFFICIENT OF VARIATION TEST
20690C                 ONE SAMPLE COEFFICIENT OF VARIATION TEST CDF
20691C                 ONE SAMPLE COEFFICIENT OF VARIATION TEST PVALUE
20692C                 ONE SAMPLE COEFFICIENT OF VARIATION LOWER PVALUE
20693C                 ONE SAMPLE COEFFICIENT OF VARIATION UPPER PVALUE
20694C                 ONE SAMPLE SIGN TEST
20695C                 ONE SAMPLE SIGN TEST CDF
20696C                 ONE SAMPLE SIGN TEST PVALUE
20697C                 ONE SAMPLE SIGN TEST LOWER TAIL PVALUE
20698C                 ONE SAMPLE SIGN TEST UPPER TAIL PVALUE
20699C                 ONE SAMPLE T-TEST
20700C                 ONE SAMPLE T-TEST CDF
20701C                 ONE SAMPLE T-TEST PVALUE
20702C                 ONE SAMPLE T-TEST LOWER TAIL PVALUE
20703C                 ONE SAMPLE T-TEST UPPER TAIL PVALUE
20704C                 ONE SAMPLE WILCOXON SIGNED RANK TEST
20705C                 ONE SAMPLE WILCOXON SIGNED RANK TEST CDF
20706C                 ONE SAMPLE WILCOXON SIGNED RANK TEST PVALUE
20707C                 ONE SAMPLE WILCOXON SIGNED RANK TEST LOWER TAIL PVALUE
20708C                 ONE SAMPLE WILCOXON SIGNED RANK TEST UPPER TAIL PVALUE
20709C                 ONE-SIDED LOWER AGRESTI-COUL
20710C                 ONE-SIDED UPPER AGRESTI-COUL
20711C                 ONE-SIDED LOWER COEFFICIENT OF DISPERSION CONFIDENCE LIMIT
20712C                 ONE-SIDED UPPER COEFFICIENT OF DISPERSION CONFIDENCE LIMIT
20713C                 ONE-SIDED LOWER COEFFICIENT OF VARIATION CONFIDENCE LIMIT
20714C                 ONE-SIDED UPPER COEFFICIENT OF VARIATION CONFIDENCE LIMIT
20715C                 ONE-SIDED LOWER CONFIDENCE LIMIT
20716C                 ONE-SIDED UPPER CONFIDENCE LIMIT
20717C                 ONE-SIDED LOWER EXACT BINOMIAL
20718C                 ONE-SIDED UPPER EXACT BINOMIAL
20719C                 ONE-SIDED LOWER PREDICTION BOUND
20720C                 ONE-SIDED LOWER STANDARD DEVIATION CONFIDENCE LIMIT
20721C                 ONE-SIDED LOWER STANDARD DEVIATION PREDICTION LIMIT
20722C                 ONE-SIDED UPPER PREDICTION BOUND
20723C                 ONE-SIDED LOWER PREDICTION LIMIT
20724C                 ONE-SIDED UPPER PREDICTION LIMIT
20725C                 ONE-SIDED UPPER STANDARD DEVIATION CONFIDENCE LIMIT
20726C                 ONE-SIDED UPPER STANDARD DEVIATION PREDICTION LIMIT
20727C                 POISSON DISPERSION TEST
20728C                 POISSON DISPERSION TEST CDF
20729C                 POISSON DISPERSION TEST CDF PVALUE
20730C                 SKEW OUTLIER
20731C                 SKEW OUTLIER CDF
20732C                 SKEW OUTLIER CRITICAL VALUE
20733C                 SKEW OUTLIER INDEX
20734C                 SKEW OUTLIER PVALUE
20735C                 TWO-SIDED LOWER AGRESTI-COUL
20736C                 TWO-SIDED UPPER AGRESTI-COUL
20737C                 TWO-SIDED LOWER EXACT BINOMIAL
20738C                 TWO-SIDED UPPER EXACT BINOMIAL
20739C                 UPPER BONETT STANDARD DEVIATION CONFIDENCE LIMIT
20740C                 UPPER COEFFICIENT OF DISPERSION CONFIDENCE LIMIT
20741C                 UPPER COEFFICIENT OF QUARTILE DISPERSION CONFIDENCE LIMIT
20742C                 UPPER COEFFICIENT OF VARIATION CONFIDENCE LIMIT
20743C                 UPPER CONFIDENCE LIMIT
20744C                 UPPER LOGNORMAL COEFFICIENT OF VARIATION CONFIDENCE LIMIT
20745C                 UPPER PREDICTION BOUND
20746C                 UPPER PREDICTION LIMIT
20747C                 UPPER STANDARD DEVIATION CONFIDENCE LIMIT
20748C                 UPPER STANDARD DEVIATION PREDICTION LIMIT
20749C                 WILK SHAPIRO TEST
20750C                 WILK SHAPIRO TEST PVALUE
20751C
20752C              SPATIAL DATA
20753C                 VARIATIONAL DISTANCE
20754C                 RELATIVE DISPERSION INDEX
20755C                 UNIFORM CHI-SQUARE
20756C
20757C              DISTRIBUTION: (98)
20758C                 BOX COX NORMALITY  PPCC
20759C                 BOX COX NORMALITY  LAMBDA
20760C                 KAPPENMAN R        (TO SELECT LOGNORMAL/WEIBULL)
20761C                 KAPPENMAN R CUTOFF
20762C
20763C                 ANGLIT             PPCC
20764C                 ANGLIT             PPCC LOCATION
20765C                 ANGLIT             PPCC SCALE
20766C                 ARCSINE            PPCC
20767C                 ARCSINE            PPCC LOCATION
20768C                 ARCSINE            PPCC SCALE
20769C                 CAUCHY             PPCC
20770C                 CAUCHY             PPCC LOCATION
20771C                 CAUCHY             PPCC SCALE
20772C                 COSINE             PPCC
20773C                 COSINE             PPCC LOCATION
20774C                 COSINE             PPCC SCALE
20775C                 DOUBLE EXPONENTIAL PPCC
20776C                 DOUBLE EXPONENTIAL PPCC LOCATION
20777C                 DOUBLE EXPONENTIAL PPCC SCALE
20778C                 EXPONENTIAL        PPCC
20779C                 EXPONENTIAL        PPCC LOCATION
20780C                 EXPONENTIAL        PPCC SCALE
20781C                 FATIGUE LIFE       PPCC LOCATION
20782C                 FATIGUE LIFE       PPCC SCALE
20783C                 FATIGUE LIFE       PPCC SHAPE
20784C                 FATIGUE LIFE       PPCC STATISITC
20785C                 GAMMA              PPCC LOCATION
20786C                 GAMMA              PPCC SCALE
20787C                 GAMMA              PPCC SHAPE
20788C                 GAMMA              PPCC STATISTIC
20789C                 GENERALIZED PARETO PPCC LOCATION
20790C                 GENERALIZED PARETO PPCC SCALE
20791C                 GENERALIZED PARETO PPCC SHAPE
20792C                 GENERALIZED PARETO PPCC STATISITC
20793C                 GH                 PPCC LOCATION
20794C                 GH                 PPCC SCALE
20795C                 GH                 PPCC SHAPE ONE
20796C                 GH                 PPCC SHAPE TWO
20797C                 GH                 PPCC STATISTIC
20798C                 HALF-NORMAL        PPCC
20799C                 HALF-NORMAL        PPCC LOCATION
20800C                 HALF-NORMAL        PPCC SCALE
20801C                 HALF-CAUCHY        PPCC
20802C                 HALF-CAUCHY        PPCC LOCATION
20803C                 HALF-CAUCHY        PPCC SCALE
20804C                 HYPERBOLIC SECANT  PPCC
20805C                 HYPERBOLIC SECANT  PPCC LOCATION
20806C                 HYPERBOLIC SECANT  PPCC SCALE
20807C                 INVERTED WEIBULL   PPCC LOCATION
20808C                 INVERTED WEIBULL   PPCC SCALE
20809C                 INVERTED WEIBULL   PPCC SHAPE
20810C                 INVERTED WEIBULL   PPCC STATISTIC
20811C                 LOGISITC           PPCC
20812C                 LOGISITC           PPCC LOCATION
20813C                 LOGISITC           PPCC SCALE
20814C                 LOGNORMAL          PPCC LOCATION
20815C                 LOGNORMAL          PPCC SCALE
20816C                 LOGNORMAL          PPCC SHAPE
20817C                 LOGNORMAL          PPCC STATISTIC
20818C                 MAXWELL            PPCC
20819C                 MAXWELL            PPCC LOCATION
20820C                 MAXWELL            PPCC SCALE
20821C                 MINIMUM GUMBEL     PPCC
20822C                 MINIMUM GUMBEL     PPCC LOCATION
20823C                 MINIMUM GUMBEL     PPCC SCALE
20824C                 MAXIMUM GUMBEL     PPCC
20825C                 MAXIMUM GUMBEL     PPCC LOCATION
20826C                 MAXIMUM GUMBEL     PPCC SCALE
20827C                 NORMAL             PPCC
20828C                 NORMAL             PPCC LOCATION
20829C                 NORMAL             PPCC SCALE
20830C                 RAYLEIGH           PPCC
20831C                 RAYLEIGH           PPCC LOCATION
20832C                 RAYLEIGH           PPCC SCALE
20833C                 SEMI-CIRCULAR      PPCC
20834C                 SEMI-CIRCULAR      PPCC LOCATION
20835C                 SEMI-CIRCULAR      PPCC SCALE
20836C                 SINE               PPCC
20837C                 SINE               PPCC LOCATION
20838C                 SINE               PPCC SCALE
20839C                 SLASH              PPCC
20840C                 SLASH              PPCC LOCATION
20841C                 SLASH              PPCC SCALE
20842C                 TUKEY-LAMBDA       PPCC LOCATION
20843C                 TUKEY-LAMBDA       PPCC SCALE
20844C                 TUKEY-LAMBDA       PPCC SHAPE
20845C                 TUKEY-LAMBDA       PPCC STATISTIC
20846C                 UNIFORM            PPCC
20847C                 UNIFORM            PPCC LOCATION
20848C                 UNIFORM            PPCC SCALE
20849C                 WALD               PPCC LOCATION
20850C                 WALD               PPCC SCALE
20851C                 WALD               PPCC SHAPE
20852C                 WALD               PPCC STATISTIC
20853C                 WEIBULL            PPCC LOCATION
20854C                 WEIBULL            PPCC SCALE
20855C                 WEIBULL            PPCC SHAPE
20856C                 WEIBULL            PPCC STATISTIC
20857C                 2PAR WEIBULL       PPCC SCALE
20858C                 2PAR WEIBULL       PPCC SHAPE
20859C                 2PAR WEIBULL       PPCC STATISTIC
20860C
20861C                 DOUBLE EXPONENTIAL ANDERSON DARLING
20862C                 DOUBLE EXPONENTIAL ANDERSON DARLING LOCATION
20863C                 DOUBLE EXPONENTIAL ANDERSON DARLING SCALE
20864C                 EXPONENTIAL        ANDERSON DARLING
20865C                 EXPONENTIAL        ANDERSON DARLING LOCATION
20866C                 EXPONENTIAL        ANDERSON DARLING SCALE
20867C                 GAMMA (2-PAR)      ANDERSON DARLING
20868C                 GAMMA (2-PAR)      ANDERSON DARLING LOCATION
20869C                 GAMMA (2-PAR)      ANDERSON DARLING SCALE
20870C                 GUMBEL             ANDERSON DARLING
20871C                 GUMBEL             ANDERSON DARLING LOCATION
20872C                 GUMBEL             ANDERSON DARLING SCALE
20873C                 LOGISTIC           ANDERSON DARLING
20874C                 LOGISTIC           ANDERSON DARLING LOCATION
20875C                 LOGISTIC           ANDERSON DARLING SCALE
20876C                 LOGNORMAL (2-PAR)  ANDERSON DARLING
20877C                 LOGNORMAL (2-PAR)  ANDERSON DARLING LOCATION
20878C                 LOGNORMAL (2-PAR)  ANDERSON DARLING SCALE
20879C                 MAXWELL            ANDERSON DARLING
20880C                 MAXWELL            ANDERSON DARLING LOCATION
20881C                 MAXWELL            ANDERSON DARLING SCALE
20882C                 NORMAL             ANDERSON DARLING
20883C                 NORMAL             ANDERSON DARLING LOCATION
20884C                 NORMAL             ANDERSON DARLING SCALE
20885C                 RAYLEIGH           ANDERSON DARLING
20886C                 RAYLEIGH           ANDERSON DARLING LOCATION
20887C                 RAYLEIGH           ANDERSON DARLING SCALE
20888C                 UNIFORM            ANDERSON DARLING
20889C                 UNIFORM            ANDERSON DARLING LOCATION
20890C                 UNIFORM            ANDERSON DARLING SCALE
20891C                 WEIBULL (2-PAR)    ANDERSON DARLING
20892C                 WEIBULL (2-PAR)    ANDERSON DARLING LOCATION
20893C                 WEIBULL (2-PAR)    ANDERSON DARLING SCALE
20894C
20895C              MISCELLANOUS: (12)
20896C                 COMMON DIGITS
20897C                 INTEGRAL
20898C                 INTERVAL COUNT
20899C                 NUMBER (OR COUNT OR SIZE)
20900C                 PRODUCT
20901C                 RAW SHANNON DIVERSITY INDEX
20902C                 RAW SHANNON EQUITABILITY INDEX
20903C                 RAW SIMPSON DIVERSITY INDEX
20904C                 SHANNON DIVERSITY INDEX
20905C                 SHANNON EQUITABILITY INDEX
20906C                 SIMPSON DIVERSITY INDEX
20907C                 SUM
20908C                 UNIQUE (NUMBER OF DISTINCT VALUES)
20909C                 VALUE COUNT
20910C                 PYTHON MEAN
20911C
20912C              FOLLOWING ARE USED BY LET ... = CROSS TABULATE ...
20913C                 GROUP ONE
20914C                 GROUP TWO
20915C                 GROUP THREE
20916C                 GROUP FOUR
20917C                 GROUP FIVE
20918C                 GROUP SIX
20919C
20920C              CASE 2: TWO RESPONSE VARIABLES
20921C
20922C              GROUP STATISTICS
20923C                 COMMON COEFFICIENT OF VARIATION
20924C                 COMMON BIAS CORRECTED COEFFICIENT OF VARIATION
20925C                 LOWER COMMON COEFFICIENT OF VARIATION CONFIDENCE LIMIT
20926C                 UPPER COMMON COEFFICIENT OF VARIATION CONFIDENCE LIMIT
20927C
20928C              WEIGHTED STATISTICS: (9)
20929C                 WEIGHTED MEAN
20930C                 WEIGHTED ORDER STATISTIC MEAN
20931C                 WEIGHTED STANDARD DEVIATION
20932C                 WEIGHTED SKEWNESS
20933C                 WEIGHTED SUM
20934C                 WEIGHTED SUM OF ABSOLUTE VALUES
20935C                 WEIGHTED SUM OF SQUARES
20936C                 WEIGHTED TRIMMED MEAN
20937C                 WEIGHTED VARIANCE
20938C
20939C              CO-RELATION: (30)
20940C                 ANGULAR COSINE DISTANCE
20941C                 ANGULAR COSINE SIMILARITY
20942C                 BINARY ASYMMETRIC DICE MATCH DISSIMILARITY
20943C                 BINARY ASYMMETRIC DICE MATCH SIMILARITY
20944C                 BINARY ASYMMETRIC SOKAL MATCH DISSIMILARITY
20945C                 BINARY ASYMMETRIC SOKAL MATCH SIMILARITY
20946C                 BINARY GAMMA COEFFICIENT
20947C                 BINARY JACCARD DISSIMILARITY
20948C                 BINARY JACCARD SIMILARITY
20949C                 BINARY MATCH DISSIMILARITY
20950C                 BINARY MATCH SIMILARITY
20951C                 BINARY ROGERS MATCH DISSIMILARITY
20952C                 BINARY ROGERS MATCH SIMILARITY
20953C                 BINARY SOKAL MATCH DISSIMILARITY
20954C                 BINARY SOKAL MATCH SIMILARITY
20955C                 BIWEIGHT MIDCOVARIANCE
20956C                 BIWEIGHT MIDCORRELATION
20957C                 CANBERRA DISTANCE
20958C                 CHEBYCHEV DISTANCE
20959C                 COMOVEMENT
20960C                 CORRELATION
20961C                 CORRELATION ABSOLUTE VALUE
20962C                 CORRELATION PVALUE
20963C                 CORRELATION CDF
20964C                 CORRELATION RATIO
20965C                 COSINE DISTANCE
20966C                 COSINE SIMILARITY
20967C                 COVARIANCE
20968C                 DOT PRODUCT
20969C                 EUCLIDEAN DISTANCE
20970C                 EUCLIDEAN LENGTH
20971C                 GENERALIZED JACCARD COEFFCIENT
20972C                 GENERALIZED JACCARD DISTANCE
20973C                 HAMMING DISTANCE
20974C                 INTRACLASS CORRELATION
20975C                 KENDALLS TAU (GAMMA CORRELATION COEFFICIENT)
20976C                 KENDALLS TAU A
20977C                 KENDALLS TAU B
20978C                 KENDALLS TAU C
20979C                 KENDALLS TAU ABSOLUTE VALUE
20980C                 KENDALLS TAU CDF
20981C                 KENDELLS TAU DISSIMILARITY
20982C                 KENDELLS TAU SIMILARITY
20983C                 KENDALLS TAU PVALUE
20984C                 KENDALLS TAU LOWER TAILED PVALUE
20985C                 KENDALLS TAU UPPER TAILED PVALUE
20986C                 MANHATTAN DISTANCE
20987C                 MINKOWSKI DISTANCE
20988C                 PERCENTAGE BEND CORRELATION
20989C                 PEARSON DISSIMILARITY (OR PEARSON DISTANCE)
20990C                 PEARSON SIMILARITY
20991C                 RANK CORRELATION
20992C                 RANK CORRELATION ABSOLUTE VALUE
20993C                 RANK CORRELATION CDF
20994C                 RANK CORRELATION PVALUE
20995C                 RANK CORRELATION LOWER TAILED PVALUE
20996C                 RANK CORRELATION UPPER TAILED PVALUE
20997C                 RANK COMOVEMENT
20998C                 RANK COVARIANCE
20999C                 SPEARMAN DISSIMILARITY
21000C                 SPEARMAN SIMILARITY
21001C                 WINSORIZED COVARIANCE
21002C                 WINSORIZED CORRELATION
21003C                 YOUDEN INDEX
21004C                 YULES Q (BINARY GAMMA COEFFICIENT)
21005C                 YULES Y
21006C
21007C              REGRESSION/FITTING: (11)
21008C                 CONSTANT INTERCEPT
21009C                 CONSTANT INTERCEPT SD
21010C                 LINEAR CORRELATION
21011C                 LINEAR DISTINCT X
21012C                 LINEAR INTERCEPT
21013C                 LINEAR INTERCEPT SD
21014C                 LINEAR RESSD
21015C                 LINEAR SLOPE
21016C                 LINEAR SLOPE SD
21017C                 REPEATABILITY SD
21018C                 REPRODUCABILITY SD
21019C
21020C              CATEGORICAL DATA: (16)
21021C                 CRAMER CONTINGENCY COEFFICIENT
21022C                 FALSE POSITIVE
21023C                 FALSE NEGATIVE
21024C                 LOG ODDS RATIO (BIAS CORRECTED LOG ODDS RATIO)
21025C                 NEGATIVE PREDICTIVE VALUE
21026C                 ODDS RATIO (BIAS CORRECTED ODDS RATIO)
21027C                 PEARSON CONTINGENCY COEFFICIENT
21028C                 PERCENTAGE AGREE
21029C                 PERCENTAGE DISAGREE
21030C                 POSITIVE PREDICTIVE VALUE
21031C                 RATIO (= SUM1/SUM2)
21032C                 RELATIVE RISK
21033C                 STANDARD ERROR LOG ODDS RATIO (STANDARD ERROR OF
21034C                     THE BIAS CORRECTED LOG ODDS RATIO)
21035C                 STANDARD ERROR ODDS RATIO (STANDARD ERROR OF THE
21036C                     BIAS CORRECTED ODDS RATIO)
21037C                 TRUE NEGATIVE
21038C                 TRUE POSITIVE
21039C                 TEST SENSITIVITY
21040C                 TEST SPECIFICITY
21041C
21042C              DIFFERENCE OF LOCATION: (15)
21043C                 DIFFERENCE OF BIWEIGHT LOCATION
21044C                 DIFFERENCE OF GEOMETRIC MEANS
21045C                 DIFFERENCE OF H10 LOCATION
21046C                 DIFFERENCE OF H12 LOCATION
21047C                 DIFFERENCE OF H15 LOCATION
21048C                 DIFFERENCE OF H17 LOCATION
21049C                 DIFFERENCE OF H20 LOCATION
21050C                 DIFFERENCE OF HARMONIC MEANS
21051C                 DIFFERENCE OF HODGES-LEHMAN
21052C                 DIFFERENCE OF LP LOCATION
21053C                 DIFFERENCE OF MEANS
21054C                 DIFFERENCE OF MEDIANS
21055C                 DIFFERENCE OF MIDHNGE
21056C                 DIFFERENCE OF MIDMEANS
21057C                 DIFFERENCE OF SHORTEST HALF MIDMEAN
21058C                 DIFFERENCE OF SHORTEST HALF MIDRANGE
21059C                 DIFFERENCE OF TRIMMED MEANS
21060C                 DIFFERENCE OF WINSORIZED MEANS
21061C                 HEDGES G
21062C                 BIAS CORRECTED HEDGES G
21063C                 GLASS G
21064C                 COHENS D
21065C
21066C              DIFFERENCE OF SCALE AND HIGHER MOMENTS: (38)
21067C                 DIFFERENCE OF AAD
21068C                 DIFFERENCE OF AVERAGE ABSOLUTE DEVIATIONS FROM MEDIAN
21069C                 DIFFERENCE OF BIWEIGHT MIDVARIANCE
21070C                 DIFFERENCE OF BIWEIGHT SCALE
21071C                 DIFFERENCE OF COEFFICIENT OF DISPERSION
21072C                 DIFFERENCE OF COEFFICIENT OF VARIATION
21073C                 DIFFERENCE OF EXTREMES
21074C                 DIFFERENCE OF GEOMETRIC SD
21075C                 DIFFERENCE OF H10 SCALE
21076C                 DIFFERENCE OF H12 SCALE
21077C                 DIFFERENCE OF H15 SCALE
21078C                 DIFFERENCE OF H17 SCALE
21079C                 DIFFERENCE OF H20 SCALE
21080C                 DIFFERENCE OF INDEX OF DISPERSION
21081C                 DIFFERENCE OF INTERQUARTILE RANGE
21082C                 DIFFERENCE OF KURTOSIS
21083C                 DIFFERENCE OF EXCESS KURTOSIS
21084C                 DIFFERENCE OF MAD
21085C                 DIFFERENCE OF MAD TO MEDIAN
21086C                 DIFFERENCE OF MAXIMUM
21087C                 DIFFERENCE OF MIDRANGE
21088C                 DIFFERENCE OF MINIMUM
21089C                 DIFFERENCE OF NORMALIZED INTERQUARTILE RANGE
21090C                 DIFFERENCE OF PERCENTAGE BEND
21091C                 DIFFERENCE OF PRECISION
21092C                 DIFFERENCE OF QN
21093C                 DIFFERENCE OF QUANTILE
21094C                 DIFFERENCE OF RANGE
21095C                 DIFFERENCE OF RELATIVE SD
21096C                 DIFFERENCE OF RELATIVE VARIANCE
21097C                 DIFFERENCE OF RESCALED SUM
21098C                 DIFFERENCE OF ROOT MEAN SQUARE ERROR (OR RMS)
21099C                 DIFFERENCE OF SCALED MAD
21100C                 DIFFERENCE OF SD OF LP LOCATION
21101C                 DIFFERENCE OF SD OF MEAN
21102C                 DIFFERENCE OF SKEWNESS
21103C                 DIFFERENCE OF GALTON SKEWNESS
21104C                 DIFFERENCE OF PEARSON TWO SKEWNESS
21105C                 DIFFERENCE OF SN
21106C                 DIFFERENCE OF SIGNAL TO NOISE RATIO
21107C                 DIFFERENCE OF SUM OF SQUARES
21108C                 DIFFERENCE OF SUM OF SQUARES FROM MEAN
21109C                 DIFFERENCE OF STANDARD DEVIATIONS
21110C                 DIFFERENCE OF VARIANCES
21111C                 DIFFERENCE OF VARIANCE OF LP LOCATION
21112C                 DIFFERENCE OF VARIANCE OF THE MEAN
21113C                 DIFFERENCE OF WINSORIZED SD
21114C                 DIFFERENCE OF WINSORIZED VARIANCE
21115C
21116C              PERCENTILES: (3)
21117C                 GROUPED DECILE RATIO
21118C                 GROUPED PERCENTILE
21119C                 GROUPED QUANTILE
21120C
21121C              STATISTICAL TESTS
21122C                 ANDERSON DARLING K SAMPLE TEST
21123C                 ANDERSON DARLING K SAMPLE TEST CRITICAL VALUE
21124C                 BINOMIAL RATIO
21125C                 BIVARIATE CRAMER VON MISES 95 CRITICAL VALUE
21126C                 BIVARIATE CRAMER VON MISES 05 CRITICAL VALUE
21127C                 BIVARIATE CRAMER VON MISES TEST
21128C                 COCHRAN VARIANCE OUTLIER TEST
21129C                 COCHRAN VARIANCE OUTLIER CV95
21130C                 COCHRAN VARIANCE OUTLIER CV99
21131C                 COCHRAN VARIANCE OUTLIER PVALUE
21132C                 COCHRAN VARIANCE OUTLIER CDF
21133C                 COCHRAN MINIMUM VARIANCE OUTLIER TEST
21134C                 COCHRAN MINIMUM VARIANCE OUTLIER CV05
21135C                 COCHRAN MINIMUM VARIANCE OUTLIER CV01
21136C                 COCHRAN MINIMUM VARIANCE OUTLIER PVALUE
21137C                 COCHRAN MINIMUM VARIANCE OUTLIER CDF
21138C                 DIFFERENCE OF BINOMIAL PROPORTIONS
21139C                 DIFFERENCE OF BINOMIAL PROPORTIONS LOWER CONF LIMIT
21140C                 DIFFERENCE OF BINOMIAL PROPORTIONS UPPER CONF LIMIT
21141C                 F TEST
21142C                 F TEST CDF
21143C                 F TEST PVALUE
21144C                 FISHER TWO SAMPLE RANDOMIZATION TEST
21145C                 FISHER TWO SAMPLE RANDOMIZATION TEST PVALUE
21146C                 FISHER TWO SAMPLE RANDOMIZATION LOWER TAIL PVALUE
21147C                 GROUPED POISSON DISPERSION TEST
21148C                 GROUPED POISSON DISPERSION TEST CDF
21149C                 GROUPED POISSON DISPERSION TEST CDF PVALUE
21150C                 KLOTZ TEST
21151C                 KLOTZ TEST CDF
21152C                 KLOTZ TEST PVALUE
21153C                 KLOTZ TEST LOWER TAILED PVALUE
21154C                 KLOTZ TEST UPPER TAILED PVALUE
21155C                 KRUSKALL WALLIS TEST
21156C                 KRUSKALL WALLIS TEST CDF
21157C                 KRUSKALL WALLIS TEST PVALUE
21158C                 MANN WHITNEY RANK SUM TEST
21159C                 MANN WHITNEY RANK SUM TEST CDF
21160C                 MANN WHITNEY RANK SUM TEST PVALUE
21161C                 MANN WHITNEY RANK SUM LOWER TAIL PVALUE
21162C                 MANN WHITNEY RANK SUM UPPER TAIL PVALUE
21163C                 MANN WHITNEY U STATISTIC
21164C                 MEAN NEAREST NEIGHBOR DISTANCE CDF
21165C                 MEAN NEAREST NEIGHBOR DISTANCE PVALUE
21166C                 MEAN NEAREST NEIGHBOR DISTANCE TEST
21167C                 MEDIAN TEST
21168C                 MEDIAN TEST CDF
21169C                 MEDIAN TEST PVALUE
21170C                 ONE SAMPLE COEFFICIENT OF VARIATION TEST
21171C                 ONE SAMPLE COEFFICIENT OF VARIATION TEST CDF
21172C                 ONE SAMPLE COEFFICIENT OF VARIATION TEST PVALUE
21173C                 ONE SAMPLE COEFFICIENT OF VARIATION LOWER PVALUE
21174C                 ONE SAMPLE COEFFICIENT OF VARIATION UPPER PVALUE
21175C                 POLLARD ONE CDF
21176C                 POLLARD ONE PVALUE
21177C                 POLLARD ONE TEST
21178C                 POLLARD TWO CDF
21179C                 POLLARD TWO PVALUE
21180C                 POLLARD TWO TEST
21181C                 POLLARD THREE CDF
21182C                 POLLARD THREE PVALUE
21183C                 POLLARD THREE TEST
21184C                 POLLARD FOUR CDF
21185C                 POLLARD FOUR PVALUE
21186C                 POLLARD FOUR TEST
21187C                 POLLARD FIVE CDF
21188C                 POLLARD FIVE PVALUE
21189C                 POLLARD FIVE TEST
21190C                 RATIO OF MEANS
21191C                 RATIO OF MEANS LOWER LIMIT
21192C                 RATIO OF MEANS UPPER LIMIT
21193C                 SQUARED RANK TEST
21194C                 SQUARED RANK TEST CDF
21195C                 SQUARED RANK TEST PVALUE
21196C                 SQUARED RANK TEST LOWER TAILED PVALUE
21197C                 SQUARED RANK TEST UPPER TAILED PVALUE
21198C                 SUMMARY COEFFICIENT OF VARIATION
21199C                 SUMMARY LOWER SD CONFIDENCE LIMITS
21200C                 SUMMARY LOWER SD PREDICTION LIMITS
21201C                 SUMMARY ONE SIDED LOWER SD CONFIDENCE LIMITS
21202C                 SUMMARY ONE SIDED LOWER SD PREDICTION LIMITS
21203C                 SUMMARY ONE SIDED UPPER SD CONFIDENCE LIMITS
21204C                 SUMMARY ONE SIDED UPPER SD PREDICTION LIMITS
21205C                 SUMMARY UPPER SD CONFIDENCE LIMITS
21206C                 SUMMARY UPPER SD PREDICTION LIMITS
21207C                 TWO SAMPLE CHI-SQUARE TEST
21208C                 TWO SAMPLE CHI-SQUARE TEST CDF
21209C                 TWO SAMPLE CHI-SQUARE TEST PVALUE
21210C                 TWO SAMPLE COEFFICIENT OF VARIATION TEST
21211C                 TWO SAMPLE COEFFICIENT OF VARIATION TEST CDF
21212C                 TWO SAMPLE COEFFICIENT OF VARIATION TEST PVALUE
21213C                 TWO SAMPLE COEFFICIENT OF VARIATION LOWER PVALUE
21214C                 TWO SAMPLE COEFFICIENT OF VARIATION UPPER PVALUE
21215C                 TWO SAMPLE KOLMOGOROV SMIRNOV TEST
21216C                 TWO SAMPLE KOLMOGOROV SMIRNOV CRITICAL VALUE
21217C                 TWO SAMPLE PAIRED T-TEST
21218C                 TWO SAMPLE PAIRED T-TEST CDF
21219C                 TWO SAMPLE PAIRED T-TEST PVALUE
21220C                 TWO SAMPLE PAIRED T-TEST LOWER TAIL PVALUE
21221C                 TWO SAMPLE PAIRED T-TEST UPPER TAIL PVALUE
21222C                 TWO SAMPLE SIGN TEST
21223C                 TWO SAMPLE SIGN TEST CDF
21224C                 TWO SAMPLE SIGN TEST PVALUE
21225C                 TWO SAMPLE SIGN TEST LOWER TAIL PVALUE
21226C                 TWO SAMPLE SIGN TEST UPPER TAIL PVALUE
21227C                 TWO SAMPLE T-TEST
21228C                 TWO SAMPLE T-TEST CDF
21229C                 TWO SAMPLE T-TEST PVALUE
21230C                 TWO SAMPLE T-TEST LOWER TAIL PVALUE
21231C                 TWO SAMPLE T-TEST UPPER TAIL PVALUE
21232C                 TWO SAMPLE WILCOXON SIGNED RANK TEST
21233C                 TWO SAMPLE WILCOXON SIGNED RANK TEST CDF
21234C                 TWO SAMPLE WILCOXON SIGNED RANK TEST PVALUE
21235C                 TWO SAMPLE WILCOXON SIGNED RANK TEST LOWER TAIL PVALUE
21236C                 TWO SAMPLE WILCOXON SIGNED RANK TEST UPPER TAIL PVALUE
21237C
21238C              DISTRIBUTION:
21239C                 COMMON WEIBULL SHAPE TEST
21240C                 COMMON WEIBULL SHAPE TEST CDF
21241C                 COMMON WEIBULL SHAPE TEST PVALUE
21242C                 COMMON WEIBULL SHAPE TEST CV90
21243C                 COMMON WEIBULL SHAPE TEST CV95
21244C                 COMMON WEIBULL SHAPE TEST CV99
21245C
21246C              CONSENSUS MEANS:
21247C                 DERSIMONIAN LAIRD
21248C                 DERSIMONIAN LAIRD STANDARD ERROR
21249C                 DERSIMONIAN LAIRD HHD
21250C                 DERSIMONIAN LAIRD MINMAX
21251C                 MANDEL PAULE
21252C                 MANDEL PAULE STANDARD ERROR
21253C                 MODIFIED MANDEL PAULE
21254C                 MODIFIED MANDEL PAULE STANDARD ERROR
21255C                 VANGEL RUKHIN
21256C                 VANGEL RUKHIN STANDARD ERROR
21257C                 GENERALIZED CONFIDENCE INTERVAL
21258C                 GENERALIZED CONFIDENCE INTERVAL STANDARD ERROR
21259C                 BOB
21260C                 BOB STANDARD ERROR
21261C                 BCP
21262C                 BCP STANDARD ERROR
21263C                 MEAN OF MEANS
21264C                 MEAN OF MEANS STANDARD ERROR
21265C                 FAIRWEATHER
21266C                 FAIRWEATHER STANDARD ERROR
21267C                 SCHILLER-EBERHARDT
21268C                 SCHILLER-EBERHARDT STANDARD ERROR
21269C                 GRAYBILL DEAL
21270C                 GRAYBILL DEAL SINHA STANDARD ERROR
21271C                 GRAYBILL DEAL NAIVE STANDARD ERROR
21272C                 GRAYBILL DEAL ZHANG ONE STANDARD ERROR
21273C                 GRAYBILL DEAL ZHANG TWO STANDARD ERROR
21274C
21275C              MISCELLANEOUS: (9)
21276C                 DIFFERENCE OF BINOMIAL PROBABILITIES
21277C                 DIFFERENCE OF COUNTS
21278C                 DIFFERENCE OF SUMS
21279C                 DIFFERENCE OF PRODUCTS
21280C                 DIFFERENCE OF INTEGRALS
21281C                 INDEX FIRST MATCH
21282C                 INDEX LAST  MATCH
21283C                 INDEX FIRST NOT MATCH
21284C                 INDEX LAST  NOT MATCH
21285C                 PERCENTAGE DIFFERENCE OF MEAN
21286C
21287C              CASE 3: THREE RESPONSE VARIABLES
21288C
21289C              WEIGHTED STATISTICS:
21290C                 GROUPED CORRELATION
21291C                 WEIGHTED CORRELATION
21292C                 WEIGHTED COSINE DISTANCE
21293C                 WEIGHTED COSINE SIMILARITY
21294C                 WEIGHTED COVARIANCE
21295C
21296C              FIT/CORRELATION
21297C                 EQUAL SLOPES
21298C                 EQUAL SLOPES CDF
21299C                 EQUAL SLOPES CRITICAL VALUE
21300C                 EQUAL SLOPES PVALUE
21301C                 PARTIAL CORRELATION
21302C                 PARTIAL CORRELATION ABSOLUTE VALUE
21303C                 PARTIAL CORRELATION CDF
21304C                 PARTIAL CORRELATION PVALUE
21305C                 PARTIAL KENDALL TAU CORRELATION
21306C                 PARTIAL KENDALL TAU CORRELATION ABSOLUTE VALUE
21307C                 PARTIAL RANK CORRELATION
21308C                 PARTIAL RANK CORRELATION ABSOLUTE VALUE
21309C
21310C              STATISTICAL TESTS
21311C                 FRIEDMAN TEST
21312C                 FRIEDMAN TEST CDF
21313C                 FRIEDMAN TEST PVALUE
21314C                 PAGE TEST
21315C                 PAGE MODIFIED TEST
21316C                 PAGE TEST CDF
21317C                 PAGE TEST PVALUE
21318C                 QUADE TEST
21319C                 QUADE TEST CDF
21320C                 QUADE TEST PVALUE
21321C                 SUMMARY LOWER COEFFICIENT OF VARIATION CONFIDENCE LIMITS
21322C                 SUMMARY LOWER CONFIDENCE LIMITS
21323C                 SUMMARY LOWER PREDICTION BOUNDS
21324C                 SUMMARY LOWER PREDICTION LIMITS
21325C                 SUMMARY NORMAL TOLERANCE K FACTOR
21326C                 SUMMARY NORMAL TOLERANCE LOWER LIMIT
21327C                 SUMMARY NORMAL TOLERANCE UPPER LIMIT
21328C                 SUMMARY NORMAL TOLERANCE ONE SIDED K FACTOR
21329C                 SUMMARY NORMAL TOLERANCE ONE SIDED LOWER LIMIT
21330C                 SUMMARY NORMAL TOLERANCE ONE SIDED UPPER LIMIT
21331C                 SUMMARY ONE SAMPLE COEFFICIENT OF VARIATION CDF
21332C                 SUMMARY ONE SAMPLE COEFFICIENT OF VARIATION PVALUE
21333C                 SUMMARY ONE SAMPLE COEFFICIENT OF VARIATION TEST
21334C                 SUMMARY ONE SIDED LOWER CONFIDENCE LIMITS
21335C                 SUMMARY ONE SIDED LOWER PREDICTION BOUNDS
21336C                 SUMMARY ONE SIDED LOWER PREDICTION LIMITS
21337C                 SUMMARY ONE SIDED UPPER CONFIDENCE LIMITS
21338C                 SUMMARY ONE SIDED UPPER PREDICTION BOUNDS
21339C                 SUMMARY ONE SIDED UPPER PREDICTION LIMITS
21340C                 SUMMARY UPPER COEFFICIENT OF VARIATION CONFIDENCE LIMITS
21341C                 SUMMARY UPPER CONFIDENCE LIMITS
21342C                 SUMMARY UPPER PREDICTION BOUNDS
21343C                 SUMMARY UPPER PREDICTION LIMITS
21344C
21345C              CONSENSUS MEANS
21346C                 ANDERSON DARLING K SAMPLE TEST
21347C                 SUMMARY DERSIMONIAN LAIRD
21348C                 SUMMARY DERSIMONIAN LAIRD STANDARD ERROR
21349C                 SUMMARY DERSIMONIAN LAIRD HHD
21350C                 SUMMARY DERSIMONIAN LAIRD MINMAX
21351C                 SUMMARY MANDEL PAULE
21352C                 SUMMARY MANDEL PAULE STANDARD ERROR
21353C                 SUMMARY MODIFIED MANDEL PAULE
21354C                 SUMMARY MODIFIED MANDEL PAULE STANDARD ERROR
21355C                 SUMMARY VANGEL RUKHIN
21356C                 SUMMARY VANGEL RUKHIN STANDARD ERROR
21357C                 SUMMARY GENERALIZED CONFIDENCE INTERVAL
21358C                 SUMMARY GENERALIZED CONFIDENCE INTERVAL STANDARD ERROR
21359C                 SUMMARY BOB
21360C                 SUMMARY BOB STANDARD ERROR
21361C                 SUMMARY BCP
21362C                 SUMMARY BCP STANDARD ERROR
21363C                 SUMMARY MEAN OF MEANS
21364C                 SUMMARY MEAN OF MEANS STANDARD ERROR
21365C                 SUMMARY FAIRWEATHER
21366C                 SUMMARY FAIRWEATHER STANDARD ERROR
21367C                 SUMMARY SCHILLER-EBERHARDT
21368C                 SUMMARY SCHILLER-EBERHARDT STANDARD ERROR
21369C                 SUMMARY GRAYBILL DEAL
21370C                 SUMMARY GRAYBILL DEAL SINHA STANDARD ERROR
21371C                 SUMMARY GRAYBILL DEAL NAIVE STANDARD ERROR
21372C                 SUMMARY GRAYBILL DEAL ZHANG ONE STANDARD ERROR
21373C                 SUMMARY GRAYBILL DEAL ZHANG TWO STANDARD ERROR
21374C
21375C     WRITTEN BY--ALAN HECKERT
21376C                 STATISTICAL ENGINEERING DIVISION
21377C                 INFORMATION TECHNOLOGY LABORATORY
21378C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
21379C                 GAITHERSBURG, MD 20899-8980
21380C                 PHONE--301-975-2899
21381C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
21382C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
21383C     LANGUAGE--ANSI FORTRAN (1977)
21384C     VERSION NUMBER--2002/8
21385C     ORIGINAL VERSION--AUGUST    2002.
21386C     UPDATED         --FEBRUARY  2003. ADD SUPPORT FOR DIFFERENCE
21387C                                       OF LOCATION AND SCALE
21388C                                       STATISTICS
21389C     UPDATED         --APRIL     2003. ADD SUPPORT FOR SN, QN ROBUST
21390C                                       SCALE ESTIMATES (AND THEIR
21391C                                       DIFFERENCE), REQUIRED ADDING
21392C                                       ADDITIONAL SCRATCH ARRAYS.
21393C     UPDATED         --MAY       2003. ADD SUPPORT FOR WEIGHTED TRIMMED
21394C                                       MEAN.
21395C     UPDATED         --FEBRUARY  2004. RESTORE COMOVEMENT, RANK
21396C                                       COMOVEMENT
21397C     UPDATED         --OCTOBER   2004. KENDELLS TAU
21398C     UPDATED         --FEBRUARY  2005. REPEATABILITY SD
21399C     UPDATED         --FEBRUARY  2005. REPRODUCABILITY SD
21400C     UPDATED         --SEPTEMBER 2005. RATIO (=SUM1/SUM2)
21401C     UPDATED         --JANUARY   2007. CALL LIST TO RANKCR, RANKCV,
21402C                                       RANKCM
21403C     UPDATED         --MARCH     2007. RELATIVE RISK
21404C     UPDATED         --MARCH     2007. CRAMER CONTINGENCY COEFFICIENT
21405C     UPDATED         --MARCH     2007. FALSE POSITIVE
21406C     UPDATED         --MARCH     2007. FALSE NEGATIVE
21407C     UPDATED         --MARCH     2007. TRUE POSITIVE
21408C     UPDATED         --MARCH     2007. TRUE NEGATIVE
21409C     UPDATED         --MARCH     2007. TEST SENSITIVITY
21410C     UPDATED         --MARCH     2007. TEST SPECIFICITY
21411C     UPDATED         --APRIL     2007. POSITIVE PREDICTIVE VALUE
21412C     UPDATED         --APRIL     2007. NEGATIVE PREDICTIVE VALUE
21413C     UPDATED         --APRIL     2007. ODDS RATIO
21414C     UPDATED         --APRIL     2007. STANDARD ERROR ODDS RATIO
21415C     UPDATED         --APRIL     2007. LOG ODDS RATIO
21416C     UPDATED         --APRIL     2007. STANDARD ERROR LOG ODDS RATIO
21417C     UPDATED         --MAY       2007. TRIMMED STANDARD DEVIATION
21418C     UPDATED         --NOVEMBER  2007. DOUBLE PRECISION ARRAYS
21419C     UPDATED         --NOVEMBER  2007. LP LOCATION
21420C     UPDATED         --NOVEMBER  2007. VARIANCE OF LP LOCATION
21421C     UPDATED         --NOVEMBER  2007. SD OF LP LOCATION
21422C     UPDATED         --NOVEMBER  2007. DIFFERENCE OF LP LOCATION
21423C     UPDATED         --NOVEMBER  2007. DIFFERENCE OF VARIANCE LP
21424C                                       LOCATION
21425C     UPDATED         --NOVEMBER  2007. DIFFERENCE OF SD LP
21426C                                       LOCATION
21427C     UPDATED         --APRIL     2008. BINOMIAL PROBABILITIES
21428C     UPDATED         --SEPTEMBER 2008. DIFFERENCE OF BINOMIAL
21429C                                       PROBABILITIES
21430C     UPDATED         --FEBRUARY  2009. INDEX MINIMUM
21431C     UPDATED         --FEBRUARY  2009. INDEX MAXIMUM
21432C     UPDATED         --FEBRUARY  2009. INDEX EXTREME
21433C     UPDATED         --FEBRUARY  2009. GRUBB
21434C     UPDATED         --FEBRUARY  2009. GRUBB CDF
21435C     UPDATED         --FEBRUARY  2009. GRUBB DIRECTION
21436C     UPDATED         --FEBRUARY  2009. GRUBB INDEX
21437C     UPDATED         --FEBRUARY  2009. ONE SAMPLE T-TEST
21438C     UPDATED         --FEBRUARY  2009. ONE SAMPLE T-TEST CDF
21439C     UPDATED         --FEBRUARY  2009. FREQUECNY TEST
21440C     UPDATED         --FEBRUARY  2009. FREQUENCY TEST CDF
21441C     UPDATED         --FEBRUARY  2009. FREQUECNY WITHIN A BLOCK TEST
21442C     UPDATED         --FEBRUARY  2009. FREQUENCY WITHIN A BLOCK TEST
21443C                                       CDF
21444C     UPDATED         --FEBRUARY  2009. UNIFORM PPCC
21445C     UPDATED         --MAY       2009. MEAN CONFIDENCE LIMIT
21446C                                       MEDIAN CONFIDENCE LIMIT
21447C                                       NOTE THAT THESE ARE JUST SYNONYMS
21448C                                       FOR MEAN AND MEDIAN IN THIS ROUTINE.
21449C                                       HOWEVER, THEY RECEIVE SPECIAL
21450C                                       HANDLING IN CROSS TABULATE COMMAND
21451C                                       (WHERE WE PRINT SAMPLE SIZE AND
21452C                                       LOWER AND UPPER CONFIDENCE
21453C                                       LIMITS)
21454C     UPDATED         --SEPTEMBER 2009. SUPPORT FOR
21455C                                       LET A = XQ QUANTILE Y
21456C                                       LET A = P100 PERCENTILE Y
21457C     UPDATED         --NOVEMBER  2009. TIETJEN-MOORE
21458C     UPDATED         --NOVEMBER  2009. EXTREME STUDENTIZED DEVIATE
21459C     UPDATED         --NOVEMBER  2009. DIXON
21460C     UPDATED         --JANUARY   2010. BINOMIAL RATIO
21461C     UPDATED         --JANUARY   2010. ROOT MEAN SQUARE ERROR
21462C     UPDATED         --FEBRUARY  2010. CHECK DATA FOR MISSING VALUES
21463C                                       (I.E., IF DATA VALUE = PSTAMV,
21464C                                       OMIT FROM ANALYSIS)
21465C     UPDATED         --MARCH     2010. <ONE-SIDED/TWO-SIDED> <LOWER/UPPER>
21466C                                       AGRESTI-COUL
21467C     UPDATED         --MARCH     2010. <ONE-SIDED/TWO-SIDED> <LOWER/UPPER>
21468C                                       EXACT BINOMIAL
21469C     UPDATED         --JUNE      2010. ADD TEMPZ3 AND NS3 TO ACCOMODATE
21470C                                       STATISTICS REQUIRING 3 RESPONSE
21471C                                       VARIABLES
21472C     UPDATED         --JUNE      2010. VARIOUS CONSENSUS MEAN STATISTICS
21473C     UPDATED         --DECEMBER  2010. ROBUST POOLED STAND DEVIATION
21474C     UPDATED         --MARCH     2011. ANDERSON DARLING K-SAMPLE TEST
21475C     UPDATED         --MARCH     2011. TWO SAMPLE KOLM SMIR TEST
21476C     UPDATED         --MARCH     2011. WILK SHAPIRO NORMALITY TEST
21477C     UPDATED         --MARCH     2011. CUMULATIVE SUM RANDOMNESS TEST
21478C     UPDATED         --MARCH     2011. NORMAL TOLERANCE LIMITS
21479C     UPDATED         --MARCH     2011. F TEST
21480C     UPDATED         --APRIL     2011. TWO SAMPLE T TEST
21481C     UPDATED         --APRIL     2011. ONE/TWO SAMPLE SIGN TEST
21482C     UPDATED         --MAY       2011. ABASIS/BBASIS
21483C     UPDATED         --MAY       2011. ONE/TWO SAMPLE WILCOXON SIGNED RANK TEST
21484C     UPDATED         --MAY       2011. MANN WHITNEY RANK SUM TEST
21485C     UPDATED         --MAY       2011. KLOTZ TEST
21486C     UPDATED         --MAY       2011. SQUARED RANKS TEST
21487C     UPDATED         --JUNE      2011. FISHER TWO SAMPLE RANDOMIZATION
21488C                                       TEST
21489C     UPDATED         --JULY      2011. TWO SAMPLE CHI-SQUARE TEST
21490C     UPDATED         --JULY      2011. CHANGE ICASPL FOR LP LOCATION
21491C                                       TO AVOID CONFLICT WITH LEVEL
21492C                                       PLOT IN PLOTGE/PLOTG2
21493C     UPDATED         --JULY      2011. ADD DPCOST.INC AND DPCOSU.INC
21494C                                       TO AVOID LOTS OF CODE CHANGES
21495C                                       WHEN FUTURE STATISITCS NEED
21496C                                       VALUES FROM THESE INCLUDE FILES
21497C                                       (COMMENT OUT THOSE THAT ARE
21498C                                       CURRENTLY PASSED IN)
21499C     UPDATED         --JULY      2011. KRUSKALL WALLIS TEST
21500C     UPDATED         --JULY      2011. FRIEDMAN TEST
21501C     UPDATED         --JULY      2011. QUADE TEST
21502C     UPDATED         --JULY      2011. UNIQUE (NUMBER OF DISTINCT
21503C                                       VALUES)
21504C     UPDATED         --JULY      2011. PERCENTAGE AGREEMENT
21505C     UPDATED         --AUGUST    2011. CORRELATION ABSOLUTE VALUE
21506C     UPDATED         --NOVEMBER  2011. INDEX FIRST MATCH
21507C     UPDATED         --NOVEMBER  2011. INDEX LAST  MATCH
21508C     UPDATED         --NOVEMBER  2011. INDEX FIRST NOT MATCH
21509C     UPDATED         --NOVEMBER  2011. INDEX LAST  NOT MATCH
21510C     UPDATED         --DECEMBER  2011. SHANNON DIVERSITY INDEX
21511C     UPDATED         --DECEMBER  2011. SHANNON EQUITABILITY INDEX
21512C     UPDATED         --DECEMBER  2011. SIMPSON DIVERSITY INDEX
21513C     UPDATED         --DECEMBER  2011. JARQUE BERA NORMALITY TEST
21514C     UPDATED         --DECEMBER  2011. EXCESS KURTOSIS
21515C     UPDATED         --FEBRUARY  2012. SUM OF SQUARES
21516C     UPDATED         --FEBRUARY  2012. RESCALED SUM
21517C     UPDATED         --FEBRUARY  2012. RLP
21518C     UPDATED         --JUNE      2012. CORRELATION PVALUE
21519C     UPDATED         --JUNE      2012. CORRELATION CDF
21520C     UPDATED         --JUNE      2012. RANK CORRELATION ABSOLUTE VALUE
21521C     UPDATED         --JUNE      2012. KENDALL TAU CORRELATION ABSOLUTE VALUE
21522C     UPDATED         --JUNE      2012. PARTIAL CORRELATION
21523C     UPDATED         --JUNE      2012. PARTIAL CORRELATION PVALUE
21524C     UPDATED         --JUNE      2012. PARTIAL CORRELATION CDF
21525C     UPDATED         --JUNE      2012. PARTIAL CORRELATION ABSOLUTE VALUE
21526C     UPDATED         --JUNE      2012. PARTIAL RANK CORRELATION
21527C     UPDATED         --JUNE      2012. PARTIAL RANK CORRELATION ABSO VALUE
21528C     UPDATED         --JUNE      2012. PARTIAL KENDALL TAU CORRELATION
21529C                                               ABSOLUTE VALUE
21530C     UPDATED         --JUNE      2012. WEIGHTED SUM
21531C     UPDATED         --JUNE      2012. WEIGHTED SUM OF SQUARES
21532C     UPDATED         --JUNE      2012. WEIGHTED SUM OF ABSOLUTE VALUES
21533C     UPDATED         --JUNE      2012. WEIGHTED AVERAGE OF ABSO VALUES
21534C     UPDATED         --JUNE      2012. WEIGHTED SUM OF DEVIATIONS FROM
21535C                                                THE MEAN
21536C     UPDATED         --JUNE      2012. WEIGHTED SUM OF SQUARED DEVIATIONS
21537C                                                FROM THE MEAN
21538C     UPDATED         --JUNE      2012. DIFFERENCE OF SUM OF SQUARES
21539C     UPDATED         --JUNE      2012. DIFFERENCE OF RESCALED SUM
21540C     UPDATED         --SEPTEMBER 2012. Q QUANTILE RANGE
21541C     UPDATED         --NOVEMBER  2012. WEIGHTED ORDER STATISTIC MEAN
21542C     UPDATED         --DECEMBER  2012. LOWER CONFIDENCE LIMIT
21543C     UPDATED         --DECEMBER  2012. ONE-SIDED LOWER CONFIDENCE
21544C                                       LIMIT
21545C     UPDATED         --DECEMBER  2012. UPPER CONFIDENCE LIMIT
21546C     UPDATED         --DECEMBER  2012. ONE-SIDED UPPER CONFIDENCE
21547C                                       LIMIT
21548C     UPDATED         --DECEMBER  2012. LOWER PREDICTION LIMIT
21549C     UPDATED         --DECEMBER  2012. ONE-SIDED LOWER PREDICTION
21550C                                       LIMIT
21551C     UPDATED         --DECEMBER  2012. UPPER PREDICTION LIMIT
21552C     UPDATED         --DECEMBER  2012. ONE-SIDED UPPER PREDICTION
21553C                                       LIMIT
21554C     UPDATED         --JANUARY   2013. MEAN SUCCESSIVE DIFFERENCE TEST
21555C     UPDATED         --JANUARY   2013. WEIBULL PPCC SHAPE/LOCA/SCALE
21556C     UPDATED         --JANUARY   2013. TUKEY LAMBDA PPCC
21557C                                             SHAPE/LOCA/SCALE
21558C     UPDATED         --JANUARY   2013. NORMAL LOCA/SCALE
21559C     UPDATED         --FEBRUARY  2013. LOGNORMAL PPCC SHAPE/LOCA/SCALE
21560C     UPDATED         --FEBRUARY  2013. GH PPCC SHAPE/LOCA/SCALE
21561C     UPDATED         --FEBRUARY  2013. PAGE TEST
21562C     UPDATED         --FEBRUARY  2013. MEAN SUCCESSIVE DIFFEFRENCES TEST
21563C     UPDATED         --FEBRUARY  2013. KENDELL TAU CDF
21564C     UPDATED         --FEBRUARY  2013. KENDELL TAU PVALUE
21565C     UPDATED         --MARCH     2013. PREDICTION LIMITS
21566C                                       PREDICTION BOUNDS
21567C     UPDATED         --APRIL     2013. SD CONFIDENCE LIMITS
21568C     UPDATED         --APRIL     2013. SD PREDICTION LIMITS
21569C     UPDATED         --AUGUST    2013. MCCOOL WEIBULL LOCATION TEST
21570C     UPDATED         --OCTOBER   2013. CONSTANT INTERCEPT
21571C     UPDATED         --OCTOBER   2013. CONSTANT INTERCEPT SD
21572C     UPDATED         --NOVEMBER  2013. POISSON DISPERSION TEST
21573C     UPDATED         --NOVEMBER  2013. GROUPED POISSON DISPERSION TEST
21574C     UPDATED         --JANUARY   2014. BIVARIATE CRAMER VON MISES TEST
21575C     UPDATED         --JANUARY   2014. MEAN NEAREST NEIGHBOR DISTANCE
21576C                                       TEST
21577C     UPDATED         --JANUARY   2014. POLLARD TEST
21578C     UPDATED         --FEBRUARY  2014. VALUE COUNT
21579C     UPDATED         --MARCH     2014. VARIATIONAL DISTANCE
21580C     UPDATED         --MARCH     2014. RELATIVE DISPERSION INDEX
21581C     UPDATED         --MARCH     2014. UNIFORM CHI-SQUARE
21582C     UPDATED         --MARCH     2014. INTERDECILE RATIO
21583C     UPDATED         --MARCH     2014. GROUPED INTERDECILE RATIO
21584C     UPDATED         --MARCH     2014. GROUPED PERCENTILE
21585C     UPDATED         --MARCH     2014. GROUPED QUANTILE
21586C     UPDATED         --APRIL     2014. COMMON WEIBULL SHAPE TEST
21587C     UPDATED         --APRIL     2014. WEIGHTED SKEWNESS
21588C     UPDATED         --MAY       2014. KAPPENMAN R
21589C     UPDATED         --JULY      2014. BOX COX NORMALITY PPCC
21590C     UPDATED         --JULY      2014. BOX COX NORMALITY LAMBDA
21591C     UPDATED         --JULY      2014. AVERAGE ABSOLUTE DEVIATION
21592C                                       FROM THE MEDIAN
21593C     UPDATED         --JULY      2014. DIFFERENCE OF AVERAGE ABSOLUTE
21594C                                       DEVIATION FROM MEDIAN
21595C     UPDATED         --FEBRUARY  2015. BURR TYPE 10 ANDERSON DARLING
21596C     UPDATED         --FEBRUARY  2015. BURR TYPE 10 ANDERSON DARLING SHAPE
21597C     UPDATED         --FEBRUARY  2015. BURR TYPE 10 SCALE
21598C     UPDATED         --FEBRUARY  2015. DOUBLE EXPONENTIAL ANDERSON
21599C                                       DARLING
21600C     UPDATED         --FEBRUARY  2015. DOUBLE EXPONENTIAL ANDERSON
21601C                                       DARLING LOCATION
21602C     UPDATED         --FEBRUARY  2015. DOUBLE EXPONENTIAL ANDERSON
21603C                                       DARLING SCALE
21604C     UPDATED         --FEBRUARY  2015. EXPONENTIAL ANDERSON DARLING
21605C     UPDATED         --FEBRUARY  2015. EXPONENTIAL ANDERSON DARLING LOCATION
21606C     UPDATED         --FEBRUARY  2015. EXPONENTIAL ANDERSON DARLING SCALE
21607C     UPDATED         --FEBRUARY  2015. GAMMA ANDERSON DARLING
21608C     UPDATED         --FEBRUARY  2015. GAMMA ANDERSON DARLING SHAPE
21609C     UPDATED         --FEBRUARY  2015. GAMMA SCALE
21610C     UPDATED         --FEBRUARY  2015. FATIGUE LIFE ANDERSON DARLING
21611C     UPDATED         --FEBRUARY  2015. FATIGE LIFE ANDERSON DARLING SHAPE
21612C     UPDATED         --FEBRUARY  2015. FATIGUE LIFE SCALE
21613C     UPDATED         --FEBRUARY  2015. FRECHET ANDERSON DARLING
21614C     UPDATED         --FEBRUARY  2015. FRECHET ANDERSON DARLING SHAPE
21615C     UPDATED         --FEBRUARY  2015. FRECHET SCALE
21616C     UPDATED         --FEBRUARY  2015. GEOMETRIC EXPONENTIAL ANDERSON DARLING
21617C     UPDATED         --FEBRUARY  2015. GEOMETRIC EXPONENTIAL ANDERSON DARLING SHAPE
21618C     UPDATED         --FEBRUARY  2015. GEOMETRIC EXPONENTIAL SCALE
21619C     UPDATED         --FEBRUARY  2015. GUMBEL ANDERSON DARLING
21620C     UPDATED         --FEBRUARY  2015. GUMBEL ANDERSON DARLING LOCATION
21621C     UPDATED         --FEBRUARY  2015. GUMBEL SCALE
21622C     UPDATED         --FEBRUARY  2015. INVERTED GAMMA ANDERSON DARLING
21623C     UPDATED         --FEBRUARY  2015. INVERTED GAMMA ANDERSON DARLING SHAPE
21624C     UPDATED         --FEBRUARY  2015. INVERTED GAMMA SCALE
21625C     UPDATED         --FEBRUARY  2015. LOGISTIC ANDERSON DARLING
21626C     UPDATED         --FEBRUARY  2015. LOGISTIC ANDERSON DARLING LOCATION
21627C     UPDATED         --FEBRUARY  2015. LOGISTIC SCALE
21628C     UPDATED         --FEBRUARY  2015. LOGISTIC EXPONENTIAL ANDERSON DARLING
21629C     UPDATED         --FEBRUARY  2015. LOGISTIC EXPONENTIAL ANDERSON DARLING SHAPE
21630C     UPDATED         --FEBRUARY  2015. LOGISTIC EXPONENTIAL SCALE
21631C     UPDATED         --FEBRUARY  2015. LOGNORMAL ANDERSON DARLING
21632C     UPDATED         --FEBRUARY  2015. LOGNORMAL ANDERSON DARLING SHAPE
21633C     UPDATED         --FEBRUARY  2015. LOGNORMAL ANDERSON DARLING SCALE
21634C     UPDATED         --FEBRUARY  2015. MAXWELL ANDERSON DARLING
21635C     UPDATED         --FEBRUARY  2015. MAXWELL ANDERSON DARLING LOCATION
21636C     UPDATED         --FEBRUARY  2015. MAXWELL SCALE
21637C     UPDATED         --FEBRUARY  2015. NORMAL ANDERSON DARLING
21638C     UPDATED         --FEBRUARY  2015. NORMAL ANDERSON DARLING LOCATION
21639C     UPDATED         --FEBRUARY  2015. NORMAL ANDERSON DARLING SCALE
21640C     UPDATED         --FEBRUARY  2015. RAYLEIGH ANDERSON DARLING
21641C     UPDATED         --FEBRUARY  2015. RAYLEIGH ANDERSON DARLING LOCATION
21642C     UPDATED         --FEBRUARY  2015. RAYLEIGH SCALE
21643C     UPDATED         --FEBRUARY  2015. UNIFORM ANDERSON DARLING
21644C     UPDATED         --FEBRUARY  2015. UNIFORM ANDERSON DARLING LOCATION
21645C     UPDATED         --FEBRUARY  2015. UNIFORM SCALE
21646C     UPDATED         --FEBRUARY  2015. WEIBULL ANDERSON DARLING
21647C     UPDATED         --FEBRUARY  2015. WEIBULL ANDERSON DARLING SHAPE
21648C     UPDATED         --FEBRUARY  2015. WEIBULL ANDERSON DARLING SCALE
21649C     UPDATED         --FEBRUARY  2015. JSCORE
21650C     UPDATED         --FEBRUARY  2015. ADJANCENCY RANDOMNESS TEST
21651C                                       (SYNONYM FOR MEAN SUCCESSIVE
21652C                                       DIFFERENCES TEST)
21653C     UPDATED         --MARCH     2015. COCHRAN VARIANCE OUTLIER TEST
21654C     UPDATED         --APRIL     2015. CPMK, CNP, CNPM, CNPMK
21655C     UPDATED         --OCTOBER   2015. EQUAL SLOPES TEST
21656C     UPDATED         --NOVEMBER  2015. DIFFERENCE OF EXCESS KURTOSIS
21657C     UPDATED         --NOVEMBER  2015. DIFFERENCE OF GALTON SKEWNESS
21658C     UPDATED         --NOVEMBER  2015. DIFFERENCE OF PEARSON TWO SKEWNESS
21659C     UPDATED         --MARCH     2016. SCALED MAD
21660C     UPDATED         --MARCH     2016. NORMALIZED IQR
21661C     UPDATED         --MARCH     2016. DIFFERENCE OF SCALED MAD
21662C     UPDATED         --MARCH     2016. DIFFERENCE OF NORMALIZED IQR
21663C     UPDATED         --JUNE      2016. 2-PARAMETER WEIBULL PPCC
21664C     UPDATED         --JUNE      2016. 2-PARAMETER WEIBULL PPCC SHAPE
21665C     UPDATED         --JUNE      2016. 2-PARAMETER WEIBULL PPCC SCALE
21666C     UPDATED         --DECEMBER  2016. COEFFICIENT OF VARIATION
21667C                                       CONFIDENCE LIMITS
21668C     UPDATED         --JANUARY   2017. UNBIASED COEFFICIENT OF VARIATION
21669C     UPDATED         --JANUARY   2017. SIGNAL TO NOISE RATIO
21670C     UPDATED         --JANUARY   2017. QUARTILE COEFFICIENT OF
21671C                                       DISPERSION
21672C     UPDATED         --JANUARY   2017. LOGNORMAL COEFFICIENT OF VARIATION
21673C     UPDATED         --JANUARY   2017. LOGNORMAL COEFFICIENT OF VARIATION
21674C                                       CONFIDENCE LIMITS
21675C     UPDATED         --JANUARY   2017. PRECISION
21676C     UPDATED         --JANUARY   2017. COMMON COEFFICIENT OF VARIATION
21677C     UPDATED         --JANUARY   2017. COMMON BIAS CORRECTED COEFFICIENT
21678C                                       OF VARIATION
21679C     UPDATED         --JANUARY   2017. LOWER COMMON COEFFICIENT OF
21680C                                       VARIATION CONFIDENCE LIMIT
21681C     UPDATED         --JANUARY   2017. UPPER COMMON COEFFICIENT OF
21682C                                       VARIATION CONFIDENCE LIMIT
21683C     UPDATED         --JANUARY   2017. COEFFICIENT OF DISPERSION
21684C     UPDATED         --JANUARY   2017. INDEX OF DISPERSION
21685C     UPDATED         --JANUARY   2017. AAD TO MEDIAN
21686C     UPDATED         --FEBRUARY  2017. SHORTEST HALF MIDMEAN
21687C     UPDATED         --FEBRUARY  2017. SHORTEST HALF MIDRANGE
21688C     UPDATED         --MARCH     2017. COSINE DISTANCE
21689C     UPDATED         --MARCH     2017. COSINE SIMILARITY
21690C     UPDATED         --MARCH     2017. ANGULAR COSINE DISTANCE
21691C     UPDATED         --MARCH     2017. ANGULAR COSINE SIMILARITY
21692C     UPDATED         --MARCH     2017. MANHATTAN DISTANCE
21693C     UPDATED         --MARCH     2017. EUCLIDEAN DISTANCE
21694C     UPDATED         --MARCH     2017. EUCLIDEAN LENGTH (SYNONYM FOR
21695C                                       SUM OF SQuARES)
21696C     UPDATED         --MARCH     2017. DOT PRODUCT
21697C     UPDATED         --MARCH     2017. DIFFERENCE OF PRECISION
21698C     UPDATED         --MARCH     2017. DIFFERENCE OF SNR
21699C     UPDATED         --APRIL     2017. ONE SAMPLE COEF OF VARI CDF
21700C     UPDATED         --APRIL     2017. ONE SAMPLE COEF OF VARI PVALUE
21701C     UPDATED         --JUNE      2017. PERCENTAGE DIFFERENCE OF MEAN
21702C     UPDATED         --JUNE      2017. ONE SAMPLE COEF OF VARI TEST
21703C     UPDATED         --JUNE      2017. ONE SAMPLE COEF OF VARI TEST CDF
21704C     UPDATED         --JUNE      2017. ONE SAMPLE COEF OF VARI TEST PVALUE
21705C     UPDATED         --JUNE      2017. ONE SAMPLE COEF OF VARI LOWER PVALUE
21706C     UPDATED         --JUNE      2017. ONE SAMPLE COEF OF VARI UPPER PVALUE
21707C     UPDATED         --JUNE      2017. SUMMARY ONE SAMPLE COEF OF VARI TEST
21708C     UPDATED         --JUNE      2017. SUMMARY ONE SAMPLE COEF OF VARI CDF
21709C     UPDATED         --JUNE      2017. SUMMARY ONE SAMPLE COEF OF VARI PVALUE
21710C     UPDATED         --JUNE      2017. TWO SAMPLE COEF OF VARI TEST
21711C     UPDATED         --JUNE      2017. TWO SAMPLE COEF OF VARI TEST CDF
21712C     UPDATED         --JUNE      2017. TWO SAMPLE COEF OF VARI TEST PVALUE
21713C     UPDATED         --JUNE      2017. TWO SAMPLE COEF OF VARI LOWER PVALUE
21714C     UPDATED         --JUNE      2017. TWO SAMPLE COEF OF VARI UPPER PVALUE
21715C     UPDATED         --JUNE      2017. DIFFERENCE OF AAD TO MEDIAN
21716C     UPDATED         --JUNE      2017. DIFFERENCE OF COEFFICIENT OF
21717C                                                  DISPERSION
21718C     UPDATED         --JUNE      2017. DIFFERENCE OF INDEX OF DISPERSION
21719C     UPDATED         --JUNE      2017. DIFFERENCE OF QUARTILE COEFFICIENT
21720C                                                  OF DISPERSION
21721C     UPDATED         --JUNE      2017. DIFFERENCE OF SHORTEST HALF
21722C                                                  MIDMEAN
21723C     UPDATED         --JUNE      2017. DIFFERENCE OF SHORTEST HALF
21724C                                                  MIDRANGE
21725C     UPDATED         --JULY      2017. HEDGES G
21726C     UPDATED         --JULY      2017. BIAS CORRECTED HEDGES G
21727C     UPDATED         --JULY      2017. GLASS G
21728C     UPDATED         --JULY      2017. COHENS D
21729C     UPDATED         --JULY      2017. MIDHINGE, TRIMEAN
21730C     UPDATED         --JULY      2017. DIFFERENCE OF MIDHINGE
21731C     UPDATED         --JULY      2017. DIFFERENCE OF TRIMEAN
21732C     UPDATED         --AUGUST    2017. PEARSON DISSIMILARITY
21733C     UPDATED         --AUGUST    2017. SPEARMAN DISSIMILARITY
21734C     UPDATED         --AUGUST    2017. KENDALL TAU DISSIMILARITY
21735C     UPDATED         --AUGUST    2017. BINARY MATCH DISSIMILARITY
21736C     UPDATED         --AUGUST    2017. BINARY MATCH SIMILARITY
21737C     UPDATED         --AUGUST    2017. BINARY ROGERS DISSIMILARITY
21738C     UPDATED         --AUGUST    2017. BINARY ROGERS SIMILARITY
21739C     UPDATED         --AUGUST    2017. BINARY SOKAL DISSIMILARITY
21740C     UPDATED         --AUGUST    2017. BINARY SOKAL SIMILARITY
21741C     UPDATED         --AUGUST    2017. BINARY JACCARD DISSIMILARITY
21742C     UPDATED         --AUGUST    2017. BINARY JACCARD SIMILARITY
21743C     UPDATED         --AUGUST    2017. BINARY ASYMMETRIC DICE DISSIMILARITY
21744C     UPDATED         --AUGUST    2017. BINARY ASYMMETRIC DICE SIMILARITY
21745C     UPDATED         --AUGUST    2017. BINARY ASYMMETRIC SOKAL DISSIMILARITY
21746C     UPDATED         --AUGUST    2017. BINARY ASYMMETRIC SOKAL SIMILARITY
21747C     UPDATED         --AUGUST    2017. YULES Q
21748C     UPDATED         --AUGUST    2017. CHEBYSHEV DISTANCE
21749C     UPDATED         --AUGUST    2017. MINKOWSKI DISTANCE
21750C     UPDATED         --AUGUST    2017. GENERALIZED JACCARD COEFFICIENT
21751C     UPDATED         --AUGUST    2017. GENERALIZED JACCARD DISTANCE
21752C     UPDATED         --NOVEMBER  2017. BINOMIAL PROP LOWER CONF LIMIT
21753C     UPDATED         --NOVEMBER  2017. BINOMIAL PROP UPPER CONF LIMIT
21754C     UPDATED         --NOVEMBER  2017. DIFF OF BINO PROP LOWER CONF LIMIT
21755C     UPDATED         --NOVEMBER  2017. DIFF OF BINO PROP UPPER CONF LIMIT
21756C     UPDATED         --NOVEMBER  2017. COEFFICIENT OF DISPERSION
21757C                                       CONFIDENCE LIMITS
21758C     UPDATED         --DECEMBER  2017. COEFFICIENT OF QUARTILE DISPERSION
21759C                                       CONFIDENCE LIMITS
21760C     UPDATED         --DECEMBER  2017. LOWER BONETT STANDARD DEVIATION
21761C                                       CONFIDENCE LIMIT
21762C     UPDATED         --DECEMBER  2017. UPPER BONETT STANDARD DEVIATION
21763C                                       CONFIDENCE LIMIT
21764C     UPDATED         --JULY      2018. WEIGHTED COVARIANCE
21765C     UPDATED         --JULY      2018. WEIGHTED CORRELATION
21766C     UPDATED         --AUGUST    2018. HEDGES G STANDARD ERROR
21767C     UPDATED         --AUGUST    2018. HEDGES G LOWER CONFIDENCE LIMIT
21768C     UPDATED         --AUGUST    2018. HEDGES G UPPER CONFIDENCE LIMIT
21769C     UPDATED         --AUGUST    2018. HAMMING DISTANCE
21770C     UPDATED         --AUGUST    2018. CANBERRA DISTANCE
21771C     UPDATED         --AUGUST    2018. INTERVAL COUNT
21772C     UPDATED         --OCTOBER   2018. PEARSON SIMILARITY
21773C     UPDATED         --OCTOBER   2018. SPEARMAN SIMILARITY
21774C     UPDATED         --OCTOBER   2018. KENDELLS TAU SIMILARITY
21775C     UPDATED         --OCTOBER   2018. WEIGHTED COSINE DISTANCE
21776C     UPDATED         --OCTOBER   2018. WEIGHTED COSINE SIMILARITY
21777C     UPDATED         --OCTOBER   2018. GROUPED CORRELATION
21778C     UPDATED         --JANUARY   2019. PYTHON MEAN
21779C     UPDATED         --JANUARY   2019. YOUDEN INDEX
21780C     UPDATED         --JULY      2019. LOWER SEMI-INTERQUARTILE RANGE
21781C     UPDATED         --JULY      2019. UPPER SEMI-INTERQUARTILE RANGE
21782C     UPDATED         --AUGUST    2019. BINARY GAMMA COEFFICIENT
21783C     UPDATED         --AUGUST    2019. YULES Y
21784C     UPDATED         --AUGUST    2019. KENDALL TAU A
21785C     UPDATED         --AUGUST    2019. KENDALL TAU B
21786C     UPDATED         --AUGUST    2019. KENDALL TAU C
21787C     UPDATED         --AUGUST    2019. CORRECTION TO RLP COMPUTATION
21788C     UPDATED         --AUGUST    2019. INTRACLASS CORRELATION
21789C     UPDATED         --AUGUST    2019. CORRELATION RATIO
21790C     UPDATED         --SEPTEMBER 2019. RATIO OF MEANS
21791C     UPDATED         --SEPTEMBER 2019. RATIO OF MEANS LOWER CONFIDENCE
21792C                                       LIMIT
21793C     UPDATED         --SEPTEMBER 2019. RATIO OF MEANS UPPER CONFIDENCE
21794C                                       LIMIT
21795C     UPDATED         --OCTOBER   2019. DAVID TEST, DAVID TEST CDF
21796C     UPDATED         --OCTOBER   2019. DAVID TEST PVALUE
21797C     UPDATED         --OCTOBER   2019. DAVID TEST CRITICAL VALUE
21798C     UPDATED         --OCTOBER   2019. DAVID TEST MINIMUM INDEX
21799C     UPDATED         --OCTOBER   2019. DAVID TEST MAXIMUM INDEX
21800C     UPDATED         --OCTOBER   2019. SKEW OUTLIER TEST
21801C     UPDATED         --OCTOBER   2019. SKEW OUTLIER CDF
21802C     UPDATED         --OCTOBER   2019. SKEW OUTLIER CRITICAL VALUE
21803C     UPDATED         --OCTOBER   2019. SKEW OUTLIER INDEX
21804C     UPDATED         --OCTOBER   2019. SKEW OUTLIER PVALUE
21805C     UPDATED         --OCTOBER   2019. KURTOSIS OUTLIER TEST
21806C     UPDATED         --OCTOBER   2019. KURTOSIS OUTLIER CDF
21807C     UPDATED         --OCTOBER   2019. KURTOSIS OUTLIER CRITICAL VALUE
21808C     UPDATED         --OCTOBER   2019. KURTOSIS OUTLIER INDEX
21809C     UPDATED         --OCTOBER   2019. KURTOSIS OUTLIER PVALUE
21810C
21811C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
21812C
21813C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
21814C
21815      CHARACTER*4 ICASPL
21816      CHARACTER*4 ISUBRO
21817      CHARACTER*4 IBUGG3
21818      CHARACTER*4 IERROR
21819C
21820      CHARACTER*4 IHP
21821      CHARACTER*4 IHP2
21822      CHARACTER*4 IHWUSE
21823      CHARACTER*4 MESSAG
21824C
21825      CHARACTER*4 ICASZZ
21826      CHARACTER*4 ITYP91
21827      CHARACTER*4 IWRITE
21828      CHARACTER*4 ICASE
21829      CHARACTER*4 ICASE2
21830      CHARACTER*12 ICASEE
21831      CHARACTER*4 IPRSAV
21832      CHARACTER*4 IDIR
21833      CHARACTER*4 IFLAG
21834CCCCC CHARACTER*4 IQUAME
21835CCCCC CHARACTER*4 IQUASE
21836      CHARACTER*4 ICASAN
21837      CHARACTER*4 ICASA2
21838      CHARACTER*4 ICASA3
21839      CHARACTER*4 ICASA4
21840      CHARACTER*4 ICASA5
21841      CHARACTER*4 ICASDI
21842      CHARACTER*4 ICAPSW
21843CCCCC CHARACTER*4 ICAPTY
21844      CHARACTER*4 IDATSW
21845      CHARACTER*20 IDIST
21846      CHARACTER*4 IDIST2
21847      CHARACTER*4 IDAVT2
21848      CHARACTER*4 ISKOT2
21849      CHARACTER*4 IKUOT2
21850C
21851      CHARACTER*4 ISUBN1
21852      CHARACTER*4 ISUBN2
21853      CHARACTER*8 ISBNAM
21854      CHARACTER*4 IFTEXP
21855      CHARACTER*4 IFTORD
21856      CHARACTER*4 IFORSW
21857      CHARACTER*4 IFEESV
21858      CHARACTER*4 IOP
21859      CHARACTER*4 IFOUND
21860C
21861C---------------------------------------------------------------------
21862C
21863      DIMENSION TEMP(*)
21864      DIMENSION TEMPZ(*)
21865      DIMENSION TEMPZ3(*)
21866      DIMENSION XTEMP1(*)
21867      DIMENSION XTEMP2(*)
21868      DIMENSION XTEMP3(*)
21869C
21870      INTEGER ITEMP1(*)
21871      INTEGER ITEMP2(*)
21872      INTEGER ITEMP3(*)
21873      INTEGER ITEMP4(*)
21874      INTEGER ITEMP5(*)
21875      INTEGER ITEMP6(*)
21876C
21877      DOUBLE PRECISION DTEMP1(*)
21878      DOUBLE PRECISION DTEMP2(*)
21879      DOUBLE PRECISION DTEMP3(*)
21880C
21881CCCCC DOUBLE PRECISION STXMU
21882CCCCC DOUBLE PRECISION ST2SB
21883C
21884      DIMENSION ALPHAT(1)
21885      DIMENSION ADC(1)
21886      DIMENSION ALOWLV(1)
21887      DIMENSION AUPPLV(1)
21888C
21889      DIMENSION ICOLR(20)
21890      DIMENSION NRIGHT(20)
21891      DIMENSION ILISR(20)
21892      DIMENSION AVALV(20)
21893C
21894C     2015/04: FOLLOWING 3 LINES NEEDED BY COCHRAN VARIANCE OUTLIER TEST
21895C
21896      PARAMETER(NUMALZ=15)
21897      DIMENSION ALPHAV(NUMALZ)
21898      DIMENSION CV(NUMALZ)
21899C
21900      CHARACTER*4 IPNAM1
21901      CHARACTER*4 IPNAM2
21902      COMMON/STATIS/APVAL,IPNAM1,IPNAM2
21903C
21904C-----COMMON----------------------------------------------------------
21905C
21906      INCLUDE 'DPCOPA.INC'
21907      INCLUDE 'DPCOHK.INC'
21908      INCLUDE 'DPCODA.INC'
21909      INCLUDE 'DPCOSU.INC'
21910      INCLUDE 'DPCOS2.INC'
21911      INCLUDE 'DPCOST.INC'
21912      INCLUDE 'DPCOSB.INC'
21913C
21914      DOUBLE PRECISION DSD
21915      DOUBLE PRECISION D2
21916C
21917      DOUBLE PRECISION DLOWMP
21918      DOUBLE PRECISION DHIGMP
21919      DOUBLE PRECISION DLOWMM
21920      DOUBLE PRECISION DHIGMM
21921      DOUBLE PRECISION DLOWM2
21922      DOUBLE PRECISION DHIGM2
21923      DOUBLE PRECISION DLOWML
21924      DOUBLE PRECISION DHIGML
21925      DOUBLE PRECISION DLOWBO
21926      DOUBLE PRECISION DHIGBO
21927      DOUBLE PRECISION DLOWGC
21928      DOUBLE PRECISION DHIGGC
21929      DOUBLE PRECISION DLOWBC
21930      DOUBLE PRECISION DHIGBC
21931      DOUBLE PRECISION DSUM1
21932      DOUBLE PRECISION DLOWFW
21933      DOUBLE PRECISION DHIGFW
21934CCCCC DOUBLE PRECISION DLOWF1
21935CCCCC DOUBLE PRECISION DHIGF1
21936      DOUBLE PRECISION DLOWF2
21937      DOUBLE PRECISION DHIGF2
21938      DOUBLE PRECISION DLOWF3
21939      DOUBLE PRECISION DHIGF3
21940      DOUBLE PRECISION DLOWSE
21941      DOUBLE PRECISION DHIGSE
21942      DOUBLE PRECISION XGDS20
21943      DOUBLE PRECISION XGDSZ1
21944      DOUBLE PRECISION XGDSZ2
21945      DOUBLE PRECISION DLOWGD
21946      DOUBLE PRECISION DHIGGD
21947      DOUBLE PRECISION TPLUS
21948      DOUBLE PRECISION TMINUS
21949      DOUBLE PRECISION RSUM
21950      DOUBLE PRECISION RSUMSQ
21951C
21952      DOUBLE PRECISION T0
21953      DOUBLE PRECISION T1
21954      COMMON /MPCOM/ T0, T1
21955      LOGICAL IFLAG9
21956C
21957C-----COMMON VARIABLES (GENERAL)--------------------------------------
21958C
21959      INCLUDE 'DPCOP2.INC'
21960C
21961C-----START POINT-----------------------------------------------------
21962C
21963      DATA ALPHAV/
21964     1 0.1, 0.5, 1.0, 2.5, 5.0, 10.0, 25.0,
21965     1 50.0,
21966     1 75.0, 90.0, 95.0, 97.5, 99.0, 99.5, 99.9/
21967C
21968      ISUBN1='CMPS'
21969      ISUBN2='TA  '
21970      IWRITE='OFF'
21971      IPRSAV=IPRINT
21972      IFEESV=IFEEDB
21973C
21974      MAXCP1=MAXCOL+1
21975      MAXCP2=MAXCOL+2
21976      MAXCP3=MAXCOL+3
21977      MAXCP4=MAXCOL+4
21978      MAXCP5=MAXCOL+5
21979      MAXCP6=MAXCOL+6
21980      NMAX=0
21981C
21982C     CHECK THE INPUT ARGUMENTS FOR ERRORS
21983C
21984      IF(NS2.LT.1)THEN
21985        WRITE(ICOUT,999)
21986  999   FORMAT(1X)
21987        CALL DPWRST('XXX','BUG ')
21988        WRITE(ICOUT,31)
21989   31   FORMAT('***** ERROR IN CMPSTA--THE NUMBER OF OBSERVATIONS ',
21990     1         'MUST BE AT LEAST 1;')
21991        CALL DPWRST('XXX','BUG ')
21992        WRITE(ICOUT,34)NS2
21993   34   FORMAT('      THE ENTERED NUMBER OF OBSERVATIONS HERE = ',I8)
21994        CALL DPWRST('XXX','BUG ')
21995        WRITE(ICOUT,999)
21996        CALL DPWRST('XXX','BUG ')
21997        IERROR='YES'
21998        GOTO9000
21999      ENDIF
22000C
22001      IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PSTA')THEN
22002        WRITE(ICOUT,70)
22003   70   FORMAT('AT THE BEGINNING OF CMPSTA--')
22004        CALL DPWRST('XXX','BUG ')
22005        WRITE(ICOUT,71)IBUGG3,ISUBRO
22006   71   FORMAT('IBUGG3,ISUBRO = ',A4,2X,A4)
22007        CALL DPWRST('XXX','BUG ')
22008        WRITE(ICOUT,72)NS2,NSZ,NUMV2,ICASPL
22009   72   FORMAT('NS2,NSZ,NUMV2,ICASPL = ',3I8,2X,A4)
22010        CALL DPWRST('XXX','BUG ')
22011        DO73I=1,MAX(NS2,NSZ)
22012          WRITE(ICOUT,74)I,TEMP(I),TEMPZ(I)
22013   74     FORMAT('I, TEMP(I),TEMPZ(I) = ',I8,2F15.7)
22014          CALL DPWRST('XXX','BUG ')
22015   73   CONTINUE
22016      ENDIF
22017C
22018C     FEBRUARY 2010: CHECK FOR MISSING VALUES IN DATA.  NOTE THAT
22019C                    THIS STEP SHOULD BE SKIPPED FOR THE "SIZE"
22020C                    STATISTIC.
22021C
22022      NS2SAV=NS2
22023      NSZSAV=NSZ
22024      IF(ICASPL.EQ.'NUMB')GOTO11310
22025      IF(ICASPL.EQ.'COUN')GOTO11310
22026      IF(ICASPL.EQ.'SIZE')GOTO11310
22027      IF(ICASPL.EQ.'INTC')GOTO11312
22028      IF(ICASPL.EQ.'INMN')GOTO31760
22029      IF(ICASPL.EQ.'INMX')GOTO31770
22030      IF(ICASPL.EQ.'INEX')GOTO31780
22031      IF(ICASPL.EQ.'UNIQ')GOTO11315
22032C
22033      IFLAGN=0
22034      IF(NUMV2.GT.1)THEN
22035        IF(NSZ.GT.0 .AND. NSZ.NE.NS2)THEN
22036          IFLAGN=2
22037        ELSE
22038          IFLAGN=1
22039        ENDIF
22040      ENDIF
22041C
22042      IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PSTA')THEN
22043        WRITE(ICOUT,78)IFLAGN
22044   78   FORMAT('IFLAGN = ',I4)
22045        CALL DPWRST('XXX','BUG ')
22046      ENDIF
22047C
22048      ICNT=0
22049      DO110I=1,NS2
22050        IF(IFLAGN.EQ.0 .OR. IFLAGN.EQ.2)THEN
22051          IF(TEMP(I).NE.PSTAMV)THEN
22052            ICNT=ICNT+1
22053            TEMP(ICNT)=TEMP(I)
22054          ENDIF
22055        ELSEIF(IFLAGN.EQ.1)THEN
22056          IF(TEMP(I).NE.PSTAMV .AND. TEMPZ(I).NE.PSTAMV)THEN
22057            ICNT=ICNT+1
22058            TEMP(ICNT)=TEMP(I)
22059            TEMPZ(ICNT)=TEMPZ(I)
22060          ENDIF
22061        ENDIF
22062  110 CONTINUE
22063C
22064      IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PSTA')THEN
22065        WRITE(ICOUT,79)ICNT
22066   79   FORMAT('AFTER CHECK FOR MISSING VALUES, ICNT = ',I8)
22067        CALL DPWRST('XXX','BUG ')
22068      ENDIF
22069C
22070      IF(ICNT.EQ.0)THEN
22071        RIGHT=PSTAMV
22072        GOTO79000
22073      ENDIF
22074      NS2=ICNT
22075C
22076      IF(IFLAGN.EQ.2)THEN
22077        ICNT=0
22078        DO120I=1,NSZ
22079          IF(TEMPZ(I).NE.PSTAMV)THEN
22080            ICNT=ICNT+1
22081            TEMPZ(ICNT)=TEMPZ(I)
22082          ENDIF
22083  120   CONTINUE
22084C
22085        IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PSTA')THEN
22086          WRITE(ICOUT,129)ICNT
22087  129     FORMAT('AFTER CHECK TEMPZ FOR MISSING VALUES, ICNT = ',I8)
22088          CALL DPWRST('XXX','BUG ')
22089        ENDIF
22090C
22091        IF(ICNT.EQ.0)THEN
22092          RIGHT=PSTAMV
22093          GOTO79000
22094        ENDIF
22095        NSZ=ICNT
22096      ENDIF
22097C
22098      IF(ICASPL.EQ.'SUM')GOTO11320
22099      IF(ICASPL.EQ.'PROD')GOTO11330
22100      IF(ICASPL.EQ.'INTE')GOTO11340
22101      IF(ICASPL.EQ.'MIDR')GOTO11350
22102      IF(ICASPL.EQ.'MEAN'.OR.ICASPL.EQ.'AVER')GOTO11360
22103      IF(ICASPL.EQ.'MECL')GOTO11360
22104      IF(ICASPL.EQ.'MIDM')GOTO11370
22105      IF(ICASPL.EQ.'SHMM')GOTO11372
22106      IF(ICASPL.EQ.'DSHM')GOTO11373
22107      IF(ICASPL.EQ.'SHMR')GOTO11374
22108      IF(ICASPL.EQ.'DSHR')GOTO11375
22109      IF(ICASPL.EQ.'MEDI')GOTO11380
22110      IF(ICASPL.EQ.'MDCL')GOTO11380
22111      IF(ICASPL.EQ.'SD')GOTO11390
22112      IF(ICASPL.EQ.'RMS')GOTO11395
22113      IF(ICASPL.EQ.'SSQM')GOTO11399
22114      IF(ICASPL.EQ.'DSSQ')GOTO19399
22115C
22116      IF(ICASPL.EQ.'SSQ' .OR. ICASPL.EQ.'RSUM' .OR.
22117     1   ICASPL.EQ.'RLP' .OR. ICASPL.EQ.'DSSQ' .OR.
22118     1   ICASPL.EQ.'DRSC')THEN
22119C
22120        IHP='CAPV'
22121        IHP2='ALUE'
22122        IHWUSE='P'
22123        MESSAG='NO'
22124        CALL CHECKN(IHP,IHP2,IHWUSE,
22125     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
22126     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
22127        IF(IERROR.EQ.'YES')THEN
22128          XCAP=CPUMIN
22129        ELSE
22130          XCAP=VALUE(ILOCP)
22131        ENDIF
22132C
22133        IF(ICASPL.EQ.'SSQ')GOTO11396
22134        IF(ICASPL.EQ.'RSUM')GOTO11397
22135        IF(ICASPL.EQ.'RLP ')GOTO11405
22136        IF(ICASPL.EQ.'DSSQ')GOTO11398
22137        IF(ICASPL.EQ.'DRSC')GOTO11401
22138      ENDIF
22139      IF(ICASPL.EQ.'JSCO')GOTO11403
22140C
22141      IF(ICASPL.EQ.'VARI')GOTO11400
22142      IF(ICASPL.EQ.'PREC')GOTO11400
22143      IF(ICASPL.EQ.'RESD')GOTO11410
22144      IF(ICASPL.EQ.'REVA')GOTO11415
22145      IF(ICASPL.EQ.'CVAR')GOTO11418
22146      IF(ICASPL.EQ.'UCVA')GOTO11418
22147      IF(ICASPL.EQ.'SNRA')GOTO11419
22148      IF(ICASPL.EQ.'RANG')GOTO11420
22149      IF(ICASPL.EQ.'CDIS')GOTO11421
22150      IF(ICASPL.EQ.'LCDL')GOTO11427
22151      IF(ICASPL.EQ.'UCDL')GOTO11427
22152      IF(ICASPL.EQ.'1LCD')GOTO11427
22153      IF(ICASPL.EQ.'1UCD')GOTO11427
22154      IF(ICASPL.EQ.'LCDQ')GOTO11428
22155      IF(ICASPL.EQ.'UCDQ')GOTO11428
22156      IF(ICASPL.EQ.'IDIS')GOTO11422
22157      IF(ICASPL.EQ.'MADR')GOTO11423
22158      IF(ICASPL.EQ.'DCDI')GOTO11424
22159      IF(ICASPL.EQ.'DIDI')GOTO11425
22160      IF(ICASPL.EQ.'DMMD')GOTO11426
22161      IF(ICASPL.EQ.'MINI')GOTO11430
22162      IF(ICASPL.EQ.'MAXI')GOTO11440
22163      IF(ICASPL.EQ.'SKEW')GOTO11450
22164      IF(ICASPL.EQ.'GSKE')GOTO11452
22165      IF(ICASPL.EQ.'PSK2')GOTO11454
22166      IF(ICASPL.EQ.'KURT')GOTO11460
22167      IF(ICASPL.EQ.'EKUR')GOTO11465
22168      IF(ICASPL.EQ.'AUCR')GOTO11470
22169      IF(ICASPL.EQ.'COVA')GOTO11480
22170      IF(ICASPL.EQ.'CORR')GOTO11490
22171      IF(ICASPL.EQ.'COAB')GOTO11490
22172      IF(ICASPL.EQ.'COPV')GOTO11490
22173      IF(ICASPL.EQ.'COCD')GOTO11490
22174      IF(ICASPL.EQ.'PDIS')GOTO11490
22175      IF(ICASPL.EQ.'PSIM')GOTO11490
22176      IF(ICASPL.EQ.'MDIS')GOTO11491
22177      IF(ICASPL.EQ.'CNDI')GOTO11492
22178      IF(ICASPL.EQ.'PCOR')GOTO11495
22179      IF(ICASPL.EQ.'PCAB')GOTO11495
22180      IF(ICASPL.EQ.'PCPV')GOTO11495
22181      IF(ICASPL.EQ.'PCCD')GOTO11495
22182      IF(ICASPL.EQ.'MAND')GOTO11496
22183      IF(ICASPL.EQ.'CHDI')GOTO11497
22184      IF(ICASPL.EQ.'COSD')GOTO11498
22185      IF(ICASPL.EQ.'COSS')GOTO11498
22186      IF(ICASPL.EQ.'ACOS')GOTO11498
22187      IF(ICASPL.EQ.'ACOD')GOTO11498
22188      IF(ICASPL.EQ.'EUCD')GOTO11499
22189      IF(ICASPL.EQ.'EUCL')GOTO11499
22190      IF(ICASPL.EQ.'DOTP')GOTO11499
22191      IF(ICASPL.EQ.'RACR')GOTO11500
22192      IF(ICASPL.EQ.'RACC')GOTO11500
22193      IF(ICASPL.EQ.'RACP')GOTO11500
22194      IF(ICASPL.EQ.'RALP')GOTO11500
22195      IF(ICASPL.EQ.'RAUP')GOTO11500
22196      IF(ICASPL.EQ.'RACA')GOTO11500
22197      IF(ICASPL.EQ.'RDIS')GOTO11500
22198      IF(ICASPL.EQ.'RSIM')GOTO11500
22199      IF(ICASPL.EQ.'HDIS')GOTO11502
22200      IF(ICASPL.EQ.'RPCR')GOTO11505
22201      IF(ICASPL.EQ.'RPCA')GOTO11505
22202      IF(ICASPL.EQ.'PDIF')GOTO11509
22203      IF(ICASPL.EQ.'SDME')GOTO11510
22204      IF(ICASPL.EQ.'AUCV')GOTO11520
22205      IF(ICASPL.EQ.'RACV')GOTO11530
22206      IF(ICASPL.EQ.'PEAG')GOTO11531
22207      IF(ICASPL.EQ.'PEDI')GOTO11531
22208      IF(ICASPL.EQ.'COMO')GOTO31480
22209      IF(ICASPL.EQ.'RACM')GOTO31530
22210      IF(ICASPL.EQ.'KTAU')GOTO31540
22211      IF(ICASPL.EQ.'KTAA')GOTO31540
22212      IF(ICASPL.EQ.'TAUA')GOTO31540
22213      IF(ICASPL.EQ.'KTAB')GOTO31540
22214      IF(ICASPL.EQ.'KTAC')GOTO31540
22215      IF(ICASPL.EQ.'KTCD')GOTO31540
22216      IF(ICASPL.EQ.'KTPV')GOTO31540
22217      IF(ICASPL.EQ.'KTPL')GOTO31540
22218      IF(ICASPL.EQ.'KTPU')GOTO31540
22219      IF(ICASPL.EQ.'KDIS')GOTO31540
22220      IF(ICASPL.EQ.'PKTA')GOTO31545
22221      IF(ICASPL.EQ.'PKAB')GOTO31545
22222      IF(ICASPL.EQ.'RATI')GOTO31550
22223      IF(ICASPL.EQ.'BRAT')GOTO31551
22224      IF(ICASPL.EQ.'RMEA')GOTO31565
22225      IF(ICASPL.EQ.'RMLL')GOTO31565
22226      IF(ICASPL.EQ.'RMUL')GOTO31565
22227      IF(ICASPL.EQ.'ODRA')GOTO31560
22228      IF(ICASPL.EQ.'ORSE')GOTO31570
22229      IF(ICASPL.EQ.'RELR')GOTO31580
22230      IF(ICASPL.EQ.'CRAM')GOTO31590
22231      IF(ICASPL.EQ.'PEAR')GOTO31600
22232      IF(ICASPL.EQ.'FALP')GOTO31610
22233      IF(ICASPL.EQ.'FALN')GOTO31620
22234      IF(ICASPL.EQ.'TRUP')GOTO31630
22235      IF(ICASPL.EQ.'TRUN')GOTO31640
22236      IF(ICASPL.EQ.'SENS')GOTO31650
22237      IF(ICASPL.EQ.'SPEC')GOTO31660
22238      IF(ICASPL.EQ.'PPV ')GOTO31670
22239      IF(ICASPL.EQ.'NPV ')GOTO31680
22240      IF(ICASPL.EQ.'BMDI')GOTO31685
22241      IF(ICASPL.EQ.'BMRD')GOTO31685
22242      IF(ICASPL.EQ.'BMSD')GOTO31685
22243      IF(ICASPL.EQ.'BJDI')GOTO31685
22244      IF(ICASPL.EQ.'BSDI')GOTO31685
22245      IF(ICASPL.EQ.'BDDI')GOTO31685
22246      IF(ICASPL.EQ.'BMSI')GOTO31685
22247      IF(ICASPL.EQ.'BMRS')GOTO31685
22248      IF(ICASPL.EQ.'BMSS')GOTO31685
22249      IF(ICASPL.EQ.'BJSI')GOTO31685
22250      IF(ICASPL.EQ.'BSSI')GOTO31685
22251      IF(ICASPL.EQ.'BDSI')GOTO31685
22252      IF(ICASPL.EQ.'YULQ')GOTO31685
22253      IF(ICASPL.EQ.'YOUD')GOTO31685
22254      IF(ICASPL.EQ.'GC22')GOTO31685
22255      IF(ICASPL.EQ.'YULY')GOTO31685
22256      IF(ICASPL.EQ.'GJCO')GOTO31688
22257      IF(ICASPL.EQ.'GJDI')GOTO31688
22258      IF(ICASPL.EQ.'LODR')GOTO31690
22259      IF(ICASPL.EQ.'LOSE')GOTO31700
22260      IF(ICASPL.EQ.'ICCR')GOTO31715
22261      IF(ICASPL.EQ.'CRAT')GOTO31715
22262C
22263      IF(ICASPL.EQ.'LOWH')GOTO11540
22264      IF(ICASPL.EQ.'UPPH')GOTO11550
22265      IF(ICASPL.EQ.'LOWQ')GOTO11560
22266      IF(ICASPL.EQ.'UPPQ')GOTO11570
22267      IF(ICASPL.EQ.'MHIN')GOTO11575
22268      IF(ICASPL.EQ.'DMHI')GOTO11576
22269      IF(ICASPL.EQ.'TMEA')GOTO11578
22270      IF(ICASPL.EQ.'DTRI')GOTO11579
22271C
22272      IF(ICASPL.EQ.'TRIM' .OR. ICASPL.EQ.'WINM' .OR.
22273     1   ICASPL.EQ.'WIVA' .OR. ICASPL.EQ.'WISD' .OR.
22274     1   ICASPL.EQ.'WICV' .OR. ICASPL.EQ.'WICR' .OR.
22275     1   ICASPL.EQ.'TRSD' .OR. ICASPL.EQ.'WETM' .OR.
22276     1   ICASPL.EQ.'TMSE' .OR. ICASPL.EQ.'DTRM' .OR.
22277     1   ICASPL.EQ.'DWNM' .OR. ICASPL.EQ.'DWSD' .OR.
22278     1   ICASPL.EQ.'DWVA' .OR. ICASPL.EQ.'DTSD')THEN
22279C
22280C        2012/10: FOR TRIMMED MEAN, CAN SPECIFY EITHER A SPECIFIC NUMBER
22281C                 TO TRIM OR A PERCENTAGE TO TRIM.  CHECK FOR SPECIFIC
22282C                 NUMBER FIRST AND IF NOT SPECIFIED, CHECK FOR A
22283C                 PERCENTAGE.
22284C
22285        NTRIM1=-1
22286        NTRIM2=-1
22287        P1=-99.0
22288        P2=-99.0
22289C
22290        IHP='NTRI'
22291        IHP2='M1  '
22292        IHWUSE='P'
22293        MESSAG='NO'
22294        CALL CHECKN(IHP,IHP2,IHWUSE,
22295     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
22296     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
22297        IF(IERROR.EQ.'NO')THEN
22298          NTRIM1=INT(VALUE(ILOCP)+0.1)
22299          IF(NTRIM1.LT.0)NTRIM1=0
22300        ENDIF
22301C
22302        IHP='NTRI'
22303        IHP2='M2  '
22304        IHWUSE='P'
22305        MESSAG='NO'
22306        CALL CHECKN(IHP,IHP2,IHWUSE,
22307     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
22308     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
22309        IF(IERROR.EQ.'NO')THEN
22310          NTRIM2=INT(VALUE(ILOCP)+0.1)
22311          IF(NTRIM2.LT.0)NTRIM2=0
22312        ENDIF
22313C
22314        IF(NTRIM1.LE.0)THEN
22315          IHP='P1  '
22316          IHP2='    '
22317          IHWUSE='P'
22318          MESSAG='YES'
22319          CALL CHECKN(IHP,IHP2,IHWUSE,
22320     1                IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
22321     1                ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
22322          IF(IERROR.EQ.'YES')GOTO9000
22323          IF(PROP1.LT.0.0 .OR. PROP1.GT.100.0)THEN
22324            WRITE(ICOUT,999)
22325            CALL DPWRST('XXX','BUG ')
22326            WRITE(ICOUT,11581)
2232711581       FORMAT('***** ERROR IN CMPSTA--')
22328            CALL DPWRST('XXX','BUG ')
22329            WRITE(ICOUT,11582)
2233011582       FORMAT('      THE PROPORTION FOR TRIMMING/WINSORIZING ',
22331     1             'BELOW')
22332            CALL DPWRST('XXX','BUG ')
22333            WRITE(ICOUT,11583)
2233411583       FORMAT('      MUST BE BETWEEN 0 AND 100, BUT WAS NOT.')
22335            CALL DPWRST('XXX','BUG ')
22336            WRITE(ICOUT,11584)PROP1
2233711584       FORMAT('      PARAMETER P1 = LOWER PROPORTION = ',G15.7)
22338            CALL DPWRST('XXX','BUG ')
22339            WRITE(ICOUT,11586)
2234011586       FORMAT('      USE THE LET COMMAND TO PRE-DEFINE P1 AS IN')
22341            CALL DPWRST('XXX','BUG ')
22342            WRITE(ICOUT,11587)
2234311587       FORMAT('      LET P1 = 25')
22344            CALL DPWRST('XXX','BUG ')
22345            IERROR='YES'
22346            GOTO9000
22347          ELSE
22348            PROP1=VALUE(ILOCP)
22349          ENDIF
22350        ENDIF
22351C
22352        IF(NTRIM2.LE.0)THEN
22353          IHP='P2  '
22354          IHP2='    '
22355          IHWUSE='P'
22356          MESSAG='YES'
22357          CALL CHECKN(IHP,IHP2,IHWUSE,
22358     1                IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
22359     1                ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
22360          IF(IERROR.EQ.'YES')GOTO9000
22361          IF(PROP2.LT.0.0 .OR. PROP2.GT.100.0)THEN
22362            WRITE(ICOUT,999)
22363            CALL DPWRST('XXX','BUG ')
22364            WRITE(ICOUT,11581)
22365            CALL DPWRST('XXX','BUG ')
22366            WRITE(ICOUT,11592)
2236711592       FORMAT('      THE PROPORTION FOR TRIMMING/WINSORIZING ',
22368     1             'ABOVE')
22369            CALL DPWRST('XXX','BUG ')
22370            WRITE(ICOUT,11583)
22371            CALL DPWRST('XXX','BUG ')
22372            WRITE(ICOUT,11594)PROP2
2237311594       FORMAT('      PARAMETER P2 = LOWER PROPORTION = ',G15.7)
22374            CALL DPWRST('XXX','BUG ')
22375            WRITE(ICOUT,11596)
2237611596       FORMAT('      USE THE LET COMMAND TO PRE-DEFINE P2 AS IN')
22377            CALL DPWRST('XXX','BUG ')
22378            WRITE(ICOUT,11597)
2237911597       FORMAT('      LET P2 = 25')
22380            CALL DPWRST('XXX','BUG ')
22381            IERROR='YES'
22382            GOTO9000
22383          ELSE
22384            PROP2=VALUE(ILOCP)
22385          ENDIF
22386        ENDIF
22387C
22388        IF(ICASPL.EQ.'TRIM')GOTO11580
22389        IF(ICASPL.EQ.'WINM')GOTO11590
22390        IF(ICASPL.EQ.'WIVA')GOTO12010
22391        IF(ICASPL.EQ.'WISD')GOTO12030
22392        IF(ICASPL.EQ.'WICV')GOTO12050
22393        IF(ICASPL.EQ.'WICR')GOTO12070
22394        IF(ICASPL.EQ.'WETM')GOTO11660
22395        IF(ICASPL.EQ.'TMSE')GOTO12150
22396        IF(ICASPL.EQ.'DTRM')GOTO12210
22397        IF(ICASPL.EQ.'DWNM')GOTO12220
22398        IF(ICASPL.EQ.'DWSD')GOTO12320
22399        IF(ICASPL.EQ.'DWVA')GOTO12330
22400        IF(ICASPL.EQ.'DTSD')GOTO12590
22401        IF(ICASPL.EQ.'TRSD')GOTO31710
22402      ENDIF
22403C
22404      IF(ICASPL.EQ.'MIDQ')GOTO11610
22405      IF(ICASPL.EQ.'1DEC')GOTO11610
22406      IF(ICASPL.EQ.'2DEC')GOTO11610
22407      IF(ICASPL.EQ.'3DEC')GOTO11610
22408      IF(ICASPL.EQ.'4DEC')GOTO11610
22409      IF(ICASPL.EQ.'5DEC')GOTO11610
22410      IF(ICASPL.EQ.'6DEC')GOTO11610
22411      IF(ICASPL.EQ.'7DEC')GOTO11610
22412      IF(ICASPL.EQ.'8DEC')GOTO11610
22413      IF(ICASPL.EQ.'9DEC')GOTO11610
22414C
22415      IF(ICASPL.EQ.'PERC')GOTO11615
22416C
22417      IF(ICASPL.EQ.'WEME')GOTO11620
22418      IF(ICASPL.EQ.'WOSM')GOTO11625
22419      IF(ICASPL.EQ.'WEMD')GOTO11630
22420      IF(ICASPL.EQ.'WESD')GOTO11640
22421      IF(ICASPL.EQ.'WEVA')GOTO11650
22422      IF(ICASPL.EQ.'WESK')GOTO11655
22423      IF(ICASPL.EQ.'WSUM')GOTO11670
22424      IF(ICASPL.EQ.'WSSQ')GOTO11670
22425      IF(ICASPL.EQ.'WSAB')GOTO11670
22426      IF(ICASPL.EQ.'WSDV')GOTO11670
22427      IF(ICASPL.EQ.'WAAB')GOTO11670
22428      IF(ICASPL.EQ.'WSSD')GOTO11670
22429      IF(ICASPL.EQ.'WCOV')GOTO11680
22430      IF(ICASPL.EQ.'WCOR')GOTO11680
22431      IF(ICASPL.EQ.'GCOR')GOTO11685
22432      IF(ICASPL.EQ.'WCDI')GOTO11690
22433      IF(ICASPL.EQ.'WCSI')GOTO11690
22434C
22435      IF(ICASPL.EQ.'VM')GOTO11700
22436      IF(ICASPL.EQ.'VAME')GOTO11700
22437C
22438      IF(ICASPL.EQ.'SIFR')GOTO11710
22439      IF(ICASPL.EQ.'SIAM')GOTO11720
22440      IF(ICASPL.EQ.'LIIN')GOTO11730
22441      IF(ICASPL.EQ.'LIIS')GOTO11735
22442      IF(ICASPL.EQ.'LISL')GOTO11740
22443      IF(ICASPL.EQ.'LISS')GOTO11745
22444      IF(ICASPL.EQ.'LIRE')GOTO11750
22445      IF(ICASPL.EQ.'LICO')GOTO11760
22446      IF(ICASPL.EQ.'REPE')GOTO11770
22447      IF(ICASPL.EQ.'REPR')GOTO11780
22448      IF(ICASPL.EQ.'CINT')GOTO11790
22449      IF(ICASPL.EQ.'CSD ')GOTO11795
22450C
22451      IF(ICASPL.EQ.'SN0')GOTO11810
22452      IF(ICASPL.EQ.'SN+')GOTO11810
22453      IF(ICASPL.EQ.'SN-')GOTO11810
22454      IF(ICASPL.EQ.'SN00')GOTO11810
22455C
22456      IF(ICASPL.EQ.'CP')GOTO11900
22457      IF(ICASPL.EQ.'CPK')GOTO11900
22458      IF(ICASPL.EQ.'CNPK')GOTO11900
22459      IF(ICASPL.EQ.'CPM')GOTO11900
22460      IF(ICASPL.EQ.'CC')GOTO11900
22461      IF(ICASPL.EQ.'CPL')GOTO11900
22462      IF(ICASPL.EQ.'CPU')GOTO11900
22463      IF(ICASPL.EQ.'NPMK')GOTO11900
22464      IF(ICASPL.EQ.'CNPM')GOTO11900
22465      IF(ICASPL.EQ.'CNP')GOTO11900
22466      IF(ICASPL.EQ.'CPMK')GOTO11900
22467      IF(ICASPL.EQ.'PEDE')GOTO11900
22468      IF(ICASPL.EQ.'EXLO')GOTO11900
22469C
22470      IF(ICASPL.EQ.'NOPP' .OR. ICASPL.EQ.'NOLO' .OR.
22471     1   ICASPL.EQ.'NOSC')THEN
22472        IDIST='NORMAL'
22473        GOTO11910
22474      ELSEIF(ICASPL.EQ.'UNPP' .OR. ICASPL.EQ.'UNLO' .OR.
22475     1   ICASPL.EQ.'UNSC')THEN
22476        IDIST='UNIFORM'
22477        GOTO11910
22478      ELSEIF(ICASPL.EQ.'CAPP' .OR. ICASPL.EQ.'CALO' .OR.
22479     1   ICASPL.EQ.'CASC')THEN
22480        IDIST='CAUCHY'
22481        GOTO11910
22482      ELSEIF(ICASPL.EQ.'LOPP' .OR. ICASPL.EQ.'LOLO' .OR.
22483     1   ICASPL.EQ.'LOSC')THEN
22484        IDIST='LOGISTIC'
22485        GOTO11910
22486      ELSEIF(ICASPL.EQ.'DEPP' .OR. ICASPL.EQ.'DELO' .OR.
22487     1   ICASPL.EQ.'DESC')THEN
22488        IDIST='DOUBLE EXPONENTIAL'
22489        GOTO11910
22490      ELSEIF(ICASPL.EQ.'COPP' .OR. ICASPL.EQ.'COLO' .OR.
22491     1   ICASPL.EQ.'COSC')THEN
22492        IDIST='COSINE'
22493        GOTO11910
22494      ELSEIF(ICASPL.EQ.'SIPP' .OR. ICASPL.EQ.'SILO' .OR.
22495     1   ICASPL.EQ.'SISC')THEN
22496        IDIST='SINE'
22497        GOTO11910
22498      ELSEIF(ICASPL.EQ.'ANPP' .OR. ICASPL.EQ.'ANLO' .OR.
22499     1   ICASPL.EQ.'ANSC')THEN
22500        IDIST='ANGLIT'
22501        GOTO11910
22502      ELSEIF(ICASPL.EQ.'ARPP' .OR. ICASPL.EQ.'ARLO' .OR.
22503     1   ICASPL.EQ.'ARSC')THEN
22504        IDIST='ARCSINE'
22505        GOTO11910
22506      ELSEIF(ICASPL.EQ.'EXPP' .OR. ICASPL.EQ.'EXLO' .OR.
22507     1   ICASPL.EQ.'EXSC')THEN
22508        IDIST='EXPONENTIAL'
22509        GOTO11910
22510      ELSEIF(ICASPL.EQ.'HSPP' .OR. ICASPL.EQ.'HSLO' .OR.
22511     1   ICASPL.EQ.'HSSC')THEN
22512        IDIST='HYPERBOLIC SECANT'
22513        GOTO11910
22514      ELSEIF(ICASPL.EQ.'SLPP' .OR. ICASPL.EQ.'SLLO' .OR.
22515     1   ICASPL.EQ.'SLSC')THEN
22516        IDIST='SLASH'
22517        GOTO11910
22518      ELSEIF(ICASPL.EQ.'MXPP' .OR. ICASPL.EQ.'MXLO' .OR.
22519     1   ICASPL.EQ.'MXSC')THEN
22520        IDIST='MAXWELL'
22521        GOTO11910
22522      ELSEIF(ICASPL.EQ.'RAPP' .OR. ICASPL.EQ.'RALO' .OR.
22523     1   ICASPL.EQ.'RASC')THEN
22524        IDIST='RAYLEIGH'
22525        GOTO11910
22526      ELSEIF(ICASPL.EQ.'HNPP' .OR. ICASPL.EQ.'HNLO' .OR.
22527     1   ICASPL.EQ.'HNSC')THEN
22528        IDIST='HALF-NORMAL'
22529        GOTO11910
22530      ELSEIF(ICASPL.EQ.'HCPP' .OR. ICASPL.EQ.'HCLO' .OR.
22531     1   ICASPL.EQ.'HCSC')THEN
22532        IDIST='HALF-CAUCHY'
22533        GOTO11910
22534      ELSEIF(ICASPL.EQ.'SCPP' .OR. ICASPL.EQ.'SCLO' .OR.
22535     1   ICASPL.EQ.'SCSC')THEN
22536        IDIST='SEMI-CIRCULAR'
22537        GOTO11910
22538      ELSEIF(ICASPL.EQ.'G1PP' .OR. ICASPL.EQ.'G1LO' .OR.
22539     1   ICASPL.EQ.'G1SC')THEN
22540        IDIST='MINIMUM GUMBEL'
22541        GOTO11910
22542      ELSEIF(ICASPL.EQ.'G2PP' .OR. ICASPL.EQ.'G2LO' .OR.
22543     1   ICASPL.EQ.'G2SC')THEN
22544        IDIST='MAXIMUM GUMBEL'
22545        GOTO11910
22546      ELSEIF(ICASPL.EQ.'TLPP' .OR. ICASPL.EQ.'TLSH' .OR.
22547     1       ICASPL.EQ.'TLLO' .OR. ICASPL.EQ.'TLSC')THEN
22548        IDIST='TUKEY-LAMBDA'
22549        GOTO11910
22550      ELSEIF(ICASPL.EQ.'WEPP' .OR. ICASPL.EQ.'WESH' .OR.
22551     1       ICASPL.EQ.'WELO' .OR. ICASPL.EQ.'WESC')THEN
22552        IDIST='WEIBULL'
22553        GOTO11910
22554      ELSEIF(ICASPL.EQ.'W2PP' .OR. ICASPL.EQ.'W2SH' .OR.
22555     1       ICASPL.EQ.'W2SC')THEN
22556        IDIST='2PAR WEIBULL'
22557        GOTO11910
22558      ELSEIF(ICASPL.EQ.'LNPP' .OR. ICASPL.EQ.'LNSH' .OR.
22559     1       ICASPL.EQ.'LNLO' .OR. ICASPL.EQ.'LNSC')THEN
22560        IDIST='LOGNORMAL'
22561        GOTO11910
22562      ELSEIF(ICASPL.EQ.'GPPP' .OR. ICASPL.EQ.'GPSH' .OR.
22563     1       ICASPL.EQ.'GPLO' .OR. ICASPL.EQ.'GPSC')THEN
22564        IDIST='GPARETO'
22565        GOTO11910
22566      ELSEIF(ICASPL.EQ.'GHPP' .OR. ICASPL.EQ.'GHSH' .OR.
22567     1       ICASPL.EQ.'GHS2' .OR.
22568     1       ICASPL.EQ.'GHLO' .OR. ICASPL.EQ.'GHSC')THEN
22569        IDIST='GH'
22570        GOTO11910
22571      ELSEIF(ICASPL.EQ.'GPPC' .OR. ICASPL.EQ.'GSHA' .OR.
22572     1       ICASPL.EQ.'GLOC' .OR. ICASPL.EQ.'GSCA')THEN
22573        IDIST='G'
22574        GOTO11910
22575      ELSEIF(ICASPL.EQ.'WAPP' .OR. ICASPL.EQ.'WASH' .OR.
22576     1       ICASPL.EQ.'WALO' .OR. ICASPL.EQ.'WASC')THEN
22577        IDIST='WALD'
22578        GOTO11910
22579      ELSEIF(ICASPL.EQ.'GAPP' .OR. ICASPL.EQ.'GASH' .OR.
22580     1       ICASPL.EQ.'GALO' .OR. ICASPL.EQ.'GASC')THEN
22581        IDIST='GAMMA'
22582        GOTO11910
22583      ELSEIF(ICASPL.EQ.'IWPP' .OR. ICASPL.EQ.'IWSH' .OR.
22584     1       ICASPL.EQ.'IWLO' .OR. ICASPL.EQ.'IWSC')THEN
22585        IDIST='INVERTED WEIBULL'
22586        GOTO11910
22587      ELSEIF(ICASPL.EQ.'FLPP' .OR. ICASPL.EQ.'FLSH' .OR.
22588     1       ICASPL.EQ.'FLLO' .OR. ICASPL.EQ.'FLSC')THEN
22589        IDIST='FATIGUE LIFE'
22590        GOTO11910
22591      ENDIF
22592C
22593      IF(ICASPL.EQ.'NOAD' .OR. ICASPL.EQ.'NADL' .OR.
22594     1   ICASPL.EQ.'NADS')THEN
22595        IDIST='NORMAL'
22596        GOTO11915
22597      ELSEIF(ICASPL.EQ.'EXAD' .OR. ICASPL.EQ.'EADL' .OR.
22598     1   ICASPL.EQ.'EADS')THEN
22599        IDIST='EXPONENTIAL'
22600        GOTO11915
22601      ELSEIF(ICASPL.EQ.'DXAL' .OR. ICASPL.EQ.'DXAS' .OR.
22602     1   ICASPL.EQ.'DXAD')THEN
22603        IDIST='DOUBLE EXPONENTIAL'
22604        GOTO11915
22605      ELSEIF(ICASPL.EQ.'GUAL' .OR. ICASPL.EQ.'GUAS' .OR.
22606     1   ICASPL.EQ.'GUAD')THEN
22607        IDIST='GUMBEL'
22608        GOTO11915
22609      ELSEIF(ICASPL.EQ.'LOAL' .OR. ICASPL.EQ.'LOAS' .OR.
22610     1   ICASPL.EQ.'LOAD')THEN
22611        IDIST='LOGISTIC'
22612        GOTO11915
22613      ELSEIF(ICASPL.EQ.'UNAL' .OR. ICASPL.EQ.'UNAS' .OR.
22614     1   ICASPL.EQ.'UNAD')THEN
22615        IDIST='UNIFORM'
22616        GOTO11915
22617      ELSEIF(ICASPL.EQ.'MXAL' .OR. ICASPL.EQ.'MXAS' .OR.
22618     1   ICASPL.EQ.'MXAD')THEN
22619        IDIST='MAXWELL'
22620        GOTO11915
22621      ELSEIF(ICASPL.EQ.'RAAL' .OR. ICASPL.EQ.'RAAS' .OR.
22622     1   ICASPL.EQ.'RAAD')THEN
22623        IDIST='RAYLEIGH'
22624        GOTO11915
22625      ELSEIF(ICASPL.EQ.'GAAZ' .OR. ICASPL.EQ.'GAAS' .OR.
22626     1   ICASPL.EQ.'GAAD')THEN
22627        IDIST='GAMMA'
22628        GOTO11915
22629      ELSEIF(ICASPL.EQ.'WEAZ' .OR. ICASPL.EQ.'WEAS' .OR.
22630     1   ICASPL.EQ.'WEAD')THEN
22631        IDIST='WEIBULL'
22632        GOTO11915
22633      ELSEIF(ICASPL.EQ.'LNAZ' .OR. ICASPL.EQ.'LNAS' .OR.
22634     1   ICASPL.EQ.'LNAD')THEN
22635        IDIST='LOGNORMAL'
22636        GOTO11915
22637      ELSEIF(ICASPL.EQ.'FLAZ' .OR. ICASPL.EQ.'FLAS' .OR.
22638     1   ICASPL.EQ.'FLAD')THEN
22639        IDIST='FATIGUE LIFE'
22640        GOTO11915
22641      ELSEIF(ICASPL.EQ.'FRAZ' .OR. ICASPL.EQ.'FRAS' .OR.
22642     1   ICASPL.EQ.'FRAD')THEN
22643        IDIST='FRECHET'
22644        GOTO11915
22645      ELSEIF(ICASPL.EQ.'LXAZ' .OR. ICASPL.EQ.'LXAS' .OR.
22646     1   ICASPL.EQ.'LXAD')THEN
22647        IDIST='LOGISTIC EXPONENTIAL'
22648        GOTO11915
22649      ELSEIF(ICASPL.EQ.'IGAZ' .OR. ICASPL.EQ.'IGAS' .OR.
22650     1   ICASPL.EQ.'IGAD')THEN
22651        IDIST='INVERTED GAMMA'
22652        GOTO11915
22653      ELSEIF(ICASPL.EQ.'B1AZ' .OR. ICASPL.EQ.'B1AS' .OR.
22654     1   ICASPL.EQ.'B1AD')THEN
22655        IDIST='BURR TYPE 10'
22656        GOTO11915
22657      ELSEIF(ICASPL.EQ.'GEAZ' .OR. ICASPL.EQ.'GEAS' .OR.
22658     1   ICASPL.EQ.'GEAD')THEN
22659        IDIST='GEOMETRIC EXTR EXPO'
22660        GOTO11915
22661      ENDIF
22662C
22663      IF(ICASPL.EQ.'BCPP')GOTO11920
22664      IF(ICASPL.EQ.'BCLA')GOTO11920
22665C
22666      IF(ICASPL.EQ.'EXTR')GOTO11933
22667      IF(ICASPL.EQ.'AAD ')GOTO11935
22668      IF(ICASPL.EQ.'AADM')GOTO11938
22669      IF(ICASPL.EQ.'MAD ')GOTO11940
22670      IF(ICASPL.EQ.'MADN')GOTO11940
22671      IF(ICASPL.EQ.'GEME')GOTO11950
22672      IF(ICASPL.EQ.'GESD')GOTO11960
22673      IF(ICASPL.EQ.'HAME')GOTO11970
22674      IF(ICASPL.EQ.'IQRA')GOTO11980
22675      IF(ICASPL.EQ.'NIQR')GOTO11980
22676      IF(ICASPL.EQ.'SIQL')GOTO11980
22677      IF(ICASPL.EQ.'SIQU')GOTO11980
22678      IF(ICASPL.EQ.'QCDI')GOTO11981
22679      IF(ICASPL.EQ.'QQRA')GOTO11982
22680      IF(ICASPL.EQ.'DQDI')GOTO11983
22681      IF(ICASPL.EQ.'BILO')GOTO11990
22682      IF(ICASPL.EQ.'BISC')GOTO12000
22683      IF(ICASPL.EQ.'BIMV')GOTO12090
22684      IF(ICASPL.EQ.'BIMC')GOTO12100
22685C
22686      IF(ICASPL.EQ.'PBMV' .OR. ICASPL.EQ.'PBCR' .OR.
22687     1   ICASPL.EQ.'DPBN')THEN
22688C
22689        IHP='BETA'
22690        IHP2='    '
22691        IHWUSE='P'
22692        MESSAG='NO'
22693        CALL CHECKN(IHP,IHP2,IHWUSE,
22694     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
22695     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
22696        IF(IERROR.EQ.'YES')THEN
22697          BETA=0.1
22698        ELSE
22699          BETA=VALUE(ILOCP)
22700        ENDIF
22701C
22702        IF(ICASPL.EQ.'PBMV')GOTO12110
22703        IF(ICASPL.EQ.'PBCR')GOTO12115
22704        IF(ICASPL.EQ.'DPBN')GOTO12360
22705      ENDIF
22706C
22707      IF(ICASPL.EQ.'HLEH')GOTO12120
22708      IF(ICASPL.EQ.'QUAN')GOTO12130
22709      IF(ICASPL.EQ.'DRAT')GOTO12135
22710      IF(ICASPL.EQ.'QUSE')GOTO12140
22711      IF(ICASPL.EQ.'BICR')GOTO12160
22712      IF(ICASPL.EQ.'CDIG')GOTO12172
22713      IF(ICASPL.EQ.'NCDI')GOTO12174
22714      IF(ICASPL.EQ.'SNSC')GOTO12176
22715      IF(ICASPL.EQ.'QNSC')GOTO12178
22716C
22717      IF(ICASPL.EQ.'LPME' .OR. ICASPL.EQ.'LPVA' .OR.
22718     1   ICASPL.EQ.'LPSD' .OR. ICASPL.EQ.'DLPL' .OR.
22719     1   ICASPL.EQ.'DLPV' .OR. ICASPL.EQ.'DLPS')THEN
22720C
22721        IHP='P   '
22722        IHP2='    '
22723        IHWUSE='P'
22724        MESSAG='NO'
22725        CALL CHECKN(IHP,IHP2,IHWUSE,
22726     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
22727     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
22728        IF(IERROR.EQ.'YES')THEN
22729          P=1.5
22730        ELSE
22731          P=VALUE(ILOCP)
22732        ENDIF
22733C
22734        IF(ICASPL.EQ.'LPME')GOTO31720
22735        IF(ICASPL.EQ.'LPVA')GOTO31730
22736        IF(ICASPL.EQ.'LPSD')GOTO31740
22737        IF(ICASPL.EQ.'DLPL')GOTO12540
22738        IF(ICASPL.EQ.'DLPV')GOTO12550
22739        IF(ICASPL.EQ.'DLPS')GOTO12560
22740      ENDIF
22741C
22742      IF(ICASPL.EQ.'BPRO')GOTO31750
22743      IF(ICASPL.EQ.'BPLC')GOTO31750
22744      IF(ICASPL.EQ.'BPUC')GOTO31750
22745      IF(ICASPL.EQ.'BPRC')GOTO31750
22746      IF(ICASPL.EQ.'GRUB')GOTO31790
22747      IF(ICASPL.EQ.'GCDF')GOTO31795
22748      IF(ICASPL.EQ.'GDIR')GOTO31810
22749      IF(ICASPL.EQ.'GIND')GOTO31820
22750      IF(ICASPL.EQ.'DCDF')GOTO31825
22751      IF(ICASPL.EQ.'DPVA')GOTO31825
22752      IF(ICASPL.EQ.'DMNI')GOTO31825
22753      IF(ICASPL.EQ.'DMXI')GOTO31825
22754      IF(ICASPL.EQ.'DACV')GOTO31825
22755      IF(ICASPL.EQ.'DAVI')GOTO31825
22756      IF(ICASPL.EQ.'SOCD')GOTO31828
22757      IF(ICASPL.EQ.'SOCV')GOTO31828
22758      IF(ICASPL.EQ.'SOPV')GOTO31828
22759      IF(ICASPL.EQ.'SOIN')GOTO31828
22760      IF(ICASPL.EQ.'SOUT')GOTO31828
22761      IF(ICASPL.EQ.'KOCD')GOTO31829
22762      IF(ICASPL.EQ.'KOCV')GOTO31829
22763      IF(ICASPL.EQ.'KOPV')GOTO31829
22764      IF(ICASPL.EQ.'KOIN')GOTO31829
22765      IF(ICASPL.EQ.'KOUT')GOTO31829
22766      IF(ICASPL.EQ.'1TTE')GOTO31830
22767      IF(ICASPL.EQ.'1TCD')GOTO31830
22768      IF(ICASPL.EQ.'1T2P')GOTO31830
22769      IF(ICASPL.EQ.'1TLP')GOTO31830
22770      IF(ICASPL.EQ.'1TUP')GOTO31830
22771      IF(ICASPL.EQ.'2TTE')GOTO31840
22772      IF(ICASPL.EQ.'2TCD')GOTO31840
22773      IF(ICASPL.EQ.'2T2P')GOTO31840
22774      IF(ICASPL.EQ.'2TLP')GOTO31840
22775      IF(ICASPL.EQ.'2TUP')GOTO31840
22776      IF(ICASPL.EQ.'PTTE')GOTO31845
22777      IF(ICASPL.EQ.'PTCD')GOTO31845
22778      IF(ICASPL.EQ.'PT2P')GOTO31845
22779      IF(ICASPL.EQ.'PTLP')GOTO31845
22780      IF(ICASPL.EQ.'PTUP')GOTO31845
22781      IF(ICASPL.EQ.'CSSD')GOTO31850
22782      IF(ICASPL.EQ.'CCDF')GOTO31850
22783      IF(ICASPL.EQ.'CS2P')GOTO31850
22784      IF(ICASPL.EQ.'CSLP')GOTO31850
22785      IF(ICASPL.EQ.'CSUP')GOTO31850
22786      IF(ICASPL.EQ.'FRET')GOTO31870
22787      IF(ICASPL.EQ.'FRCD')GOTO31880
22788      IF(ICASPL.EQ.'FBLO')GOTO31890
22789      IF(ICASPL.EQ.'FBCD')GOTO31900
22790      IF(ICASPL.EQ.'H10L')GOTO31910
22791      IF(ICASPL.EQ.'H12L')GOTO31920
22792      IF(ICASPL.EQ.'H15L')GOTO31930
22793      IF(ICASPL.EQ.'H17L')GOTO31940
22794      IF(ICASPL.EQ.'H20L')GOTO31950
22795      IF(ICASPL.EQ.'H10S')GOTO31960
22796      IF(ICASPL.EQ.'H12S')GOTO31970
22797      IF(ICASPL.EQ.'H15S')GOTO31980
22798      IF(ICASPL.EQ.'H17S')GOTO31990
22799      IF(ICASPL.EQ.'H20S')GOTO32000
22800      IF(ICASPL.EQ.'TM2S')GOTO32010
22801      IF(ICASPL.EQ.'TMMN')GOTO32010
22802      IF(ICASPL.EQ.'TMMX')GOTO32010
22803      IF(ICASPL.EQ.'ESD ')GOTO32020
22804      IF(ICASPL.EQ.'DI2S')GOTO32030
22805      IF(ICASPL.EQ.'DIMN')GOTO32030
22806      IF(ICASPL.EQ.'DIMX')GOTO32030
22807      IF(ICASPL.EQ.'1LAC')GOTO32040
22808      IF(ICASPL.EQ.'1UAC')GOTO32040
22809      IF(ICASPL.EQ.'2LAC')GOTO32040
22810      IF(ICASPL.EQ.'2UAC')GOTO32040
22811      IF(ICASPL.EQ.'1LEB')GOTO32050
22812      IF(ICASPL.EQ.'1UEB')GOTO32050
22813      IF(ICASPL.EQ.'2LEB')GOTO32050
22814      IF(ICASPL.EQ.'2UEB')GOTO32050
22815      IF(ICASPL.EQ.'ADKS')GOTO32060
22816      IF(ICASPL.EQ.'ADKC')GOTO32060
22817      IF(ICASPL.EQ.'KS2S')GOTO33100
22818      IF(ICASPL.EQ.'KSCV')GOTO33100
22819      IF(ICASPL.EQ.'CS2S')GOTO33105
22820      IF(ICASPL.EQ.'CC2S')GOTO33105
22821      IF(ICASPL.EQ.'CP2S')GOTO33105
22822      IF(ICASPL.EQ.'WSHA')GOTO33110
22823      IF(ICASPL.EQ.'WSPV')GOTO33110
22824      IF(ICASPL.EQ.'CSFT')GOTO33120
22825      IF(ICASPL.EQ.'CSFP')GOTO33120
22826      IF(ICASPL.EQ.'CSBT')GOTO33120
22827      IF(ICASPL.EQ.'CSBP')GOTO33120
22828      IF(ICASPL.EQ.'1LNT')GOTO33130
22829      IF(ICASPL.EQ.'1UNT')GOTO33130
22830      IF(ICASPL.EQ.'1KNT')GOTO33130
22831      IF(ICASPL.EQ.'2LNT')GOTO33130
22832      IF(ICASPL.EQ.'2UNT')GOTO33130
22833      IF(ICASPL.EQ.'2KNT')GOTO33130
22834      IF(ICASPL.EQ.'FTCD')GOTO33140
22835      IF(ICASPL.EQ.'FTPV')GOTO33140
22836      IF(ICASPL.EQ.'FTES')GOTO33140
22837      IF(ICASPL.EQ.'1STE')GOTO33150
22838      IF(ICASPL.EQ.'1SCD')GOTO33150
22839      IF(ICASPL.EQ.'1S2P')GOTO33150
22840      IF(ICASPL.EQ.'1SLP')GOTO33150
22841      IF(ICASPL.EQ.'1SUP')GOTO33150
22842      IF(ICASPL.EQ.'2STE')GOTO33160
22843      IF(ICASPL.EQ.'2SCD')GOTO33160
22844      IF(ICASPL.EQ.'2S2P')GOTO33160
22845      IF(ICASPL.EQ.'2SLP')GOTO33160
22846      IF(ICASPL.EQ.'2SUP')GOTO33160
22847      IF(ICASPL.EQ.'2SFR')GOTO33165
22848      IF(ICASPL.EQ.'2F2P')GOTO33165
22849      IF(ICASPL.EQ.'2F1P')GOTO33165
22850      IF(ICASPL.EQ.'WABA')GOTO33170
22851      IF(ICASPL.EQ.'WBBA')GOTO33170
22852      IF(ICASPL.EQ.'LABA')GOTO33170
22853      IF(ICASPL.EQ.'LBBA')GOTO33170
22854      IF(ICASPL.EQ.'NABA')GOTO33170
22855      IF(ICASPL.EQ.'NBBA')GOTO33170
22856      IF(ICASPL.EQ.'ZABA')GOTO33170
22857      IF(ICASPL.EQ.'ZBBA')GOTO33170
22858      IF(ICASPL.EQ.'1WTE')GOTO34000
22859      IF(ICASPL.EQ.'1WCD')GOTO34000
22860      IF(ICASPL.EQ.'1W2P')GOTO34000
22861      IF(ICASPL.EQ.'1WLP')GOTO34000
22862      IF(ICASPL.EQ.'1WUP')GOTO34000
22863      IF(ICASPL.EQ.'2WTE')GOTO34010
22864      IF(ICASPL.EQ.'2WCD')GOTO34010
22865      IF(ICASPL.EQ.'2W2P')GOTO34010
22866      IF(ICASPL.EQ.'2WLP')GOTO34010
22867      IF(ICASPL.EQ.'2WUP')GOTO34010
22868      IF(ICASPL.EQ.'MWTE')GOTO34020
22869      IF(ICASPL.EQ.'MWCD')GOTO34020
22870      IF(ICASPL.EQ.'MW2P')GOTO34020
22871      IF(ICASPL.EQ.'MWLP')GOTO34020
22872      IF(ICASPL.EQ.'MWUP')GOTO34020
22873      IF(ICASPL.EQ.'MWUS')GOTO34020
22874      IF(ICASPL.EQ.'KLTE')GOTO34030
22875      IF(ICASPL.EQ.'KLCD')GOTO34030
22876      IF(ICASPL.EQ.'KL2P')GOTO34030
22877      IF(ICASPL.EQ.'KLLP')GOTO34030
22878      IF(ICASPL.EQ.'KLUP')GOTO34030
22879      IF(ICASPL.EQ.'KWTE')GOTO34035
22880      IF(ICASPL.EQ.'KWCD')GOTO34035
22881      IF(ICASPL.EQ.'KW2P')GOTO34035
22882      IF(ICASPL.EQ.'SRTE')GOTO34040
22883      IF(ICASPL.EQ.'SRCD')GOTO34040
22884      IF(ICASPL.EQ.'SR2P')GOTO34040
22885      IF(ICASPL.EQ.'SRLP')GOTO34040
22886      IF(ICASPL.EQ.'SRUP')GOTO34040
22887      IF(ICASPL.EQ.'METE')GOTO34050
22888      IF(ICASPL.EQ.'MECD')GOTO34050
22889      IF(ICASPL.EQ.'ME2P')GOTO34050
22890      IF(ICASPL.EQ.'FZTE')GOTO34060
22891      IF(ICASPL.EQ.'FZCD')GOTO34060
22892      IF(ICASPL.EQ.'FZ2P')GOTO34060
22893      IF(ICASPL.EQ.'QUTE')GOTO34070
22894      IF(ICASPL.EQ.'QUCD')GOTO34070
22895      IF(ICASPL.EQ.'QU2P')GOTO34070
22896      IF(ICASPL.EQ.'FMAT')GOTO34080
22897      IF(ICASPL.EQ.'LMAT')GOTO34080
22898      IF(ICASPL.EQ.'FNOM')GOTO34080
22899      IF(ICASPL.EQ.'LNOM')GOTO34080
22900      IF(ICASPL.EQ.'SHDI')GOTO34090
22901      IF(ICASPL.EQ.'SHEI')GOTO34090
22902      IF(ICASPL.EQ.'SINR')GOTO34095
22903      IF(ICASPL.EQ.'SEIR')GOTO34095
22904      IF(ICASPL.EQ.'SIDI')GOTO34100
22905      IF(ICASPL.EQ.'SDIR')GOTO34105
22906      IF(ICASPL.EQ.'JABE')GOTO34110
22907      IF(ICASPL.EQ.'JAPV')GOTO34110
22908      IF(ICASPL.EQ.'JACD')GOTO34110
22909      IF(ICASPL.EQ.'LCL ')GOTO34120
22910      IF(ICASPL.EQ.'UCL ')GOTO34120
22911      IF(ICASPL.EQ.'1LCL')GOTO34120
22912      IF(ICASPL.EQ.'1UCL')GOTO34120
22913      IF(ICASPL.EQ.'SLCL')GOTO34120
22914      IF(ICASPL.EQ.'SUCL')GOTO34120
22915      IF(ICASPL.EQ.'SLC1')GOTO34120
22916      IF(ICASPL.EQ.'SUC1')GOTO34120
22917      IF(ICASPL.EQ.'LPL ')GOTO34130
22918      IF(ICASPL.EQ.'UPL ')GOTO34130
22919      IF(ICASPL.EQ.'1LPL')GOTO34130
22920      IF(ICASPL.EQ.'1UPL')GOTO34130
22921      IF(ICASPL.EQ.'LPB ')GOTO34130
22922      IF(ICASPL.EQ.'UPB ')GOTO34130
22923      IF(ICASPL.EQ.'1LPB')GOTO34130
22924      IF(ICASPL.EQ.'1UPB')GOTO34130
22925      IF(ICASPL.EQ.'SLPL')GOTO34130
22926      IF(ICASPL.EQ.'SUPL')GOTO34130
22927      IF(ICASPL.EQ.'SLP1')GOTO34130
22928      IF(ICASPL.EQ.'SUP1')GOTO34130
22929      IF(ICASPL.EQ.'SLPB')GOTO34130
22930      IF(ICASPL.EQ.'SUPB')GOTO34130
22931      IF(ICASPL.EQ.'SLB1')GOTO34130
22932      IF(ICASPL.EQ.'SUB1')GOTO34130
22933      IF(ICASPL.EQ.'SUS1')GOTO34130
22934      IF(ICASPL.EQ.'SLS1')GOTO34130
22935      IF(ICASPL.EQ.'SUS2')GOTO34130
22936      IF(ICASPL.EQ.'SLS2')GOTO34130
22937      IF(ICASPL.EQ.'UPS1')GOTO34130
22938      IF(ICASPL.EQ.'LPS1')GOTO34130
22939      IF(ICASPL.EQ.'UPS2')GOTO34130
22940      IF(ICASPL.EQ.'LPS2')GOTO34130
22941      IF(ICASPL.EQ.'UCS1')GOTO34140
22942      IF(ICASPL.EQ.'LCS1')GOTO34140
22943      IF(ICASPL.EQ.'UCS2')GOTO34140
22944      IF(ICASPL.EQ.'LCS2')GOTO34140
22945      IF(ICASPL.EQ.'SLZ1')GOTO34140
22946      IF(ICASPL.EQ.'SUZ1')GOTO34140
22947      IF(ICASPL.EQ.'SLZ2')GOTO34140
22948      IF(ICASPL.EQ.'SUZ2')GOTO34140
22949      IF(ICASPL.EQ.'BLSD')GOTO34145
22950      IF(ICASPL.EQ.'BUSD')GOTO34145
22951      IF(ICASPL.EQ.'MWLT')GOTO34150
22952      IF(ICASPL.EQ.'MWLC')GOTO34150
22953      IF(ICASPL.EQ.'MWPV')GOTO34150
22954      IF(ICASPL.EQ.'MW50')GOTO34150
22955      IF(ICASPL.EQ.'MW90')GOTO34150
22956      IF(ICASPL.EQ.'MW95')GOTO34150
22957      IF(ICASPL.EQ.'PDTE')GOTO34160
22958      IF(ICASPL.EQ.'PDCD')GOTO34160
22959      IF(ICASPL.EQ.'PDPV')GOTO34160
22960      IF(ICASPL.EQ.'GPDT')GOTO34170
22961      IF(ICASPL.EQ.'GPDC')GOTO34170
22962      IF(ICASPL.EQ.'GPDP')GOTO34170
22963      IF(ICASPL.EQ.'BCVM')GOTO34180
22964      IF(ICASPL.EQ.'BC95')GOTO34180
22965      IF(ICASPL.EQ.'BC05')GOTO34180
22966      IF(ICASPL.EQ.'MNNC')GOTO34190
22967      IF(ICASPL.EQ.'MNND')GOTO34190
22968      IF(ICASPL.EQ.'MNNP')GOTO34190
22969      IF(ICASPL.EQ.'PO1P')GOTO34200
22970      IF(ICASPL.EQ.'PO1C')GOTO34200
22971      IF(ICASPL.EQ.'POL1')GOTO34200
22972      IF(ICASPL.EQ.'PO2P')GOTO34200
22973      IF(ICASPL.EQ.'PO2C')GOTO34200
22974      IF(ICASPL.EQ.'POL2')GOTO34200
22975      IF(ICASPL.EQ.'PO3P')GOTO34200
22976      IF(ICASPL.EQ.'PO3C')GOTO34200
22977      IF(ICASPL.EQ.'POL3')GOTO34200
22978      IF(ICASPL.EQ.'PO4P')GOTO34200
22979      IF(ICASPL.EQ.'PO4C')GOTO34200
22980      IF(ICASPL.EQ.'POL4')GOTO34200
22981      IF(ICASPL.EQ.'PO5P')GOTO34200
22982      IF(ICASPL.EQ.'PO5C')GOTO34200
22983      IF(ICASPL.EQ.'POL5')GOTO34200
22984      IF(ICASPL.EQ.'VALC')GOTO34210
22985      IF(ICASPL.EQ.'VDIS')GOTO34220
22986      IF(ICASPL.EQ.'RDI ')GOTO34220
22987      IF(ICASPL.EQ.'UCHS')GOTO34220
22988      IF(ICASPL.EQ.'WSCD')GOTO34230
22989      IF(ICASPL.EQ.'WSHP')GOTO34230
22990      IF(ICASPL.EQ.'WSHT')GOTO34230
22991      IF(ICASPL.EQ.'WS90')GOTO34230
22992      IF(ICASPL.EQ.'WS95')GOTO34230
22993      IF(ICASPL.EQ.'WS99')GOTO34230
22994      IF(ICASPL.EQ.'KAPR')GOTO34240
22995      IF(ICASPL.EQ.'KARC')GOTO34240
22996      IF(ICASPL.EQ.'CVOT')GOTO34260
22997      IF(ICASPL.EQ.'CV95')GOTO34260
22998      IF(ICASPL.EQ.'CV99')GOTO34260
22999      IF(ICASPL.EQ.'CVCD')GOTO34260
23000      IF(ICASPL.EQ.'CVPV')GOTO34260
23001      IF(ICASPL.EQ.'CV05')GOTO34260
23002      IF(ICASPL.EQ.'CV01')GOTO34260
23003      IF(ICASPL.EQ.'CMVC')GOTO34260
23004      IF(ICASPL.EQ.'CMVP')GOTO34260
23005      IF(ICASPL.EQ.'CVMO')GOTO34260
23006      IF(ICASPL.EQ.'ESCD')GOTO34270
23007      IF(ICASPL.EQ.'ESCV')GOTO34270
23008      IF(ICASPL.EQ.'ESPV')GOTO34270
23009      IF(ICASPL.EQ.'ESP1')GOTO34270
23010      IF(ICASPL.EQ.'ESLO')GOTO34270
23011      IF(ICASPL.EQ.'DSLA' .AND. NUMV2.EQ.3)GOTO32100
23012      IF(ICASPL.EQ.'DHHD' .AND. NUMV2.EQ.3)GOTO32100
23013      IF(ICASPL.EQ.'DSMM' .AND. NUMV2.EQ.3)GOTO32100
23014      IF(ICASPL.EQ.'DSSE' .AND. NUMV2.EQ.3)GOTO32100
23015      IF(ICASPL.EQ.'MPAU' .AND. NUMV2.EQ.3)GOTO32200
23016      IF(ICASPL.EQ.'MPSE' .AND. NUMV2.EQ.3)GOTO32200
23017      IF(ICASPL.EQ.'MMPA' .AND. NUMV2.EQ.3)GOTO32200
23018      IF(ICASPL.EQ.'MMPS' .AND. NUMV2.EQ.3)GOTO32200
23019      IF(ICASPL.EQ.'VARU' .AND. NUMV2.EQ.3)GOTO32200
23020      IF(ICASPL.EQ.'VRSE' .AND. NUMV2.EQ.3)GOTO32200
23021      IF(ICASPL.EQ.'BOB ' .AND. NUMV2.EQ.3)GOTO32300
23022      IF(ICASPL.EQ.'BOBS' .AND. NUMV2.EQ.3)GOTO32300
23023      IF(ICASPL.EQ.'GCIN' .AND. NUMV2.EQ.3)GOTO32400
23024      IF(ICASPL.EQ.'GCIS' .AND. NUMV2.EQ.3)GOTO32400
23025      IF(ICASPL.EQ.'BCP ' .AND. NUMV2.EQ.3)GOTO32500
23026      IF(ICASPL.EQ.'BCPS' .AND. NUMV2.EQ.3)GOTO32500
23027      IF(ICASPL.EQ.'MMEA' .AND. NUMV2.EQ.3)GOTO32600
23028      IF(ICASPL.EQ.'MMES' .AND. NUMV2.EQ.3)GOTO32600
23029      IF(ICASPL.EQ.'FAIR' .AND. NUMV2.EQ.3)GOTO32700
23030      IF(ICASPL.EQ.'FWSE' .AND. NUMV2.EQ.3)GOTO32700
23031      IF(ICASPL.EQ.'GDEA' .AND. NUMV2.EQ.3)GOTO32800
23032      IF(ICASPL.EQ.'GDSE' .AND. NUMV2.EQ.3)GOTO32800
23033      IF(ICASPL.EQ.'GDSN' .AND. NUMV2.EQ.3)GOTO32800
23034      IF(ICASPL.EQ.'GDZ1' .AND. NUMV2.EQ.3)GOTO32800
23035      IF(ICASPL.EQ.'GDZ2' .AND. NUMV2.EQ.3)GOTO32800
23036      IF(ICASPL.EQ.'SCEB' .AND. NUMV2.EQ.3)GOTO32900
23037      IF(ICASPL.EQ.'SESE' .AND. NUMV2.EQ.3)GOTO32900
23038      IF(ICASPL.EQ.'DSLA' .AND. NUMV2.EQ.2)GOTO32070
23039      IF(ICASPL.EQ.'DHHD' .AND. NUMV2.EQ.2)GOTO32070
23040      IF(ICASPL.EQ.'DSMM' .AND. NUMV2.EQ.2)GOTO32070
23041      IF(ICASPL.EQ.'DSSE' .AND. NUMV2.EQ.2)GOTO32070
23042      IF(ICASPL.EQ.'MPAU' .AND. NUMV2.EQ.2)GOTO32070
23043      IF(ICASPL.EQ.'MPSE' .AND. NUMV2.EQ.2)GOTO32070
23044      IF(ICASPL.EQ.'MMPA' .AND. NUMV2.EQ.2)GOTO32070
23045      IF(ICASPL.EQ.'MMPS' .AND. NUMV2.EQ.2)GOTO32070
23046      IF(ICASPL.EQ.'VARU' .AND. NUMV2.EQ.2)GOTO32070
23047      IF(ICASPL.EQ.'VRSE' .AND. NUMV2.EQ.2)GOTO32070
23048      IF(ICASPL.EQ.'BOB ' .AND. NUMV2.EQ.2)GOTO32070
23049      IF(ICASPL.EQ.'BOBS' .AND. NUMV2.EQ.2)GOTO32070
23050      IF(ICASPL.EQ.'GCIN' .AND. NUMV2.EQ.2)GOTO32070
23051      IF(ICASPL.EQ.'GCIS' .AND. NUMV2.EQ.2)GOTO32070
23052      IF(ICASPL.EQ.'BCP ' .AND. NUMV2.EQ.2)GOTO32070
23053      IF(ICASPL.EQ.'BCPS' .AND. NUMV2.EQ.2)GOTO32070
23054      IF(ICASPL.EQ.'MMEA' .AND. NUMV2.EQ.2)GOTO32070
23055      IF(ICASPL.EQ.'MMES' .AND. NUMV2.EQ.2)GOTO32070
23056      IF(ICASPL.EQ.'FAIR' .AND. NUMV2.EQ.2)GOTO32070
23057      IF(ICASPL.EQ.'FWSE' .AND. NUMV2.EQ.2)GOTO32070
23058      IF(ICASPL.EQ.'GDEA' .AND. NUMV2.EQ.2)GOTO32070
23059      IF(ICASPL.EQ.'GDSE' .AND. NUMV2.EQ.2)GOTO32070
23060      IF(ICASPL.EQ.'GDSN' .AND. NUMV2.EQ.2)GOTO32070
23061      IF(ICASPL.EQ.'GDZ1' .AND. NUMV2.EQ.2)GOTO32070
23062      IF(ICASPL.EQ.'GDZ2' .AND. NUMV2.EQ.2)GOTO32070
23063      IF(ICASPL.EQ.'SCEB' .AND. NUMV2.EQ.2)GOTO32070
23064      IF(ICASPL.EQ.'SESE' .AND. NUMV2.EQ.2)GOTO32070
23065C
23066      IF(ICASPL.EQ.'DMEA')GOTO12180
23067      IF(ICASPL.EQ.'HEDG')GOTO12182
23068      IF(ICASPL.EQ.'BCHG')GOTO12182
23069      IF(ICASPL.EQ.'HESE')GOTO12182
23070      IF(ICASPL.EQ.'HELC')GOTO12182
23071      IF(ICASPL.EQ.'HEUC')GOTO12182
23072      IF(ICASPL.EQ.'COHD')GOTO12182
23073      IF(ICASPL.EQ.'GLAS')GOTO12182
23074      IF(ICASPL.EQ.'DMDM')GOTO12190
23075      IF(ICASPL.EQ.'DMED')GOTO12200
23076      IF(ICASPL.EQ.'DGEO')GOTO12230
23077      IF(ICASPL.EQ.'DHAR')GOTO12240
23078      IF(ICASPL.EQ.'DHDL')GOTO12250
23079      IF(ICASPL.EQ.'DBIW')GOTO12260
23080      IF(ICASPL.EQ.'DSD ')GOTO12270
23081      IF(ICASPL.EQ.'DRMS ')GOTO12275
23082      IF(ICASPL.EQ.'DVAR')GOTO12280
23083      IF(ICASPL.EQ.'DPRE')GOTO12282
23084      IF(ICASPL.EQ.'DSNR')GOTO12284
23085      IF(ICASPL.EQ.'DAAD')GOTO12290
23086      IF(ICASPL.EQ.'DAAM')GOTO12295
23087      IF(ICASPL.EQ.'DMAD')GOTO12300
23088      IF(ICASPL.EQ.'DMAN')GOTO12300
23089      IF(ICASPL.EQ.'DIQR')GOTO12310
23090      IF(ICASPL.EQ.'DNIQ')GOTO12310
23091      IF(ICASPL.EQ.'DBIM')GOTO12340
23092      IF(ICASPL.EQ.'DBIS')GOTO12350
23093      IF(ICASPL.EQ.'DGSD')GOTO12370
23094      IF(ICASPL.EQ.'DRAN')GOTO12380
23095C
23096      IF(ICASPL.EQ.'EXTR')GOTO11933
23097      IF(ICASPL.EQ.'AAD ')GOTO11935
23098      IF(ICASPL.EQ.'MAD ')GOTO11940
23099      IF(ICASPL.EQ.'MADN')GOTO11940
23100      IF(ICASPL.EQ.'GEME')GOTO11950
23101      IF(ICASPL.EQ.'GESD')GOTO11960
23102      IF(ICASPL.EQ.'HAME')GOTO11970
23103      IF(ICASPL.EQ.'IQRA')GOTO11980
23104      IF(ICASPL.EQ.'NIQR')GOTO11980
23105      IF(ICASPL.EQ.'SIQL')GOTO11980
23106      IF(ICASPL.EQ.'SIQU')GOTO11980
23107      IF(ICASPL.EQ.'QQRA')GOTO11982
23108      IF(ICASPL.EQ.'BILO')GOTO11990
23109      IF(ICASPL.EQ.'BISC')GOTO12000
23110      IF(ICASPL.EQ.'BIMV')GOTO12090
23111      IF(ICASPL.EQ.'BIMC')GOTO12100
23112C
23113      IF(ICASPL.EQ.'PBMV' .OR. ICASPL.EQ.'PBCR' .OR.
23114     1   ICASPL.EQ.'DPBN')THEN
23115C
23116        IHP='BETA'
23117        IHP2='    '
23118        IHWUSE='P'
23119        MESSAG='NO'
23120        CALL CHECKN(IHP,IHP2,IHWUSE,
23121     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
23122     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
23123        IF(IERROR.EQ.'YES')THEN
23124          BETA=0.1
23125        ELSE
23126          BETA=VALUE(ILOCP)
23127        ENDIF
23128C
23129        IF(ICASPL.EQ.'PBMV')GOTO12110
23130        IF(ICASPL.EQ.'PBCR')GOTO12115
23131        IF(ICASPL.EQ.'DPBN')GOTO12360
23132      ENDIF
23133C
23134      IF(ICASPL.EQ.'HLEH')GOTO12120
23135      IF(ICASPL.EQ.'QUAN')GOTO12130
23136      IF(ICASPL.EQ.'QUSE')GOTO12140
23137      IF(ICASPL.EQ.'BICR')GOTO12160
23138      IF(ICASPL.EQ.'CDIG')GOTO12172
23139      IF(ICASPL.EQ.'NCDI')GOTO12174
23140      IF(ICASPL.EQ.'SNSC')GOTO12176
23141      IF(ICASPL.EQ.'QNSC')GOTO12178
23142C
23143      IF(ICASPL.EQ.'LPME' .OR. ICASPL.EQ.'LPVA' .OR.
23144     1   ICASPL.EQ.'LPSD' .OR. ICASPL.EQ.'DLPL' .OR.
23145     1   ICASPL.EQ.'DLPV' .OR. ICASPL.EQ.'DLPS')THEN
23146C
23147        IHP='P   '
23148        IHP2='    '
23149        IHWUSE='P'
23150        MESSAG='NO'
23151        CALL CHECKN(IHP,IHP2,IHWUSE,
23152     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
23153     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
23154        IF(IERROR.EQ.'YES')THEN
23155          P=1.5
23156        ELSE
23157          P=VALUE(ILOCP)
23158        ENDIF
23159C
23160        IF(ICASPL.EQ.'LPME')GOTO31720
23161        IF(ICASPL.EQ.'LPVA')GOTO31730
23162        IF(ICASPL.EQ.'LPSD')GOTO31740
23163        IF(ICASPL.EQ.'DLPL')GOTO12540
23164        IF(ICASPL.EQ.'DLPV')GOTO12550
23165        IF(ICASPL.EQ.'DLPS')GOTO12560
23166      ENDIF
23167C
23168      IF(ICASPL.EQ.'BPRO')GOTO31750
23169      IF(ICASPL.EQ.'BPRC')GOTO31750
23170      IF(ICASPL.EQ.'GRUB')GOTO31790
23171      IF(ICASPL.EQ.'GCDF')GOTO31795
23172      IF(ICASPL.EQ.'GDIR')GOTO31810
23173      IF(ICASPL.EQ.'GIND')GOTO31820
23174      IF(ICASPL.EQ.'1TTE')GOTO31830
23175      IF(ICASPL.EQ.'1TCD')GOTO31830
23176      IF(ICASPL.EQ.'1T2P')GOTO31830
23177      IF(ICASPL.EQ.'1TLP')GOTO31830
23178      IF(ICASPL.EQ.'1TUP')GOTO31830
23179      IF(ICASPL.EQ.'2TTE')GOTO31840
23180      IF(ICASPL.EQ.'2TCD')GOTO31840
23181      IF(ICASPL.EQ.'2T2P')GOTO31840
23182      IF(ICASPL.EQ.'2TLP')GOTO31840
23183      IF(ICASPL.EQ.'2TUP')GOTO31840
23184      IF(ICASPL.EQ.'PTTE')GOTO31845
23185      IF(ICASPL.EQ.'PTCD')GOTO31845
23186      IF(ICASPL.EQ.'PT2P')GOTO31845
23187      IF(ICASPL.EQ.'PTLP')GOTO31845
23188      IF(ICASPL.EQ.'PTUP')GOTO31845
23189      IF(ICASPL.EQ.'CSSD')GOTO31850
23190      IF(ICASPL.EQ.'CCDF')GOTO31850
23191      IF(ICASPL.EQ.'CS2P')GOTO31850
23192      IF(ICASPL.EQ.'CSLP')GOTO31850
23193      IF(ICASPL.EQ.'CSUP')GOTO31850
23194      IF(ICASPL.EQ.'FRET')GOTO31870
23195      IF(ICASPL.EQ.'FRCD')GOTO31880
23196      IF(ICASPL.EQ.'FBLO')GOTO31890
23197      IF(ICASPL.EQ.'FBCD')GOTO31900
23198      IF(ICASPL.EQ.'MSDT')GOTO31905
23199      IF(ICASPL.EQ.'MSDN')GOTO31905
23200      IF(ICASPL.EQ.'MSDC')GOTO31905
23201      IF(ICASPL.EQ.'MSDP')GOTO31905
23202      IF(ICASPL.EQ.'ADRA')GOTO31905
23203      IF(ICASPL.EQ.'ADCD')GOTO31905
23204      IF(ICASPL.EQ.'ADPV')GOTO31905
23205      IF(ICASPL.EQ.'AD01')GOTO31905
23206      IF(ICASPL.EQ.'AD05')GOTO31905
23207      IF(ICASPL.EQ.'AD95')GOTO31905
23208      IF(ICASPL.EQ.'AD99')GOTO31905
23209      IF(ICASPL.EQ.'H10L')GOTO31910
23210      IF(ICASPL.EQ.'H12L')GOTO31920
23211      IF(ICASPL.EQ.'H15L')GOTO31930
23212      IF(ICASPL.EQ.'H17L')GOTO31940
23213      IF(ICASPL.EQ.'H20L')GOTO31950
23214      IF(ICASPL.EQ.'H10S')GOTO31960
23215      IF(ICASPL.EQ.'H12S')GOTO31970
23216      IF(ICASPL.EQ.'H15S')GOTO31980
23217      IF(ICASPL.EQ.'H17S')GOTO31990
23218      IF(ICASPL.EQ.'H20S')GOTO32000
23219      IF(ICASPL.EQ.'TM2S')GOTO32010
23220      IF(ICASPL.EQ.'TMMN')GOTO32010
23221      IF(ICASPL.EQ.'TMMX')GOTO32010
23222      IF(ICASPL.EQ.'ESD ')GOTO32020
23223      IF(ICASPL.EQ.'DI2S')GOTO32030
23224      IF(ICASPL.EQ.'DIMN')GOTO32030
23225      IF(ICASPL.EQ.'DIMX')GOTO32030
23226      IF(ICASPL.EQ.'1LAC')GOTO32040
23227      IF(ICASPL.EQ.'1UAC')GOTO32040
23228      IF(ICASPL.EQ.'2LAC')GOTO32040
23229      IF(ICASPL.EQ.'2UAC')GOTO32040
23230      IF(ICASPL.EQ.'1LEB')GOTO32050
23231      IF(ICASPL.EQ.'1UEB')GOTO32050
23232      IF(ICASPL.EQ.'2LEB')GOTO32050
23233      IF(ICASPL.EQ.'2UEB')GOTO32050
23234      IF(ICASPL.EQ.'ADKS')GOTO32060
23235      IF(ICASPL.EQ.'ADKC')GOTO32060
23236      IF(ICASPL.EQ.'KS2S')GOTO33100
23237      IF(ICASPL.EQ.'KSCV')GOTO33100
23238      IF(ICASPL.EQ.'CS2S')GOTO33105
23239      IF(ICASPL.EQ.'CC2S')GOTO33105
23240      IF(ICASPL.EQ.'CP2S')GOTO33105
23241      IF(ICASPL.EQ.'WSHA')GOTO33110
23242      IF(ICASPL.EQ.'WSPV')GOTO33110
23243      IF(ICASPL.EQ.'CSFT')GOTO33120
23244      IF(ICASPL.EQ.'CSFP')GOTO33120
23245      IF(ICASPL.EQ.'CSBT')GOTO33120
23246      IF(ICASPL.EQ.'CSBP')GOTO33120
23247      IF(ICASPL.EQ.'1LNT')GOTO33130
23248      IF(ICASPL.EQ.'1UNT')GOTO33130
23249      IF(ICASPL.EQ.'1KNT')GOTO33130
23250      IF(ICASPL.EQ.'2LNT')GOTO33130
23251      IF(ICASPL.EQ.'2UNT')GOTO33130
23252      IF(ICASPL.EQ.'2KNT')GOTO33130
23253      IF(ICASPL.EQ.'FTCD')GOTO33140
23254      IF(ICASPL.EQ.'FTPV')GOTO33140
23255      IF(ICASPL.EQ.'FTES')GOTO33140
23256      IF(ICASPL.EQ.'1STE')GOTO33150
23257      IF(ICASPL.EQ.'1SCD')GOTO33150
23258      IF(ICASPL.EQ.'1S2P')GOTO33150
23259      IF(ICASPL.EQ.'1SLP')GOTO33150
23260      IF(ICASPL.EQ.'1SUP')GOTO33150
23261      IF(ICASPL.EQ.'2STE')GOTO33160
23262      IF(ICASPL.EQ.'2SCD')GOTO33160
23263      IF(ICASPL.EQ.'2S2P')GOTO33160
23264      IF(ICASPL.EQ.'2SLP')GOTO33160
23265      IF(ICASPL.EQ.'2SUP')GOTO33160
23266      IF(ICASPL.EQ.'2SFR')GOTO33165
23267      IF(ICASPL.EQ.'2F2P')GOTO33165
23268      IF(ICASPL.EQ.'2F1P')GOTO33165
23269      IF(ICASPL.EQ.'WABA')GOTO33170
23270      IF(ICASPL.EQ.'WBBA')GOTO33170
23271      IF(ICASPL.EQ.'LABA')GOTO33170
23272      IF(ICASPL.EQ.'LBBA')GOTO33170
23273      IF(ICASPL.EQ.'NABA')GOTO33170
23274      IF(ICASPL.EQ.'NBBA')GOTO33170
23275      IF(ICASPL.EQ.'ZABA')GOTO33170
23276      IF(ICASPL.EQ.'ZBBA')GOTO33170
23277      IF(ICASPL.EQ.'1WTE')GOTO34000
23278      IF(ICASPL.EQ.'1WCD')GOTO34000
23279      IF(ICASPL.EQ.'1W2P')GOTO34000
23280      IF(ICASPL.EQ.'1WLP')GOTO34000
23281      IF(ICASPL.EQ.'1WUP')GOTO34000
23282      IF(ICASPL.EQ.'2WTE')GOTO34010
23283      IF(ICASPL.EQ.'2WCD')GOTO34010
23284      IF(ICASPL.EQ.'2W2P')GOTO34010
23285      IF(ICASPL.EQ.'2WLP')GOTO34010
23286      IF(ICASPL.EQ.'2WUP')GOTO34010
23287      IF(ICASPL.EQ.'MWTE')GOTO34020
23288      IF(ICASPL.EQ.'MWCD')GOTO34020
23289      IF(ICASPL.EQ.'MW2P')GOTO34020
23290      IF(ICASPL.EQ.'MWLP')GOTO34020
23291      IF(ICASPL.EQ.'MWUP')GOTO34020
23292      IF(ICASPL.EQ.'MWUS')GOTO34020
23293      IF(ICASPL.EQ.'KLTE')GOTO34030
23294      IF(ICASPL.EQ.'KLCD')GOTO34030
23295      IF(ICASPL.EQ.'KL2P')GOTO34030
23296      IF(ICASPL.EQ.'KLLP')GOTO34030
23297      IF(ICASPL.EQ.'KLUP')GOTO34030
23298      IF(ICASPL.EQ.'KWTE')GOTO34035
23299      IF(ICASPL.EQ.'KWCD')GOTO34035
23300      IF(ICASPL.EQ.'KW2P')GOTO34035
23301      IF(ICASPL.EQ.'SRTE')GOTO34040
23302      IF(ICASPL.EQ.'SRCD')GOTO34040
23303      IF(ICASPL.EQ.'SR2P')GOTO34040
23304      IF(ICASPL.EQ.'SRLP')GOTO34040
23305      IF(ICASPL.EQ.'SRUP')GOTO34040
23306      IF(ICASPL.EQ.'METE')GOTO34050
23307      IF(ICASPL.EQ.'MECD')GOTO34050
23308      IF(ICASPL.EQ.'ME2P')GOTO34050
23309      IF(ICASPL.EQ.'FZTE')GOTO34060
23310      IF(ICASPL.EQ.'FZCD')GOTO34060
23311      IF(ICASPL.EQ.'FZ2P')GOTO34060
23312      IF(ICASPL.EQ.'QUTE')GOTO34070
23313      IF(ICASPL.EQ.'QUCD')GOTO34070
23314      IF(ICASPL.EQ.'QU2P')GOTO34070
23315      IF(ICASPL.EQ.'PATE')GOTO34075
23316      IF(ICASPL.EQ.'PAT2')GOTO34075
23317      IF(ICASPL.EQ.'PACD')GOTO34075
23318      IF(ICASPL.EQ.'PAPV')GOTO34075
23319      IF(ICASPL.EQ.'FMAT')GOTO34080
23320      IF(ICASPL.EQ.'LMAT')GOTO34080
23321      IF(ICASPL.EQ.'FNOM')GOTO34080
23322      IF(ICASPL.EQ.'LNOM')GOTO34080
23323      IF(ICASPL.EQ.'SHDI')GOTO34090
23324      IF(ICASPL.EQ.'SHEI')GOTO34090
23325      IF(ICASPL.EQ.'SINR')GOTO34095
23326      IF(ICASPL.EQ.'SEIR')GOTO34095
23327      IF(ICASPL.EQ.'SIDI')GOTO34100
23328      IF(ICASPL.EQ.'SDIR')GOTO34105
23329      IF(ICASPL.EQ.'JABE')GOTO34110
23330      IF(ICASPL.EQ.'JAPV')GOTO34110
23331      IF(ICASPL.EQ.'JACD')GOTO34110
23332      IF(ICASPL.EQ.'LCL ')GOTO34120
23333      IF(ICASPL.EQ.'UCL ')GOTO34120
23334      IF(ICASPL.EQ.'1LCL')GOTO34120
23335      IF(ICASPL.EQ.'1UCL')GOTO34120
23336      IF(ICASPL.EQ.'LPL ')GOTO34130
23337      IF(ICASPL.EQ.'UPL ')GOTO34130
23338      IF(ICASPL.EQ.'1LPL')GOTO34130
23339      IF(ICASPL.EQ.'1UPL')GOTO34130
23340      IF(ICASPL.EQ.'LPB ')GOTO34130
23341      IF(ICASPL.EQ.'UPB ')GOTO34130
23342      IF(ICASPL.EQ.'1LPB')GOTO34130
23343      IF(ICASPL.EQ.'1UPB')GOTO34130
23344      IF(ICASPL.EQ.'DSLA' .AND. NUMV2.EQ.3)GOTO32100
23345      IF(ICASPL.EQ.'DHHD' .AND. NUMV2.EQ.3)GOTO32100
23346      IF(ICASPL.EQ.'DSMM' .AND. NUMV2.EQ.3)GOTO32100
23347      IF(ICASPL.EQ.'DSSE' .AND. NUMV2.EQ.3)GOTO32100
23348      IF(ICASPL.EQ.'MPAU' .AND. NUMV2.EQ.3)GOTO32200
23349      IF(ICASPL.EQ.'MPSE' .AND. NUMV2.EQ.3)GOTO32200
23350      IF(ICASPL.EQ.'MMPA' .AND. NUMV2.EQ.3)GOTO32200
23351      IF(ICASPL.EQ.'MMPS' .AND. NUMV2.EQ.3)GOTO32200
23352      IF(ICASPL.EQ.'VARU' .AND. NUMV2.EQ.3)GOTO32200
23353      IF(ICASPL.EQ.'VRSE' .AND. NUMV2.EQ.3)GOTO32200
23354      IF(ICASPL.EQ.'BOB ' .AND. NUMV2.EQ.3)GOTO32300
23355      IF(ICASPL.EQ.'BOBS' .AND. NUMV2.EQ.3)GOTO32300
23356      IF(ICASPL.EQ.'GCIN' .AND. NUMV2.EQ.3)GOTO32400
23357      IF(ICASPL.EQ.'GCIS' .AND. NUMV2.EQ.3)GOTO32400
23358      IF(ICASPL.EQ.'BCP ' .AND. NUMV2.EQ.3)GOTO32500
23359      IF(ICASPL.EQ.'BCPS' .AND. NUMV2.EQ.3)GOTO32500
23360      IF(ICASPL.EQ.'MMEA' .AND. NUMV2.EQ.3)GOTO32600
23361      IF(ICASPL.EQ.'MMES' .AND. NUMV2.EQ.3)GOTO32600
23362      IF(ICASPL.EQ.'FAIR' .AND. NUMV2.EQ.3)GOTO32700
23363      IF(ICASPL.EQ.'FWSE' .AND. NUMV2.EQ.3)GOTO32700
23364      IF(ICASPL.EQ.'GDEA' .AND. NUMV2.EQ.3)GOTO32800
23365      IF(ICASPL.EQ.'GDSE' .AND. NUMV2.EQ.3)GOTO32800
23366      IF(ICASPL.EQ.'GDSN' .AND. NUMV2.EQ.3)GOTO32800
23367      IF(ICASPL.EQ.'GDZ1' .AND. NUMV2.EQ.3)GOTO32800
23368      IF(ICASPL.EQ.'GDZ2' .AND. NUMV2.EQ.3)GOTO32800
23369      IF(ICASPL.EQ.'SCEB' .AND. NUMV2.EQ.3)GOTO32900
23370      IF(ICASPL.EQ.'SESE' .AND. NUMV2.EQ.3)GOTO32900
23371      IF(ICASPL.EQ.'DSLA' .AND. NUMV2.EQ.2)GOTO32070
23372      IF(ICASPL.EQ.'DHHD' .AND. NUMV2.EQ.2)GOTO32070
23373      IF(ICASPL.EQ.'DSMM' .AND. NUMV2.EQ.2)GOTO32070
23374      IF(ICASPL.EQ.'DSSE' .AND. NUMV2.EQ.2)GOTO32070
23375      IF(ICASPL.EQ.'MPAU' .AND. NUMV2.EQ.2)GOTO32070
23376      IF(ICASPL.EQ.'MPSE' .AND. NUMV2.EQ.2)GOTO32070
23377      IF(ICASPL.EQ.'MMPA' .AND. NUMV2.EQ.2)GOTO32070
23378      IF(ICASPL.EQ.'MMPS' .AND. NUMV2.EQ.2)GOTO32070
23379      IF(ICASPL.EQ.'VARU' .AND. NUMV2.EQ.2)GOTO32070
23380      IF(ICASPL.EQ.'VRSE' .AND. NUMV2.EQ.2)GOTO32070
23381      IF(ICASPL.EQ.'BOB ' .AND. NUMV2.EQ.2)GOTO32070
23382      IF(ICASPL.EQ.'BOBS' .AND. NUMV2.EQ.2)GOTO32070
23383      IF(ICASPL.EQ.'GCIN' .AND. NUMV2.EQ.2)GOTO32070
23384      IF(ICASPL.EQ.'GCIS' .AND. NUMV2.EQ.2)GOTO32070
23385      IF(ICASPL.EQ.'BCP ' .AND. NUMV2.EQ.2)GOTO32070
23386      IF(ICASPL.EQ.'BCPS' .AND. NUMV2.EQ.2)GOTO32070
23387      IF(ICASPL.EQ.'MMEA' .AND. NUMV2.EQ.2)GOTO32070
23388      IF(ICASPL.EQ.'MMES' .AND. NUMV2.EQ.2)GOTO32070
23389      IF(ICASPL.EQ.'FAIR' .AND. NUMV2.EQ.2)GOTO32070
23390      IF(ICASPL.EQ.'FWSE' .AND. NUMV2.EQ.2)GOTO32070
23391      IF(ICASPL.EQ.'GDEA' .AND. NUMV2.EQ.2)GOTO32070
23392      IF(ICASPL.EQ.'GDSE' .AND. NUMV2.EQ.2)GOTO32070
23393      IF(ICASPL.EQ.'GDSN' .AND. NUMV2.EQ.2)GOTO32070
23394      IF(ICASPL.EQ.'GDZ1' .AND. NUMV2.EQ.2)GOTO32070
23395      IF(ICASPL.EQ.'GDZ2' .AND. NUMV2.EQ.2)GOTO32070
23396      IF(ICASPL.EQ.'SCEB' .AND. NUMV2.EQ.2)GOTO32070
23397      IF(ICASPL.EQ.'SESE' .AND. NUMV2.EQ.2)GOTO32070
23398C
23399      IF(ICASPL.EQ.'DMEA')GOTO12180
23400      IF(ICASPL.EQ.'DMDM')GOTO12190
23401      IF(ICASPL.EQ.'DMED')GOTO12200
23402      IF(ICASPL.EQ.'DGEO')GOTO12230
23403      IF(ICASPL.EQ.'DHAR')GOTO12240
23404      IF(ICASPL.EQ.'DHDL')GOTO12250
23405      IF(ICASPL.EQ.'DBIW')GOTO12260
23406      IF(ICASPL.EQ.'DSD ')GOTO12270
23407      IF(ICASPL.EQ.'DRMS')GOTO12275
23408      IF(ICASPL.EQ.'DVAR')GOTO12280
23409      IF(ICASPL.EQ.'DAAD')GOTO12290
23410      IF(ICASPL.EQ.'DMAD')GOTO12300
23411      IF(ICASPL.EQ.'DMAN')GOTO12300
23412      IF(ICASPL.EQ.'DIQR')GOTO12310
23413      IF(ICASPL.EQ.'DBIM')GOTO12340
23414      IF(ICASPL.EQ.'DBIS')GOTO12350
23415      IF(ICASPL.EQ.'DGSD')GOTO12370
23416      IF(ICASPL.EQ.'DRAN')GOTO12380
23417      IF(ICASPL.EQ.'DMDR')GOTO12390
23418      IF(ICASPL.EQ.'DQSE')GOTO12400
23419      IF(ICASPL.EQ.'DQUA')GOTO12405
23420      IF(ICASPL.EQ.'DSKE')GOTO12410
23421      IF(ICASPL.EQ.'DGSK')GOTO12412
23422      IF(ICASPL.EQ.'DPSK')GOTO12414
23423      IF(ICASPL.EQ.'DKUR')GOTO12420
23424      IF(ICASPL.EQ.'DEKU')GOTO12425
23425      IF(ICASPL.EQ.'DRSD')GOTO12430
23426      IF(ICASPL.EQ.'DSDM')GOTO12440
23427      IF(ICASPL.EQ.'DRVA')GOTO12450
23428      IF(ICASPL.EQ.'DVAM')GOTO12460
23429      IF(ICASPL.EQ.'DMIN')GOTO12470
23430      IF(ICASPL.EQ.'DMAX')GOTO12480
23431      IF(ICASPL.EQ.'DEXT')GOTO12490
23432      IF(ICASPL.EQ.'DCVA')GOTO12495
23433      IF(ICASPL.EQ.'DCOU')GOTO12500
23434      IF(ICASPL.EQ.'DSUM')GOTO12510
23435      IF(ICASPL.EQ.'DPRO')GOTO12512
23436      IF(ICASPL.EQ.'DSN')GOTO12520
23437      IF(ICASPL.EQ.'DQN')GOTO12530
23438      IF(ICASPL.EQ.'DBPR')GOTO12570
23439      IF(ICASPL.EQ.'DBUC')GOTO12570
23440      IF(ICASPL.EQ.'DBLC')GOTO12570
23441      IF(ICASPL.EQ.'DPER')GOTO12600
23442      IF(ICASPL.EQ.'D1DE')GOTO12600
23443      IF(ICASPL.EQ.'D2DE')GOTO12600
23444      IF(ICASPL.EQ.'D3DE')GOTO12600
23445      IF(ICASPL.EQ.'D4DE')GOTO12600
23446      IF(ICASPL.EQ.'D5DE')GOTO12600
23447      IF(ICASPL.EQ.'D6DE')GOTO12600
23448      IF(ICASPL.EQ.'D7DE')GOTO12600
23449      IF(ICASPL.EQ.'D8DE')GOTO12600
23450      IF(ICASPL.EQ.'D9DE')GOTO12600
23451      IF(ICASPL.EQ.'DLHI')GOTO12610
23452      IF(ICASPL.EQ.'DUHI')GOTO12620
23453      IF(ICASPL.EQ.'DLQU')GOTO12630
23454      IF(ICASPL.EQ.'DUQU')GOTO12640
23455      IF(ICASPL.EQ.'10LD')GOTO12650
23456      IF(ICASPL.EQ.'12LD')GOTO12660
23457      IF(ICASPL.EQ.'15LD')GOTO12670
23458      IF(ICASPL.EQ.'17LD')GOTO12680
23459      IF(ICASPL.EQ.'20LD')GOTO12690
23460      IF(ICASPL.EQ.'10SD')GOTO12700
23461      IF(ICASPL.EQ.'12SD')GOTO12710
23462      IF(ICASPL.EQ.'15SD')GOTO12720
23463      IF(ICASPL.EQ.'17SD')GOTO12730
23464      IF(ICASPL.EQ.'20SD')GOTO12740
23465      IF(ICASPL.EQ.'RPSD')GOTO12750
23466      IF(ICASPL.EQ.'RPRA')GOTO12760
23467C
23468      IF(ICASPL.EQ.'CVLC')GOTO3185
23469      IF(ICASPL.EQ.'CVUC')GOTO3185
23470      IF(ICASPL.EQ.'CVLO')GOTO3185
23471      IF(ICASPL.EQ.'CVUO')GOTO3185
23472      IF(ICASPL.EQ.'SCVL')GOTO3185
23473      IF(ICASPL.EQ.'SCVU')GOTO3185
23474      IF(ICASPL.EQ.'SCVA')GOTO3185
23475      IF(ICASPL.EQ.'LCVA')GOTO3185
23476      IF(ICASPL.EQ.'LLCV')GOTO3185
23477      IF(ICASPL.EQ.'ULCV')GOTO3185
23478C
23479      IF(ICASPL.EQ.'CCVA')GOTO3195
23480      IF(ICASPL.EQ.'UCCV')GOTO3195
23481      IF(ICASPL.EQ.'LCCV')GOTO3195
23482      IF(ICASPL.EQ.'UCC2')GOTO3195
23483C
23484      IF(ICASPL.EQ.'1CTE')GOTO34280
23485      IF(ICASPL.EQ.'1CCD')GOTO34280
23486      IF(ICASPL.EQ.'1C2P')GOTO34280
23487      IF(ICASPL.EQ.'1CLP')GOTO34280
23488      IF(ICASPL.EQ.'1CUP')GOTO34280
23489      IF(ICASPL.EQ.'S1CT')GOTO34290
23490      IF(ICASPL.EQ.'S1CC')GOTO34290
23491      IF(ICASPL.EQ.'S1CP')GOTO34290
23492      IF(ICASPL.EQ.'2CTE')GOTO34300
23493      IF(ICASPL.EQ.'2CCD')GOTO34300
23494      IF(ICASPL.EQ.'2C2P')GOTO34300
23495      IF(ICASPL.EQ.'2CLP')GOTO34300
23496      IF(ICASPL.EQ.'2CUP')GOTO34300
23497      IF(ICASPL.EQ.'PMEA')THEN
23498        ICASE='MEAN'
23499        CALL DPEXPY(ICASE,TEMP,TEMPZ,TEMPZ3,NS2,NSZ,NSZ3,
23500     1              XTEMP1,XTEMP2,XTEMP3,AVAL1,AVAL2,AVAL3,
23501     1              IBUGG3,ISUBRO,IFOUND,IERROR)
23502        RIGHT=AVAL1
23503        GOTO79000
23504      ENDIF
23505C
23506C     STATISTIC BLOCK
23507C
23508      IFORSW='E'
23509      IFTEXP='+'
23510      IFTORD='DATA'
23511C
23512      IF(ICASPL.EQ.'SBL1')THEN
23513C
23514C       STEP 1: SAVE FULL SAMPLE RESPONSE VALUES
23515C
23516        IF(ISBCP1.GE.1)THEN
23517          ICNT=0
23518          NMAX=0
23519          DO8111JJ=1,ISBCP1
23520            IHP=ISBPL1(JJ)(1:4)
23521            IHP2=ISBPL1(JJ)(5:8)
23522            DO8113II=1,NUMNAM
23523              IF(IHP.EQ.IHNAME(II) .AND. IHP2.EQ.IHNAM2(II) .AND.
23524     1           IUSE(II).EQ.'V')THEN
23525                ICNT=ICNT+1
23526                ILISRT=II
23527                ILISR(ICNT)=ILISRT
23528                ICOLR(ICNT)=IVALUE(ILISRT)
23529                NRIGHT(ICNT)=IN(ILISRT)
23530                IF(NRIGHT(ICNT).GT.NMAX)NMAX=NRIGHT(ICNT)
23531                GOTO8111
23532              ELSEIF(IHP.EQ.IHNAME(II) .AND. IHP2.EQ.IHNAM2(II) .AND.
23533     1           IUSE(II).NE.'V')THEN
23534                WRITE(ICOUT,11581)
23535                CALL DPWRST('XXX','BUG ')
23536                WRITE(ICOUT,8116)IHP,IHP2
23537 8116           FORMAT('      ',A4,A4,' FOUND IN NAME TABLE, BUT NOT ',
23538     1                 'AS A VARIABLE.')
23539                CALL DPWRST('XXX','BUG ')
23540                IERROR='YES'
23541                GOTO9000
23542              ENDIF
23543 8113       CONTINUE
23544            WRITE(ICOUT,11581)
23545            CALL DPWRST('XXX','BUG ')
23546            WRITE(ICOUT,8118)IHP,IHP2
23547 8118       FORMAT('      ',A4,A4,' NOT FOUND IN NAME TABLE.')
23548            CALL DPWRST('XXX','BUG ')
23549            IERROR='YES'
23550            GOTO9000
23551 8111     CONTINUE
23552C
23553          IOP='OPEN'
23554          IFLAG1=0
23555          IFLAG2=0
23556          IFLAG3=0
23557          IFLAG4=0
23558          IFLAG5=1
23559          CALL DPAUFI(IOP,IFLAG1,IFLAG2,IFLAG3,IFLAG4,IFLAG5,
23560     1                IOUNI1,IOUNI2,IOUNI3,IOUNI4,IOUNI5,
23561     1                IBUGG3,ISUBRO,IERROR)
23562          IF(IERROR.EQ.'YES')GOTO9000
23563C
23564          J=0
23565          DO8120II=1,NMAX
23566            DO8121JJ=1,ICNT
23567              ICOL=ICOLR(JJ)
23568              NROW=NRIGHT(JJ)
23569C
23570              J=J+1
23571              IJ=MAXN*(ICOL-1)+II
23572              IF(ICOL.LE.MAXCOL)AVALV(JJ)=V(IJ)
23573              IF(ICOL.EQ.MAXCP1)AVALV(JJ)=PRED(II)
23574              IF(ICOL.EQ.MAXCP2)AVALV(JJ)=RES(II)
23575              IF(ICOL.EQ.MAXCP3)AVALV(JJ)=YPLOT(II)
23576              IF(ICOL.EQ.MAXCP4)AVALV(JJ)=XPLOT(II)
23577              IF(ICOL.EQ.MAXCP5)AVALV(JJ)=X2PLOT(II)
23578              IF(ICOL.EQ.MAXCP6)AVALV(JJ)=TAGPLO(II)
23579C
23580 8121       CONTINUE
23581            WRITE(IOUNI5,'(20E17.9)')(AVALV(KK),KK=1,ICNT)
23582 8120     CONTINUE
23583          REWIND(IOUNI5)
23584C
23585C         STEP 2: NOW PUT IN TEMPORARY VALUES OF RESPONSE
23586C                 VARIABLES INTO NAME TABLE
23587C
23588          DO8131JJ=1,ICNT
23589            ICOL=ICOLR(JJ)
23590            NROW=NS2
23591            IF(JJ.EQ.2)NROW=NSZ
23592            IF(JJ.EQ.3)NROW=NSZ3
23593            J=0
23594            DO8130II=1,NROW
23595C
23596              J=J+1
23597              IF(JJ.EQ.1)THEN
23598                IJ=MAXN*(ICOL-1)+II
23599                IF(ICOL.LE.MAXCOL)V(IJ)=TEMP(II)
23600                IF(ICOL.EQ.MAXCP1)PRED(II)=TEMP(II)
23601                IF(ICOL.EQ.MAXCP2)RES(II)=TEMP(II)
23602                IF(ICOL.EQ.MAXCP3)YPLOT(II)=TEMP(II)
23603                IF(ICOL.EQ.MAXCP4)XPLOT(II)=TEMP(II)
23604                IF(ICOL.EQ.MAXCP5)X2PLOT(II)=TEMP(II)
23605                IF(ICOL.EQ.MAXCP6)TAGPLO(II)=TEMP(II)
23606              ELSEIF(JJ.EQ.2)THEN
23607                IJ=MAXN*(ICOL-1)+II
23608                IF(ICOL.LE.MAXCOL)V(IJ)=TEMPZ(II)
23609                IF(ICOL.EQ.MAXCP1)PRED(II)=TEMPZ(II)
23610                IF(ICOL.EQ.MAXCP2)RES(II)=TEMPZ(II)
23611                IF(ICOL.EQ.MAXCP3)YPLOT(II)=TEMPZ(II)
23612                IF(ICOL.EQ.MAXCP4)XPLOT(II)=TEMPZ(II)
23613                IF(ICOL.EQ.MAXCP5)X2PLOT(II)=TEMPZ(II)
23614                IF(ICOL.EQ.MAXCP6)TAGPLO(II)=TEMPZ(II)
23615              ELSEIF(JJ.EQ.3)THEN
23616                IJ=MAXN*(ICOL-1)+II
23617                IF(ICOL.LE.MAXCOL)V(IJ)=TEMPZ3(II)
23618                IF(ICOL.EQ.MAXCP1)PRED(II)=TEMPZ3(II)
23619                IF(ICOL.EQ.MAXCP2)RES(II)=TEMPZ3(II)
23620                IF(ICOL.EQ.MAXCP3)YPLOT(II)=TEMPZ3(II)
23621                IF(ICOL.EQ.MAXCP4)XPLOT(II)=TEMPZ3(II)
23622                IF(ICOL.EQ.MAXCP5)X2PLOT(II)=TEMPZ3(II)
23623                IF(ICOL.EQ.MAXCP6)TAGPLO(II)=TEMPZ3(II)
23624              ENDIF
23625C
23626 8130       CONTINUE
23627            ILISRT=ILISR(JJ)
23628            IN(ILISRT)=NROW
23629 8131     CONTINUE
23630C
23631        ENDIF
23632C
23633C       STEP 3: CALL DPSBEX TO EXECUTE THE FUNTION BLOCK
23634C
23635        ISBNAM=ISBNA1
23636        IFEEDB='OFF'
23637        CALL DPSBEX(ISBNAM,IANGLU,ISEED,IFTEXP,IFTORD,IFORSW,
23638     1              IBUGG3,IBUGG3,IBUGG3,IBUGG3,IBUGG3,
23639     1              ISUBRO,IFOUND,IERROR)
23640        IFEEDB=IFEESV
23641        IF(IERROR.EQ.'YES')GOTO9000
23642C
23643C       STEP 4: RETRIEVE RESPONSE PARAMETER
23644C
23645        DO8140II=1,NUMNAM
23646          IF(ISBAN1(1:4).EQ.IHNAME(II) .AND.
23647     1       ISBAN1(5:8).EQ.IHNAM2(II))THEN
23648            IF(IUSE(II).EQ.'P')THEN
23649              RIGHT=VALUE(II)
23650              GOTO8149
23651            ELSE
23652              IERROR='YES'
23653              GOTO9000
23654            ENDIF
23655          ENDIF
23656 8140   CONTINUE
23657C
23658        WRITE(ICOUT,11581)
23659        CALL DPWRST('XXX','BUG ')
23660        WRITE(ICOUT,8141)
23661 8141   FORMAT('      EXPECTED PARAMETER NOT FOUND IN NAME TABLE.')
23662        CALL DPWRST('XXX','BUG ')
23663        WRITE(ICOUT,8143)ISBAN1
23664 8143   FORMAT('      EXPECTED NAME = ',A8)
23665        CALL DPWRST('XXX','BUG ')
23666        IERROR='YES'
23667        GOTO9000
23668C
23669 8149   CONTINUE
23670C
23671C       STEP 5: RESTORE THE NAME TABLE AND CLOSE dpst5f.data
23672C
23673        J=0
23674        DO8150II=1,NMAX
23675C
23676          READ(IOUNI5,'(20E17.9)')(AVALV(KK),KK=1,ICNT)
23677          J=J+1
23678C
23679          DO8151JJ=1,ICNT
23680            ICOL=ICOLR(JJ)
23681            IJ=MAXN*(ICOL-1)+II
23682            IF(ICOL.LE.MAXCOL)V(IJ)=AVALV(JJ)
23683            IF(ICOL.EQ.MAXCP1)PRED(II)=AVALV(JJ)
23684            IF(ICOL.EQ.MAXCP2)RES(II)=AVALV(JJ)
23685            IF(ICOL.EQ.MAXCP3)YPLOT(II)=AVALV(JJ)
23686            IF(ICOL.EQ.MAXCP4)XPLOT(II)=AVALV(JJ)
23687            IF(ICOL.EQ.MAXCP5)X2PLOT(II)=AVALV(JJ)
23688            IF(ICOL.EQ.MAXCP6)TAGPLO(II)=AVALV(JJ)
23689C
23690 8151     CONTINUE
23691 8150   CONTINUE
23692C
23693        DO8153JJ=1,ICNT
23694          IN(ICOLR(JJ))=NRIGHT(JJ)
23695 8153   CONTINUE
23696C
23697        IOP='CLOS'
23698        CALL DPAUFI(IOP,IFLAG1,IFLAG2,IFLAG3,IFLAG4,IFLAG5,
23699     1              IOUNI1,IOUNI2,IOUNI3,IOUNI4,IOUNI5,
23700     1              IBUGG3,ISUBRO,IERROR)
23701C
23702        GOTO79000
23703C
23704      ELSEIF(ICASPL.EQ.'SBL2')THEN
23705C
23706C       STEP 1: SAVE FULL SAMPLE RESPONSE VALUES
23707C
23708        IF(ISBCP2.GE.1)THEN
23709          ICNT=0
23710          NMAX=0
23711          DO8211JJ=1,ISBCP2
23712            IHP=ISBPL2(JJ)(1:4)
23713            IHP2=ISBPL2(JJ)(5:8)
23714            DO8213II=1,NUMNAM
23715              IF(IHP.EQ.IHNAME(II) .AND. IHP2.EQ.IHNAM2(II) .AND.
23716     1           IUSE(II).EQ.'V')THEN
23717                ICNT=ICNT+1
23718                ILISRT=II
23719                ILISR(ICNT)=ILISRT
23720                ICOLR(ICNT)=IVALUE(ILISRT)
23721                NRIGHT(ICNT)=IN(ILISRT)
23722                IF(NRIGHT(ICNT).GT.NMAX)NMAX=NRIGHT(ICNT)
23723                GOTO8211
23724              ELSEIF(IHP.EQ.IHNAME(II) .AND. IHP2.EQ.IHNAM2(II) .AND.
23725     1           IUSE(II).NE.'V')THEN
23726                WRITE(ICOUT,11582)
23727                CALL DPWRST('XXX','BUG ')
23728                WRITE(ICOUT,8216)IHP,IHP2
23729 8216           FORMAT('      ',A4,A4,' FOUND IN NAME TABLE, BUT NOT ',
23730     1                 'AS A VARIABLE.')
23731                CALL DPWRST('XXX','BUG ')
23732                IERROR='YES'
23733                GOTO9000
23734              ENDIF
23735 8213       CONTINUE
23736            WRITE(ICOUT,11582)
23737            CALL DPWRST('XXX','BUG ')
23738            WRITE(ICOUT,8218)IHP,IHP2
23739 8218       FORMAT('      ',A4,A4,' NOT FOUND IN NAME TABLE.')
23740            CALL DPWRST('XXX','BUG ')
23741            IERROR='YES'
23742            GOTO9000
23743 8211     CONTINUE
23744C
23745          IOP='OPEN'
23746          IFLAG1=0
23747          IFLAG2=0
23748          IFLAG3=0
23749          IFLAG4=0
23750          IFLAG5=1
23751          CALL DPAUFI(IOP,IFLAG1,IFLAG2,IFLAG3,IFLAG4,IFLAG5,
23752     1                IOUNI1,IOUNI2,IOUNI3,IOUNI4,IOUNI5,
23753     1                IBUGG3,ISUBRO,IERROR)
23754          IF(IERROR.EQ.'YES')GOTO9000
23755C
23756          J=0
23757          DO8220II=1,NMAX
23758            DO8221JJ=1,ICNT
23759              ICOL=ICOLR(JJ)
23760              NROW=NRIGHT(JJ)
23761C
23762              J=J+1
23763              IJ=MAXN*(ICOL-1)+II
23764              IF(ICOL.LE.MAXCOL)AVALV(JJ)=V(IJ)
23765              IF(ICOL.EQ.MAXCP1)AVALV(JJ)=PRED(II)
23766              IF(ICOL.EQ.MAXCP2)AVALV(JJ)=RES(II)
23767              IF(ICOL.EQ.MAXCP3)AVALV(JJ)=YPLOT(II)
23768              IF(ICOL.EQ.MAXCP4)AVALV(JJ)=XPLOT(II)
23769              IF(ICOL.EQ.MAXCP5)AVALV(JJ)=X2PLOT(II)
23770              IF(ICOL.EQ.MAXCP6)AVALV(JJ)=TAGPLO(II)
23771C
23772 8221       CONTINUE
23773            WRITE(IOUNI5,'(20E17.9)')(AVALV(KK),KK=1,ICNT)
23774 8220     CONTINUE
23775          REWIND(IOUNI5)
23776C
23777C         STEP 2: NOW PUT IN TEMPORARY VALUES OF RESPONSE
23778C                 VARIABLES INTO NAME TABLE
23779C
23780          DO8231JJ=1,ICNT
23781            ICOL=ICOLR(JJ)
23782            NROW=NS2
23783            IF(JJ.EQ.2)NROW=NSZ
23784            IF(JJ.EQ.3)NROW=NSZ3
23785            J=0
23786            DO8230II=1,NROW
23787C
23788              J=J+1
23789              IF(JJ.EQ.1)THEN
23790                IJ=MAXN*(ICOL-1)+II
23791                IF(ICOL.LE.MAXCOL)V(IJ)=TEMP(II)
23792                IF(ICOL.EQ.MAXCP1)PRED(II)=TEMP(II)
23793                IF(ICOL.EQ.MAXCP2)RES(II)=TEMP(II)
23794                IF(ICOL.EQ.MAXCP3)YPLOT(II)=TEMP(II)
23795                IF(ICOL.EQ.MAXCP4)XPLOT(II)=TEMP(II)
23796                IF(ICOL.EQ.MAXCP5)X2PLOT(II)=TEMP(II)
23797                IF(ICOL.EQ.MAXCP6)TAGPLO(II)=TEMP(II)
23798              ELSEIF(JJ.EQ.2)THEN
23799                IJ=MAXN*(ICOL-1)+II
23800                IF(ICOL.LE.MAXCOL)V(IJ)=TEMPZ(II)
23801                IF(ICOL.EQ.MAXCP1)PRED(II)=TEMPZ(II)
23802                IF(ICOL.EQ.MAXCP2)RES(II)=TEMPZ(II)
23803                IF(ICOL.EQ.MAXCP3)YPLOT(II)=TEMPZ(II)
23804                IF(ICOL.EQ.MAXCP4)XPLOT(II)=TEMPZ(II)
23805                IF(ICOL.EQ.MAXCP5)X2PLOT(II)=TEMPZ(II)
23806                IF(ICOL.EQ.MAXCP6)TAGPLO(II)=TEMPZ(II)
23807              ELSEIF(JJ.EQ.3)THEN
23808                IJ=MAXN*(ICOL-1)+II
23809                IF(ICOL.LE.MAXCOL)V(IJ)=TEMPZ3(II)
23810                IF(ICOL.EQ.MAXCP1)PRED(II)=TEMPZ3(II)
23811                IF(ICOL.EQ.MAXCP2)RES(II)=TEMPZ3(II)
23812                IF(ICOL.EQ.MAXCP3)YPLOT(II)=TEMPZ3(II)
23813                IF(ICOL.EQ.MAXCP4)XPLOT(II)=TEMPZ3(II)
23814                IF(ICOL.EQ.MAXCP5)X2PLOT(II)=TEMPZ3(II)
23815                IF(ICOL.EQ.MAXCP6)TAGPLO(II)=TEMPZ3(II)
23816              ENDIF
23817C
23818 8230       CONTINUE
23819            ILISRT=ILISR(JJ)
23820            IN(ILISRT)=NROW
23821 8231     CONTINUE
23822C
23823        ENDIF
23824C
23825C       STEP 3: CALL DPSBEX TO EXECUTE THE FUNTION BLOCK
23826C
23827        ISBNAM=ISBNA2
23828        IFEEDB='OFF'
23829        CALL DPSBEX(ISBNAM,IANGLU,ISEED,IFTEXP,IFTORD,IFORSW,
23830     1              IBUGG3,IBUGG3,IBUGG3,IBUGG3,IBUGG3,
23831     1              ISUBRO,IFOUND,IERROR)
23832        IFEEDB=IFEESV
23833        IF(IERROR.EQ.'YES')GOTO9000
23834C
23835C       STEP 4: RETRIEVE RESPONSE PARAMETER
23836C
23837        DO8240II=1,NUMNAM
23838          IF(ISBAN2(1:4).EQ.IHNAME(II) .AND.
23839     1       ISBAN2(5:8).EQ.IHNAM2(II))THEN
23840            IF(IUSE(II).EQ.'P')THEN
23841              RIGHT=VALUE(II)
23842              GOTO8249
23843            ELSE
23844              IERROR='YES'
23845              GOTO9000
23846            ENDIF
23847          ENDIF
23848 8240   CONTINUE
23849C
23850        WRITE(ICOUT,11582)
23851        CALL DPWRST('XXX','BUG ')
23852        WRITE(ICOUT,8241)
23853 8241   FORMAT('      EXPECTED PARAMETER NOT FOUND IN NAME TABLE.')
23854        CALL DPWRST('XXX','BUG ')
23855        WRITE(ICOUT,8243)ISBAN2
23856 8243   FORMAT('      EXPECTED NAME = ',A8)
23857        CALL DPWRST('XXX','BUG ')
23858        IERROR='YES'
23859        GOTO9000
23860C
23861 8249   CONTINUE
23862C
23863C       STEP 5: RESTORE THE NAME TABLE AND CLOSE dpst5f.data
23864C
23865        J=0
23866        DO8250II=1,NMAX
23867C
23868          READ(IOUNI5,'(20E17.9)')(AVALV(KK),KK=1,ICNT)
23869          J=J+1
23870C
23871          DO8251JJ=1,ICNT
23872            ICOL=ICOLR(JJ)
23873            IJ=MAXN*(ICOL-1)+II
23874            IF(ICOL.LE.MAXCOL)V(IJ)=AVALV(JJ)
23875            IF(ICOL.EQ.MAXCP1)PRED(II)=AVALV(JJ)
23876            IF(ICOL.EQ.MAXCP2)RES(II)=AVALV(JJ)
23877            IF(ICOL.EQ.MAXCP3)YPLOT(II)=AVALV(JJ)
23878            IF(ICOL.EQ.MAXCP4)XPLOT(II)=AVALV(JJ)
23879            IF(ICOL.EQ.MAXCP5)X2PLOT(II)=AVALV(JJ)
23880            IF(ICOL.EQ.MAXCP6)TAGPLO(II)=AVALV(JJ)
23881C
23882 8251     CONTINUE
23883 8250   CONTINUE
23884C
23885        DO8253JJ=1,ICNT
23886          IN(ICOLR(JJ))=NRIGHT(JJ)
23887 8253   CONTINUE
23888C
23889        IOP='CLOS'
23890        CALL DPAUFI(IOP,IFLAG1,IFLAG2,IFLAG3,IFLAG4,IFLAG5,
23891     1              IOUNI1,IOUNI2,IOUNI3,IOUNI4,IOUNI5,
23892     1              IBUGG3,ISUBRO,IERROR)
23893C
23894        GOTO79000
23895C
23896      ELSEIF(ICASPL.EQ.'SBL3')THEN
23897C
23898C       STEP 1: SAVE FULL SAMPLE RESPONSE VALUES
23899C
23900        IF(ISBCP3.GE.1)THEN
23901          ICNT=0
23902          NMAX=0
23903          DO8311JJ=1,ISBCP3
23904            IHP=ISBPL3(JJ)(1:4)
23905            IHP2=ISBPL3(JJ)(5:8)
23906            DO8313II=1,NUMNAM
23907              IF(IHP.EQ.IHNAME(II) .AND. IHP2.EQ.IHNAM2(II) .AND.
23908     1           IUSE(II).EQ.'V')THEN
23909                ICNT=ICNT+1
23910                ILISRT=II
23911                ILISR(ICNT)=ILISRT
23912                ICOLR(ICNT)=IVALUE(ILISRT)
23913                NRIGHT(ICNT)=IN(ILISRT)
23914                IF(NRIGHT(ICNT).GT.NMAX)NMAX=NRIGHT(ICNT)
23915                GOTO8311
23916              ELSEIF(IHP.EQ.IHNAME(II) .AND. IHP2.EQ.IHNAM2(II) .AND.
23917     1           IUSE(II).NE.'V')THEN
23918                WRITE(ICOUT,11583)
23919                CALL DPWRST('XXX','BUG ')
23920                WRITE(ICOUT,8316)IHP,IHP2
23921 8316           FORMAT('      ',A4,A4,' FOUND IN NAME TABLE, BUT NOT ',
23922     1                 'AS A VARIABLE.')
23923                CALL DPWRST('XXX','BUG ')
23924                IERROR='YES'
23925                GOTO9000
23926              ENDIF
23927 8313       CONTINUE
23928            WRITE(ICOUT,11583)
23929            CALL DPWRST('XXX','BUG ')
23930            WRITE(ICOUT,8318)IHP,IHP2
23931 8318       FORMAT('      ',A4,A4,' NOT FOUND IN NAME TABLE.')
23932            CALL DPWRST('XXX','BUG ')
23933            IERROR='YES'
23934            GOTO9000
23935 8311     CONTINUE
23936C
23937          IOP='OPEN'
23938          IFLAG1=0
23939          IFLAG2=0
23940          IFLAG3=0
23941          IFLAG4=0
23942          IFLAG5=1
23943          CALL DPAUFI(IOP,IFLAG1,IFLAG2,IFLAG3,IFLAG4,IFLAG5,
23944     1                IOUNI1,IOUNI2,IOUNI3,IOUNI4,IOUNI5,
23945     1                IBUGG3,ISUBRO,IERROR)
23946          IF(IERROR.EQ.'YES')GOTO9000
23947C
23948          J=0
23949          DO8320II=1,NMAX
23950            DO8321JJ=1,ICNT
23951              ICOL=ICOLR(JJ)
23952              NROW=NRIGHT(JJ)
23953C
23954              J=J+1
23955              IJ=MAXN*(ICOL-1)+II
23956              IF(ICOL.LE.MAXCOL)AVALV(JJ)=V(IJ)
23957              IF(ICOL.EQ.MAXCP1)AVALV(JJ)=PRED(II)
23958              IF(ICOL.EQ.MAXCP2)AVALV(JJ)=RES(II)
23959              IF(ICOL.EQ.MAXCP3)AVALV(JJ)=YPLOT(II)
23960              IF(ICOL.EQ.MAXCP4)AVALV(JJ)=XPLOT(II)
23961              IF(ICOL.EQ.MAXCP5)AVALV(JJ)=X2PLOT(II)
23962              IF(ICOL.EQ.MAXCP6)AVALV(JJ)=TAGPLO(II)
23963C
23964 8321       CONTINUE
23965            WRITE(IOUNI5,'(20E17.9)')(AVALV(KK),KK=1,ICNT)
23966 8320     CONTINUE
23967          REWIND(IOUNI5)
23968C
23969C         STEP 2: NOW PUT IN TEMPORARY VALUES OF RESPONSE
23970C                 VARIABLES INTO NAME TABLE
23971C
23972          DO8331JJ=1,ICNT
23973            ICOL=ICOLR(JJ)
23974            NROW=NS2
23975            IF(JJ.EQ.2)NROW=NSZ
23976            IF(JJ.EQ.3)NROW=NSZ3
23977            J=0
23978            DO8330II=1,NROW
23979C
23980              J=J+1
23981              IF(JJ.EQ.1)THEN
23982                IJ=MAXN*(ICOL-1)+II
23983                IF(ICOL.LE.MAXCOL)V(IJ)=TEMP(II)
23984                IF(ICOL.EQ.MAXCP1)PRED(II)=TEMP(II)
23985                IF(ICOL.EQ.MAXCP2)RES(II)=TEMP(II)
23986                IF(ICOL.EQ.MAXCP3)YPLOT(II)=TEMP(II)
23987                IF(ICOL.EQ.MAXCP4)XPLOT(II)=TEMP(II)
23988                IF(ICOL.EQ.MAXCP5)X2PLOT(II)=TEMP(II)
23989                IF(ICOL.EQ.MAXCP6)TAGPLO(II)=TEMP(II)
23990              ELSEIF(JJ.EQ.2)THEN
23991                IJ=MAXN*(ICOL-1)+II
23992                IF(ICOL.LE.MAXCOL)V(IJ)=TEMPZ(II)
23993                IF(ICOL.EQ.MAXCP1)PRED(II)=TEMPZ(II)
23994                IF(ICOL.EQ.MAXCP2)RES(II)=TEMPZ(II)
23995                IF(ICOL.EQ.MAXCP3)YPLOT(II)=TEMPZ(II)
23996                IF(ICOL.EQ.MAXCP4)XPLOT(II)=TEMPZ(II)
23997                IF(ICOL.EQ.MAXCP5)X2PLOT(II)=TEMPZ(II)
23998                IF(ICOL.EQ.MAXCP6)TAGPLO(II)=TEMPZ(II)
23999              ELSEIF(JJ.EQ.3)THEN
24000                IJ=MAXN*(ICOL-1)+II
24001                IF(ICOL.LE.MAXCOL)V(IJ)=TEMPZ3(II)
24002                IF(ICOL.EQ.MAXCP1)PRED(II)=TEMPZ3(II)
24003                IF(ICOL.EQ.MAXCP2)RES(II)=TEMPZ3(II)
24004                IF(ICOL.EQ.MAXCP3)YPLOT(II)=TEMPZ3(II)
24005                IF(ICOL.EQ.MAXCP4)XPLOT(II)=TEMPZ3(II)
24006                IF(ICOL.EQ.MAXCP5)X2PLOT(II)=TEMPZ3(II)
24007                IF(ICOL.EQ.MAXCP6)TAGPLO(II)=TEMPZ3(II)
24008              ENDIF
24009C
24010 8330       CONTINUE
24011            ILISRT=ILISR(JJ)
24012            IN(ILISRT)=NROW
24013 8331     CONTINUE
24014C
24015        ENDIF
24016C
24017C       STEP 3: CALL DPSBEX TO EXECUTE THE FUNTION BLOCK
24018C
24019        ISBNAM=ISBNA3
24020        IFEEDB='OFF'
24021        CALL DPSBEX(ISBNAM,IANGLU,ISEED,IFTEXP,IFTORD,IFORSW,
24022     1              IBUGG3,IBUGG3,IBUGG3,IBUGG3,IBUGG3,
24023     1              ISUBRO,IFOUND,IERROR)
24024        IFEEDB=IFEESV
24025        IF(IERROR.EQ.'YES')GOTO9000
24026C
24027C       STEP 4: RETRIEVE RESPONSE PARAMETER
24028C
24029        DO8340II=1,NUMNAM
24030          IF(ISBAN3(1:4).EQ.IHNAME(II) .AND.
24031     1       ISBAN3(5:8).EQ.IHNAM2(II))THEN
24032            IF(IUSE(II).EQ.'P')THEN
24033              RIGHT=VALUE(II)
24034              GOTO8349
24035            ELSE
24036              IERROR='YES'
24037              GOTO9000
24038            ENDIF
24039          ENDIF
24040 8340   CONTINUE
24041C
24042        WRITE(ICOUT,11583)
24043        CALL DPWRST('XXX','BUG ')
24044        WRITE(ICOUT,8341)
24045 8341   FORMAT('      EXPECTED PARAMETER NOT FOUND IN NAME TABLE.')
24046        CALL DPWRST('XXX','BUG ')
24047        WRITE(ICOUT,8343)ISBAN3
24048 8343   FORMAT('      EXPECTED NAME = ',A8)
24049        CALL DPWRST('XXX','BUG ')
24050        IERROR='YES'
24051        GOTO9000
24052C
24053 8349   CONTINUE
24054C
24055C       STEP 5: RESTORE THE NAME TABLE AND CLOSE dpst5f.data
24056C
24057        J=0
24058        DO8350II=1,NMAX
24059C
24060          READ(IOUNI5,'(20E17.9)')(AVALV(KK),KK=1,ICNT)
24061          J=J+1
24062C
24063          DO8351JJ=1,ICNT
24064            ICOL=ICOLR(JJ)
24065            IJ=MAXN*(ICOL-1)+II
24066            IF(ICOL.LE.MAXCOL)V(IJ)=AVALV(JJ)
24067            IF(ICOL.EQ.MAXCP1)PRED(II)=AVALV(JJ)
24068            IF(ICOL.EQ.MAXCP2)RES(II)=AVALV(JJ)
24069            IF(ICOL.EQ.MAXCP3)YPLOT(II)=AVALV(JJ)
24070            IF(ICOL.EQ.MAXCP4)XPLOT(II)=AVALV(JJ)
24071            IF(ICOL.EQ.MAXCP5)X2PLOT(II)=AVALV(JJ)
24072            IF(ICOL.EQ.MAXCP6)TAGPLO(II)=AVALV(JJ)
24073C
24074 8351     CONTINUE
24075 8350   CONTINUE
24076C
24077        DO8353JJ=1,ICNT
24078          IN(ICOLR(JJ))=NRIGHT(JJ)
24079 8353   CONTINUE
24080C
24081        IOP='CLOS'
24082        CALL DPAUFI(IOP,IFLAG1,IFLAG2,IFLAG3,IFLAG4,IFLAG5,
24083     1              IOUNI1,IOUNI2,IOUNI3,IOUNI4,IOUNI5,
24084     1              IBUGG3,ISUBRO,IERROR)
24085C
24086        GOTO79000
24087      ENDIF
24088C
24089      WRITE(ICOUT,999)
24090      CALL DPWRST('XXX','BUG ')
24091      WRITE(ICOUT,80001)
2409280001 FORMAT('***** INTERNAL ERROR IN CMPSTA')
24093      CALL DPWRST('XXX','BUG ')
24094      WRITE(ICOUT,80002)
2409580002 FORMAT('      AT BRANCH POINT 11800--')
24096      CALL DPWRST('XXX','BUG ')
24097      WRITE(ICOUT,80003)
2409880003 FORMAT('      ICASPL NOT EQUAL ONE OF THE ALLOWABLE--')
24099      CALL DPWRST('XXX','BUG ')
24100      WRITE(ICOUT,80004)
2410180004 FORMAT('      MEAN, MEDI, SD, RANG, ETC.,')
24102      CALL DPWRST('XXX','BUG ')
24103      WRITE(ICOUT,80006)ICASPL
2410480006 FORMAT('      ICASPL = ',A4)
24105      CALL DPWRST('XXX','BUG ')
24106      IERROR='YES'
24107      GOTO9000
24108C
24109C     ---------------------------
24110C
2411111310 CONTINUE
24112      CALL SIZE(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24113      GOTO79000
24114C
2411511312 CONTINUE
24116      IHP='LOWL'
24117      IHP2='IMIT'
24118      IHWUSE='P'
24119      MESSAG='NO'
24120      CALL CHECKN(IHP,IHP2,IHWUSE,
24121     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
24122     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
24123      IF(IERROR.EQ.'YES')THEN
24124        ALOWLM=CPUMIN
24125      ELSE
24126        ALOWLM=VALUE(ILOCP)
24127      ENDIF
24128      IHP='UPPL'
24129      IHP2='IMIT'
24130      IHWUSE='P'
24131      MESSAG='NO'
24132      CALL CHECKN(IHP,IHP2,IHWUSE,
24133     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
24134     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
24135      IF(IERROR.EQ.'YES')THEN
24136        AUPPLM=CPUMAX
24137      ELSE
24138        AUPPLM=VALUE(ILOCP)
24139      ENDIF
24140      CALL INTCNT(TEMP,NS2,ALOWLM,AUPPLM,IWRITE,RIGHT,
24141     1            ISUBRO,IBUGG3,IERROR)
24142      GOTO79000
24143C
2414411315 CONTINUE
24145      CALL DISTIN(TEMP,NS2,IWRITE,XTEMP1,NOUT,IBUGG3,IERROR)
24146      RIGHT=REAL(NOUT)
24147      GOTO79000
2414811320 CONTINUE
24149      CALL SUMDP(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24150      GOTO79000
2415111330 CONTINUE
24152      CALL PROD(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24153      GOTO79000
2415411340 CONTINUE
24155CCCCC CALL INTVEC(TEMP,TEMPZ,NS2,NUMVIN,IWRITE,RIGHT,IBUGG3,IERROR)
24156      CALL INTVEC(TEMP,TEMPZ,NS2,NUMV2,IWRITE,RIGHT,IBUGG3,IERROR)
24157      GOTO79000
2415811350 CONTINUE
24159      CALL MIDRAN(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24160      GOTO79000
2416111360 CONTINUE
24162      CALL MEAN(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24163      GOTO79000
2416411370 CONTINUE
24165      CALL MIDMEA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
24166      GOTO79000
2416711372 CONTINUE
24168      CALL SHMIDM(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,
24169     1            ISUBRO,IBUGG3,IERROR)
24170      GOTO79000
2417111373 CONTINUE
24172      CALL SHMIDM(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,
24173     1            ISUBRO,IBUGG3,IERROR)
24174      CALL SHMIDM(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,
24175     1            ISUBRO,IBUGG3,IERROR)
24176      RIGHT=RIGH1 - RIGH2
24177      GOTO79000
2417811374 CONTINUE
24179      CALL SHMIDR(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,
24180     1            ISUBRO,IBUGG3,IERROR)
24181      GOTO79000
2418211375 CONTINUE
24183      CALL SHMIDR(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,
24184     1            ISUBRO,IBUGG3,IERROR)
24185      CALL SHMIDR(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,
24186     1            ISUBRO,IBUGG3,IERROR)
24187      RIGHT=RIGH1 - RIGH2
24188      GOTO79000
2418911380 CONTINUE
24190      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
24191      GOTO79000
2419211390 CONTINUE
24193      CALL SD(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24194      GOTO79000
2419511395 CONTINUE
24196      CALL RMS(TEMP,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24197      GOTO79000
2419811396 CONTINUE
24199      CALL SSQ(TEMP,NS2,XCAP,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24200      GOTO79000
2420111397 CONTINUE
24202      CALL RSCSUM(TEMP,NS2,XCAP,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24203      GOTO79000
2420411398 CONTINUE
24205      CALL SSQ(TEMP,NS2,XCAP,IWRITE,RIGH1,IBUGG3,ISUBRO,IERROR)
24206      CALL SSQ(TEMPZ,NSZ,XCAP,IWRITE,RIGH2,IBUGG3,ISUBRO,IERROR)
24207      RIGHT=RIGH1 - RIGH2
24208      GOTO79000
2420911399 CONTINUE
24210      CALL SSQMEA(TEMP,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24211      GOTO79000
2421219399 CONTINUE
24213      CALL SSQMEA(TEMP,NS2,IWRITE,RIGH1,IBUGG3,ISUBRO,IERROR)
24214      CALL SSQMEA(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,ISUBRO,IERROR)
24215      RIGHT=RIGH1-RIGH2
24216      GOTO79000
2421711400 CONTINUE
24218      CALL VAR(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24219      IF(ICASPL.EQ.'PREC')THEN
24220         IF(RIGHT.GT.0.0)THEN
24221           RIGHT=1.0/RIGHT
24222         ELSE
24223           RIGHT=0.0
24224         ENDIF
24225      ENDIF
24226      GOTO79000
2422711401 CONTINUE
24228      CALL RSCSUM(TEMP,NS2,XCAP,IWRITE,RIGH1,IBUGG3,ISUBRO,IERROR)
24229      CALL RSCSUM(TEMPZ,NSZ,XCAP,IWRITE,RIGH2,IBUGG3,ISUBRO,IERROR)
24230      RIGHT=RIGH1 - RIGH2
24231      GOTO79000
2423211403 CONTINUE
24233      DO11404II=1,NS2
24234        TEMPZ(II)=1.0
2423511404 CONTINUE
24236      CALL JSCORE(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,XTEMP3,NTEMP,
24237     1            IBUGG3,ISUBRO,IERROR)
24238      RIGHT=XTEMP3(1)
24239      GOTO79000
2424011405 CONTINUE
24241      CALL DISTIN(TEMPZ,NS2,IWRITE,XTEMP1,NOUT,IBUGG3,IERROR)
24242      ANMAT=REAL(NOUT)
24243      XCAP=CPUMIN
24244      CALL SSQ(TEMP,NS2,XCAP,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24245      RIGHT=SQRT(RIGHT/ANMAT)
24246      GOTO79000
2424711410 CONTINUE
24248      CALL RELSD(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24249      GOTO79000
2425011415 CONTINUE
24251      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
24252      CALL VAR(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
24253      RIGHT=0.0
24254CCCCC NOVEMBER 1994.  TO BE CONSISTENT WITH RELATIVE SD PLOT, USE
24255CCCCC ABS(MEAN) RATHER THAN MEAN.
24256CCCCC IF(RIGHTM.NE.0.0)RIGHT=100.0*RIGHTV/RIGHTM
24257      IF(RIGHTM.NE.0.0)RIGHT=100.0*RIGHTV/ABS(RIGHTM)
24258      GOTO79000
2425911418 CONTINUE
24260      CALL SD(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
24261      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
24262      RIGHT=0.0
24263      IF(RIGHTM.NE.0.0)RIGHT=RIGHTV/RIGHTM
24264      IF(ICASPL.EQ.'UCVA')THEN
24265        AVAL=1.0 + 1.0/(4.0*REAL(NS2))
24266        RIGHT=AVAL*RIGHT
24267      ENDIF
24268      GOTO79000
2426911419 CONTINUE
24270      CALL SD(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
24271      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
24272      RIGHT=0.0
24273      IF(RIGHTV.NE.0.0)RIGHT=RIGHTM/RIGHTV
24274      GOTO79000
2427511420 CONTINUE
24276      CALL RANGDP(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24277      GOTO79000
2427811421 CONTINUE
24279C
24280C     2017/11: USE AAD RATHER THAN MAD TO BE CONSISTENT WITH
24281C              DEFINITION IN BONETT AND SEIER PAPER.
24282C
24283CCCCC CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
24284CCCCC1         IBUGG3,IERROR)
24285      CALL AAD(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHTV,'MEDI',
24286     1         IBUGG3,IERROR)
24287      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
24288      RIGHT=0.0
24289      IF(RIGHTM.NE.0.0)RIGHT=RIGHTV/RIGHTM
24290      GOTO79000
2429111427 CONTINUE
24292C
24293      IHP='ALPH'
24294      IHP2='A   '
24295      IHWUSE='P'
24296      MESSAG='NO'
24297      CALL CHECKN(IHP,IHP2,IHWUSE,
24298     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
24299     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
24300      IF(IERROR.EQ.'NO')THEN
24301        ALPHA=VALUE(ILOCP)
24302      ELSE
24303        ALPHA=0.95
24304      ENDIF
24305C
24306      IF(ICASPL.EQ.'LCDL')ICASA3='LOWE'
24307      IF(ICASPL.EQ.'1LCD')ICASA3='LOWE'
24308      IF(ICASPL.EQ.'UCDL')ICASA3='UPPE'
24309      IF(ICASPL.EQ.'1UCD')ICASA3='UPPE'
24310      ICASA5='TWOS'
24311      IF(ICASPL.EQ.'1LCD')ICASA5='ONES'
24312      IF(ICASPL.EQ.'1UCD')ICASA5='ONES'
24313C
24314      ALPHAT(1)=ALPHA
24315      NALPHA=1
24316C
24317      CALL DPCDC3(TEMP,NS2,ICASA3,ICASA5,ISEED,MAXNXT,
24318     1            XTEMP1,ALPHAT,NALPHA,ALOWLV,AUPPLV,
24319     1            CD,YMED,YAAD,
24320     1            ISUBRO,IBUGG3,IERROR)
24321C
24322      IF(ICASPL.EQ.'LCDL')RIGHT=ALOWLV(1)
24323      IF(ICASPL.EQ.'1LCD')RIGHT=ALOWLV(1)
24324      IF(ICASPL.EQ.'UCDL')RIGHT=AUPPLV(1)
24325      IF(ICASPL.EQ.'1UCD')RIGHT=AUPPLV(1)
24326      GOTO79000
24327C
2432811428 CONTINUE
24329C
24330      IHP='ALPH'
24331      IHP2='A   '
24332      IHWUSE='P'
24333      MESSAG='NO'
24334      CALL CHECKN(IHP,IHP2,IHWUSE,
24335     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
24336     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
24337      IF(IERROR.EQ.'NO')THEN
24338        ALPHA=VALUE(ILOCP)
24339      ELSE
24340        ALPHA=0.95
24341      ENDIF
24342C
24343      IF(ICASPL.EQ.'LCDQ')ICASA3='LOWE'
24344      IF(ICASPL.EQ.'UCDQ')ICASA3='UPPE'
24345      ICASA5='TWOS'
24346C
24347      ALPHAT(1)=ALPHA
24348      NALPHA=1
24349C
24350      CALL DPCQD3(TEMP,NS2,ICASA3,ICASA5,ISEED,MAXNXT,IQUAME,
24351     1            XTEMP1,ALPHAT,NALPHA,ALOWLV,AUPPLV,
24352     1            CQV,Q1,Q3,
24353     1            ISUBRO,IBUGG3,IERROR)
24354C
24355      IF(ICASPL.EQ.'LCDQ')RIGHT=ALOWLV(1)
24356      IF(ICASPL.EQ.'UCDQ')RIGHT=AUPPLV(1)
24357      GOTO79000
2435811422 CONTINUE
24359      CALL VAR(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
24360      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
24361      RIGHT=0.0
24362      IF(RIGHTM.NE.0.0)RIGHT=RIGHTV/RIGHTM
24363      GOTO79000
2436411423 CONTINUE
24365      CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
24366     1         IBUGG3,IERROR)
24367      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
24368      RIGHT=0.0
24369      IF(RIGHTM.NE.0.0)RIGHT=RIGHTV/RIGHTM
24370      GOTO79000
2437111424 CONTINUE
24372      CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
24373     1         IBUGG3,IERROR)
24374      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
24375      RIGH1=0.0
24376      IF(RIGHTM.NE.0.0)RIGH1=RIGHTV/RIGHTM
24377      CALL MAD(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
24378     1         IBUGG3,IERROR)
24379      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
24380      RIGH2=0.0
24381      IF(RIGHTM.NE.0.0)RIGH2=RIGHTV/RIGHTM
24382      RIGHT=RIGH1 - RIGH2
24383      GOTO79000
2438411425 CONTINUE
24385      CALL VAR(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
24386      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
24387      RIGH1=0.0
24388      IF(RIGHTM.NE.0.0)RIGH1=RIGHTV/RIGHTM
24389      CALL VAR(TEMPZ,NSZ,IWRITE,RIGHTV,IBUGG3,IERROR)
24390      CALL MEAN(TEMPZ,NSZ,IWRITE,RIGHTM,IBUGG3,IERROR)
24391      RIGH2=0.0
24392      IF(RIGHTM.NE.0.0)RIGH2=RIGHTV/RIGHTM
24393      RIGHT=RIGH1 - RIGH2
24394      GOTO79000
2439511426 CONTINUE
24396      CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
24397     1         IBUGG3,IERROR)
24398      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
24399      RIGH1=0.0
24400      IF(RIGHTM.NE.0.0)RIGH1=RIGHTV/RIGHTM
24401      CALL MAD(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
24402     1         IBUGG3,IERROR)
24403      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
24404      RIGH2=0.0
24405      IF(RIGHTM.NE.0.0)RIGH2=RIGHTV/RIGHTM
24406      RIGHT=RIGH1 - RIGH2
24407      GOTO79000
2440811430 CONTINUE
24409      CALL MINIM(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24410      GOTO79000
2441111440 CONTINUE
24412      CALL MAXIM(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24413      GOTO79000
2441411450 CONTINUE
24415      CALL STMOM3(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24416      GOTO79000
2441711452 CONTINUE
24418      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q1,IBUGG3,IERROR)
24419      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q3,IBUGG3,IERROR)
24420      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q2,IBUGG3,IERROR)
24421      IF(Q1.NE.Q3)THEN
24422        RIGHT=(Q3 + Q1 - 2.0*Q2)/(Q3 - Q1)
24423      ELSE
24424        RIGHT=CPUMIN
24425      ENDIF
24426      GOTO79000
2442711454 CONTINUE
24428      CALL MEAN(TEMP,NS2,IWRITE,YMEAN,IBUGG3,IERROR)
24429      CALL SD(TEMP,NS2,IWRITE,YSD,IBUGG3,IERROR)
24430      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,YMED,IBUGG3,IERROR)
24431      IF(YSD.GT.0.0)THEN
24432        RIGHT=3.0*(YMEAN-YMED)/YSD
24433      ELSE
24434        RIGHT=CPUMIN
24435      ENDIF
24436      GOTO79000
2443711460 CONTINUE
24438      CALL STMOM4(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24439      GOTO79000
2444011465 CONTINUE
24441      CALL STMOM4(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24442      RIGHT=RIGHT-3.0
24443      GOTO79000
2444411470 CONTINUE
24445      CALL AUTOCR(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24446      GOTO79000
2444711480 CONTINUE
24448      CALL COV(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24449      GOTO79000
2445031480 CONTINUE
24451      CALL COMOVE(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24452      GOTO79000
2445311490 CONTINUE
24454      CALL CORR(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24455      IF(ICASPL.EQ.'COAB')THEN
24456        RIGHT=ABS(RIGHT)
24457      ELSEIF(ICASPL.EQ.'COPV')THEN
24458        IDF1=1
24459        IDF2=NS2 - 2
24460        ANUM=REAL(NS2-2)*RIGHT**2
24461        DENOM=1.0 - RIGHT**2
24462        CDF=0.0
24463        IF(DENOM.NE.0.0D0)THEN
24464          AVAL=ABS(ANUM/DENOM)
24465          CALL FCDF(AVAL,IDF1,IDF2,CDF)
24466        ENDIF
24467        RIGHT=1.0 - CDF
24468      ELSEIF(ICASPL.EQ.'COCD')THEN
24469        IDF1=1
24470        IDF2=NS2 - 2
24471        ANUM=REAL(NS2-2)*RIGHT**2
24472        DENOM=1.0 - RIGHT**2
24473        CDF=0.0
24474        IF(DENOM.NE.0.0D0)THEN
24475          AVAL=ABS(ANUM/DENOM)
24476          CALL FCDF(AVAL,IDF1,IDF2,CDF)
24477        ENDIF
24478        RIGHT=CDF
24479      ELSEIF(ICASPL.EQ.'PDIS')THEN
24480        RIGHT=(1.0 - RIGHT)/2.0
24481      ELSEIF(ICASPL.EQ.'PSIM')THEN
24482        RIGHT=1.0 - (1.0 - RIGHT)/2.0
24483      ENDIF
24484      GOTO79000
2448511491 CONTINUE
24486      IHP='P   '
24487      IHP2='    '
24488      IHWUSE='P'
24489      MESSAG='NO'
24490      CALL CHECKN(IHP,IHP2,IHWUSE,
24491     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
24492     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
24493      IF(IERROR.EQ.'YES')THEN
24494        P=1.0
24495      ELSE
24496        P=VALUE(ILOCP)
24497      ENDIF
24498      CALL MNKDIS(TEMP,TEMPZ,NS2,P,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24499      GOTO79000
2450011492 CONTINUE
24501      CALL CANDIS(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24502      GOTO79000
2450311495 CONTINUE
24504      CALL CORR(TEMP,TEMPZ,NS2,IWRITE,R12,IBUGG3,IERROR)
24505      CALL CORR(TEMP,TEMPZ3,NS2,IWRITE,R13,IBUGG3,IERROR)
24506      CALL CORR(TEMPZ,TEMPZ3,NS2,IWRITE,R23,IBUGG3,IERROR)
24507      ANUM=R12 - (R13*R23)
24508      DENOM=SQRT((1.0 - R13**2)*(1.0 - R23**2))
24509      IF(DENOM.GT.0.0)THEN
24510        RIGHT=ANUM/DENOM
24511      ELSE
24512        RIGHT=PSTAMV
24513      ENDIF
24514      IF(RIGHT.EQ.PSTAMV)GOTO79000
24515      IF(ICASPL.EQ.'PCAB')THEN
24516        RIGHT=ABS(RIGHT)
24517      ELSEIF(ICASPL.EQ.'PCPV')THEN
24518        IDF1=1
24519        IDF2=NS2 - 3
24520        ANUM=REAL(NS2-3)*RIGHT**2
24521        DENOM=1.0 - RIGHT**2
24522        CDF=0.0
24523        IF(DENOM.NE.0.0D0)THEN
24524          AVAL=ABS(ANUM/DENOM)
24525          CALL FCDF(AVAL,IDF1,IDF2,CDF)
24526        ENDIF
24527        RIGHT=1.0 - CDF
24528      ELSEIF(ICASPL.EQ.'PCCD')THEN
24529        IDF1=1
24530        IDF2=NS2
24531        ANUM=REAL(NS2-3)*RIGHT**2
24532        DENOM=1.0 - RIGHT**2
24533        CDF=0.0
24534        IF(DENOM.NE.0.0D0)THEN
24535          AVAL=ABS(ANUM/DENOM)
24536          CALL FCDF(AVAL,IDF1,IDF2,CDF)
24537        ENDIF
24538        RIGHT=CDF
24539      ENDIF
24540      GOTO79000
2454111496 CONTINUE
24542      CALL MANDIS(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24543      GOTO79000
2454411497 CONTINUE
24545      CALL CHEDI2(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24546      GOTO79000
2454711498 CONTINUE
24548      CALL COSDIS(TEMP,TEMPZ,NS2,IWRITE,ICASPL,RIGHT,
24549     1            IBUGG3,ISUBRO,IERROR)
24550      GOTO79000
2455111499 CONTINUE
24552      IF(ICASPL.EQ.'EUCD')ICASE2='VEDI'
24553      IF(ICASPL.EQ.'EUCL')ICASE2='VELE'
24554      IF(ICASPL.EQ.'DOTP')ICASE2='VEDP'
24555      CALL VECARI(TEMP,TEMPZ,NS2,ICASE2,IWRITE,
24556     1            TEMPZ3,NOUT,RIGHT,ITYP91,IBUGG3,ISUBRO,IERROR)
24557      GOTO79000
2455811500 CONTINUE
24559      CALL RANKCR(TEMP,TEMPZ,NS2,IRCRTA,IWRITE,
24560     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
24561     1            RIGHT,STATCD,PVAL,PVALLT,PVALUT,
24562     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,CTU999,
24563     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,CTL999,
24564     1            IBUGG3,ISUBRO,IERROR)
24565      IF(ICASPL.EQ.'RACA')RIGHT=ABS(RIGHT)
24566      IF(ICASPL.EQ.'RACC')RIGHT=STATCD
24567      IF(ICASPL.EQ.'RACP')RIGHT=PVAL
24568      IF(ICASPL.EQ.'RALP')RIGHT=PVALLT
24569      IF(ICASPL.EQ.'RAUP')RIGHT=PVALUT
24570      IF(ICASPL.EQ.'RDIS')RIGHT=(1.0 - RIGHT)/2.0
24571      IF(ICASPL.EQ.'RSIM')RIGHT=1.0 - (1.0 - RIGHT)/2.0
24572      GOTO79000
2457311502 CONTINUE
24574      CALL HAMDIS(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24575      GOTO79000
2457611505 CONTINUE
24577      CALL RANKCR(TEMP,TEMPZ,NS2,IRCRTA,IWRITE,
24578     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
24579     1            R12,STATCD,PVAL,PVALLT,PVALUT,
24580     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,CTU999,
24581     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,CTL999,
24582     1            IBUGG3,ISUBRO,IERROR)
24583      CALL RANKCR(TEMP,TEMPZ3,NS2,IRCRTA,IWRITE,
24584     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
24585     1            R13,STATCD,PVAL,PVALLT,PVALUT,
24586     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,CTU999,
24587     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,CTL999,
24588     1            IBUGG3,ISUBRO,IERROR)
24589      CALL RANKCR(TEMPZ,TEMPZ3,NS2,IRCRTA,IWRITE,
24590     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
24591     1            R23,STATCD,PVAL,PVALLT,PVALUT,
24592     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,CTU999,
24593     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,CTL999,
24594     1            IBUGG3,ISUBRO,IERROR)
24595      ANUM=R12 - (R13*R23)
24596      DENOM=SQRT((1.0 - R13**2)*(1.0 - R23**2))
24597      IF(DENOM.GT.0.0)THEN
24598        RIGHT=ANUM/DENOM
24599      ELSE
24600        RIGHT=PSTAMV
24601      ENDIF
24602      IF(ICASPL.EQ.'RPCA' .AND. RIGHT.NE.PSTAMV)RIGHT=ABS(RIGHT)
24603      GOTO79000
2460411509 CONTINUE
24605      CALL PERDME(TEMP,NS2,TEMPZ,NSZ,IWRITE,RIGHT,
24606     1            ISUBRO,IBUGG3,IERROR)
24607      GOTO79000
2460811510 CONTINUE
24609      CALL SDMEAN(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24610      GOTO79000
2461111520 CONTINUE
24612      CALL AUTOCV(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24613      GOTO79000
2461411530 CONTINUE
24615      CALL RANKCV(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,XTEMP3,
24616     1MAXNXT,RIGHT,
24617     1IBUGG3,IERROR)
24618      GOTO79000
2461911531 CONTINUE
24620      CALL PERAGR(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24621      IF(ICASPL.EQ.'PEDI' .AND. RIGHT.GE.0.0)RIGHT=100.0 - RIGHT
24622      GOTO79000
2462331530 CONTINUE
24624      CALL RANKCM(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,XTEMP3,
24625     1MAXNXT,RIGHT,
24626     1IBUGG3,IERROR)
24627      GOTO79000
2462831540 CONTINUE
24629      ICASZZ='TWOS'
24630      CALL KENTAU(TEMP,TEMPZ,NS2,ICASZZ,IKTATA,IWRITE,
24631     1            XTEMP1,XTEMP2,MAXNXT,
24632     1            RIGHT,AKTAUA,AKTAUB,AKTAUC,
24633     1            STATCD,PVAL,PVALLT,PVALUT,
24634     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,
24635     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,
24636     1            IBUGG3,ISUBRO,IERROR)
24637      IF(ICASPL.EQ.'KTAA')RIGHT=ABS(RIGHT)
24638      IF(ICASPL.EQ.'TAUA')RIGHT=AKTAUA
24639      IF(ICASPL.EQ.'KTAB')RIGHT=AKTAUB
24640      IF(ICASPL.EQ.'KTAC')RIGHT=AKTAUC
24641      IF(ICASPL.EQ.'KTCD')RIGHT=STATCD
24642      IF(ICASPL.EQ.'KTPV')RIGHT=PVAL
24643      IF(ICASPL.EQ.'KTPL')RIGHT=PVALLT
24644      IF(ICASPL.EQ.'KTPU')RIGHT=PVALUT
24645      IF(ICASPL.EQ.'KDIS')RIGHT=(1.0 - RIGHT)/2.0
24646      IF(ICASPL.EQ.'KSIM')RIGHT=1.0 - (1.0 - RIGHT)/2.0
24647      GOTO79000
2464831545 CONTINUE
24649      ICASZZ='TWOS'
24650      CALL KENTAU(TEMP,TEMPZ,NS2,ICASZZ,IKTATA,IWRITE,
24651     1            XTEMP1,XTEMP2,MAXNXT,
24652     1            R12,AKTAUA,AKTAUB,AKTAUC,
24653     1            STATCD,PVAL,PVALLT,PVALUT,
24654     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,
24655     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,
24656     1            IBUGG3,ISUBRO,IERROR)
24657      CALL KENTAU(TEMP,TEMPZ3,NS2,ICASZZ,IKTATA,IWRITE,
24658     1            XTEMP1,XTEMP2,MAXNXT,
24659     1            R13,AKTAUA,AKTAUB,AKTAUC,
24660     1            STATCD,PVAL,PVALLT,PVALUT,
24661     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,
24662     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,
24663     1            IBUGG3,ISUBRO,IERROR)
24664      CALL KENTAU(TEMPZ,TEMPZ3,NS2,ICASZZ,IKTATA,IWRITE,
24665     1            XTEMP1,XTEMP2,MAXNXT,
24666     1            R23,AKTAUA,AKTAUB,AKTAUC,
24667     1            STATCD,PVAL,PVALLT,PVALUT,
24668     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,
24669     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,
24670     1            IBUGG3,ISUBRO,IERROR)
24671      ANUM=R12 - (R13*R23)
24672      DENOM=SQRT((1.0 - R13**2)*(1.0 - R23**2))
24673      IF(DENOM.GT.0.0)THEN
24674        RIGHT=ANUM/DENOM
24675      ELSE
24676        RIGHT=PSTAMV
24677      ENDIF
24678      IF(ICASPL.EQ.'PKAB' .AND. RIGHT.NE.PSTAMV)RIGHT=ABS(RIGHT)
24679      GOTO79000
2468031550 CONTINUE
24681      CALL SUMDP(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
24682      CALL SUMDP(TEMPZ,NS2,IWRITE,RIGH2,IBUGG3,IERROR)
24683      RIGHT=0.0
24684      IF(RIGH2.NE.0.0)RIGHT=RIGH1/RIGH2
24685      GOTO79000
24686C
24687C     BINOMIAL RATIO - FOR CASE WHERE BINOMIAL PROBABILITIES GIVEN
24688C                      AS NUMBER OF SUCCESSES AND NUMBER OF TRIALS
24689C                      RATHER THAN A SERIES OF 0/1 VALUES (I.E., DATA
24690C                      PREVIOUSLY AGGREGATED).  SLIGHTLY DIFFERENT
24691C                      FROM "RATIO" IN THAT WE NEED TO CHECK THAT
24692C                      VALUE FOR SECOND VARIABLE ALWAYS > VALUE
24693C                      FOR FIRST VARIABLE.  ALSO, OMIT ROW IF EITHER
24694C                      VALUE IS EQUAL TO THE MISSING VALUE.
24695C
2469631551 CONTINUE
24697      RIGHT=PSTAMV
24698      NTEMP=0
24699      DO31552I=1,NS2
24700        IVAL1=INT(TEMP(I)+0.1)
24701        IVAL2=INT(TEMPZ(I)+0.1)
24702        IF(TEMP(I).EQ.PSTAMV .OR. TEMPZ(I).EQ.PSTAMV)THEN
24703          GOTO31552
24704        ELSEIF(IVAL1.GT.IVAL2)THEN
24705          IERROR='YES'
24706          WRITE(ICOUT,999)
24707          CALL DPWRST('XXX','BUG ')
24708          WRITE(ICOUT,31553)
2470931553     FORMAT('***** ERROR IN CMPSTA')
24710          CALL DPWRST('XXX','BUG ')
24711          WRITE(ICOUT,31554)
2471231554     FORMAT('      FOR BINOMIAL RATIO, NUMBER OF SUCCESSES IS ')
24713          CALL DPWRST('XXX','BUG ')
24714          WRITE(ICOUT,31555)
2471531555     FORMAT('      GREATER THAN THE NUMBER OF TRIALS.')
24716          CALL DPWRST('XXX','BUG ')
24717          WRITE(ICOUT,31556)IVAL1
2471831556     FORMAT('      THE NUMBER OF SUCCESSES = ',I8)
24719          CALL DPWRST('XXX','BUG ')
24720          WRITE(ICOUT,31557)IVAL2
2472131557     FORMAT('      THE NUMBER OF TRIALS    = ',I8)
24722          CALL DPWRST('XXX','BUG ')
24723          GOTO9000
24724        ELSE
24725          NTEMP=NTEMP+1
24726          IF(IVAL1.LT.0)THEN
24727            WRITE(ICOUT,999)
24728            CALL DPWRST('XXX','BUG ')
24729            WRITE(ICOUT,31553)
24730            CALL DPWRST('XXX','BUG ')
24731            WRITE(ICOUT,31558)IVAL1
2473231558       FORMAT('      THE NUMBER OF SUCCESSES, ',I8,
24733     1             ' IS NEGATIVE.')
24734            CALL DPWRST('XXX','BUG ')
24735            IERROR='YES'
24736            GOTO9000
24737          ENDIF
24738          IF(IVAL2.LT.0)THEN
24739            WRITE(ICOUT,999)
24740            CALL DPWRST('XXX','BUG ')
24741            WRITE(ICOUT,31553)
24742            CALL DPWRST('XXX','BUG ')
24743            WRITE(ICOUT,31559)IVAL2
2474431559       FORMAT('      THE NUMBER OF TRIALS, ',I8,
24745     1             ' IS NEGATIVE.')
24746            CALL DPWRST('XXX','BUG ')
24747            IERROR='YES'
24748            GOTO9000
24749          ENDIF
24750          TEMP(NTEMP)=IVAL1
24751          TEMPZ(NTEMP)=IVAL2
24752        ENDIF
2475331552 CONTINUE
24754      IF(NTEMP.LE.0)GOTO79000
24755      CALL SUMDP(TEMP,NTEMP,IWRITE,RIGH1,IBUGG3,IERROR)
24756      CALL SUMDP(TEMPZ,NTEMP,IWRITE,RIGH2,IBUGG3,IERROR)
24757      IF(RIGH2.NE.0.0)RIGHT=RIGH1/RIGH2
24758      ITEMP1(1)=INT(RIGH2+0.1)
24759      GOTO79000
24760C
2476131565 CONTINUE
24762      IHP='ALPH'
24763      IHP2='A   '
24764      IHWUSE='P'
24765      MESSAG='NO'
24766      CALL CHECKN(IHP,IHP2,IHWUSE,
24767     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
24768     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
24769      IF(IERROR.EQ.'NO')THEN
24770        ALPHA=VALUE(ILOCP)
24771      ELSE
24772        ALPHA=0.95
24773      ENDIF
24774C
24775      ALPHAT(1)=ALPHA
24776      NALPHA=1
24777      IF(IRATME.EQ.'FIEL')THEN
24778        CALL DPMRC3(TEMP,TEMPZ,NS2,ALPHAT,NALPHA,
24779     1              RATIO,ALOWLV,AUPPLV,
24780     1              YBAR,XBAR,YVAR,XVAR,
24781     1              ISUBRO,IBUGG3,IERROR)
24782      ELSEIF(IRATME.EQ.'LSAM')THEN
24783        CALL DPMRC4(TEMP,TEMPZ,NS2,ALPHAT,NALPHA,
24784     1              RATIO,ALOWLV,AUPPLV,
24785     1              YBAR,XBAR,YVAR,XVAR,XYCOV,
24786     1              ISUBRO,IBUGG3,IERROR)
24787      ELSEIF(IRATME.EQ.'LRAT')THEN
24788        CALL DPMRC5(TEMP,TEMPZ,NS2,ALPHAT,NALPHA,
24789     1              RATIO,ALOWLV,AUPPLV,
24790     1              YBAR,XBAR,YVAR,XVAR,XYCOV,
24791     1              ISUBRO,IBUGG3,IERROR)
24792      ENDIF
24793      IF(ICASPL.EQ.'RMEA')THEN
24794        RIGHT=RATIO
24795      ELSEIF(ICASPL.EQ.'RMLL')THEN
24796        RIGHT=ALOWLV(1)
24797      ELSEIF(ICASPL.EQ.'RMUL')THEN
24798        RIGHT=AUPPLV(1)
24799      ENDIF
24800      GOTO79000
2480131560 CONTINUE
24802      CALL ODDRAT(TEMP,NS2,TEMPZ,NSZ,PSTAMV,IWRITE,XTEMP1,RIGHT,
24803     1            IBUGG3,IERROR)
24804      GOTO79000
2480531570 CONTINUE
24806      CALL ODDRSE(TEMP,NS2,TEMPZ,NS2,PSTAMV,IWRITE,XTEMP1,RIGHT,
24807     1            IBUGG3,IERROR)
24808      GOTO79000
2480931580 CONTINUE
24810      CALL RELRSK(TEMP,NS2,TEMPZ,NSZ,PSTAMV,IWRITE,XTEMP1,RIGHT,
24811     1            IBUGG3,IERROR)
24812      GOTO79000
2481331590 CONTINUE
24814      CALL CRAMER(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,XTEMP3,
24815     1            RIGHT,IBUGG3,IERROR)
24816      GOTO79000
2481731600 CONTINUE
24818      CALL PEARCC(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,XTEMP3,
24819     1            RIGHT,IBUGG3,IERROR)
24820      GOTO79000
2482131610 CONTINUE
24822      CALL FALPOS(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
24823      GOTO79000
2482431620 CONTINUE
24825      CALL FALNEG(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
24826      GOTO79000
2482731630 CONTINUE
24828      CALL TRUPOS(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
24829      GOTO79000
2483031640 CONTINUE
24831      CALL TRUNEG(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
24832      GOTO79000
2483331650 CONTINUE
24834      CALL SENSIT(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
24835      GOTO79000
2483631660 CONTINUE
24837      CALL SPECIF(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
24838      GOTO79000
2483931670 CONTINUE
24840      CALL PPV(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
24841      GOTO79000
2484231680 CONTINUE
24843      CALL NPV(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
24844      GOTO79000
2484531685 CONTINUE
24846      CALL BINMAT(TEMP,TEMPZ,NS2,ICASPL,IWRITE,XTEMP1,RIGHT,
24847     1            ISUBRO,IBUGG3,IERROR)
24848      GOTO79000
2484931688 CONTINUE
24850      CALL GJACC(TEMP,TEMPZ,NS2,ICASPL,IWRITE,RIGHT,DIST,
24851     1            ISUBRO,IBUGG3,IERROR)
24852      IF(ICASPL.EQ.'GJDI')RIGHT=DIST
24853      GOTO79000
2485431690 CONTINUE
24855      CALL LOGIT(TEMP,NS2,TEMPZ,NSZ,PSTAMV,IWRITE,XTEMP1,RIGHT,
24856     1           IBUGG3,IERROR)
24857      GOTO79000
2485831700 CONTINUE
24859      CALL LOGISE(TEMP,NS2,TEMPZ,NSZ,PSTAMV,IWRITE,XTEMP1,RIGHT,
24860     1            IBUGG3,IERROR)
24861      GOTO79000
24862C
2486331710 CONTINUE
24864      CALL TRIMSD(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,MAXNXT,
24865     1            XTEMP1,RIGHT,
24866     1            IBUGG3,ISUBRO,IERROR)
24867      GOTO79000
24868C
2486931715 CONTINUE
24870      CALL CORRAT(TEMP,TEMPZ,NS2,ICASPL,IWRITE,XTEMP1,ETA,
24871     1            IBUGG3,ISUBRO,IERROR)
24872      RIGHT=ETA
24873      IF(ICASPL.EQ.'ICCR')RIGHT=ETA**2
24874      GOTO79000
24875C
2487611540 CONTINUE
24877      CALL LOWHIN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
24878      GOTO79000
2487911550 CONTINUE
24880      CALL UPPHIN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
24881      GOTO79000
2488211560 CONTINUE
24883      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
24884      GOTO79000
2488511570 CONTINUE
24886      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
24887      GOTO79000
2488811575 CONTINUE
24889      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
24890      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
24891      RIGHT=(RIGH2 + RIGH1)/2.0
24892      GOTO79000
2489311576 CONTINUE
24894      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
24895      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
24896      RIGH3=(RIGH2 + RIGH1)/2.0
24897      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH4,IBUGG3,IERROR)
24898      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH5,IBUGG3,IERROR)
24899      RIGH6=(RIGH4 + RIGH5)/2.0
24900      RIGHT=RIGH3 - RIGH6
24901      GOTO79000
2490211578 CONTINUE
24903      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
24904      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
24905      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH3,IBUGG3,IERROR)
24906      RIGH4=(RIGH2 + RIGH1)/2.0
24907      RIGHT=(RIGH4 + RIGH3)/2.0
24908      GOTO79000
2490911579 CONTINUE
24910      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
24911      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
24912      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH3,IBUGG3,IERROR)
24913      RIGH4=(RIGH2 + RIGH1)/2.0
24914      RIGH5=(RIGH4 + RIGH3)/2.0
24915      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH6,IBUGG3,IERROR)
24916      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH7,IBUGG3,IERROR)
24917      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH8,IBUGG3,IERROR)
24918      RIGH9=(RIGH7 + RIGH6)/2.0
24919      RIGH10=(RIGH9 + RIGH8)/2.0
24920      RIGHT=RIGH5-RIGH10
24921      GOTO79000
24922C
2492311580 CONTINUE
24924      CALL TRIMME(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,XTEMP1,
24925     1            MAXNXT,RIGHT,
24926     1            IBUGG3,ISUBRO,IERROR)
24927      GOTO79000
24928C
2492911590 CONTINUE
24930      CALL WINDME(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,XTEMP1,
24931     1            MAXNXT,RIGHT,
24932     1            IBUGG3,ISUBRO,IERROR)
24933      GOTO79000
24934C
2493511610 CONTINUE
24936      IF(ICASPL.EQ.'MIDQ')P100=50.0
24937      IF(ICASPL.EQ.'1DEC')P100=10.0
24938      IF(ICASPL.EQ.'2DEC')P100=20.0
24939      IF(ICASPL.EQ.'3DEC')P100=30.0
24940      IF(ICASPL.EQ.'4DEC')P100=40.0
24941      IF(ICASPL.EQ.'5DEC')P100=50.0
24942      IF(ICASPL.EQ.'6DEC')P100=60.0
24943      IF(ICASPL.EQ.'7DEC')P100=70.0
24944      IF(ICASPL.EQ.'8DEC')P100=80.0
24945      IF(ICASPL.EQ.'9DEC')P100=90.0
24946      CALL PERCEN(P100,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
24947     1RIGHT,IBUGG3,IERROR)
24948      GOTO79000
24949C
2495011615 CONTINUE
24951      IF(APVAL.GE.0.0 .AND. APVAL.LE.100.0)THEN
24952        P100=APVAL
24953      ELSEIF(IPNAM1.NE.'    ')THEN
24954        IHWUSE='P'
24955        MESSAG='YES'
24956        CALL CHECKN(IPNAM1,IPNAM2,IHWUSE,
24957     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
24958     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
24959        IF(IERROR.EQ.'YES')GOTO9000
24960        P100=VALUE(ILOCP)
24961      ELSE
24962        IHP='P100'
24963        IHP2='    '
24964        IHWUSE='P'
24965        MESSAG='YES'
24966        CALL CHECKN(IHP,IHP2,IHWUSE,
24967     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
24968     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
24969        IF(IERROR.EQ.'YES')GOTO9000
24970        P100=VALUE(ILOCP)
24971      ENDIF
24972C
24973      CALL PERCEN(P100,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
24974     1RIGHT,IBUGG3,IERROR)
24975      GOTO79000
24976C
2497711620 CONTINUE
24978      CALL WEMEAN(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24979      GOTO79000
2498011625 CONTINUE
24981      CALL WEOSME(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24982      GOTO79000
2498311630 CONTINUE
24984      CALL WEMEDI(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24985      GOTO79000
2498611640 CONTINUE
24987      CALL WESD(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24988      GOTO79000
2498911650 CONTINUE
24990      CALL WEVARI(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
24991      GOTO79000
2499211655 CONTINUE
24993      CALL WESKEW(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
24994      GOTO79000
2499511660 CONTINUE
24996C
24997      CALL WETRME(TEMP,TEMPZ,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
24998     1            XTEMP1,XTEMP2,
24999     1            MAXNXT,RIGHT,
25000     1            IBUGG3,ISUBRO,IERROR)
25001      GOTO79000
25002C
2500311670 CONTINUE
25004      IF(ICASPL.EQ.'WSUM')THEN
25005        IFLAGW=1
25006      ELSEIF(ICASPL.EQ.'WSSQ')THEN
25007        IFLAGW=2
25008      ELSEIF(ICASPL.EQ.'WSAB')THEN
25009        IFLAGW=3
25010      ELSEIF(ICASPL.EQ.'WAAB')THEN
25011        IFLAGW=4
25012      ELSEIF(ICASPL.EQ.'WSDV')THEN
25013        IFLAGW=5
25014      ELSEIF(ICASPL.EQ.'WSSD')THEN
25015        IFLAGW=6
25016      ENDIF
25017      CALL WESUM(TEMP,TEMPZ,NS2,IFLAGW,IWRITE,RIGHT,
25018     1           IBUGG3,ISUBRO,IERROR)
25019      GOTO79000
25020C
2502111680 CONTINUE
25022      CALL WECOVA(TEMP,TEMPZ,TEMPZ3,NS2,ICASPL,IWRITE,RIGH1,RIGH2,
25023     1           IBUGG3,ISUBRO,IERROR)
25024      IF(ICASPL.EQ.'WCOV')RIGHT=RIGH1
25025      IF(ICASPL.EQ.'WCOR')RIGHT=RIGH2
25026      GOTO79000
25027C
2502811685 CONTINUE
25029      CALL GRPCOR(TEMP,TEMPZ,TEMPZ3,NS2,IWRITE,RIGHT,
25030     1            XTEMP1,XTEMP2,MAXOBV,
25031     1            IBUGG3,ISUBRO,IERROR)
25032      GOTO79000
25033C
2503411690 CONTINUE
25035      CALL WECODI(TEMP,TEMPZ,TEMPZ3,NS2,ICASPL,IWRITE,RIGH1,RIGH2,
25036     1           IBUGG3,ISUBRO,IERROR)
25037      IF(ICASPL.EQ.'WCDI')RIGHT=RIGH1
25038      IF(ICASPL.EQ.'WCSI')RIGHT=RIGH2
25039      GOTO79000
25040C
2504111700 CONTINUE
25042      CALL SDMEAN(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
25043      RIGHT=RIGHT**2
25044      GOTO79000
25045C
2504611710 CONTINUE
25047      CALL SINFIT(TEMP,XTEMP2,NS2,IWRITE,XSINFR,XSINAM,XRESSD,
25048     1ISUBRO,IBUGG3,IERROR)
25049      RIGHT=XSINFR
25050      GOTO79000
25051C
2505211720 CONTINUE
25053      CALL SINFIT(TEMP,XTEMP2,NS2,IWRITE,XSINFR,XSINAM,XRESSD,
25054     1ISUBRO,IBUGG3,IERROR)
25055      RIGHT=XSINAM
25056      GOTO79000
25057C
2505811730 CONTINUE
25059      CALL LINFIT(TEMP,TEMPZ,NS2,
25060     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
25061     1ISUBRO,IBUGG3,IERROR)
25062      RIGHT=ALPHA
25063      GOTO79000
25064C
2506511735 CONTINUE
25066      CALL LINFIT(TEMP,TEMPZ,NS2,
25067     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
25068     1ISUBRO,IBUGG3,IERROR)
25069      RIGHT=SDALPH
25070      GOTO79000
25071C
2507211740 CONTINUE
25073      CALL LINFIT(TEMP,TEMPZ,NS2,
25074     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
25075     1ISUBRO,IBUGG3,IERROR)
25076      RIGHT=BETA
25077      GOTO79000
25078C
2507911745 CONTINUE
25080      CALL LINFIT(TEMP,TEMPZ,NS2,
25081     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
25082     1ISUBRO,IBUGG3,IERROR)
25083      RIGHT=SDBETA
25084      GOTO79000
25085C
2508611750 CONTINUE
25087      CALL LINFIT(TEMP,TEMPZ,NS2,
25088     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
25089     1ISUBRO,IBUGG3,IERROR)
25090      RIGHT=XRESSD
25091      GOTO79000
25092C
2509311760 CONTINUE
25094      CALL LINFIT(TEMP,TEMPZ,NS2,
25095     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
25096     1ISUBRO,IBUGG3,IERROR)
25097      RIGHT=CCXY
25098      GOTO79000
25099C
2510011770 CONTINUE
25101      CALL REPEAZ(TEMP,TEMPZ,XTEMP1,XTEMP2,NS2,IWRITE,XREP,
25102     1ISUBRO,IBUGG3,IERROR)
25103      RIGHT=XREP
25104      GOTO79000
25105C
2510611780 CONTINUE
25107      CALL REPROD(TEMP,TEMPZ,XTEMP1,XTEMP2,XTEMP3,NS2,IWRITE,XREP,
25108     1ISUBRO,IBUGG3,IERROR)
25109      RIGHT=XREP
25110      GOTO79000
25111C
2511211790 CONTINUE
25113      CALL MEAN(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
25114      GOTO79000
25115C
2511611795 CONTINUE
25117      CALL SD(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
25118      GOTO79000
25119C
2512011810 CONTINUE
25121      CALL TAGUCH(TEMP,NS2,ICASPL,IWRITE,RIGHT,IBUGG3,IERROR)
25122      GOTO79000
25123C
2512411900 CONTINUE
25125      IHP='LSL '
25126      IHP2='    '
25127      IHWUSE='P'
25128      MESSAG='YES'
25129      CALL CHECKN(IHP,IHP2,IHWUSE,
25130     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25131     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25132      IF(IERROR.EQ.'YES')GOTO9000
25133      ENGLSL=VALUE(ILOCP)
25134C
25135      IHP='USL '
25136      IHP2='    '
25137      IHWUSE='P'
25138      MESSAG='YES'
25139      CALL CHECKN(IHP,IHP2,IHWUSE,
25140     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25141     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25142      IF(IERROR.EQ.'YES')GOTO9000
25143      ENGUSL=VALUE(ILOCP)
25144C
25145      IF(ICASPL.EQ.'CP')THEN
25146         CALL CP(TEMP,NS2,ENGLSL,ENGUSL,IWRITE,
25147     1           RIGHT,XLCL,XUCL,IBUGG3,IERROR)
25148         GOTO79000
25149      ELSEIF(ICASPL.EQ.'CPK')THEN
25150         CALL CPK(TEMP,NS2,ENGLSL,ENGUSL,IWRITE,
25151     1            RIGHT,XLCL,XUCL,IBUGG3,IERROR)
25152         GOTO79000
25153      ELSEIF(ICASPL.EQ.'CPL')THEN
25154         CALL CPL(TEMP,NS2,ENGLSL,ENGUSL,IWRITE,
25155     1            RIGHT,XLCL,XUCL,IBUGG3,IERROR)
25156         GOTO79000
25157      ELSEIF(ICASPL.EQ.'CPU')THEN
25158         CALL CPU(TEMP,NS2,ENGLSL,ENGUSL,IWRITE,
25159     1            RIGHT,XLCL,XUCL,IBUGG3,IERROR)
25160         GOTO79000
25161      ELSEIF(ICASPL.EQ.'CNP')THEN
25162         CALL CNP(TEMP,NS2,XTEMP1,MAXNXT,ENGLSL,ENGUSL,IWRITE,ICNPKD,
25163     1            RIGHT,IBUGG3,IERROR)
25164         GOTO79000
25165      ELSEIF(ICASPL.EQ.'CNPK')THEN
25166         CALL CNPK(TEMP,NS2,XTEMP1,MAXNXT,ENGLSL,ENGUSL,IWRITE,ICNPKD,
25167     1             RIGHT,IBUGG3,IERROR)
25168         GOTO79000
25169      ENDIF
25170C
25171      IF(ICASPL.EQ.'PEDE')THEN
25172         IFLAG='ACTU'
25173         CALL PERDEF(TEMP,NS2,ENGLSL,ENGUSL,IWRITE,
25174     1               RIGHT,RIJUNK,
25175     1               YACTL,YTHEL,YACTU,YTHEU,
25176     1               IFLAG,IBUGG3,IERROR)
25177         GOTO79000
25178      ENDIF
25179C
25180      IF(ICASPL.EQ.'EXLO')THEN
25181         IHP='USLC'
25182         IHP2='OST '
25183         IHWUSE='P'
25184         MESSAG='YES'
25185         CALL CHECKN(IHP,IHP2,IHWUSE,
25186     1   IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25187     1   ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25188         IF(IERROR.EQ.'YES')GOTO9000
25189         COSUSL=VALUE(ILOCP)
25190C
25191         CALL EXPLOS(TEMP,NS2,ENGLSL,ENGUSL,COSUSL,IWRITE,
25192     1               RIGHT,IBUGG3,IERROR)
25193         GOTO79000
25194      ENDIF
25195C
25196      IHP='TARG'
25197      IHP2='ET  '
25198      IHWUSE='P'
25199      MESSAG='YES'
25200      CALL CHECKN(IHP,IHP2,IHWUSE,
25201     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25202     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25203      IF(IERROR.EQ.'YES')GOTO9000
25204      TARGET=VALUE(ILOCP)
25205C
25206      IF(ICASPL.EQ.'CPM')THEN
25207         CALL CPM(TEMP,NS2,ENGLSL,ENGUSL,TARGET,IWRITE,
25208     1            RIGHT,XLCL,XUCL,IBUGG3,IERROR)
25209         GOTO79000
25210      ELSEIF(ICASPL.EQ.'CPMK')THEN
25211         CALL CPMK(TEMP,NS2,ENGLSL,ENGUSL,TARGET,IWRITE,
25212     1             RIGHT,XLCL,XUCL,IBUGG3,IERROR)
25213         GOTO79000
25214      ELSEIF(ICASPL.EQ.'CC')THEN
25215         CALL CC(TEMP,NS2,ENGLSL,ENGUSL,TARGET,IWRITE,
25216     1           RIGHT,IBUGG3,IERROR)
25217         GOTO79000
25218      ELSEIF(ICASPL.EQ.'CNPM')THEN
25219         CALL CNPM(TEMP,NS2,XTEMP1,MAXNXT,ENGLSL,ENGUSL,TARGET,
25220     1             IWRITE,ICNPKD,
25221     1             RIGHT,IBUGG3,IERROR)
25222         GOTO79000
25223      ELSEIF(ICASPL.EQ.'NPMK')THEN
25224         CALL CNPMK(TEMP,NS2,XTEMP1,MAXNXT,ENGLSL,ENGUSL,TARGET,
25225     1              IWRITE,ICNPKD,
25226     1              RIGHT,IBUGG3,IERROR)
25227         GOTO79000
25228      ENDIF
25229C
2523011910 CONTINUE
25231      SHAPE=0.0
25232      IF(ICASPL.EQ.'TLPP' .OR. ICASPL.EQ.'TLSH' .OR.
25233     1   ICASPL.EQ.'TLLO' .OR. ICASPL.EQ.'TLSC')THEN
25234        IHP='LAMB'
25235        IHP2='DA  '
25236        IHWUSE='P'
25237        MESSAG='NO'
25238        CALL CHECKN(IHP,IHP2,IHWUSE,
25239     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25240     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25241        IF(IERROR.EQ.'YES')THEN
25242          SHAPE=CPUMIN
25243        ELSE
25244          SHAPE=VALUE(ILOCP)
25245        ENDIF
25246      ELSEIF(ICASPL.EQ.'LNPP' .OR. ICASPL.EQ.'LNSH' .OR.
25247     1       ICASPL.EQ.'LNLO' .OR. ICASPL.EQ.'LNSC')THEN
25248        IHP='SIGM'
25249        IHP2='A   '
25250        IHWUSE='P'
25251        MESSAG='NO'
25252        CALL CHECKN(IHP,IHP2,IHWUSE,
25253     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25254     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25255        IF(IERROR.EQ.'YES')THEN
25256          SHAPE=CPUMIN
25257        ELSE
25258          SHAPE=VALUE(ILOCP)
25259        ENDIF
25260      ELSEIF(ICASPL.EQ.'GHPP' .OR. ICASPL.EQ.'GHSH' .OR.
25261     1       ICASPL.EQ.'GHS2' .OR. ICASPL.EQ.'GHLO' .OR.
25262     1       ICASPL.EQ.'GHSC')THEN
25263        IHP='G   '
25264        IHP2='    '
25265        IHWUSE='P'
25266        MESSAG='NO'
25267        CALL CHECKN(IHP,IHP2,IHWUSE,
25268     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25269     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25270        IF(IERROR.EQ.'YES')THEN
25271          SHAPE=CPUMIN
25272        ELSE
25273          SHAPE=VALUE(ILOCP)
25274        ENDIF
25275        IHP='H   '
25276        IHP2='    '
25277        IHWUSE='P'
25278        MESSAG='NO'
25279        CALL CHECKN(IHP,IHP2,IHWUSE,
25280     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25281     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25282        IF(IERROR.EQ.'YES')THEN
25283          SHAPE2=CPUMIN
25284        ELSE
25285          SHAPE2=VALUE(ILOCP)
25286        ENDIF
25287      ELSEIF(ICASPL.EQ.'GPPC' .OR. ICASPL.EQ.'GSHA' .OR.
25288     1       ICASPL.EQ.'GSCA' .OR. ICASPL.EQ.'GLOC')THEN
25289        IHP='G   '
25290        IHP2='    '
25291        IHWUSE='P'
25292        MESSAG='NO'
25293        CALL CHECKN(IHP,IHP2,IHWUSE,
25294     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25295     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25296        IF(IERROR.EQ.'YES')THEN
25297          SHAPE=CPUMIN
25298        ELSE
25299          SHAPE=VALUE(ILOCP)
25300        ENDIF
25301      ELSEIF(ICASPL.EQ.'WEPP' .OR. ICASPL.EQ.'WESH' .OR.
25302     1       ICASPL.EQ.'WELO' .OR. ICASPL.EQ.'WESC' .OR.
25303     1       ICASPL.EQ.'W2PP' .OR. ICASPL.EQ.'WESC' .OR.
25304     1       ICASPL.EQ.'W2SH' .OR.
25305     1       ICASPL.EQ.'GPPP' .OR. ICASPL.EQ.'GPSH' .OR.
25306     1       ICASPL.EQ.'GPLO' .OR. ICASPL.EQ.'GPSC' .OR.
25307     1       ICASPL.EQ.'FLPP' .OR. ICASPL.EQ.'FLSH' .OR.
25308     1       ICASPL.EQ.'FLLO' .OR. ICASPL.EQ.'FLSC' .OR.
25309     1       ICASPL.EQ.'GAPP' .OR. ICASPL.EQ.'GASH' .OR.
25310     1       ICASPL.EQ.'GALO' .OR. ICASPL.EQ.'GASC' .OR.
25311     1       ICASPL.EQ.'IWPP' .OR. ICASPL.EQ.'IWSH' .OR.
25312     1       ICASPL.EQ.'IWLO' .OR. ICASPL.EQ.'IWSC' .OR.
25313     1       ICASPL.EQ.'WAPP' .OR. ICASPL.EQ.'WASH' .OR.
25314     1       ICASPL.EQ.'WALO' .OR. ICASPL.EQ.'WASC')THEN
25315        IHP='GAMM'
25316        IHP2='A   '
25317        IHWUSE='P'
25318        MESSAG='NO'
25319        CALL CHECKN(IHP,IHP2,IHWUSE,
25320     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25321     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25322        IF(IERROR.EQ.'YES')THEN
25323          SHAPE=CPUMIN
25324        ELSE
25325          SHAPE=VALUE(ILOCP)
25326          IF(SHAPE.LE.0.0)SHAPE=CPUMIN
25327        ENDIF
25328      ENDIF
25329      CALL NORPPC(TEMP,NS2,IDIST,SHAPE,SHAPE2,
25330     1            IWRITE,XTEMP1,XTEMP2,XTEMP3,DTEMP1,MAXNXT,
25331     1            MINMAX,IGEPDF,
25332     1            RIGHT,SHAPE3,SHAPE4,ALOC,SCALE,
25333     1            IBUGG3,ISUBRO,IERROR)
25334      IF(ICASPL.EQ.'WESH' .OR. ICASPL.EQ.'TLSH' .OR.
25335     1   ICASPL.EQ.'LNSH' .OR. ICASPL.EQ.'GPSH' .OR.
25336     1   ICASPL.EQ.'FLSH' .OR. ICASPL.EQ.'IWSH' .OR.
25337     1   ICASPL.EQ.'GASH' .OR. ICASPL.EQ.'GSHA' .OR.
25338     1   ICASPL.EQ.'W2SH' .OR.
25339     1   ICASPL.EQ.'GHSH' .OR. ICASPL.EQ.'WASH')RIGHT=SHAPE3
25340      IF(ICASPL.EQ.'GHS2')RIGHT=SHAPE4
25341      IF(ICASPL.EQ.'WELO' .OR. ICASPL.EQ.'TLLO' .OR.
25342     1   ICASPL.EQ.'NOLO' .OR. ICASPL.EQ.'UNLO' .OR.
25343     1   ICASPL.EQ.'CALO' .OR. ICASPL.EQ.'LOLO' .OR.
25344     1   ICASPL.EQ.'DELO' .OR. ICASPL.EQ.'COLO' .OR.
25345     1   ICASPL.EQ.'ANLO' .OR. ICASPL.EQ.'ARLO' .OR.
25346     1   ICASPL.EQ.'EXLO' .OR. ICASPL.EQ.'HSLO' .OR.
25347     1   ICASPL.EQ.'SLLO' .OR. ICASPL.EQ.'MXLO' .OR.
25348     1   ICASPL.EQ.'RALO' .OR. ICASPL.EQ.'HNLO' .OR.
25349     1   ICASPL.EQ.'HCLO' .OR. ICASPL.EQ.'SCLO' .OR.
25350     1   ICASPL.EQ.'LNLO' .OR. ICASPL.EQ.'GPLO' .OR.
25351     1   ICASPL.EQ.'GHLO' .OR. ICASPL.EQ.'WALO' .OR.
25352     1   ICASPL.EQ.'FLLO' .OR. ICASPL.EQ.'GALO' .OR.
25353     1   ICASPL.EQ.'IWLO' .OR. ICASPL.EQ.'SILO' .OR.
25354     1   ICASPL.EQ.'GLOC' .OR.
25355     1   ICASPL.EQ.'G1LO' .OR. ICASPL.EQ.'G2LO'
25356     1)RIGHT=ALOC
25357      IF(ICASPL.EQ.'WESC' .OR. ICASPL.EQ.'TLSC' .OR.
25358     1   ICASPL.EQ.'NOSC' .OR. ICASPL.EQ.'UNSC' .OR.
25359     1   ICASPL.EQ.'W2SC' .OR.
25360     1   ICASPL.EQ.'CASC' .OR. ICASPL.EQ.'LOSC' .OR.
25361     1   ICASPL.EQ.'DESC' .OR. ICASPL.EQ.'COSC' .OR.
25362     1   ICASPL.EQ.'ANSC' .OR. ICASPL.EQ.'ARSC' .OR.
25363     1   ICASPL.EQ.'EXSC' .OR. ICASPL.EQ.'HSSC' .OR.
25364     1   ICASPL.EQ.'SLSC' .OR. ICASPL.EQ.'MXSC' .OR.
25365     1   ICASPL.EQ.'RASC' .OR. ICASPL.EQ.'HNSC' .OR.
25366     1   ICASPL.EQ.'HCSC' .OR. ICASPL.EQ.'SCSC' .OR.
25367     1   ICASPL.EQ.'LNSC' .OR. ICASPL.EQ.'GPSC' .OR.
25368     1   ICASPL.EQ.'GHSC' .OR. ICASPL.EQ.'WASC' .OR.
25369     1   ICASPL.EQ.'GASC' .OR. ICASPL.EQ.'FLSC' .OR.
25370     1   ICASPL.EQ.'IWSC' .OR. ICASPL.EQ.'SISC' .OR.
25371     1   ICASPL.EQ.'GSCA' .OR.
25372     1   ICASPL.EQ.'G1SC' .OR. ICASPL.EQ.'G2SC'
25373     1)RIGHT=SCALE
25374      GOTO79000
25375C
2537611915 CONTINUE
25377C
25378C     FOR WEIBULL CASE WHEN GAUGE LENGTH OPTION IS ON, CHECK FOR
25379C     L PARAMETER
25380C
25381      IF(IDIST.EQ.'WEIB' .AND. IWEIGL.EQ.'ON')THEN
25382        IHP='L   '
25383        IHP2='    '
25384        IHWUSE='P'
25385        MESSAG='NO'
25386        CALL CHECKN(IHP,IHP2,IHWUSE,
25387     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25388     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25389        IF(IERROR.EQ.'YES')THEN
25390          AL=0.0
25391        ELSE
25392          AL=VALUE(ILOCP)
25393          IF(AL.LE.0.0)AL=0.0
25394        ENDIF
25395      ELSE
25396        AL=0.0
25397      ENDIF
25398      CALL NORADA(TEMP,NS2,IDIST,IWRITE,MAXNXT,
25399     1            TEMPZ,TEMPZ3,XTEMP1,XTEMP2,XTEMP3,
25400     1            DTEMP1,DTEMP2,DTEMP3,ITEMP1,
25401     1            MINMAX,IGEPDF,IDFTTY,IWEIGL,AL,
25402     1            STATVA,SHAPE1,SHAPE2,ALOC,SCALE,
25403     1            IBUGG3,ISUBRO,IERROR)
25404      IF(ICASPL.EQ.'NOAD' .OR. ICASPL.EQ.'EXAD' .OR.
25405     1   ICASPL.EQ.'DXAD' .OR. ICASPL.EQ.'GUAD' .OR.
25406     1   ICASPL.EQ.'GAAD' .OR. ICASPL.EQ.'WEAD' .OR.
25407     1   ICASPL.EQ.'LNAD' .OR. ICASPL.EQ.'LOAD' .OR.
25408     1   ICASPL.EQ.'UNAD' .OR. ICASPL.EQ.'MXAD' .OR.
25409     1   ICASPL.EQ.'RAAD' .OR. ICASPL.EQ.'FLAD' .OR.
25410     1   ICASPL.EQ.'FRAD' .OR. ICASPL.EQ.'LXAD' .OR.
25411     1   ICASPL.EQ.'IGAD' .OR. ICASPL.EQ.'B1AD' .OR.
25412     1   ICASPL.EQ.'GEAD'
25413     1  )RIGHT=STATVA
25414      IF(ICASPL.EQ.'NADL' .OR. ICASPL.EQ.'EADL' .OR.
25415     1   ICASPL.EQ.'DXAL' .OR. ICASPL.EQ.'GUAL' .OR.
25416     1   ICASPL.EQ.'LOAL' .OR. ICASPL.EQ.'UNAL' .OR.
25417     1   ICASPL.EQ.'MXAL' .OR. ICASPL.EQ.'RAAL'
25418     1   )RIGHT=ALOC
25419      IF(ICASPL.EQ.'GAAZ' .OR. ICASPL.EQ.'WEAZ' .OR.
25420     1   ICASPL.EQ.'LNAZ' .OR. ICASPL.EQ.'FLAZ' .OR.
25421     1   ICASPL.EQ.'FRAZ' .OR. ICASPL.EQ.'LXAZ' .OR.
25422     1   ICASPL.EQ.'IGAZ' .OR. ICASPL.EQ.'B1AZ' .OR.
25423     1   ICASPL.EQ.'GEAZ'
25424     1  )RIGHT=SHAPE1
25425      IF(ICASPL.EQ.'NADS' .OR. ICASPL.EQ.'EADS' .OR.
25426     1   ICASPL.EQ.'DXAS' .OR. ICASPL.EQ.'GUAS' .OR.
25427     1   ICASPL.EQ.'LOAS' .OR. ICASPL.EQ.'UNAS' .OR.
25428     1   ICASPL.EQ.'MXAS' .OR. ICASPL.EQ.'RAAS' .OR.
25429     1   ICASPL.EQ.'GAAS' .OR. ICASPL.EQ.'WEAS' .OR.
25430     1   ICASPL.EQ.'FLAS' .OR. ICASPL.EQ.'FRAS' .OR.
25431     1   ICASPL.EQ.'LXAS' .OR. ICASPL.EQ.'IGAS' .OR.
25432     1   ICASPL.EQ.'B1AS' .OR. ICASPL.EQ.'GEAS' .OR.
25433     1   ICASPL.EQ.'LNAS'
25434     1  )RIGHT=SCALE
25435      GOTO79000
25436C
2543711920 CONTINUE
25438      CALL BCNORM(TEMP,NS2,XTEMP1,XTEMP2,XTEMP3,
25439     1            PPCC,ALAMBA,
25440     1            IBUGG3,ISUBRO,IERROR)
25441      IF(ICASPL.EQ.'BCPP')RIGHT=PPCC
25442      IF(ICASPL.EQ.'BCLA')RIGHT=ALAMBA
25443      GOTO79000
25444C
2544511933 CONTINUE
25446      CALL MINIM(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
25447      CALL MAXIM(TEMP,NS2,IWRITE,RIGH2,IBUGG3,IERROR)
25448      IF(RIGH1.GE.0.0)THEN
25449        ASIGN1=1.0
25450      ELSE
25451        ASIGN1=-1.0
25452      ENDIF
25453      IF(RIGH2.GE.0.0)THEN
25454        ASIGN2=1.0
25455      ELSE
25456        ASIGN2=-1.0
25457      ENDIF
25458      RIGH1=ABS(RIGH1)
25459      RIGH2=ABS(RIGH2)
25460      IF(RIGH2.GT.RIGH1)THEN
25461        RIGHT=RIGH2
25462        RIGHT=ASIGN2*RIGHT
25463      ELSE
25464        RIGHT=RIGH1
25465        RIGHT=ASIGN1*RIGHT
25466      ENDIF
25467      GOTO79000
2546811935 CONTINUE
25469      ICASE2='MEAN'
25470      CALL AAD(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,ICASE2,IBUGG3,IERROR)
25471      GOTO79000
2547211938 CONTINUE
25473      ICASE2='MEDI'
25474      CALL AAD(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,ICASE2,IBUGG3,IERROR)
25475      GOTO79000
2547611940 CONTINUE
25477      CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHT,IBUGG3,IERROR)
25478      IF(ICASPL.EQ.'MADN')RIGHT=RIGHT/0.67449
25479      GOTO79000
25480C
2548111950 CONTINUE
25482      CALL GEOMEA(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
25483      GOTO79000
2548411960 CONTINUE
25485      CALL GEOSD(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
25486      GOTO79000
2548711970 CONTINUE
25488      CALL HARMEA(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
25489      GOTO79000
2549011980 CONTINUE
25491      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
25492      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
25493      IF(ICASPL.EQ.'SIQU' .OR. ICASPL.EQ.'SIQL')THEN
25494        CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH3,IBUGG3,IERROR)
25495      ENDIF
25496      RIGHT=RIGH2-RIGH1
25497      IF(ICASPL.EQ.'NIQR')THEN
25498        RIGHT=0.7413*RIGHT
25499      ELSEIF(ICASPL.EQ.'SIQU')THEN
25500        RIGHT=RIGH2-RIGH3
25501      ELSEIF(ICASPL.EQ.'SIQL')THEN
25502        RIGHT=RIGH3-RIGH1
25503      ENDIF
25504      GOTO79000
2550511981 CONTINUE
25506CCCCC 2017/12: ALLOW QUANTILE METHOD TO BE SPECIFIED
25507CCCCC CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RQ1,IBUGG3,IERROR)
25508CCCCC CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RQ3,IBUGG3,IERROR)
25509      QNT=0.25
25510      CALL QUANT(QNT,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,IQUAME,RQ1,
25511     1           IBUGG3,IERROR)
25512      QNT=0.75
25513      CALL QUANT(QNT,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,IQUAME,RQ3,
25514     1           IBUGG3,IERROR)
25515      RIGHT=(RQ3 - RQ1)/(RQ1 + RQ3)
25516      GOTO79000
25517C
2551811982 CONTINUE
25519C
25520      IHP='QUAN'
25521      IHP2='T   '
25522      IHWUSE='P'
25523      MESSAG='YES'
25524      CALL CHECKN(IHP,IHP2,IHWUSE,
25525     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25526     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25527      IF(IERROR.EQ.'YES')GOTO9000
25528      XQUANT=VALUE(ILOCP)
25529C
25530      CALL QQRANG(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,XQUANT,RIGHT,
25531     1            IBUGG3,ISUBRO,IERROR)
25532      GOTO79000
25533C
2553411983 CONTINUE
25535      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RQ1,IBUGG3,IERROR)
25536      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RQ3,IBUGG3,IERROR)
25537      RIGH1=(RQ3 - RQ1)/(RQ1 + RQ3)
25538      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RQ1,IBUGG3,IERROR)
25539      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RQ3,IBUGG3,IERROR)
25540      RIGH2=(RQ3 - RQ1)/(RQ1 + RQ3)
25541      RIGHT=RIGH1 - RIGH2
25542      GOTO79000
25543C
2554411990 CONTINUE
25545      CALL BIWLOC(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHT,
25546     1IBUGG3,IERROR)
25547      GOTO79000
25548C
2554912000 CONTINUE
25550      CALL BIWSCA(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHT,
25551     1IBUGG3,IERROR)
25552      GOTO79000
25553C
2555412010 CONTINUE
25555      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25556     1            XTEMP1,MAXNXT,XTEMP2,
25557     1            IBUGG3,ISUBRO,IERROR)
25558      IF(IERROR.EQ.'YES')GOTO9000
25559      CALL VAR(XTEMP2,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
25560      GOTO79000
25561C
2556212030 CONTINUE
25563      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25564     1            XTEMP1,MAXNXT,XTEMP2,
25565     1            IBUGG3,ISUBRO,IERROR)
25566      IF(IERROR.EQ.'YES')GOTO9000
25567      GOTO79000
25568C
2556912050 CONTINUE
25570      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25571     1            XTEMP1,MAXNXT,XTEMP2,
25572     1            IBUGG3,ISUBRO,IERROR)
25573      DO12052I=1,NS2
25574        TEMP(I)=XTEMP2(I)
2557512052 CONTINUE
25576      CALL WINSOR(TEMPZ,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25577     1            XTEMP1,MAXNXT,XTEMP2,
25578     1            IBUGG3,ISUBRO,IERROR)
25579      DO12054I=1,NS2
25580        TEMPZ(I)=XTEMP2(I)
2558112054 CONTINUE
25582      CALL COV(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
25583      GOTO79000
25584C
2558512070 CONTINUE
25586      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25587     1            XTEMP1,MAXNXT,XTEMP2,
25588     1            IBUGG3,ISUBRO,IERROR)
25589      DO12072I=1,NS2
25590        TEMP(I)=XTEMP2(I)
2559112072 CONTINUE
25592      CALL WINSOR(TEMPZ,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25593     1            XTEMP1,MAXNXT,XTEMP2,
25594     1            IBUGG3,ISUBRO,IERROR)
25595      DO12074I=1,NS2
25596        TEMPZ(I)=XTEMP2(I)
2559712074 CONTINUE
25598      CALL CORR(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
25599      GOTO79000
25600C
2560112090 CONTINUE
25602      CALL BIWMDV(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHT,
25603     1IBUGG3,IERROR)
25604      GOTO79000
25605C
2560612100 CONTINUE
25607      CALL BIWMCV(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHT,
25608     1IBUGG3,IERROR)
25609      GOTO79000
25610C
2561112110 CONTINUE
25612      CALL PBNMDV(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,BETA,
25613     1            IBUGG3,IERROR)
25614      GOTO79000
25615C
2561612115 CONTINUE
25617      CALL PBNCOR(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,
25618     1            RIGHT,BETA,
25619     1            IBUGG3,IERROR)
25620      GOTO79000
25621C
2562212120 CONTINUE
25623      DO12122I=1,NS2
25624        ITEMP1(I)=0
25625        ITEMP2(I)=0
25626        ITEMP3(I)=0
2562712122 CONTINUE
25628      CALL HLQEST(TEMP,NS2,XTEMP1,ITEMP1,ITEMP2,ITEMP3,ISEED,RIGHT)
25629      GOTO79000
25630C
2563112130 CONTINUE
25632C
25633      IF(APVAL.GE.0.0 .AND. APVAL.LE.1.0)THEN
25634        XQ=APVAL
25635      ELSEIF(IPNAM1.NE.'    ')THEN
25636        IHWUSE='P'
25637        MESSAG='YES'
25638        CALL CHECKN(IPNAM1,IPNAM2,IHWUSE,
25639     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25640     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25641        IF(IERROR.EQ.'YES')GOTO9000
25642        XQ=VALUE(ILOCP)
25643      ELSE
25644        IHP='XQ  '
25645        IHP2='    '
25646        IHWUSE='P'
25647        MESSAG='YES'
25648        CALL CHECKN(IHP,IHP2,IHWUSE,
25649     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25650     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25651        IF(IERROR.EQ.'YES')GOTO9000
25652        XQ=VALUE(ILOCP)
25653      ENDIF
25654C
25655      CALL QUANT(XQ,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
25656     1IQUAME,
25657     1RIGHT,IBUGG3,IERROR)
25658      GOTO79000
25659C
2566012135 CONTINUE
25661C
25662      IHP='XQNU'
25663      IHP2='M   '
25664      IHWUSE='P'
25665      MESSAG='NO'
25666      CALL CHECKN(IHP,IHP2,IHWUSE,
25667     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25668     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25669      IF(IERROR.EQ.'YES')THEN
25670        XQNUM=0.9
25671      ELSE
25672        XQNUM=VALUE(ILOCP)
25673        IF(XQNUM.GT.1.0 .AND. XQNUM.LE.100.0)XQNUM=XQNUM/100.0
25674        IF(XQNUM.LT.0.0 .OR. XQNUM.GT.100.0)XQNUM=0.9
25675      ENDIF
25676C
25677      IHP='XQDE'
25678      IHP2='NOM '
25679      IHWUSE='P'
25680      MESSAG='NO'
25681      CALL CHECKN(IHP,IHP2,IHWUSE,
25682     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25683     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25684      IF(IERROR.EQ.'YES')THEN
25685        XQDEN=0.4
25686      ELSE
25687        XQDEN=VALUE(ILOCP)
25688        IF(XQDEN.GT.1.0 .AND. XQDEN.LE.100.0)XQDEN=XQDEN/100.0
25689        IF(XQDEN.LT.0.0 .OR. XQDEN.GT.100.0)XQDEN=0.4
25690      ENDIF
25691C
25692      CALL DECRAT(TEMP,NS2,IWRITE,XQNUM,XQDEN,
25693     1            RIGHT,
25694     1            IBUGG3,ISUBRO,IERROR)
25695      GOTO79000
2569612140 CONTINUE
25697C
25698      IF(APVAL.GE.0.0 .AND. APVAL.LE.1.0)THEN
25699        XQ=APVAL
25700      ELSEIF(IPNAM1.NE.'    ')THEN
25701        IHWUSE='P'
25702        MESSAG='YES'
25703        CALL CHECKN(IPNAM1,IPNAM2,IHWUSE,
25704     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25705     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25706        IF(IERROR.EQ.'YES')GOTO9000
25707        XQ=VALUE(ILOCP)
25708      ELSE
25709        IHP='XQ  '
25710        IHP2='    '
25711        IHWUSE='P'
25712        MESSAG='YES'
25713        CALL CHECKN(IHP,IHP2,IHWUSE,
25714     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25715     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25716        IF(IERROR.EQ.'YES')GOTO9000
25717        XQ=VALUE(ILOCP)
25718      ENDIF
25719C
25720      CALL QUANSE(XQ,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
25721     1IQUASE,
25722     1RIGHT,IBUGG3,IERROR)
25723      GOTO79000
25724C
2572512150 CONTINUE
25726      CALL TRIMSE(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25727     1            XTEMP1,XTEMP2,MAXNXT,RIGHT,
25728     1            IBUGG3,ISUBRO,IERROR)
25729      GOTO79000
25730C
2573112160 CONTINUE
25732      CALL BIWMDV(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH1,
25733     1IBUGG3,IERROR)
25734      CALL BIWMDV(TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH2,
25735     1IBUGG3,IERROR)
25736      CALL BIWMCV(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH3,
25737     1IBUGG3,IERROR)
25738      RIGH4=RIGH1*RIGH2
25739      IF(RIGH4.GT.0.0)THEN
25740        RIGHT=RIGH3/SQRT(RIGH4)
25741      ELSE
25742        RIGHT=0.0
25743      ENDIF
25744      GOTO79000
25745C
2574612172 CONTINUE
25747      CALL COMDIG(TEMP,NS2,IWRITE,RIGHT,NRIGH,IBUGG3,IERROR)
25748      GOTO79000
25749C
2575012174 CONTINUE
25751      CALL COMDIG(TEMP,NS2,IWRITE,RIGHT,NRIGH,IBUGG3,IERROR)
25752      RIGHT=REAL(NRIGH)
25753      GOTO79000
25754C
2575512176 CONTINUE
25756      RIGHT=SN(TEMP,NS2,XTEMP1,XTEMP2,XTEMP3)
25757      GOTO79000
25758C
2575912178 CONTINUE
25760      RIGHT=QN(TEMP,NS2,XTEMP1,XTEMP2,XTEMP3,
25761     1        ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6)
25762      GOTO79000
25763C
2576412180 CONTINUE
25765      CALL MEAN(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
25766      CALL MEAN(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
25767      RIGHT=RIGH1-RIGH2
25768      GOTO79000
25769C
2577012182 CONTINUE
25771      IHP='ALPH'
25772      IHP2='A   '
25773      IHWUSE='P'
25774      MESSAG='NO'
25775      CALL CHECKN(IHP,IHP2,IHWUSE,
25776     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
25777     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
25778      IF(IERROR.EQ.'NO')THEN
25779        ALPHA=VALUE(ILOCP)
25780      ELSE
25781        ALPHA=0.95
25782      ENDIF
25783C
25784      CALL HEDGEG(TEMP,TEMPZ,NS2,NSZ,IWRITE,STATVA,STATBC,STATSE,
25785     1            ALPHA,ALCL,AUCL,
25786     1            YMEAN1,YSD1,YMEAN2,YSD2,SPOOL,
25787     1            ICASPL,ISUBRO,IBUGG3,IERROR)
25788      RIGHT=STATVA
25789      IF(ICASPL.EQ.'BCHG')THEN
25790        RIGHT=STATBC
25791      ELSEIF(ICASPL.EQ.'BCHG')THEN
25792        RIGHT=STATBC
25793      ELSEIF(ICASPL.EQ.'HESE')THEN
25794        RIGHT=STATSE
25795      ELSEIF(ICASPL.EQ.'HELC')THEN
25796        RIGHT=ALCL
25797      ELSEIF(ICASPL.EQ.'HEUC')THEN
25798        RIGHT=AUCL
25799      ENDIF
25800      GOTO79000
25801C
2580212190 CONTINUE
25803      CALL MIDMEA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
25804      CALL MIDMEA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
25805      RIGHT=RIGH1-RIGH2
25806      GOTO79000
25807C
2580812200 CONTINUE
25809      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
25810      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
25811      RIGHT=RIGH1-RIGH2
25812      GOTO79000
25813C
2581412210 CONTINUE
25815      CALL TRIMME(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25816     1            XTEMP1,MAXNXT,RIGH1,
25817     1            IBUGG3,ISUBRO,IERROR)
25818      CALL TRIMME(TEMPZ,NSZ,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25819     1            XTEMP1,MAXNXT,RIGH2,
25820     1            IBUGG3,ISUBRO,IERROR)
25821      RIGHT=RIGH1-RIGH2
25822      GOTO79000
25823C
2582412220 CONTINUE
25825      CALL WINDME(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25826     1            XTEMP1,MAXNXT,RIGH1,
25827     1            IBUGG3,ISUBRO,IERROR)
25828      CALL WINDME(TEMPZ,NSZ,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25829     1            XTEMP1,MAXNXT,RIGH2,
25830     1            IBUGG3,ISUBRO,IERROR)
25831      RIGHT=RIGH1-RIGH2
25832      GOTO79000
25833C
2583412230 CONTINUE
25835      CALL GEOMEA(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
25836      CALL GEOMEA(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
25837      RIGHT=RIGH1-RIGH2
25838      GOTO79000
25839C
2584012240 CONTINUE
25841      CALL HARMEA(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
25842      CALL HARMEA(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
25843      RIGHT=RIGH1-RIGH2
25844      GOTO79000
25845C
2584612250 CONTINUE
25847      DO12252I=1,NS2
25848        ITEMP1(I)=0
25849        ITEMP2(I)=0
25850        ITEMP3(I)=0
2585112252 CONTINUE
25852      CALL HLQEST(TEMP,NS2,XTEMP1,ITEMP1,ITEMP2,ITEMP3,ISEED,RIGH1)
25853      DO12254I=1,NSZ
25854        ITEMP1(I)=0
25855        ITEMP2(I)=0
25856        ITEMP3(I)=0
2585712254 CONTINUE
25858      CALL HLQEST(TEMPZ,NSZ,XTEMP1,ITEMP1,ITEMP2,ITEMP3,ISEED,RIGH2)
25859      RIGHT=RIGH1-RIGH2
25860      GOTO79000
25861C
2586212260 CONTINUE
25863      CALL BIWLOC(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH1,
25864     1IBUGG3,IERROR)
25865      CALL BIWLOC(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH2,
25866     1IBUGG3,IERROR)
25867      RIGHT=RIGH1-RIGH2
25868      GOTO79000
25869C
2587012270 CONTINUE
25871      CALL SD(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
25872      CALL SD(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
25873      RIGHT=RIGH1-RIGH2
25874      GOTO79000
25875C
2587612275 CONTINUE
25877      CALL RMS(TEMP,NS2,IWRITE,RIGH1,IBUGG3,ISUBRO,IERROR)
25878      CALL RMS(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,ISUBRO,IERROR)
25879      RIGHT=RIGH1-RIGH2
25880      GOTO79000
25881C
2588212280 CONTINUE
25883      CALL VAR(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
25884      CALL VAR(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
25885      RIGHT=RIGH1-RIGH2
25886      GOTO79000
25887C
2588812282 CONTINUE
25889      CALL VAR(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
25890      CALL VAR(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
25891      IF(RIGH1.GT.0.0)THEN
25892        RIGH1=1.0/RIGH1
25893      ELSE
25894        RIGH1=0.0
25895        IERROR='YES'
25896      ENDIF
25897      IF(RIGH2.GT.0.0)THEN
25898        RIGH2=1.0/RIGH2
25899      ELSE
25900        RIGH2=0.0
25901        IERROR='YES'
25902      ENDIF
25903      RIGHT=RIGH1-RIGH2
25904      GOTO79000
25905C
2590612284 CONTINUE
25907      CALL SD(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
25908      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
25909      RIGH1=0.0
25910      IF(RIGHTV.NE.0.0)RIGH1=RIGHTM/RIGHTV
25911      CALL SD(TEMPZ,NSZ,IWRITE,RIGHTV,IBUGG3,IERROR)
25912      CALL MEAN(TEMPZ,NSZ,IWRITE,RIGHTM,IBUGG3,IERROR)
25913      RIGH2=0.0
25914      IF(RIGHTV.NE.0.0)RIGH2=RIGHTM/RIGHTV
25915      RIGHT=RIGH1-RIGH2
25916      GOTO79000
25917C
2591812290 CONTINUE
25919      ICASE2='MEAN'
25920      CALL AAD(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,ICASE2,IBUGG3,IERROR)
25921      CALL AAD(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,ICASE2,
25922     1         IBUGG3,IERROR)
25923      RIGHT=RIGH1-RIGH2
25924      GOTO79000
25925C
2592612295 CONTINUE
25927      ICASE2='MEDI'
25928      CALL AAD(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,ICASE2,IBUGG3,IERROR)
25929      CALL AAD(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,ICASE2,
25930     1         IBUGG3,IERROR)
25931      RIGHT=RIGH1-RIGH2
25932      GOTO79000
25933C
2593412300 CONTINUE
25935      CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH1,
25936     1         IBUGG3,IERROR)
25937      IF(ICASPL.EQ.'DMAN')RIGH1=RIGH1/0.67449
25938      CALL MAD(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH2,
25939     1         IBUGG3,IERROR)
25940      IF(ICASPL.EQ.'DMAN')RIGH2=RIGH2/0.67449
25941      RIGHT=RIGH1-RIGH2
25942      GOTO79000
25943C
2594412310 CONTINUE
25945      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH3,IBUGG3,IERROR)
25946      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH4,IBUGG3,IERROR)
25947      RIGH1=RIGH4-RIGH3
25948      IF(ICASPL.EQ.'DNIQ')RIGH1=0.7413*(RIGH4-RIGH3)
25949      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH5,IBUGG3,IERROR)
25950      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH6,IBUGG3,IERROR)
25951      RIGH2=RIGH6-RIGH5
25952      IF(ICASPL.EQ.'DNIQ')RIGH2=0.7413*(RIGH6-RIGH5)
25953      RIGHT=RIGH1-RIGH2
25954      GOTO79000
25955C
2595612320 CONTINUE
25957      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25958     1            XTEMP1,MAXNXT,XTEMP2,
25959     1            IBUGG3,ISUBRO,IERROR)
25960      CALL SD(XTEMP2,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
25961      CALL WINSOR(TEMPZ,NSZ,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25962     1            XTEMP1,MAXNXT,XTEMP2,
25963     1            IBUGG3,ISUBRO,IERROR)
25964      CALL SD(XTEMP2,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
25965      RIGHT=RIGH1-RIGH2
25966      GOTO79000
25967C
2596812330 CONTINUE
25969      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25970     1            XTEMP1,MAXNXT,XTEMP2,
25971     1            IBUGG3,ISUBRO,IERROR)
25972      CALL VAR(XTEMP2,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
25973      CALL WINSOR(TEMPZ,NSZ,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
25974     1            XTEMP1,MAXNXT,XTEMP2,
25975     1            IBUGG3,ISUBRO,IERROR)
25976      CALL VAR(XTEMP2,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
25977      RIGHT=RIGH1-RIGH2
25978      GOTO79000
25979C
2598012340 CONTINUE
25981      CALL BIWMDV(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH1,
25982     1IBUGG3,IERROR)
25983      CALL BIWMDV(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH2,
25984     1IBUGG3,IERROR)
25985      RIGHT=RIGH1-RIGH2
25986      GOTO79000
25987C
2598812350 CONTINUE
25989      CALL BIWSCA(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH1,
25990     1IBUGG3,IERROR)
25991      CALL BIWSCA(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH2,
25992     1IBUGG3,IERROR)
25993      RIGHT=RIGH1-RIGH2
25994      GOTO79000
25995C
2599612360 CONTINUE
25997      CALL PBNMDV(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,BETA,
25998     1            IBUGG3,IERROR)
25999      CALL PBNMDV(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,BETA,
26000     1            IBUGG3,IERROR)
26001      RIGHT=RIGH1-RIGH2
26002      GOTO79000
26003C
2600412370 CONTINUE
26005      CALL GEOSD(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26006      CALL GEOSD(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26007      RIGHT=RIGH1-RIGH2
26008      GOTO79000
26009C
2601012380 CONTINUE
26011      CALL RANGDP(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26012      CALL RANGDP(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26013      RIGHT=RIGH1-RIGH2
26014      GOTO79000
26015C
2601612390 CONTINUE
26017      CALL MIDRAN(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26018      CALL MIDRAN(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26019      RIGHT=RIGH1-RIGH2
26020      GOTO79000
26021C
2602212400 CONTINUE
26023C
26024      IF(APVAL.GE.0.0 .AND. APVAL.LE.1.0)THEN
26025        XQ=APVAL
26026      ELSEIF(IPNAM1.NE.'    ')THEN
26027        IHWUSE='P'
26028        MESSAG='YES'
26029        CALL CHECKN(IPNAM1,IPNAM2,IHWUSE,
26030     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26031     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26032        IF(IERROR.EQ.'YES')GOTO9000
26033        XQ=VALUE(ILOCP)
26034      ELSE
26035        IHP='XQ  '
26036        IHP2='    '
26037        IHWUSE='P'
26038        MESSAG='YES'
26039        CALL CHECKN(IHP,IHP2,IHWUSE,
26040     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26041     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26042        IF(IERROR.EQ.'YES')GOTO9000
26043        XQ=VALUE(ILOCP)
26044      ENDIF
26045C
26046      CALL QUANSE(XQ,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
26047     1IQUASE,
26048     1RIGH1,IBUGG3,IERROR)
26049      CALL QUANSE(XQ,TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,
26050     1IQUASE,
26051     1RIGH2,IBUGG3,IERROR)
26052      RIGHT=RIGH1-RIGH2
26053      GOTO79000
26054C
2605512405 CONTINUE
26056C
26057      IF(APVAL.GE.0.0 .AND. APVAL.LE.1.0)THEN
26058        XQ=APVAL
26059      ELSEIF(IPNAM1.NE.'    ')THEN
26060        IHWUSE='P'
26061        MESSAG='YES'
26062        CALL CHECKN(IPNAM1,IPNAM2,IHWUSE,
26063     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26064     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26065        IF(IERROR.EQ.'YES')GOTO9000
26066        XQ=VALUE(ILOCP)
26067      ELSE
26068        IHP='XQ  '
26069        IHP2='    '
26070        IHWUSE='P'
26071        MESSAG='YES'
26072        CALL CHECKN(IHP,IHP2,IHWUSE,
26073     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26074     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26075                    IF(IERROR.EQ.'YES')GOTO9000
26076        XQ=VALUE(ILOCP)
26077      ENDIF
26078C
26079      CALL QUANT(XQ,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
26080     1IQUAME,
26081     1RIGH1,IBUGG3,IERROR)
26082      CALL QUANT(XQ,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
26083     1IQUAME,
26084     1RIGH2,IBUGG3,IERROR)
26085      RIGHT=RIGH1-RIGH2
26086      GOTO79000
26087C
2608812410 CONTINUE
26089      CALL STMOM3(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26090      CALL STMOM3(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26091      RIGHT=RIGH1-RIGH2
26092      GOTO79000
26093C
2609412412 CONTINUE
26095      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q1,IBUGG3,IERROR)
26096      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q3,IBUGG3,IERROR)
26097      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q2,IBUGG3,IERROR)
26098      IF(Q1.NE.Q3)THEN
26099        RIGH1=(Q3 + Q1 - 2.0*Q2)/(Q3 - Q1)
26100      ELSE
26101        RIGH1=CPUMIN
26102      ENDIF
26103C
26104      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,Q1,IBUGG3,IERROR)
26105      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,Q3,IBUGG3,IERROR)
26106      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,Q2,IBUGG3,IERROR)
26107      IF(Q1.NE.Q3)THEN
26108        RIGH2=(Q3 + Q1 - 2.0*Q2)/(Q3 - Q1)
26109      ELSE
26110        RIGH2=CPUMIN
26111      ENDIF
26112C
26113      IF(RIGH1.EQ.CPUMIN .OR. RIGH2.EQ.CPUMIN)THEN
26114        RIGHT=CPUMIN
26115      ELSE
26116        RIGHT=RIGH1-RIGH2
26117      ENDIF
26118      GOTO79000
26119C
2612012414 CONTINUE
26121      CALL MEAN(TEMP,NS2,IWRITE,YMEAN,IBUGG3,IERROR)
26122      CALL SD(TEMP,NS2,IWRITE,YSD,IBUGG3,IERROR)
26123      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,YMED,IBUGG3,IERROR)
26124      IF(YSD.GT.0.0)THEN
26125        RIGHT=3.0*(YMEAN-YMED)/YSD
26126      ELSE
26127        RIGHT=CPUMIN
26128      ENDIF
26129C
26130      CALL MEAN(TEMPZ,NSZ,IWRITE,YMEAN,IBUGG3,IERROR)
26131      CALL SD(TEMPZ,NSZ,IWRITE,YSD,IBUGG3,IERROR)
26132      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,YMED,IBUGG3,IERROR)
26133      IF(YSD.GT.0.0)THEN
26134        RIGH2=3.0*(YMEAN-YMED)/YSD
26135      ELSE
26136        RIGH2=CPUMIN
26137      ENDIF
26138C
26139      IF(RIGH1.EQ.CPUMIN .OR. RIGH2.EQ.CPUMIN)THEN
26140        RIGHT=CPUMIN
26141      ELSE
26142        RIGHT=RIGH1-RIGH2
26143      ENDIF
26144      GOTO79000
26145C
2614612420 CONTINUE
26147      CALL STMOM4(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26148      CALL STMOM4(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26149      RIGHT=RIGH1-RIGH2
26150      GOTO79000
26151C
2615212425 CONTINUE
26153      CALL STMOM4(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26154      RIGH1=RIGH1-3.0
26155      CALL STMOM4(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26156      RIGH2=RIGH2-3.0
26157      RIGHT=RIGH1-RIGH2
26158      GOTO79000
26159C
2616012430 CONTINUE
26161      CALL RELSD(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26162      CALL RELSD(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26163      RIGHT=RIGH1-RIGH2
26164      GOTO79000
26165C
2616612440 CONTINUE
26167      CALL SDMEAN(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26168      CALL SDMEAN(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26169      RIGHT=RIGH1-RIGH2
26170      GOTO79000
26171C
2617212450 CONTINUE
26173      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
26174      CALL VAR(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
26175      RIGH1=0.0
26176      IF(RIGHTM.NE.0.0)RIGH1=100.0*RIGHTV/ABS(RIGHTM)
26177      CALL MEAN(TEMPZ,NSZ,IWRITE,RIGHTM,IBUGG3,IERROR)
26178      CALL VAR(TEMPZ,NSZ,IWRITE,RIGHTV,IBUGG3,IERROR)
26179      RIGH2=0.0
26180      IF(RIGHTM.NE.0.0)RIGH2=100.0*RIGHTV/ABS(RIGHTM)
26181      RIGHT=RIGH1-RIGH2
26182      GOTO79000
26183C
2618412460 CONTINUE
26185      CALL SDMEAN(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26186      RIGH1=RIGH1**2
26187      CALL SDMEAN(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26188      RIGH2=RIGH2**2
26189      RIGHT=RIGH1-RIGH2
26190      GOTO79000
26191C
2619212470 CONTINUE
26193      CALL MINIM(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26194      CALL MINIM(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26195      RIGHT=RIGH1-RIGH2
26196      GOTO79000
26197C
2619812480 CONTINUE
26199      CALL MAXIM(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26200      CALL MAXIM(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26201      RIGHT=RIGH1-RIGH2
26202      GOTO79000
26203C
2620412490 CONTINUE
26205      CALL MINIM(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26206      CALL MAXIM(TEMP,NS2,IWRITE,RIGH2,IBUGG3,IERROR)
26207      RIGH1=ABS(RIGH1)
26208      RIGH2=ABS(RIGH2)
26209      RIGH3=RIGH1
26210      IF(RIGH2.GT.RIGH1)RIGH3=RIGH2
26211C
26212      CALL MINIM(TEMPZ,NSZ,IWRITE,RIGH4,IBUGG3,IERROR)
26213      CALL MAXIM(TEMPZ,NSZ,IWRITE,RIGH5,IBUGG3,IERROR)
26214      RIGH4=ABS(RIGH4)
26215      RIGH5=ABS(RIGH5)
26216      RIGH6=RIGH4
26217      IF(RIGH5.GT.RIGH4)RIGH6=RIGH5
26218      RIGHT=RIGH3-RIGH6
26219      GOTO79000
26220C
2622112495 CONTINUE
26222      CALL SD(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
26223      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
26224      RIGH1=0.0
26225      IF(RIGHTM.NE.0.0)RIGH1=RIGHTV/RIGHTM
26226      CALL SD(TEMPZ,NSZ,IWRITE,RIGHTV,IBUGG3,IERROR)
26227      CALL MEAN(TEMPZ,NSZ,IWRITE,RIGHTM,IBUGG3,IERROR)
26228      RIGH2=0.0
26229      IF(RIGHTM.NE.0.0)RIGH2=RIGHTV/RIGHTM
26230      RIGHT=RIGH1-RIGH2
26231      GOTO79000
2623212500 CONTINUE
26233      CALL SIZE(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26234      CALL SIZE(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26235      RIGHT=RIGH1-RIGH2
26236      GOTO79000
26237C
2623812510 CONTINUE
26239      CALL SUMDP(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26240      CALL SUMDP(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26241      RIGHT=RIGH1-RIGH2
26242      GOTO79000
26243C
2624412512 CONTINUE
26245      CALL PROD(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
26246      CALL PROD(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
26247      RIGHT=RIGH1-RIGH2
26248      GOTO79000
26249C
2625012520 CONTINUE
26251      RIGH1=SN(TEMP,NS2,XTEMP1,XTEMP2,XTEMP3)
26252      RIGH2=SN(TEMPZ,NSZ,XTEMP1,XTEMP2,XTEMP3)
26253      RIGHT=RIGH1-RIGH2
26254      GOTO79000
26255C
2625612530 CONTINUE
26257      RIGH1=QN(TEMP,NS2,XTEMP1,XTEMP2,XTEMP3,
26258     1         ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6)
26259      RIGH2=QN(TEMPZ,NSZ,XTEMP1,XTEMP2,XTEMP3,
26260     1         ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6)
26261      RIGHT=RIGH1-RIGH2
26262      GOTO79000
26263C
2626412540 CONTINUE
26265      CALL LPLOC(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH1,
26266     1           IBUGG3,IERROR)
26267      CALL LPLOC(TEMPZ,NSZ,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH2,
26268     1           IBUGG3,IERROR)
26269      RIGHT=RIGH1-RIGH2
26270      GOTO79000
26271C
2627212550 CONTINUE
26273      CALL LPVARI(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH1,
26274     1           IQUASE,IBUGG3,IERROR)
26275      CALL LPVARI(TEMPZ,NSZ,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH2,
26276     1           IQUASE,IBUGG3,IERROR)
26277      RIGHT=RIGH1-RIGH2
26278      GOTO79000
26279C
2628012560 CONTINUE
26281      CALL LPVARI(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH1,
26282     1           IQUASE,IBUGG3,IERROR)
26283      RIGH1=SQRT(RIGH1)
26284      CALL LPVARI(TEMPZ,NSZ,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH2,
26285     1           IQUASE,IBUGG3,IERROR)
26286      RIGH2=SQRT(RIGH2)
26287      RIGHT=RIGH1-RIGH2
26288      GOTO79000
26289C
2629012570 CONTINUE
26291      IHP='ALPH'
26292      IHP2='A   '
26293      IHWUSE='P'
26294      MESSAG='NO'
26295      CALL CHECKN(IHP,IHP2,IHWUSE,
26296     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26297     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26298      IF(IERROR.EQ.'YES')THEN
26299        ALPHA=0.05
26300      ELSE
26301        ALPHA=VALUE(ILOCP)
26302        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
26303          ALPHA=ALPHA/100.0
26304        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
26305          CONTINUE
26306        ELSE
26307          ALPHA=0.05
26308        ENDIF
26309      ENDIF
26310C
26311      CALL DPPRC4(TEMP,NS2,TEMPZ,NSZ,ALPHA,PSTAMV,IBI2ME,XTEMP1,
26312     1            YDIFF,ALOWLM,AUPPLM,
26313     1            ISUBRO,IBUGG3,IERROR)
26314      RIGHT=YDIFF
26315      IF(ICASPL.EQ.'DBLC')RIGHT=ALOWLM
26316      IF(ICASPL.EQ.'DBUC')RIGHT=AUPPLM
26317      GOTO79000
26318C
2631912590 CONTINUE
26320      CALL TRIMSD(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,MAXNXT,
26321     1            XTEMP1,RIGH1,
26322     1            IBUGG3,ISUBRO,IERROR)
26323      CALL TRIMSD(TEMPZ,NSZ,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,MAXNXT,
26324     1            XTEMP1,RIGH2,
26325     1            IBUGG3,ISUBRO,IERROR)
26326      RIGHT=RIGH1-RIGH2
26327      GOTO79000
26328C
2632912600 CONTINUE
26330      IF(ICASPL.EQ.'MIDQ')P100=50.0
26331      IF(ICASPL.EQ.'1DEC')P100=10.0
26332      IF(ICASPL.EQ.'2DEC')P100=20.0
26333      IF(ICASPL.EQ.'3DEC')P100=30.0
26334      IF(ICASPL.EQ.'4DEC')P100=40.0
26335      IF(ICASPL.EQ.'5DEC')P100=50.0
26336      IF(ICASPL.EQ.'6DEC')P100=60.0
26337      IF(ICASPL.EQ.'7DEC')P100=70.0
26338      IF(ICASPL.EQ.'8DEC')P100=80.0
26339      IF(ICASPL.EQ.'9DEC')P100=90.0
26340      CALL PERCEN(P100,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
26341     1RIGH1,IBUGG3,IERROR)
26342      CALL PERCEN(P100,TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,
26343     1RIGH2,IBUGG3,IERROR)
26344      RIGHT=RIGH1-RIGH2
26345      GOTO79000
26346C
2634712610 CONTINUE
26348      CALL LOWHIN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
26349      CALL LOWHIN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
26350      RIGHT=RIGH1-RIGH2
26351      GOTO79000
2635212620 CONTINUE
26353      CALL UPPHIN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
26354      CALL UPPHIN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
26355      RIGHT=RIGH1-RIGH2
26356      GOTO79000
2635712630 CONTINUE
26358      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
26359      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
26360      RIGHT=RIGH1-RIGH2
26361      GOTO79000
2636212640 CONTINUE
26363      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
26364      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
26365      RIGHT=RIGH1-RIGH2
26366      GOTO79000
26367C
2636812650 CONTINUE
26369      NCUT=0
26370      C=1.0
26371      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26372     1         ISUBRO,IBUGG3)
26373      RIGH1=AH15
26374      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26375     1         ISUBRO,IBUGG3)
26376      RIGH2=AH15
26377      RIGHT=RIGH1-RIGH2
26378      GOTO79000
26379C
2638012660 CONTINUE
26381      NCUT=0
26382      C=1.2
26383      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP1,MAXNXT,
26384     1         ISUBRO,IBUGG3)
26385      RIGH1=AH15
26386      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26387     1         ISUBRO,IBUGG3)
26388      RIGH2=AH15
26389      RIGHT=RIGH1-RIGH2
26390      GOTO79000
26391C
2639212670 CONTINUE
26393      NCUT=0
26394      C=1.5
26395      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26396     1         ISUBRO,IBUGG3)
26397      RIGH1=AH15
26398      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26399     1         ISUBRO,IBUGG3)
26400      RIGH2=AH15
26401      RIGHT=RIGH1-RIGH2
26402      GOTO79000
26403C
2640412680 CONTINUE
26405      NCUT=0
26406      C=1.7
26407      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26408     1         ISUBRO,IBUGG3)
26409      RIGH1=AH15
26410      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26411     1         ISUBRO,IBUGG3)
26412      RIGH2=AH15
26413      RIGHT=RIGH1-RIGH2
26414      GOTO79000
26415C
2641612690 CONTINUE
26417      NCUT=0
26418      C=2.0
26419      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26420     1         ISUBRO,IBUGG3)
26421      RIGH1=AH15
26422      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26423     1         ISUBRO,IBUGG3)
26424      RIGH2=AH15
26425      RIGHT=RIGH1-RIGH2
26426      GOTO79000
26427C
2642812700 CONTINUE
26429      NCUT=0
26430      C=1.0
26431      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26432     1         ISUBRO,IBUGG3)
26433      RIGH1=XSC
26434      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26435     1         ISUBRO,IBUGG3)
26436      RIGH2=XSC
26437      RIGHT=RIGH1-RIGH2
26438      GOTO79000
26439C
2644012710 CONTINUE
26441      NCUT=0
26442      C=1.2
26443      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26444     1         ISUBRO,IBUGG3)
26445      RIGH1=XSC
26446      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26447     1         ISUBRO,IBUGG3)
26448      RIGH2=XSC
26449      RIGHT=RIGH1-RIGH2
26450      GOTO79000
26451C
2645212720 CONTINUE
26453      NCUT=0
26454      C=1.5
26455      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26456     1         ISUBRO,IBUGG3)
26457      RIGH1=XSC
26458      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26459     1         ISUBRO,IBUGG3)
26460      RIGH2=XSC
26461      RIGHT=RIGH1-RIGH2
26462      GOTO79000
26463C
2646412730 CONTINUE
26465      NCUT=0
26466      C=1.7
26467      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26468     1         ISUBRO,IBUGG3)
26469      RIGH1=XSC
26470      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26471     1         ISUBRO,IBUGG3)
26472      RIGH2=XSC
26473      RIGHT=RIGH1-RIGH2
26474      GOTO79000
26475C
2647612740 CONTINUE
26477      NCUT=0
26478      C=2.0
26479      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26480     1         ISUBRO,IBUGG3)
26481      RIGH1=XSC
26482      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26483     1         ISUBRO,IBUGG3)
26484      RIGH2=XSC
26485      RIGHT=RIGH1-RIGH2
26486      GOTO79000
26487C
2648812750 CONTINUE
26489C
26490      IHP='NREP'
26491      IHP2='L   '
26492      IHWUSE='P'
26493      MESSAG='YES'
26494      CALL CHECKN(IHP,IHP2,IHWUSE,
26495     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26496     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26497      IF(IERROR.EQ.'YES')GOTO9000
26498      NREPL=INT(VALUE(ILOCP)+0.5)
26499C
26500      ICASE='SD'
26501      CALL ROBPSD(TEMP,NS2,NREPL,XTEMP1,ICASE,IWRITE,MAXNXT,
26502     1            RIGHT,IERROR,ISUBRO,IBUGG3)
26503      GOTO79000
26504C
2650512760 CONTINUE
26506      NREPL=1
26507      ICASE='RANG'
26508      CALL ROBPSD(TEMP,NS2,NREPL,XTEMP1,ICASE,IWRITE,MAXNXT,
26509     1            RIGHT,IERROR,ISUBRO,IBUGG3)
26510      GOTO79000
26511C
2651231720 CONTINUE
26513      CALL LPLOC(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGHT,
26514     1           IBUGG3,IERROR)
26515      GOTO79000
26516C
2651731730 CONTINUE
26518      CALL LPVARI(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGHT,
26519     1           IQUASE,IBUGG3,IERROR)
26520      GOTO79000
26521C
2652231740 CONTINUE
26523      CALL LPVARI(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGHT,
26524     1           IQUASE,IBUGG3,IERROR)
26525      RIGHT=SQRT(RIGHT)
26526      GOTO79000
26527C
2652831750 CONTINUE
26529      IHP='ALPH'
26530      IHP2='A   '
26531      IHWUSE='P'
26532      MESSAG='NO'
26533      CALL CHECKN(IHP,IHP2,IHWUSE,
26534     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26535     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26536      IF(IERROR.EQ.'YES')THEN
26537        ALPHA=0.05
26538      ELSE
26539        ALPHA=VALUE(ILOCP)
26540        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
26541          ALPHA=ALPHA/100.0
26542        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
26543          CONTINUE
26544        ELSE
26545          ALPHA=0.05
26546        ENDIF
26547      ENDIF
26548C
26549      CALL DPPRC3(TEMP,NS2,ALPHA,PSTAMV,IBINME,XTEMP1,
26550     1            RIGHT,ALOWLM,AUPPLM,
26551     1            ISUBRO,IBUGG3,IERROR)
26552      IF(ICASPL.EQ.'BPLC')RIGHT=ALOWLM
26553      IF(ICASPL.EQ.'BPUC')RIGHT=AUPPLM
26554      GOTO79000
26555C
2655631760 CONTINUE
26557      CALL MININD(TEMP,NS2,IWRITE,PSTAMV,RIGHT,ISUBRO,IBUGG3,IERROR)
26558      GOTO79000
26559C
2656031770 CONTINUE
26561      CALL MAXIND(TEMP,NS2,IWRITE,PSTAMV,RIGHT,ISUBRO,IBUGG3,IERROR)
26562      GOTO79000
26563C
2656431780 CONTINUE
26565      CALL EXTIND(TEMP,NS2,IWRITE,PSTAMV,RIGHT,ISUBRO,IBUGG3,IERROR)
26566      GOTO79000
26567C
2656831790 CONTINUE
26569      CALL DPGRU3(TEMP,NS2,IWRITE,PSTAMV,XGRUB,XCDF,XDIR,XIND,
26570     1            ISUBRO,IBUGG3,IERROR)
26571      RIGHT=XGRUB
26572      GOTO79000
26573C
2657431795 CONTINUE
26575      CALL DPGRU3(TEMP,NS2,IWRITE,PSTAMV,XGRUB,XCDF,XDIR,XIND,
26576     1            ISUBRO,IBUGG3,IERROR)
26577      RIGHT=XCDF
26578      GOTO79000
26579C
2658031810 CONTINUE
26581      CALL DPGRU3(TEMP,NS2,IWRITE,PSTAMV,XGRUB,XCDF,XDIR,XIND,
26582     1            ISUBRO,IBUGG3,IERROR)
26583      RIGHT=XDIR
26584      GOTO79000
26585C
2658631820 CONTINUE
26587      CALL DPGRU3(TEMP,NS2,IWRITE,PSTAMV,XGRUB,XCDF,XDIR,XIND,
26588     1            ISUBRO,IBUGG3,IERROR)
26589      RIGHT=XIND
26590      GOTO79000
26591C
2659231825 CONTINUE
26593C
26594      IHP='ALPH'
26595      IHP2='A   '
26596      IHWUSE='P'
26597      MESSAG='NO'
26598      CALL CHECKN(IHP,IHP2,IHWUSE,
26599     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26600     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26601      IF(IERROR.EQ.'NO')THEN
26602        ALPHA=VALUE(ILOCP)
26603      ELSE
26604        ALPHA=0.95
26605      ENDIF
26606C
26607      ALPHAT(1)=ALPHA
26608      NALPHA=1
26609      IDAVT2=IDAVTA
26610      IF(ICASPL.EQ.'DCDF' .OR. ICASPL.EQ.'DPVA')IDAVTA='SIMU'
26611C
26612      CALL DPDAV3(TEMP,NS2,XTEMP1,XTEMP2,IWRITE,PSTAMV,
26613     1            MAXNXT,IDAVTA,ISEED,
26614     1            ALPHAT,CV,NALPHA,
26615     1            STATVA,XMEAN,XSD,XRANGE,
26616     1            PVAL,CDF,XINDMN,XINDMX,
26617     1            ISUBRO,IBUGG3,IERROR)
26618      IF(ICASPL.EQ.'DAVI')RIGHT=STATVA
26619      IF(ICASPL.EQ.'DCDF')RIGHT=CDF
26620      IF(ICASPL.EQ.'DPVA')RIGHT=PVAL
26621      IF(ICASPL.EQ.'DMNI')RIGHT=XINDMN
26622      IF(ICASPL.EQ.'DMXI')RIGHT=XINDMX
26623      IF(ICASPL.EQ.'DACV')RIGHT=CV(1)
26624      IDAVTA=IDAVT2
26625      GOTO79000
26626C
2662731828 CONTINUE
26628C
26629      IHP='ALPH'
26630      IHP2='A   '
26631      IHWUSE='P'
26632      MESSAG='NO'
26633      CALL CHECKN(IHP,IHP2,IHWUSE,
26634     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26635     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26636      IF(IERROR.EQ.'NO')THEN
26637        ALPHA=VALUE(ILOCP)
26638      ELSE
26639        ALPHA=0.95
26640      ENDIF
26641C
26642      ALPHAT(1)=ALPHA
26643      NALPHA=1
26644      ISKOT2=ISKOTA
26645      IF(ICASPL.EQ.'SOCD' .OR. ICASPL.EQ.'SOPV')ISKOTA='SIMU'
26646C
26647      CALL DPSKO3(TEMP,NS2,XTEMP1,XTEMP2,IWRITE,PSTAMV,
26648     1            MAXNXT,ISKOTA,ISEED,
26649     1            ALPHAT,CV,NALPHA,
26650     1            STATVA,XMEAN,XSD,XMIN,XMAX,XSKEW,
26651     1            PVAL,STATCD,XINDX,
26652     1            ISUBRO,IBUGG3,IERROR)
26653      IF(ICASPL.EQ.'SOUT')RIGHT=STATVA
26654      IF(ICASPL.EQ.'SOCD')RIGHT=STATCD
26655      IF(ICASPL.EQ.'SOPV')RIGHT=PVAL
26656      IF(ICASPL.EQ.'SOIN')RIGHT=XINDX
26657      IF(ICASPL.EQ.'SOCV')RIGHT=CV(1)
26658      ISKOTA=ISKOT2
26659      GOTO79000
26660C
2666131829 CONTINUE
26662C
26663      IHP='ALPH'
26664      IHP2='A   '
26665      IHWUSE='P'
26666      MESSAG='NO'
26667      CALL CHECKN(IHP,IHP2,IHWUSE,
26668     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26669     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26670      IF(IERROR.EQ.'NO')THEN
26671        ALPHA=VALUE(ILOCP)
26672      ELSE
26673        ALPHA=0.95
26674      ENDIF
26675C
26676      ALPHAT(1)=ALPHA
26677      NALPHA=1
26678      IKUOT2=IKUOTA
26679      IF(ICASPL.EQ.'KOCD' .OR. ICASPL.EQ.'KOPV')IKUOTA='SIMU'
26680C
26681      CALL DPKUO3(TEMP,NS2,XTEMP1,XTEMP2,IWRITE,PSTAMV,
26682     1            MAXNXT,IKUOTA,ISEED,
26683     1            ALPHAT,CV,NALPHA,
26684     1            STATVA,XMEAN,XSD,XMIN,XMAX,XKURT,
26685     1            PVAL,STATCD,XINDX,
26686     1            ISUBRO,IBUGG3,IERROR)
26687      IF(ICASPL.EQ.'KOUT')RIGHT=STATVA
26688      IF(ICASPL.EQ.'KOCD')RIGHT=STATCD
26689      IF(ICASPL.EQ.'KOPV')RIGHT=PVAL
26690      IF(ICASPL.EQ.'KOIN')RIGHT=XINDX
26691      IF(ICASPL.EQ.'KOCV')RIGHT=CV(1)
26692      IKUOTA=IKUOT2
26693      GOTO79000
26694C
2669531830 CONTINUE
26696      IHP='MU  '
26697      IHP2='    '
26698      IHWUSE='P'
26699      MESSAG='NO'
26700      CALL CHECKN(IHP,IHP2,IHWUSE,
26701     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26702     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26703      IF(IERROR.EQ.'YES')THEN
26704        AMU=0.0
26705      ELSE
26706        AMU=VALUE(ILOCP)
26707      ENDIF
26708C
26709      CALL DPTTE3(TEMP,NS2,AMU,IWRITE,STATVA,STATCD,STATNU,
26710     1            XMEAN,XSD,XSDM,DEL,
26711     1            PVAL2T,PVALLT,PVALUT,
26712     1            ISUBRO,IBUGG3,IERROR)
26713      IF(ICASPL.EQ.'1TTE')THEN
26714        RIGHT=STATVA
26715      ELSEIF(ICASPL.EQ.'1TCD')THEN
26716        RIGHT=STATCD
26717      ELSEIF(ICASPL.EQ.'1T2P')THEN
26718        RIGHT=PVAL2T
26719      ELSEIF(ICASPL.EQ.'1TLP')THEN
26720        RIGHT=PVALLT
26721      ELSEIF(ICASPL.EQ.'1TUP')THEN
26722        RIGHT=PVALUT
26723      ENDIF
26724      GOTO79000
26725C
2672631840 CONTINUE
26727      CALL DPTTE4(TEMP,NS2,TEMPZ,NSZ,IWRITE,
26728     1            STATVA,STATCD,STATNU,
26729     1            STATV2,STATC2,STATN2,
26730     1            Y1MEAN,Y1SD,Y1SDM,
26731     1            Y2MEAN,Y2SD,Y2SDM,
26732     1            DEL,POOLSD,DELSD,DELSD2,CDFBAR,
26733     1            PVAL2T,PVALLT,PVALUT,
26734     1            ISUBRO,IBUGG3,IERROR)
26735C
26736C     FOR NOW, JUST RETURN THE "UNEQUAL VARIANCES" CASE.  MAY
26737C     ADD "EQUAL VARIANCES" CASE LATER (NEED TO ADD "ITTEVA"
26738C     TO THE CALL LIST.
26739C
26740      IF(ICASPL.EQ.'2TTE')THEN
26741        RIGHT=STATV2
26742      ELSEIF(ICASPL.EQ.'2TCD')THEN
26743        RIGHT=STATC2
26744      ELSEIF(ICASPL.EQ.'2T2P')THEN
26745        RIGHT=PVAL2T
26746      ELSEIF(ICASPL.EQ.'2TLP')THEN
26747        RIGHT=PVALLT
26748      ELSEIF(ICASPL.EQ.'2TUP')THEN
26749        RIGHT=PVALUT
26750      ENDIF
26751      GOTO79000
26752C
2675331845 CONTINUE
26754      CALL DPTTE6(TEMP,NS2,TEMPZ,NSZ,XTEMP1,IWRITE,
26755     1            STATVA,STATCD,STATNU,
26756     1            Y1MEAN,Y1SD,Y1SDM,
26757     1            Y2MEAN,Y2SD,Y2SDM,
26758     1            YDMEAN,YDSD,YDSDM,
26759     1            PVAL2T,PVALLT,PVALUT,
26760     1            ISUBRO,IBUGG3,IERROR)
26761      IF(ICASPL.EQ.'PTTE')THEN
26762        RIGHT=STATVA
26763      ELSEIF(ICASPL.EQ.'PTCD')THEN
26764        RIGHT=STATCD
26765      ELSEIF(ICASPL.EQ.'PT2P')THEN
26766        RIGHT=PVAL2T
26767      ELSEIF(ICASPL.EQ.'PTLP')THEN
26768        RIGHT=PVALLT
26769      ELSEIF(ICASPL.EQ.'PTUP')THEN
26770        RIGHT=PVALUT
26771      ENDIF
26772      GOTO79000
26773C
2677431850 CONTINUE
26775      IHP='SIGM'
26776      IHP2='A   '
26777      IHWUSE='P'
26778      MESSAG='YES'
26779      CALL CHECKN(IHP,IHP2,IHWUSE,
26780     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26781     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26782      IF(IERROR.EQ.'YES')GOTO9000
26783      SIGMA0=VALUE(ILOCP)
26784C
26785      CALL DPCST3(TEMP,NS2,SIGMA0,IWRITE,
26786     1            STATVA,STATCD,STATNU,
26787     1            YMEAN,YSD,RATIO,
26788     1            ISUBRO,IBUGG3,IERROR)
26789      IF(ICASPL.EQ.'CSSD')THEN
26790        RIGHT=STATVA
26791      ELSEIF(ICASPL.EQ.'CCDF')THEN
26792        RIGHT=STATCD
26793      ELSEIF(ICASPL.EQ.'CSLP')THEN
26794        RIGHT=STATCD
26795      ELSEIF(ICASPL.EQ.'CSUP')THEN
26796        RIGHT=1.0 - STATCD
26797      ELSEIF(ICASPL.EQ.'CS2P')THEN
26798        IF(YSD.LE.SIGMA0)THEN
26799          RIGHT=2.0*STATCD
26800        ELSE
26801          RIGHT=2.0*(1.0 - STATCD)
26802        ENDIF
26803      ENDIF
26804      GOTO79000
26805C
2680631870 CONTINUE
26807      CALL DPFRT3(TEMP,NS2,IWRITE,XTEMP1,STATVA,STATCD,
26808     1            ISUBRO,IBUGG3,IERROR)
26809      RIGHT=STATVA
26810      GOTO79000
26811C
2681231880 CONTINUE
26813      CALL DPFRT3(TEMP,NS2,IWRITE,XTEMP1,STATVA,STATCD,
26814     1            ISUBRO,IBUGG3,IERROR)
26815      RIGHT=STATCD
26816      GOTO79000
26817C
2681831905 CONTINUE
26819C
26820      IHP='ALPH'
26821      IHP2='A   '
26822      IHWUSE='P'
26823      MESSAG='NO'
26824      CALL CHECKN(IHP,IHP2,IHWUSE,
26825     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26826     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26827      IF(IERROR.EQ.'YES')THEN
26828        ALPHA=0.95
26829      ELSE
26830        ALPHA=VALUE(ILOCP)
26831        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
26832          ALPHA=ALPHA/100.0
26833        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
26834          CONTINUE
26835        ELSE
26836          ALPHA=0.95
26837        ENDIF
26838      ENDIF
26839      CALL DPMSD3(TEMP,NS2,IWRITE,ALPHA,
26840     1            STATVA,STATV2,STATCD,PVAL,
26841     1            ISUBRO,IBUGG3,IERROR)
26842      RIGHT=STATVA
26843      IF(ICASPL.EQ.'MSDN')RIGHT=STATV2
26844      IF(ICASPL.EQ.'MSDC')RIGHT=STATCD
26845      IF(ICASPL.EQ.'MSDP')RIGHT=PVAL
26846      IF(ICASPL.EQ.'ADCD')RIGHT=STATCD
26847      IF(ICASPL.EQ.'ADPV')RIGHT=PVAL
26848CCCCC IF(ICASPL.EQ.'AD01')GOTO31905
26849CCCCC IF(ICASPL.EQ.'AD05')GOTO31905
26850CCCCC IF(ICASPL.EQ.'AD95')GOTO31905
26851CCCCC IF(ICASPL.EQ.'AD99')GOTO31905
26852      GOTO79000
26853C
2685431890 CONTINUE
26855      IHP='M   '
26856      IHP2='    '
26857      IHWUSE='P'
26858      MESSAG='YES'
26859      CALL CHECKN(IHP,IHP2,IHWUSE,
26860     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26861     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26862      IF(IERROR.EQ.'YES')GOTO9000
26863      AM=VALUE(ILOCP)
26864      M=INT(AM+0.5)
26865C
26866      CALL DPFRT4(TEMP,NS2,M,IWRITE,XTEMP1,STATVA,STATCD,
26867     1            ISUBRO,IBUGG3,IERROR)
26868      RIGHT=STATVA
26869      GOTO79000
26870C
2687131900 CONTINUE
26872      IHP='M   '
26873      IHP2='    '
26874      IHWUSE='P'
26875      MESSAG='YES'
26876      CALL CHECKN(IHP,IHP2,IHWUSE,
26877     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26878     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26879      IF(IERROR.EQ.'YES')GOTO9000
26880      AM=VALUE(ILOCP)
26881      M=INT(AM+0.5)
26882C
26883      CALL DPFRT4(TEMP,NS2,M,IWRITE,XTEMP1,STATVA,STATCD,
26884     1            ISUBRO,IBUGG3,IERROR)
26885      RIGHT=STATCD
26886      GOTO79000
26887C
2688831910 CONTINUE
26889      NCUT=0
26890      C=1.0
26891      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26892     1         ISUBRO,IBUGG3)
26893      RIGHT=AH15
26894      GOTO79000
26895C
2689631920 CONTINUE
26897      NCUT=0
26898      C=1.2
26899      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26900     1         ISUBRO,IBUGG3)
26901      RIGHT=AH15
26902      GOTO79000
26903C
2690431930 CONTINUE
26905      NCUT=0
26906      C=1.5
26907      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26908     1         ISUBRO,IBUGG3)
26909      RIGHT=AH15
26910      GOTO79000
26911C
2691231940 CONTINUE
26913      NCUT=0
26914      C=1.7
26915      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26916     1         ISUBRO,IBUGG3)
26917      RIGHT=AH15
26918      GOTO79000
26919C
2692031950 CONTINUE
26921      NCUT=0
26922      C=2.0
26923      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26924     1         ISUBRO,IBUGG3)
26925      RIGHT=AH15
26926      GOTO79000
26927C
2692831960 CONTINUE
26929      NCUT=0
26930      C=1.0
26931      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26932     1         ISUBRO,IBUGG3)
26933      RIGHT=XSC
26934      GOTO79000
26935C
2693631970 CONTINUE
26937      NCUT=0
26938      C=1.2
26939      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP1,MAXNXT,
26940     1         ISUBRO,IBUGG3)
26941      RIGHT=XSC
26942      GOTO79000
26943C
2694431980 CONTINUE
26945      NCUT=0
26946      C=1.5
26947      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26948     1         ISUBRO,IBUGG3)
26949      RIGHT=XSC
26950      GOTO79000
26951C
2695231990 CONTINUE
26953      NCUT=0
26954      C=1.7
26955      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26956     1         ISUBRO,IBUGG3)
26957      RIGHT=XSC
26958      GOTO79000
26959C
2696032000 CONTINUE
26961      NCUT=0
26962      C=2.0
26963      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
26964     1         ISUBRO,IBUGG3)
26965      RIGHT=XSC
26966      GOTO79000
26967C
2696832010 CONTINUE
26969C
26970      IHP='NOUT'
26971      IHP2='LIER'
26972      IHWUSE='P'
26973      MESSAG='NO'
26974      CALL CHECKN(IHP,IHP2,IHWUSE,
26975     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
26976     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
26977      IF(IERROR.EQ.'YES')THEN
26978        IR=1
26979      ELSE
26980        AVAL=VALUE(ILOCP)
26981        IR=INT(AVAL+0.1)
26982        IF(IR.LT.1)IR=1
26983        IF(IR.GT.NS2/2)IR=NS2/2
26984      ENDIF
26985C
26986      IF(ICASPL.EQ.'TM2S')THEN
26987        ICASAN='TWOS'
26988      ELSEIF(ICASPL.EQ.'TMMN')THEN
26989        ICASAN='MINI'
26990      ELSEIF(ICASPL.EQ.'TMMX')THEN
26991        ICASAN='MAXI'
26992      ENDIF
26993C
26994      CALL DPTIE3(TEMP,NS2,ICASAN,IR,
26995     1            XTEMP1,XTEMP2,XTEMP3,ITEMP1,ITEMP2,
26996     1            RIGHT,YMEAN,YSD,YMIN,YMAX,
26997     1            ISUBRO,IBUGG3,IERROR)
26998      GOTO79000
26999C
2700032020 CONTINUE
27001C
27002      IHP='NOUT'
27003      IHP2='LIER'
27004      IHWUSE='P'
27005      MESSAG='NO'
27006      CALL CHECKN(IHP,IHP2,IHWUSE,
27007     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
27008     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
27009      IF(IERROR.EQ.'YES')THEN
27010        IR=1
27011      ELSE
27012        AVAL=VALUE(ILOCP)
27013        IR=INT(AVAL+0.1)
27014        IF(IR.LT.1)IR=1
27015        IF(IR.GT.NS2/2)IR=NS2/2
27016      ENDIF
27017C
27018      CALL DPGES3(TEMP,NS2,IR,
27019     1            XTEMP1,XTEMP2,ITEMP1,ITEMP2,
27020     1            RIGHT,
27021     1            ISUBRO,IBUGG3,IERROR)
27022      GOTO79000
27023C
27024 3185 CONTINUE
27025C
27026      IF(NUMV2.EQ.1)THEN
27027        YMEAN=CPUMIN
27028        YSD=CPUMIN
27029        IF(ICASPL.EQ.'SCVA')THEN
27030          CALL MEAN(TEMP,NS2,IWRITE,YMEAN,IBUGG3,IERROR)
27031          CALL SD(TEMP,NS2,IWRITE,YSD,IBUGG3,IERROR)
27032          IF(YMEAN.NE.0.0)THEN
27033            RIGHT=YSD/YMEAN
27034          ELSE
27035            RIGHT=CPUMAX
27036          ENDIF
27037          GOTO79000
27038        ENDIF
27039      ELSE
27040        YMEAN=TEMP(1)
27041        YSD=TEMPZ(1)
27042        IF(ICASPL.EQ.'SCVA')THEN
27043          IF(YMEAN.NE.0.0)THEN
27044            RIGHT=YSD/YMEAN
27045          ELSE
27046            RIGHT=CPUMAX
27047          ENDIF
27048          GOTO79000
27049        ENDIF
27050        NS2=INT(TEMPZ3(1)+0.1)
27051      ENDIF
27052C
27053      IHP='ALPH'
27054      IHP2='A   '
27055      IHWUSE='P'
27056      MESSAG='NO'
27057      CALL CHECKN(IHP,IHP2,IHWUSE,
27058     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
27059     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
27060      IF(IERROR.EQ.'NO')THEN
27061        ALPHA=VALUE(ILOCP)
27062        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
27063          ALPHA=ALPHA/100.0
27064          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
27065        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
27066          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
27067        ELSE
27068          ALPHA=0.95
27069        ENDIF
27070      ELSE
27071        ALPHA=0.95
27072      ENDIF
27073C
27074      ICASA2='CVLI'
27075      ICASA3='UPPE'
27076      ICASA4='RAW'
27077      ICASA5='TWOS'
27078C
27079      IF(ICASPL(1:1).EQ.'S')ICASA4='SUMM'
27080C
27081      IF(ICASPL.EQ.'CVLC')ICASA3='LOWE'
27082      IF(ICASPL.EQ.'CVLO')ICASA3='LOWE'
27083      IF(ICASPL.EQ.'CVUC')ICASA3='UPPE'
27084      IF(ICASPL.EQ.'CVUO')ICASA3='UPPE'
27085      IF(ICASPL.EQ.'SCVL')ICASA3='LOWE'
27086      IF(ICASPL.EQ.'SCVU')ICASA3='UPPE'
27087C
27088      IF(ICASPL.EQ.'CVLO')ICASA5='ONES'
27089      IF(ICASPL.EQ.'CVUO')ICASA5='ONES'
27090C
27091      IDIST2='NORM'
27092      IF(ICASPL.EQ.'LLCV')IDIST2='LOGN'
27093      IF(ICASPL.EQ.'LLCV')ICASA3='LOWE'
27094      IF(ICASPL.EQ.'ULCV')IDIST2='LOGN'
27095      IF(ICASPL.EQ.'LCVA')IDIST2='LOGN'
27096C
27097      ALPHAT(1)=ALPHA
27098      NALPHA=1
27099C
27100      CALL DPCVC3(TEMP,NS2,YMEAN,YSD,
27101     1            ICASA2,ICASA3,ICASA4,ICASA5,
27102     1            ISEED,MAXNXT,IDIST2,
27103     1            XTEMP1,XTEMP2,
27104     1            ICVACI,ALPHAT,NALPHA,ALOWLV,AUPPLV,CVAR,
27105     1            ISUBRO,IBUGG3,IERROR)
27106C
27107      IF(ICASPL.EQ.'CVLC')RIGHT=ALOWLV(1)
27108      IF(ICASPL.EQ.'CVLO')RIGHT=ALOWLV(1)
27109      IF(ICASPL.EQ.'SCVL')RIGHT=ALOWLV(1)
27110      IF(ICASPL.EQ.'CVUC')RIGHT=AUPPLV(1)
27111      IF(ICASPL.EQ.'CVUO')RIGHT=AUPPLV(1)
27112      IF(ICASPL.EQ.'SCVU')RIGHT=AUPPLV(1)
27113      IF(ICASPL.EQ.'LCVA')RIGHT=CVAR
27114      IF(ICASPL.EQ.'LLCV')RIGHT=ALOWLV(1)
27115      IF(ICASPL.EQ.'ULCV')RIGHT=AUPPLV(1)
27116C
27117      GOTO79000
27118C
27119 3195 CONTINUE
27120C
27121      IF(NUMV2.EQ.2)THEN
27122        ICASA4='RAW'
27123        DO3196II=1,NS2
27124          ITEMP1(II)=0
27125 3196   CONTINUE
27126      ELSEIF(NUMV2.EQ.3)THEN
27127        ICASA4='SUMM'
27128        DO3197II=1,NS2
27129          ITEMP1(II)=INT(TEMPZ3(II)+0.1)
27130 3197   CONTINUE
27131      ENDIF
27132C
27133      IHP='ALPH'
27134      IHP2='A   '
27135      IHWUSE='P'
27136      MESSAG='NO'
27137      CALL CHECKN(IHP,IHP2,IHWUSE,
27138     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
27139     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
27140      IF(IERROR.EQ.'NO')THEN
27141        ALPHA=VALUE(ILOCP)
27142        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
27143          ALPHA=ALPHA/100.0
27144          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
27145        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
27146          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
27147        ELSE
27148          ALPHA=0.95
27149        ENDIF
27150      ELSE
27151        ALPHA=0.95
27152      ENDIF
27153C
27154      ICASA2='CVLI'
27155      ICASA3='UPPE'
27156      ICASA5='TWOS'
27157      ALPHAT(1)=ALPHA
27158      NALPHA=1
27159C
27160      CALL DPCVC4(TEMP,TEMPZ,NS2,ITEMP1,XTEMP1,XTEMP2,
27161     1            ICASA2,ICASA3,ICASA4,ICASA5,
27162     1            ALPHAT,NALPHA,ALOWLV,AUPPLV,
27163     1            AVAL1,AVAL2,NDIST,NGROUP,
27164     1            ISUBRO,IBUGG3,IERROR)
27165C
27166      IF(ICASPL.EQ.'CCVA')RIGHT=AVAL1
27167      IF(ICASPL.EQ.'UCCV')RIGHT=AVAL2
27168      IF(ICASPL.EQ.'LCCV')RIGHT=ALOWLV(1)
27169      IF(ICASPL.EQ.'UCC2')RIGHT=AUPPLV(1)
27170      GOTO79000
27171C
2717232030 CONTINUE
27173C
27174      IF(ICASPL.EQ.'DI2S')THEN
27175        ICASAN='TWOS'
27176      ELSEIF(ICASPL.EQ.'DIMN')THEN
27177        ICASAN='MINI'
27178      ELSEIF(ICASPL.EQ.'DIMX')THEN
27179        ICASAN='MAXI'
27180      ENDIF
27181C
27182      CALL DPDIX3(TEMP,XTEMP1,NS2,XTEMP2,IWRITE,ICASAN,
27183     1            RIGHT,
27184     1            ISUBRO,IBUGG3,IERROR)
27185      GOTO79000
27186C
2718732040 CONTINUE
27188      EPS=0.1E-05
27189      XTEMP1(1)=PSTAMV
27190      XTEMP1(2)=PSTAMV
27191      CALL DISTIN(TEMP,NS2,IWRITE,XTEMP1,NDIST,IBUGG3,IERROR)
27192      IF(NDIST.GT.2)THEN
27193        WRITE(ICOUT,999)
27194        CALL DPWRST('XXX','WRIT')
27195        WRITE(ICOUT,32041)
2719632041   FORMAT('***** ERROR FROM CMPSTA (AGRESTI-COUL BINOMIAL ',
27197     1         'LIMITS)--')
27198        CALL DPWRST('XXX','WRIT')
27199        WRITE(ICOUT,32042)
2720032042   FORMAT('      FOR AGRESTI-COUL LIMITS CASE, MORE THAN ',
27201     1         'TWO DISTINCT VALUES DETECTED.')
27202        CALL DPWRST('XXX','WRIT')
27203        WRITE(ICOUT,32043)NDIST
2720432043   FORMAT('      NUMBER OF DISTINCT VALUES = ',I8)
27205        CALL DPWRST('XXX','WRIT')
27206        IERROR='YES'
27207        GOTO9000
27208C
27209C       IF ALL VALUES ARE EQUAL TO THE "MISSING VALUE",
27210C       THEN SET VALUE OF STATISTIC TO MISSING VALUE.
27211C
27212      ELSEIF(NDIST.EQ.1 .AND. XTEMP1(1).EQ.PSTAMV)THEN
27213        RIGHT=PSTAMV
27214        GOTO79000
27215      ENDIF
27216C
27217      HOLD1=XTEMP1(1)
27218      HOLD2=XTEMP1(2)
27219      IF(NDIST.EQ.1)THEN
27220        IF(XTEMP1(1).GE.0.5)THEN
27221          XMAX=XTEMP1(1)
27222          XMIN=CPUMIN
27223        ELSE
27224          XMIN=XTEMP1(1)
27225          XMAX=CPUMAX
27226        ENDIF
27227      ELSEIF(NDIST.EQ.2)THEN
27228        IF(HOLD1.LT.HOLD2)THEN
27229          XMIN=HOLD1
27230          XMAX=HOLD2
27231        ELSE
27232          XMAX=HOLD1
27233          XMIN=HOLD2
27234        ENDIF
27235      ENDIF
27236C
27237      DO32045I=1,NS2
27238        IF(TEMP(I).EQ.XMAX)THEN
27239          TEMP(I)=1.0
27240        ELSE
27241          TEMP(I)=0.0
27242        ENDIF
2724332045 CONTINUE
27244C
27245      XSUM=0.0
27246      DO32048I=1,NS2
27247        XSUM=XSUM + TEMP(I)
2724832048 CONTINUE
27249      P=XSUM/REAL(NS2)
27250C
27251      IHP='ALPH'
27252      IHP2='A   '
27253      IHWUSE='P'
27254      MESSAG='YES'
27255      CALL CHECKN(IHP,IHP2,IHWUSE,
27256     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
27257     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
27258      IF(IERROR.EQ.'YES')GOTO9000
27259      ALPHA=VALUE(ILOCP)
27260C
27261      IF(ICASPL.EQ.'1LAC')THEN
27262        IDIR='LOWE'
27263        CALL DPAGC1(P,NS2,ALPHA,IDIR,IWRITE,RIGHT,IBUGG3,IERROR)
27264      ELSEIF(ICASPL.EQ.'1UAC')THEN
27265        IDIR='UPPE'
27266        CALL DPAGC1(P,NS2,ALPHA,IDIR,IWRITE,RIGHT,IBUGG3,IERROR)
27267      ELSEIF(ICASPL.EQ.'2LAC')THEN
27268        CALL DPAGCO(P,NS2,ALPHA,IWRITE,ALOWLM,AUPPLM,IBUGG3,IERROR)
27269        RIGHT=ALOWLM
27270      ELSEIF(ICASPL.EQ.'2UAC')THEN
27271        CALL DPAGCO(P,NS2,ALPHA,IWRITE,ALOWLM,AUPPLM,IBUGG3,IERROR)
27272        RIGHT=AUPPLM
27273      ENDIF
27274C
27275      GOTO79000
2727632050 CONTINUE
27277      EPS=0.1E-05
27278      XTEMP1(1)=PSTAMV
27279      XTEMP1(2)=PSTAMV
27280      CALL DISTIN(TEMP,NS2,IWRITE,XTEMP1,NDIST,IBUGG3,IERROR)
27281      IF(NDIST.GT.2)THEN
27282        WRITE(ICOUT,999)
27283        CALL DPWRST('XXX','WRIT')
27284        WRITE(ICOUT,32051)
2728532051   FORMAT('***** ERROR FROM CMPSTA (EXACT BINOMIAL LIMITS)--')
27286        CALL DPWRST('XXX','WRIT')
27287        WRITE(ICOUT,32052)
2728832052   FORMAT('      FOR EXACT BINOMIAL LIMITS CASE, MORE THAN ',
27289     1         'TWO DISTINCT VALUES DETECTED.')
27290        CALL DPWRST('XXX','WRIT')
27291        WRITE(ICOUT,32053)NDIST
2729232053   FORMAT('      NUMBER OF DISTINCT VALUES = ',I8)
27293        CALL DPWRST('XXX','WRIT')
27294        IERROR='YES'
27295        GOTO9000
27296C
27297C       IF ALL VALUES ARE EQUAL TO THE "MISSING VALUE",
27298C       THEN SET VALUE OF STATISTIC TO MISSING VALUE.
27299C
27300      ELSEIF(NDIST.EQ.1 .AND. XTEMP1(1).EQ.PSTAMV)THEN
27301        RIGHT=PSTAMV
27302        GOTO79000
27303      ENDIF
27304C
27305      HOLD1=XTEMP1(1)
27306      HOLD2=XTEMP1(2)
27307      IF(HOLD1.LT.HOLD2)THEN
27308        XMIN=HOLD1
27309        XMAX=HOLD2
27310      ELSE
27311        XMAX=HOLD1
27312        XMIN=HOLD2
27313      ENDIF
27314C
27315      DO32055I=1,NS2
27316        IF(TEMP(I).EQ.XMAX)THEN
27317          TEMP(I)=1.0
27318        ELSE
27319          TEMP(I)=0.0
27320        ENDIF
2732132055 CONTINUE
27322C
27323      XSUM=0.0
27324      DO32058I=1,NS2
27325        XSUM=XSUM + TEMP(I)
2732632058 CONTINUE
27327      P=XSUM/REAL(NS2)
27328C
27329      IHP='ALPH'
27330      IHP2='A   '
27331      IHWUSE='P'
27332      MESSAG='YES'
27333      CALL CHECKN(IHP,IHP2,IHWUSE,
27334     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
27335     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
27336      IF(IERROR.EQ.'YES')GOTO9000
27337      ALPHA=VALUE(ILOCP)
27338C
27339      IF(ICASPL.EQ.'1LEB')THEN
27340        CALL DPEBLL(P,NS2,ALPHA,IWRITE,RIGHT,'ONES',IBUGG3,IERROR)
27341      ELSEIF(ICASPL.EQ.'1UEB')THEN
27342        CALL DPEBUL(P,NS2,ALPHA,IWRITE,RIGHT,'ONES',IBUGG3,IERROR)
27343      ELSEIF(ICASPL.EQ.'2LEB')THEN
27344        CALL DPEBLL(P,NS2,ALPHA,IWRITE,RIGHT,'TWOS',IBUGG3,IERROR)
27345      ELSEIF(ICASPL.EQ.'2UEB')THEN
27346        CALL DPEBUL(P,NS2,ALPHA,IWRITE,RIGHT,'TWOS',IBUGG3,IERROR)
27347      ENDIF
27348      GOTO79000
27349C
2735032060 CONTINUE
27351C
27352      IHP='ALPH'
27353      IHP2='A   '
27354      IHWUSE='P'
27355      MESSAG='NO'
27356      CALL CHECKN(IHP,IHP2,IHWUSE,
27357     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
27358     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
27359      IF(IERROR.EQ.'YES')THEN
27360        ALPHA=0.95
27361      ELSE
27362        ALPHA=VALUE(ILOCP)
27363        IF(ALPHA.LE.0.0)THEN
27364          ALPHA=0.95
27365        ELSEIF(ALPHA.GE.1.0 .OR. ALPHA.LE.100.0)THEN
27366          ALPHA=ALPHA/100.0
27367          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
27368        ELSEIF(ALPHA.LT.0.5)THEN
27369          ALPHA=1.0 - ALPHA
27370        ENDIF
27371      ENDIF
27372C
27373      ALPHAT(1)=100.0*ALPHA
27374      NUMALP=1
27375      CALL DPADK3(TEMP,TEMPZ,NS2,ALPHAT,NUMALP,
27376     1            XTEMP1,XTEMP2,DTEMP1,DTEMP2,DTEMP3,ITEMP1,ITEMP2,
27377     1            ITEMP3,ITEMP4,
27378     1            ADKSTA,ADC,DSD,IFLGZZ,NBCH,MINSIZ,MAXSIZ,
27379     1            IBUGG3,ISUBRO,IERROR)
27380      IF(ICASPL.EQ.'ADKS')RIGHT=ADKSTA
27381      IF(ICASPL.EQ.'ADKC')RIGHT=ADC(1)
27382      GOTO79000
27383C
2738432070 CONTINUE
27385C
27386C     FOR VARIOUS CONSENSUS MEANS COMMANDS, IF WE HAVE RAW DATA
27387C     WE FIRST NEED TO CONVERT TO SUMMARY DATA (I.E., MEAN, SD's,
27388C     AND SAMPLE SIZES) BEFORE CALLING APPROPRIATE METHOD.
27389C
27390      CALL DISTIN(TEMPZ,NS2,IWRITE,XTEMP1,NLAB,IBUGG3,IERROR)
27391C
27392      DO32075I=1,NLAB
27393        ATEMP=XTEMP1(I)
27394        NTEMP=0
27395        DO32079J=1,NS2
27396          IF(TEMPZ(J).EQ.ATEMP)THEN
27397            NTEMP=NTEMP+1
27398            TEMPZ3(NTEMP)=TEMP(J)
27399          ENDIF
2740032079   CONTINUE
27401        ITEMP1(I)=NTEMP
27402C
27403        CALL MEAN(TEMPZ3,NTEMP,IWRITE,AMEAN,IBUGG3,IERROR)
27404        CALL SD(TEMPZ3,NTEMP,IWRITE,ASD,IBUGG3,IERROR)
27405        XTEMP2(I)=AMEAN
27406        XTEMP3(I)=ASD
27407C
2740832075 CONTINUE
27409C
27410      DO32080I=1,NLAB
27411        TEMP(I)=XTEMP2(I)
27412        TEMPZ(I)=XTEMP3(I)
27413        TEMPZ3(I)=REAL(ITEMP1(I))
2741432080 CONTINUE
27415      NS2=NLAB
27416C
27417      IF(ICASPL.EQ.'DSLA')GOTO32100
27418      IF(ICASPL.EQ.'DHHD')GOTO32100
27419      IF(ICASPL.EQ.'DSMM')GOTO32100
27420      IF(ICASPL.EQ.'DSSE')GOTO32100
27421      IF(ICASPL.EQ.'MPAU')GOTO32200
27422      IF(ICASPL.EQ.'MPSE')GOTO32200
27423      IF(ICASPL.EQ.'MMPA')GOTO32200
27424      IF(ICASPL.EQ.'MMPS')GOTO32200
27425      IF(ICASPL.EQ.'VARU')GOTO32200
27426      IF(ICASPL.EQ.'VRSE')GOTO32200
27427      IF(ICASPL.EQ.'BOB ')GOTO32300
27428      IF(ICASPL.EQ.'BOBS')GOTO32300
27429      IF(ICASPL.EQ.'GCIN')GOTO32400
27430      IF(ICASPL.EQ.'GCIS')GOTO32400
27431      IF(ICASPL.EQ.'BCP ')GOTO32500
27432      IF(ICASPL.EQ.'BCPS')GOTO32500
27433      IF(ICASPL.EQ.'MMEA')GOTO32600
27434      IF(ICASPL.EQ.'MMES')GOTO32600
27435      IF(ICASPL.EQ.'FAIR')GOTO32700
27436      IF(ICASPL.EQ.'FWSE')GOTO32700
27437      IF(ICASPL.EQ.'GDEA')GOTO32800
27438      IF(ICASPL.EQ.'GDSE')GOTO32800
27439      IF(ICASPL.EQ.'GDSN')GOTO32800
27440      IF(ICASPL.EQ.'GDZ1')GOTO32800
27441      IF(ICASPL.EQ.'GDZ2')GOTO32800
27442      IF(ICASPL.EQ.'SCEB')GOTO32900
27443      IF(ICASPL.EQ.'SESE')GOTO32900
27444C
2744532100 CONTINUE
27446C
27447C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
27448C     NON-POSITIVE STANDARD DEVIATION.
27449C
27450      IPRINT='OFF'
27451      NLAB=NS2
27452      NPTS=0
27453      IF(NLAB.LT.2)THEN
27454        WRITE(ICOUT,999)
27455        CALL DPWRST('XXX','WRIT')
27456        WRITE(ICOUT,32101)
2745732101   FORMAT('***** ERROR FROM CMPSTA (DERSIMONIAN-LAIRD ',
27458     1         'ESTIMATION)--')
27459        CALL DPWRST('XXX','WRIT')
27460        WRITE(ICOUT,32103)
2746132103   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
27462        CALL DPWRST('XXX','WRIT')
27463        IERROR='YES'
27464        GOTO9000
27465      ENDIF
27466      DO32111I=1,NLAB
27467        ITEMP9=INT(TEMPZ3(I)+0.1)
27468        IF(TEMPZ(I).LE.0.0)THEN
27469          WRITE(ICOUT,999)
27470          CALL DPWRST('XXX','WRIT')
27471          WRITE(ICOUT,32101)
27472          CALL DPWRST('XXX','WRIT')
27473          WRITE(ICOUT,32113)I,TEMPZ(I)
2747432113     FORMAT('      LAB ',I6,' HAS NON-POSITIVE STANDARD ',
27475     1           'DEVIATION (= ',G15.7)
27476          CALL DPWRST('XXX','WRIT')
27477          IERROR='YES'
27478          GOTO9000
27479        ELSEIF(ITEMP9.LE.1)THEN
27480          WRITE(ICOUT,999)
27481          CALL DPWRST('XXX','WRIT')
27482          WRITE(ICOUT,32101)
27483          CALL DPWRST('XXX','WRIT')
27484          WRITE(ICOUT,32118)I
2748532118     FORMAT('      LAB ',I6,' HAS LESS THAN 2 OBSERVATIONS.')
27486          CALL DPWRST('XXX','WRIT')
27487          IERROR='YES'
27488          GOTO9000
27489        ENDIF
27490        ITEMP1(I)=ITEMP9
27491        NPTS=NPTS+ITEMP9
2749232111 CONTINUE
27493C
27494      ICAPSW='XXXX'
27495      ICAPTY='XXXX'
27496      NUMDIG=-99
27497      IWRITE='OFF'
27498CCCCC IOUNI5=-99
27499CCCCC CALL DPDERS(NPTS,NLAB,
27500CCCCC1            TEMP,TEMPZ,ITEMP1,
27501CCCCC1            XTEMP3(1),XTEMP3(MAXNXT/2),ITEMP2,
27502CCCCC1            XTEMP1,XTEMP2,DTEMP1,
27503CCCCC1            DTEMP2,DTEMP2(5001),DTEMP3,
27504CCCCC1            XDL,XDLS2,YDL,SEDLK1,SEDLK2,DLOWDL,DHIGDL,
27505CCCCC1            SERUK1,SERUK2,DLOWD2,DHIGD2,
27506CCCCC1            SEHDK1,SEHDK2,DLOWD3,DHIGD3,
27507CCCCC1            SEBOK1,SEBOK2,DLOWD4,DHIGD4,
27508CCCCC1            DLOWD5,DHIGD5,DLOWD6,DHIGD6,
27509CCCCC1            AK2,AK3,
27510CCCCC1            IWRITE,IOUNI5,
27511CCCCC1            ICAPSW,ICAPTY,NUMDIG,ISEED,
27512CCCCC1            ISUBRO,IBUGG3,IERROR)
27513CCCCC IF(ICASPL.EQ.'DSLA')RIGHT=XDL
27514CCCCC IF(ICASPL.EQ.'DHHD')RIGHT=SEHDK1
27515CCCCC IF(ICASPL.EQ.'DSMM')RIGHT=SERUK1
27516CCCCC IF(ICASPL.EQ.'DSSE')RIGHT=SEDLK1
27517CCCCC IF(ICASPL.EQ.'DSBO')RIGHT=SEBOK1
27518      RIGHT=CPUMIN
27519      GOTO79000
27520C
2752132200 CONTINUE
27522C
27523C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
27524C     NON-POSITIVE STANDARD DEVIATION.
27525C
27526      IPRINT='OFF'
27527      NLAB=NS2
27528      NPTS=0
27529      IF(NLAB.LT.2)THEN
27530        WRITE(ICOUT,999)
27531        CALL DPWRST('XXX','WRIT')
27532        WRITE(ICOUT,32201)
2753332201   FORMAT('***** ERROR FROM CMPSTA (MANDEL-PAULE ',
27534     1         'ESTIMATION)--')
27535        CALL DPWRST('XXX','WRIT')
27536        WRITE(ICOUT,32203)
2753732203   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
27538        CALL DPWRST('XXX','WRIT')
27539        IERROR='YES'
27540        GOTO9000
27541      ENDIF
27542      DO32211I=1,NLAB
27543        ITEMP9=INT(TEMPZ3(I)+0.1)
27544        IF(TEMPZ(I).LE.0.0)THEN
27545          WRITE(ICOUT,999)
27546          CALL DPWRST('XXX','WRIT')
27547          WRITE(ICOUT,32201)
27548          CALL DPWRST('XXX','WRIT')
27549          WRITE(ICOUT,32213)I,TEMPZ(I)
2755032213     FORMAT('      LAB ',I6,' HAS NON-POSITIVE STANDARD ',
27551     1           'DEVIATION (= ',G15.7)
27552          CALL DPWRST('XXX','WRIT')
27553          IERROR='YES'
27554          GOTO9000
27555        ELSEIF(ITEMP9.LE.1)THEN
27556          WRITE(ICOUT,999)
27557          CALL DPWRST('XXX','WRIT')
27558          WRITE(ICOUT,32201)
27559          CALL DPWRST('XXX','WRIT')
27560          WRITE(ICOUT,32218)I
2756132218     FORMAT('      LAB ',I6,' HAS LESS THAN 2 OBSERVATIONS.')
27562          CALL DPWRST('XXX','WRIT')
27563          IERROR='YES'
27564          GOTO9000
27565        ENDIF
27566        ITEMP1(I)=ITEMP9
27567        NPTS=NPTS+ITEMP9
2756832211 CONTINUE
27569C
27570      T0=10000000.D0
27571      T1=-T0
27572C
27573      AMNX=CPUMAX
27574      AMXX=CPUMIN
27575      AMNSD=CPUMAX
27576      AMXSD=CPUMIN
27577C
27578      DO32250I=1,NLAB
27579C
27580        DTEMP1(I)=DBLE(TEMP(I))
27581        IF(DTEMP1(I).LT.T0) T0=DTEMP1(I)
27582        IF(DTEMP1(I).GT.T1) T1=DTEMP1(I)
27583        IF(TEMP(I).GT.AMXX)AMXX=TEMP(I)
27584        IF(TEMP(I).LT.AMNX)AMNX=TEMP(I)
27585C
27586        DTEMP2(I)=DBLE(TEMPZ(I))**2/DBLE(ITEMP1(I))
27587        IF(TEMPZ(I).GT.0.0)THEN
27588          IF(TEMPZ(I).LT.AMNSD)AMNSD=TEMPZ(I)
27589          IF(TEMPZ(I).GT.AMXSD)AMXSD=TEMPZ(I)
27590        ENDIF
27591C
2759232250 CONTINUE
27593C
27594      EPS=0.00001
27595      T0=AMNX - EPS
27596      T1=AMXX
27597      DO32270I=1,NS2
27598        DTEMP1(I)=(DTEMP1(I)-T0)/(T1-T0)
27599        DTEMP2(I)=DTEMP2(I)/((T1-T0)**2)
2760032270 CONTINUE
27601C
27602      ICAPSW='XXXX'
27603      ICAPTY='XXXX'
27604      NUMDIG=-99
27605      IWRITE='OFF'
27606C
27607      IF(ICASPL.EQ.'MPAU' .OR. ICASPL.EQ.'MPSE' .OR.
27608     1   ICASPL.EQ.'VARU' .OR. ICASPL.EQ.'VRSE')THEN
27609        CALL DPMNPL(TEMP,TEMPZ,TEMPZ3,NPTS,NLAB,
27610     1              DTEMP1,DTEMP2,ITEMP1,
27611     1              XMPS,S2BMPS,SEMP,SEMPK1,SEMPK2,
27612     1              DLOWMP,DHIGMP,STXMU,STS2B,
27613     1              IWRITE,
27614     1              ICAPSW,ICAPTY,NUMDIG,
27615     1              ISUBRO,IBUGG3,IERROR)
27616      ELSEIF(ICASPL.EQ.'MMPA' .OR. ICASPL.EQ.'MMPS')THEN
27617        CALL DPMMPL(TEMP,TEMPZ,TEMPZ3,NPTS,NLAB,
27618     1              DTEMP1,DTEMP2,ITEMP1,
27619     1              XMMPS,S2BMMP,SEMMP,SEMMP1,SEMMP2,
27620     1              DLOWMM,DHIGMM,
27621     1              IWRITE,
27622     1              ICAPSW,ICAPTY,NUMDIG,
27623     1              ISUBRO,IBUGG3,IERROR)
27624      ENDIF
27625C
27626      IF(ICASPL.EQ.'VARU' .OR. ICASPL.EQ.'VRSE')THEN
27627        CALL DPVRML(NPTS,NLAB,
27628     1              TEMP,TEMPZ,ITEMP1,
27629     1              XTEMP3(1),XTEMP3(MAXNXT/2),ITEMP2,XTEMP1,XTEMP2,
27630     1              DTEMP1,DTEMP2,DTEMP3,
27631     1              DTEMP2(MAXNXT/2),DTEMP3(MAXNXT/2),
27632     1              XMLS,S2BMLS,SEML,SEMLK1,SEMLK2,
27633     1              DLOWML,DHIGML,STXMU,STS2B,
27634     1              SEMLBO,DLOWM2,DHIGM2,
27635     1              IWRITE,
27636     1              ICAPSW,ICAPTY,IOUNI5,NUMDIG,ISEED,
27637     1              ISUBRO,IBUGG3,IERROR)
27638      ENDIF
27639C
27640      IF(ICASPL.EQ.'MPAU')RIGHT=XMPS
27641      IF(ICASPL.EQ.'MPSE')RIGHT=SEMP
27642      IF(ICASPL.EQ.'VARU')RIGHT=XMLS
27643      IF(ICASPL.EQ.'VRSE')RIGHT=SEML
27644      IF(ICASPL.EQ.'MMPA')RIGHT=XMMPS
27645      IF(ICASPL.EQ.'MMPS')RIGHT=SEMMP
27646      GOTO79000
27647C
2764832300 CONTINUE
27649C
27650C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
27651C     NON-POSITIVE STANDARD DEVIATION.
27652C
27653      IPRINT='OFF'
27654      NLAB=NS2
27655      NPTS=0
27656      IF(NLAB.LT.2 .OR. NLAB.GT.5)THEN
27657        WRITE(ICOUT,999)
27658        CALL DPWRST('XXX','WRIT')
27659        WRITE(ICOUT,32301)
2766032301   FORMAT('***** ERROR FROM CMPSTA (BOB ESTIMATION)--')
27661        CALL DPWRST('XXX','WRIT')
27662        WRITE(ICOUT,32303)
2766332303   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO OR ',
27664     1         'GREATER THAN FIVE.')
27665        CALL DPWRST('XXX','WRIT')
27666        IERROR='YES'
27667        GOTO9000
27668      ENDIF
27669      DO32311I=1,NLAB
27670        ITEMP9=INT(TEMPZ3(I)+0.1)
27671        IF(TEMPZ(I).LT.0.0)THEN
27672          WRITE(ICOUT,999)
27673          CALL DPWRST('XXX','WRIT')
27674          WRITE(ICOUT,32301)
27675          CALL DPWRST('XXX','WRIT')
27676          WRITE(ICOUT,32313)I,TEMPZ(I)
2767732313     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
27678     1           'DEVIATION (= ',G15.7)
27679          CALL DPWRST('XXX','WRIT')
27680          IERROR='YES'
27681          GOTO9000
27682        ELSEIF(ITEMP9.LE.0)THEN
27683          WRITE(ICOUT,999)
27684          CALL DPWRST('XXX','WRIT')
27685          WRITE(ICOUT,32301)
27686          CALL DPWRST('XXX','WRIT')
27687          WRITE(ICOUT,32318)I
2768832318     FORMAT('      LAB ',I6,' HAS LESS THAN 1 OBSERVATION.')
27689          CALL DPWRST('XXX','WRIT')
27690          IERROR='YES'
27691          GOTO9000
27692        ENDIF
27693        ITEMP1(I)=ITEMP9
27694        NPTS=NPTS+ITEMP9
2769532311 CONTINUE
27696C
27697      AMNX=CPUMAX
27698      AMXX=CPUMIN
27699C
27700      DSUM1=0.0D0
27701      DO32350I=1,NLAB
27702        IF(TEMP(I).GT.AMXX)AMXX=TEMP(I)
27703        IF(TEMP(I).LT.AMNX)AMNX=TEMP(I)
27704        DSUM1=DSUM1 + DBLE(TEMPZ(I))**2/DBLE(ITEMP1(I))
2770532350 CONTINUE
27706      SW=REAL(DSQRT(DSUM1)/DBLE(NLAB))
27707C
27708      ICAPSW='XXXX'
27709      ICAPTY='XXXX'
27710      NUMDIG=-99
27711      IWRITE='OFF'
27712      CALL DPBOB(NPTS,NLAB,
27713     1           TEMP,TEMPZ,AMNX,AMXX,SW,
27714     1           ASM,ASB,AKU,AKUK1,AKUK2,
27715     1           DLOWBO,DHIGBO,
27716     1           IWRITE,
27717     1           ICAPSW,ICAPTY,NUMDIG,
27718     1           ISUBRO,IBUGG3,IERROR)
27719      IF(ICASPL.EQ.'BOB ')RIGHT=ASM
27720      IF(ICASPL.EQ.'BOBS')RIGHT=AKUK1
27721      GOTO79000
27722C
2772332400 CONTINUE
27724C
27725C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
27726C     NON-POSITIVE STANDARD DEVIATION.
27727C
27728
27729      IPRINT='OFF'
27730      NLAB=NS2
27731      NPTS=0
27732      IF(NLAB.LT.2)THEN
27733        WRITE(ICOUT,999)
27734        CALL DPWRST('XXX','WRIT')
27735        WRITE(ICOUT,32401)
2773632401   FORMAT('***** ERROR FROM CMPSTA (GENERALIZED CONFIDENCE ',
27737     1         'INTERVAL ESTIMATION)--')
27738        CALL DPWRST('XXX','WRIT')
27739        WRITE(ICOUT,32403)
2774032403   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
27741        CALL DPWRST('XXX','WRIT')
27742        IERROR='YES'
27743        GOTO9000
27744      ENDIF
27745      DO32411I=1,NLAB
27746        ITEMP9=INT(TEMPZ3(I)+0.1)
27747        IF(TEMPZ(I).LT.0.0)THEN
27748          WRITE(ICOUT,999)
27749          CALL DPWRST('XXX','WRIT')
27750          WRITE(ICOUT,32401)
27751          CALL DPWRST('XXX','WRIT')
27752          WRITE(ICOUT,32413)I,TEMPZ(I)
2775332413     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
27754     1           'DEVIATION (= ',G15.7)
27755          CALL DPWRST('XXX','WRIT')
27756          IERROR='YES'
27757          GOTO9000
27758        ELSEIF(ITEMP9.LT.1)THEN
27759          WRITE(ICOUT,999)
27760          CALL DPWRST('XXX','WRIT')
27761          WRITE(ICOUT,32401)
27762          CALL DPWRST('XXX','WRIT')
27763          WRITE(ICOUT,32418)I
2776432418     FORMAT('      LAB ',I6,' HAS LESS THAN 1 OBSERVATION.')
27765          CALL DPWRST('XXX','WRIT')
27766          IERROR='YES'
27767          GOTO9000
27768        ENDIF
27769        ITEMP1(I)=ITEMP9
27770        NPTS=NPTS+ITEMP9
2777132411 CONTINUE
27772C
27773      ICAPSW='XXXX'
27774      ICAPTY='XXXX'
27775      NUMDIG=-99
27776      IWRITE='OFF'
27777      CALL DPGCI(NPTS,NLAB,
27778     1           TEMP,TEMPZ,ITEMP1,
27779     1           DTEMP1,DTEMP2,
27780     1           XGCI,SEGCI,
27781     1           DLOWGC,DHIGGC,
27782     1           IWRITE,IOUNI5,
27783     1           ICAPSW,ICAPTY,NUMDIG,
27784     1           ISUBRO,IBUGG3,IERROR)
27785      IF(ICASPL.EQ.'GCIN')RIGHT=XGCI
27786      IF(ICASPL.EQ.'GCIS')RIGHT=SEGCI
27787      GOTO79000
27788C
2778932500 CONTINUE
27790C
27791C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
27792C     NON-POSITIVE STANDARD DEVIATION.
27793C
27794      IPRINT='OFF'
27795      NLAB=NS2
27796      NPTS=0
27797      IF(NLAB.LT.2 .OR. NLAB.GT.6)THEN
27798        WRITE(ICOUT,999)
27799        CALL DPWRST('XXX','WRIT')
27800        WRITE(ICOUT,32501)
2780132501   FORMAT('***** ERROR FROM CMPSTA (BCP ESTIMATION)--')
27802        CALL DPWRST('XXX','WRIT')
27803        WRITE(ICOUT,32503)
2780432503   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO OR ',
27805     1         'GREATER THAN SIX.')
27806        CALL DPWRST('XXX','WRIT')
27807        IERROR='YES'
27808        GOTO9000
27809      ENDIF
27810      DO32511I=1,NLAB
27811        ITEMP9=INT(TEMPZ3(I)+0.1)
27812        IF(TEMPZ(I).LT.0.0)THEN
27813          WRITE(ICOUT,999)
27814          CALL DPWRST('XXX','WRIT')
27815          WRITE(ICOUT,32501)
27816          CALL DPWRST('XXX','WRIT')
27817          WRITE(ICOUT,32513)I,TEMPZ(I)
2781832513     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
27819     1           'DEVIATION (= ',G15.7)
27820          CALL DPWRST('XXX','WRIT')
27821          IERROR='YES'
27822          GOTO9000
27823        ELSEIF(ITEMP9.LE.0)THEN
27824          WRITE(ICOUT,999)
27825          CALL DPWRST('XXX','WRIT')
27826          WRITE(ICOUT,32501)
27827          CALL DPWRST('XXX','WRIT')
27828          WRITE(ICOUT,32518)I
2782932518     FORMAT('      LAB ',I6,' HAS LESS THAN 1 OBSERVATION.')
27830          CALL DPWRST('XXX','WRIT')
27831          IERROR='YES'
27832          GOTO9000
27833        ENDIF
27834        ITEMP1(I)=ITEMP9
27835        NPTS=NPTS+ITEMP9
2783632511 CONTINUE
27837C
27838      AMNX=CPUMAX
27839      AMXX=CPUMIN
27840C
27841      DO32550I=1,NLAB
27842        IF(TEMP(I).GT.AMXX)AMXX=TEMP(I)
27843        IF(TEMP(I).LT.AMNX)AMNX=TEMP(I)
2784432550 CONTINUE
27845C
27846      ICAPSW='XXXX'
27847      ICAPTY='XXXX'
27848      NUMDIG=-99
27849      IWRITE='OFF'
27850      CALL DPBCP(NPTS,NLAB,
27851     1           TEMP,TEMPZ,ITEMP1,AMNX,AMXX,
27852     1           XBCP,XBCPSE,XBCPK1,SBCPK2,
27853     1           DLOWBC,DHIGBC,
27854     1           IWRITE,
27855     1           ICAPSW,ICAPTY,NUMDIG,
27856     1           ISUBRO,IBUGG3,IERROR)
27857      IF(ICASPL.EQ.'BCP ')RIGHT=XBCP
27858      IF(ICASPL.EQ.'BCPS')RIGHT=XBCPSE
27859      GOTO79000
27860C
2786132600 CONTINUE
27862C
27863C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
27864C     NON-POSITIVE STANDARD DEVIATION.
27865C
27866
27867      IPRINT='OFF'
27868      NLAB=NS2
27869      IF(NLAB.LT.2)THEN
27870        WRITE(ICOUT,999)
27871        CALL DPWRST('XXX','WRIT')
27872        WRITE(ICOUT,32601)
2787332601   FORMAT('***** ERROR FROM CMPSTA (MEAN OF MEANS ESTIMATION)--')
27874        CALL DPWRST('XXX','WRIT')
27875        WRITE(ICOUT,32603)
2787632603   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
27877        CALL DPWRST('XXX','WRIT')
27878        IERROR='YES'
27879        GOTO9000
27880      ENDIF
27881C
27882      CALL MEAN(TEMP,NLAB,IWRITE,ASM,IBUGG3,IERROR)
27883      CALL SD(TEMP,NLAB,IWRITE,ASD,IBUGG3,IERROR)
27884      IF(ICASPL.EQ.'MMEA')RIGHT=ASM
27885      IF(ICASPL.EQ.'MMES')RIGHT=ASD/SQRT(REAL(NLAB))
27886      GOTO79000
27887C
2788832700 CONTINUE
27889C
27890C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
27891C     NON-POSITIVE STANDARD DEVIATION.
27892C
27893
27894      IPRINT='OFF'
27895      NLAB=NS2
27896      NPTS=0
27897      IF(NLAB.LT.2)THEN
27898        WRITE(ICOUT,999)
27899        CALL DPWRST('XXX','WRIT')
27900        WRITE(ICOUT,32701)
2790132701   FORMAT('***** ERROR FROM CMPSTA (FAIRWEATHER ESTIMATION)--')
27902        CALL DPWRST('XXX','WRIT')
27903        WRITE(ICOUT,32703)
2790432703   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
27905        CALL DPWRST('XXX','WRIT')
27906        IERROR='YES'
27907        GOTO9000
27908      ENDIF
27909      DO32711I=1,NLAB
27910        ITEMP9=INT(TEMPZ3(I)+0.1)
27911        IF(TEMPZ(I).LT.0.0)THEN
27912          WRITE(ICOUT,999)
27913          CALL DPWRST('XXX','WRIT')
27914          WRITE(ICOUT,32701)
27915          CALL DPWRST('XXX','WRIT')
27916          WRITE(ICOUT,32713)I,TEMPZ(I)
2791732713     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
27918     1           'DEVIATION (= ',G15.7)
27919          CALL DPWRST('XXX','WRIT')
27920          IERROR='YES'
27921          GOTO9000
27922        ELSEIF(ITEMP9.LT.1)THEN
27923          WRITE(ICOUT,999)
27924          CALL DPWRST('XXX','WRIT')
27925          WRITE(ICOUT,32701)
27926          CALL DPWRST('XXX','WRIT')
27927          WRITE(ICOUT,32718)I
2792832718     FORMAT('      LAB ',I6,' HAS LESS THAN 1 OBSERVATION.')
27929          CALL DPWRST('XXX','WRIT')
27930          IERROR='YES'
27931          GOTO9000
27932        ENDIF
27933        ITEMP1(I)=ITEMP9
27934        NPTS=NPTS+ITEMP9
2793532711 CONTINUE
27936C
27937      ICAPSW='XXXX'
27938      ICAPTY='XXXX'
27939      NUMDIG=-99
27940      IWRITE='OFF'
27941      CALL DPFAIR(NPTS,NLAB,
27942     1            TEMP,TEMPZ,ITEMP1,
27943     1            XFW,XFWS2,SEFWK1,SEFWK2,
27944     1            DLOWFW,DHIGFW,DLOWF2,DHIGF2,DLOWF3,DHIGF3,
27945     1            IWRITE,
27946     1            ICAPSW,ICAPTY,IFLAG9,NUMDIG,
27947     1            ISUBRO,IBUGG3,IERROR)
27948      RIGHT=CPUMIN
27949      IF(IFLAG9)THEN
27950        IF(ICASPL.EQ.'FAIR')RIGHT=XFW
27951        IF(ICASPL.EQ.'FWSE')RIGHT=SEFWK1
27952      ENDIF
27953      GOTO79000
27954C
2795532800 CONTINUE
27956C
27957C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
27958C     NON-POSITIVE STANDARD DEVIATION.
27959C
27960      IPRINT='OFF'
27961      NLAB=NS2
27962      NPTS=0
27963      IF(NLAB.LT.2)THEN
27964        WRITE(ICOUT,999)
27965        CALL DPWRST('XXX','WRIT')
27966        WRITE(ICOUT,32801)
2796732801   FORMAT('***** ERROR FROM CMPSTA (GRAYBILL-DEAL ESTIMATION)--')
27968        CALL DPWRST('XXX','WRIT')
27969        WRITE(ICOUT,32803)
2797032803   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
27971        CALL DPWRST('XXX','WRIT')
27972        IERROR='YES'
27973        GOTO9000
27974      ENDIF
27975      DO32811I=1,NLAB
27976        ITEMP9=INT(TEMPZ3(I)+0.1)
27977        IF(TEMPZ(I).LT.0.0)THEN
27978          WRITE(ICOUT,999)
27979          CALL DPWRST('XXX','WRIT')
27980          WRITE(ICOUT,32801)
27981          CALL DPWRST('XXX','WRIT')
27982          WRITE(ICOUT,32813)I,TEMPZ(I)
2798332813     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
27984     1           'DEVIATION (= ',G15.7)
27985          CALL DPWRST('XXX','WRIT')
27986          IERROR='YES'
27987          GOTO9000
27988        ELSEIF(ITEMP9.LT.1)THEN
27989          WRITE(ICOUT,999)
27990          CALL DPWRST('XXX','WRIT')
27991          WRITE(ICOUT,32801)
27992          CALL DPWRST('XXX','WRIT')
27993          WRITE(ICOUT,32818)I
2799432818     FORMAT('      LAB ',I6,' HAS LESS THAN 1 OBSERVATION.')
27995          CALL DPWRST('XXX','WRIT')
27996          IERROR='YES'
27997          GOTO9000
27998        ENDIF
27999        ITEMP1(I)=ITEMP9
28000        NPTS=NPTS+ITEMP9
2800132811 CONTINUE
28002C
28003      ICAPSW='XXXX'
28004      ICAPTY='XXXX'
28005      NUMDIG=-99
28006      IWRITE='OFF'
28007      IOUNI5=-99
28008      CALL DPGRAY(NPTS,NLAB,
28009     1            TEMP,TEMPZ,ITEMP1,
28010     1            XGD,XGDS2,SEGDK1,SEGDK2,
28011     1            XGDS20,XGDSZ1,XGDSZ2,
28012     1            DLOWGD,DHIGGD,
28013     1            IWRITE,IOUNI5,
28014     1            ICAPSW,ICAPTY,NUMDIG,
28015     1            ISUBRO,IBUGG3,IERROR)
28016      IF(ICASPL.EQ.'GDEA')RIGHT=XGD
28017      IF(ICASPL.EQ.'GDSE')RIGHT=SEGDK1
28018      IF(ICASPL.EQ.'GDSN')RIGHT=SQRT(XGDS20)
28019      IF(ICASPL.EQ.'GDZ1')RIGHT=SQRT(XGDSZ1)
28020      IF(ICASPL.EQ.'GDZ2')RIGHT=SQRT(XGDSZ2)
28021      GOTO79000
28022C
2802332900 CONTINUE
28024C
28025C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
28026C     NON-POSITIVE STANDARD DEVIATION.
28027C
28028      IPRINT='OFF'
28029      NLAB=NS2
28030      NPTS=0
28031      IF(NLAB.LT.2)THEN
28032        WRITE(ICOUT,999)
28033        CALL DPWRST('XXX','WRIT')
28034        WRITE(ICOUT,32901)
2803532901   FORMAT('***** ERROR FROM CMPSTA (SCHILLER-EBERHARDT ',
28036     1         'ESTIMATION)--')
28037        CALL DPWRST('XXX','WRIT')
28038        WRITE(ICOUT,32903)
2803932903   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
28040        CALL DPWRST('XXX','WRIT')
28041        IERROR='YES'
28042        GOTO9000
28043      ENDIF
28044      DO32911I=1,NLAB
28045        ITEMP9=INT(TEMPZ3(I)+0.1)
28046        IF(TEMPZ(I).LT.0.0)THEN
28047          WRITE(ICOUT,999)
28048          CALL DPWRST('XXX','WRIT')
28049          WRITE(ICOUT,32901)
28050          CALL DPWRST('XXX','WRIT')
28051          WRITE(ICOUT,32913)I,TEMPZ(I)
2805232913     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
28053     1           'DEVIATION (= ',G15.7)
28054          CALL DPWRST('XXX','WRIT')
28055          IERROR='YES'
28056          GOTO9000
28057        ELSEIF(ITEMP9.LT.2)THEN
28058          WRITE(ICOUT,999)
28059          CALL DPWRST('XXX','WRIT')
28060          WRITE(ICOUT,32901)
28061          CALL DPWRST('XXX','WRIT')
28062          WRITE(ICOUT,32918)I
2806332918     FORMAT('      LAB ',I6,' HAS LESS THAN 2 OBSERVATIONS.')
28064          CALL DPWRST('XXX','WRIT')
28065          IERROR='YES'
28066          GOTO9000
28067        ENDIF
28068        ITEMP1(I)=ITEMP9
28069        NPTS=NPTS+ITEMP9
2807032911 CONTINUE
28071C
28072      IHP='SIGM'
28073      IHP2='AH  '
28074      IHWUSE='P'
28075      MESSAG='NO'
28076      CALL CHECKN(IHP,IHP2,IHWUSE,
28077     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28078     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28079      IF(IERROR.EQ.'YES')THEN
28080        SIGMAH=0.0
28081      ELSE
28082        SIGMAH=VALUE(ILOCP)
28083        IF(SIGMAH.LT.0.0)SIGMAH=0.0
28084      ENDIF
28085      IHP='DFH '
28086      IHP2='    '
28087      IHWUSE='P'
28088      MESSAG='NO'
28089      CALL CHECKN(IHP,IHP2,IHWUSE,
28090     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28091     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28092      IF(IERROR.EQ.'YES')THEN
28093        IDFH=1
28094      ELSE
28095        IDFH=INT(VALUE(ILOCP)+ 0.5)
28096      ENDIF
28097      IF(IDFH.LE.0)IDFH=1
28098C
28099C     SCHILLER-EBERHARDT NEEDS TO CALL MANDEL-PAULE TO
28100C     OBTAIN "S2BMPS" VALUE.
28101C
28102      T0=10000000.D0
28103      T1=-T0
28104C
28105      AMNX=CPUMAX
28106      AMXX=CPUMIN
28107      AMNSD=CPUMAX
28108      AMXSD=CPUMIN
28109C
28110      DO32950I=1,NLAB
28111C
28112        DTEMP1(I)=DBLE(TEMP(I))
28113        IF(DTEMP1(I).LT.T0) T0=DTEMP1(I)
28114        IF(DTEMP1(I).GT.T1) T1=DTEMP1(I)
28115        IF(TEMP(I).GT.AMXX)AMXX=TEMP(I)
28116        IF(TEMP(I).LT.AMNX)AMNX=TEMP(I)
28117C
28118        DTEMP2(I)=DBLE(TEMPZ(I))**2/DBLE(ITEMP1(I))
28119        IF(TEMPZ(I).GT.0.0)THEN
28120          IF(TEMPZ(I).LT.AMNSD)AMNSD=TEMPZ(I)
28121          IF(TEMPZ(I).GT.AMXSD)AMXSD=TEMPZ(I)
28122        ENDIF
28123C
2812432950 CONTINUE
28125C
28126      EPS=0.00001
28127      T0=AMNX - EPS
28128      T1=AMXX
28129      DO32970I=1,NS2
28130        DTEMP1(I)=(DTEMP1(I)-T0)/(T1-T0)
28131        DTEMP2(I)=DTEMP2(I)/((T1-T0)**2)
2813232970 CONTINUE
28133C
28134      ICAPSW='XXXX'
28135      ICAPTY='XXXX'
28136      NUMDIG=-99
28137      IWRITE='OFF'
28138C
28139      CALL DPMNPL(TEMP,TEMPZ,TEMPZ3,NPTS,NLAB,
28140     1            DTEMP1,DTEMP2,ITEMP1,
28141     1            XMPS,S2BMPS,SEMP,SEMPK1,SEMPK2,
28142     1            DLOWMP,DHIGMP,STXMU,STS2B,
28143     1            IWRITE,
28144     1            ICAPSW,ICAPTY,NUMDIG,
28145     1            ISUBRO,IBUGG3,IERROR)
28146      CALL DPSCEB(NPTS,NLAB,
28147     1            DTEMP1,ITEMP1,
28148     1            TEMP,TEMPZ,S2BMPS,
28149     1            XSE,XSES2,IDFH,SIGMAH,
28150     1            SESUK1,SESUK2,
28151     1            DLOWSE,DHIGSE,
28152     1            IWRITE,
28153     1            ICAPSW,ICAPTY,NUMDIG,
28154     1            ISUBRO,IBUGG3,IERROR)
28155      IF(ICASPL.EQ.'SCEB')RIGHT=XSE
28156      IF(ICASPL.EQ.'SESE')RIGHT=SESUK1
28157      GOTO79000
28158C
2815933100 CONTINUE
28160C
28161      IHP='ALPH'
28162      IHP2='A   '
28163      IHWUSE='P'
28164      MESSAG='NO'
28165      CALL CHECKN(IHP,IHP2,IHWUSE,
28166     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28167     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28168      IF(IERROR.EQ.'YES')THEN
28169        ALPHA=0.95
28170      ELSE
28171        ALPHA=VALUE(ILOCP)
28172        IF(ALPHA.EQ.90.0 .OR. ALPHA.EQ.0.90)THEN
28173          ALPHA=0.90
28174        ELSEIF(ALPHA.EQ.10.0 .OR. ALPHA.EQ.0.10)THEN
28175          ALPHA=0.90
28176        ELSEIF(ALPHA.EQ.99.0 .OR. ALPHA.EQ.0.99)THEN
28177          ALPHA=0.99
28178        ELSEIF(ALPHA.EQ.1.0 .OR. ALPHA.EQ.0.01)THEN
28179          ALPHA=0.99
28180        ELSEIF(ALPHA.EQ.95.0 .OR. ALPHA.EQ.0.95)THEN
28181          ALPHA=0.95
28182        ELSEIF(ALPHA.EQ.5.0 .OR. ALPHA.EQ.0.05)THEN
28183          ALPHA=0.95
28184        ELSE
28185          ALPHA=0.95
28186        ENDIF
28187      ENDIF
28188C
28189      CALL DP2KS3(TEMP,TEMPZ,NS2,NSZ,
28190     1            XTEMP1,
28191     1            STATVA,STATCD,CUTU90,CUTU95,CUTU99,
28192     1            IBUGG3,ISUBRO,IERROR)
28193      IF(ICASPL.EQ.'KS2S')THEN
28194        RIGHT=STATVA
28195      ELSEIF(ICASPL.EQ.'KSCV')THEN
28196        IF(ALPHA.EQ.0.90)THEN
28197          RIGHT=CUTU90
28198        ELSEIF(ALPHA.EQ.0.99)THEN
28199          RIGHT=CUTU99
28200        ELSE
28201          RIGHT=CUTU95
28202        ENDIF
28203      ENDIF
28204      GOTO79000
28205C
2820633105 CONTINUE
28207      IDATSW='RAW'
28208      CLWID=CLWIDT(1)
28209      XSTART=CLLIMI(1)
28210      XSTOP=CLLIMI(2)
28211      MAXOB2=MAXOBV/2
28212      IINDX=(MAXOBV/2) + 1
28213      CALL DP2CH3(TEMP,TEMPZ,TEMPZ3,NS2,NSZ,NSZ3,
28214     1            IDATSW,IRHSTG,
28215     1            CLWID,XSTART,XSTOP,
28216     1            CLWID2,DXSTAR,DXSTOP,
28217     1            XTEMP1,IHSTCW,IHSTOU,MAXOBV,MAXOB2,
28218     1            STATVA,STATCD,STATNU,NCELLS,
28219     1            Y1MEAN,Y1SD,Y1MIN,Y1MAX,
28220     1            Y2MEAN,Y2SD,Y2MIN,Y2MAX,
28221     1            XTEMP2,XTEMP3,XTEMP2(IINDX),XTEMP3(IINDX),M2,
28222     1            IBUGG3,ISUBRO,IERROR)
28223      IF(ICASPL.EQ.'CS2S')THEN
28224        RIGHT=STATVA
28225      ELSEIF(ICASPL.EQ.'CC2S')THEN
28226        RIGHT=STATCD
28227      ELSEIF(ICASPL.EQ.'CP2S')THEN
28228        RIGHT=1.0 - STATCD
28229      ENDIF
28230      GOTO79000
28231C
2823233110 CONTINUE
28233C
28234      CALL DPWSH3(TEMP,NS2,
28235     1            XTEMP1,MAXNXT,
28236     1            STATVA,PVAL,
28237     1            ISUBRO,IBUGG3,IERROR)
28238      IF(ICASPL.EQ.'WSHA')THEN
28239        RIGHT=STATVA
28240      ELSEIF(ICASPL.EQ.'WSPV')THEN
28241        RIGHT=PVAL
28242      ENDIF
28243      GOTO79000
28244C
2824533120 CONTINUE
28246C
28247      CALL DPCUS3(TEMP,NS2,
28248     1            STATVA,STATV2,STATCD,STATC2,PVAL1,PVAL2,
28249     1            XTEMP1,
28250     1            ISUBRO,IBUGG3,IERROR)
28251      IF(ICASPL.EQ.'CSFT')THEN
28252        RIGHT=STATVA
28253      ELSEIF(ICASPL.EQ.'CSFP')THEN
28254        RIGHT=PVAL1
28255      ELSEIF(ICASPL.EQ.'CSBT')THEN
28256        RIGHT=STATV2
28257      ELSEIF(ICASPL.EQ.'CSBP')THEN
28258        RIGHT=PVAL2
28259      ENDIF
28260      GOTO79000
28261C
2826233130 CONTINUE
28263C
28264      IF(NUMV2.EQ.1)THEN
28265        XMEAN=CPUMIN
28266        XSD=CPUMIN
28267        AN=CPUMIN
28268      ELSE
28269        XMEAN=TEMP(1)
28270        XSD=TEMPZ(1)
28271        AN=TEMPZ3(1)
28272      ENDIF
28273C
28274      IHP='ALPH'
28275      IHP2='A   '
28276      IHWUSE='P'
28277      MESSAG='NO'
28278      CALL CHECKN(IHP,IHP2,IHWUSE,
28279     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28280     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28281      IF(IERROR.EQ.'YES')THEN
28282        ALPHA=0.95
28283      ELSE
28284        ALPHA=VALUE(ILOCP)
28285      ENDIF
28286C
28287      IHP='GAMM'
28288      IHP2='A   '
28289      IHWUSE='P'
28290      MESSAG='NO'
28291      CALL CHECKN(IHP,IHP2,IHWUSE,
28292     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28293     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28294      IF(IERROR.EQ.'YES')THEN
28295        GAMMA=0.95
28296      ELSE
28297        GAMMA=VALUE(ILOCP)
28298      ENDIF
28299C
28300      CALL DPTOL3(TEMP,NS2,XMEAN,XSD,AN,PTOLDF,
28301     1            ICASPL,ALPHA,GAMMA,ITOLGC,ITOLM2,
28302     1            AK,ALOWLM,AUPPLM,
28303     1            ISUBRO,IBUGG3,IERROR)
28304      IF(ICASPL.EQ.'1LNT' .OR. ICASPL.EQ.'2LNT')THEN
28305        RIGHT=ALOWLM
28306      ELSEIF(ICASPL.EQ.'1UNT' .OR. ICASPL.EQ.'2UNT')THEN
28307        RIGHT=AUPPLM
28308      ELSEIF(ICASPL.EQ.'1KNT' .OR. ICASPL.EQ.'2KNT')THEN
28309        RIGHT=AK
28310      ENDIF
28311      GOTO79000
28312C
2831333140 CONTINUE
28314C
28315      CALL DPFTE3(TEMP,NS2,TEMPZ,NSZ,MAXNXT,
28316     1            Y1MEAN,Y1SD,Y2MEAN,Y2SD,
28317     1            SDNUM,SDDEN,IDFNUM,IDFDEN,
28318     1            STATVA,STANU1,STANU2,POOLSD,STATCD,PVAL,
28319     1            IBUGG3,ISUBRO,IERROR)
28320      IF(ICASPL.EQ.'FTES')THEN
28321        RIGHT=STATVA
28322      ELSEIF(ICASPL.EQ.'FTPV')THEN
28323        RIGHT=PVAL
28324      ELSEIF(ICASPL.EQ.'FTCD')THEN
28325        RIGHT=STATCD
28326      ENDIF
28327      GOTO79000
28328C
2832933150 CONTINUE
28330      IHP='MU  '
28331      IHP2='    '
28332      IHWUSE='P'
28333      MESSAG='NO'
28334      CALL CHECKN(IHP,IHP2,IHWUSE,
28335     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28336     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28337      IF(IERROR.EQ.'YES')THEN
28338        AMU=0.0
28339      ELSE
28340        AMU=VALUE(ILOCP)
28341      ENDIF
28342C
28343      CALL DPSIG3(TEMP,NS2,AMU,IWRITE,
28344     1            XTEMP1,XTEMP2,MAXNXT,
28345     1            XMEAN,XMED,XSD,XMAD,
28346     1            STATV1,STATC1,STATV2,STATC2,RTIES,NTEMP,
28347     1            PVAL2T,PVALLT,PVALUT,
28348     1            ISUBRO,IBUGG3,IERROR)
28349      IF(ICASPL.EQ.'1STE')THEN
28350        RIGHT=STATV1
28351      ELSEIF(ICASPL.EQ.'1SCD')THEN
28352        RIGHT=STATC1
28353      ELSEIF(ICASPL.EQ.'1S2P')THEN
28354        RIGHT=PVAL2T
28355      ELSEIF(ICASPL.EQ.'1SLP')THEN
28356        RIGHT=PVALLT
28357      ELSEIF(ICASPL.EQ.'1SUP')THEN
28358        RIGHT=PVALUT
28359      ENDIF
28360      GOTO79000
28361C
2836233160 CONTINUE
28363      IHP='D0  '
28364      IHP2='    '
28365      IHWUSE='P'
28366      MESSAG='NO'
28367      CALL CHECKN(IHP,IHP2,IHWUSE,
28368     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28369     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28370      IF(IERROR.EQ.'YES')THEN
28371        D0=0.0
28372      ELSE
28373        D0=VALUE(ILOCP)
28374      ENDIF
28375C
28376      CALL DPSIG4(TEMP,NS2,TEMPZ,NSZ,D0,IWRITE,
28377     1            XTEMP1,XTEMP2,MAXNXT,
28378     1            X1MEAN,X1MED,X1SD,X1MAD,
28379     1            X2MEAN,X2MED,X2SD,X2MAD,
28380     1            STATV1,STATC1,STATV2,STATC2,RTIES,NTEMP,
28381     1            PVAL2T,PVALLT,PVALUT,
28382     1            ISUBRO,IBUGG3,IERROR)
28383      IF(ICASPL.EQ.'2STE')THEN
28384        RIGHT=STATV1
28385      ELSEIF(ICASPL.EQ.'2SCD')THEN
28386        RIGHT=STATC1
28387      ELSEIF(ICASPL.EQ.'2S2P')THEN
28388        RIGHT=PVAL2T
28389      ELSEIF(ICASPL.EQ.'2SLP')THEN
28390        RIGHT=PVALLT
28391      ELSEIF(ICASPL.EQ.'2SUP')THEN
28392        RIGHT=PVALUT
28393      ENDIF
28394      GOTO79000
28395C
2839633165 CONTINUE
28397      IF(MAXNXT.GE.1000000)THEN
28398        MAXSAM=22
28399      ELSE
28400        MAXSAM=20
28401      ENDIF
28402      SUMX=CPUMIN
28403      PTEMP=CPUMIN
28404      CALL FISHER(TEMP,NS2,TEMPZ,NSZ,ITOTAL,POSSIB,PTEMP,
28405     1            SUMX,SUMY,XMEAN,YMEAN,
28406     1            XTEMP1,XTEMP2,ITEMP1,MAXSAM,MAXNXT,
28407     1            IFAULT,IBUGG3)
28408      IF(IFAULT.GT.0)THEN
28409        RIGHT=CPUMIN
28410        WRITE(ICOUT,999)
28411        CALL DPWRST('XXX','WRIT')
28412        WRITE(ICOUT,33166)
2841333166   FORMAT('****** ERROR IN FISHER TWO-SAMPLE RANDOMIZATION TEST--')
28414        CALL DPWRST('XXX','WRIT')
28415        WRITE(ICOUT,33167)
2841633167   FORMAT('       MAXIMUM STORAGE SPACE EXCEEDED.')
28417        CALL DPWRST('XXX','WRIT')
28418        WRITE(ICOUT,33168)NS2
2841933168   FORMAT('       NUMBER OF OBSERVATIONS FOR SAMPLE ONE  = ',I8)
28420        CALL DPWRST('XXX','WRIT')
28421        WRITE(ICOUT,33169)NSZ
2842233169   FORMAT('       NUMBER OF OBSERVATIONS FOR SAMPLE TWO  = ',I8)
28423        CALL DPWRST('XXX','WRIT')
28424      ELSEIF(ICASPL.EQ.'2FRT')THEN
28425        RIGHT=SUMX
28426      ELSEIF(ICASPL.EQ.'2F2P' .AND. NS2.EQ.NSZ)THEN
28427        RIGHT=2.0*PTEMP
28428      ELSEIF(ICASPL.EQ.'2F2P' .AND. NS2.NE.NSZ)THEN
28429        RIGHT=2.0*PTEMP
28430      ELSEIF(ICASPL.EQ.'2F1P')THEN
28431        RIGHT=PTEMP
28432      ENDIF
28433      GOTO79000
28434C
2843533170 CONTINUE
28436      IF(ICASPL.EQ.'WABA')THEN
28437        ICASAN='ABAS'
28438        ICASDI='WEIB'
28439      ELSEIF(ICASPL.EQ.'WBBA')THEN
28440        ICASAN='BBAS'
28441        ICASDI='WEIB'
28442      ELSEIF(ICASPL.EQ.'LABA')THEN
28443        ICASAN='ABAS'
28444        ICASDI='LOGN'
28445      ELSEIF(ICASPL.EQ.'LBBA')THEN
28446        ICASAN='BBAS'
28447        ICASDI='LOGN'
28448      ELSEIF(ICASPL.EQ.'NABA')THEN
28449        ICASAN='ABAS'
28450        ICASDI='NORM'
28451      ELSEIF(ICASPL.EQ.'NBBA')THEN
28452        ICASAN='BBAS'
28453        ICASDI='NORM'
28454      ELSEIF(ICASPL.EQ.'ZABA')THEN
28455        ICASAN='ABAS'
28456        ICASDI='NONP'
28457      ELSEIF(ICASPL.EQ.'ZBBA')THEN
28458        ICASAN='BBAS'
28459        ICASDI='NONP'
28460      ENDIF
28461      CALL DPABA3(TEMP,NS2,
28462     1            XTEMP1,MAXNXT,
28463     1            ICASAN,ICASDI,
28464     1            T10,V10,NDF,GAMMA,ALPHA,YMEAN,YSD,YMIN,YMAX,
28465     1            ABASIS,BBASIS,
28466     1            ISUBRO,IBUGG3,IERROR)
28467      IF(ICASPL.EQ.'WABA')RIGHT=ABASIS
28468      IF(ICASPL.EQ.'WBBA')RIGHT=BBASIS
28469      IF(ICASPL.EQ.'LABA')RIGHT=ABASIS
28470      IF(ICASPL.EQ.'LBBA')RIGHT=BBASIS
28471      IF(ICASPL.EQ.'NABA')RIGHT=ABASIS
28472      IF(ICASPL.EQ.'NBBA')RIGHT=BBASIS
28473      IF(ICASPL.EQ.'ZABA')RIGHT=ABASIS
28474      IF(ICASPL.EQ.'ZBBA')RIGHT=BBASIS
28475      GOTO79000
28476C
2847734000 CONTINUE
28478      IHP='D0  '
28479      IHP2='    '
28480      IHWUSE='P'
28481      MESSAG='NO'
28482      CALL CHECKN(IHP,IHP2,IHWUSE,
28483     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28484     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28485      IF(IERROR.EQ.'YES')THEN
28486        D0=0.0
28487      ELSE
28488        D0=VALUE(ILOCP)
28489      ENDIF
28490C
28491      ICASAN='ONES'
28492      IF(ICASPL.EQ.'1WLP')THEN
28493        ICASA2='LOWE'
28494      ELSEIF(ICASPL.EQ.'1WUP')THEN
28495        ICASA2='UPPE'
28496      ELSE
28497        ICASA2='TWOT'
28498      ENDIF
28499      CALL DPWIL3(TEMP,TEMPZ,NS2,D0,ICASAN,ICASA2,
28500     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
28501     1            STATVA,STATV2,STATCD,
28502     1            PVAL2T,PVALLT,PVALUT,
28503     1            NTEMP,NPLUS,NMINUS,NTIES,
28504     1            TPLUS,TMINUS,RSUM,RSUMSQ,
28505     1            IBUGG3,ISUBRO,IERROR)
28506C
28507C     NOTE: RETURN THE "NORMAL APPROXIMATION" TEST STATISTIC
28508C
28509      IF(ICASPL.EQ.'1WTE')THEN
28510        RIGHT=STATV2
28511      ELSEIF(ICASPL.EQ.'1WCD')THEN
28512        RIGHT=STATCD
28513      ELSEIF(ICASPL.EQ.'1W2P')THEN
28514        RIGHT=PVAL2T
28515      ELSEIF(ICASPL.EQ.'1WLP')THEN
28516        RIGHT=PVALLT
28517      ELSEIF(ICASPL.EQ.'1WUP')THEN
28518        RIGHT=PVALUT
28519      ENDIF
28520      GOTO79000
28521C
2852234010 CONTINUE
28523      IHP='D0  '
28524      IHP2='    '
28525      IHWUSE='P'
28526      MESSAG='NO'
28527      CALL CHECKN(IHP,IHP2,IHWUSE,
28528     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28529     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28530      IF(IERROR.EQ.'YES')THEN
28531        D0=0.0
28532      ELSE
28533        D0=VALUE(ILOCP)
28534      ENDIF
28535C
28536      ICASAN='TWOS'
28537      IF(ICASPL.EQ.'1WLP')THEN
28538        ICASA2='LOWE'
28539      ELSEIF(ICASPL.EQ.'1WUP')THEN
28540        ICASA2='UPPE'
28541      ELSE
28542        ICASA2='TWOT'
28543      ENDIF
28544      CALL DPWIL3(TEMP,TEMPZ,NS2,D0,ICASAN,ICASA2,
28545     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
28546     1            STATVA,STATV2,STATCD,
28547     1            PVAL2T,PVALLT,PVALUT,
28548     1            NTEMP,NPLUS,NMINUS,NTIES,
28549     1            TPLUS,TMINUS,RSUM,RSUMSQ,
28550     1            IBUGG3,ISUBRO,IERROR)
28551C
28552C     NOTE: RETURN THE "NORMAL APPROXIMATION" TEST STATISTIC
28553C
28554      IF(ICASPL.EQ.'2WTE')THEN
28555        RIGHT=STATV2
28556      ELSEIF(ICASPL.EQ.'2WCD')THEN
28557        RIGHT=STATCD
28558      ELSEIF(ICASPL.EQ.'2W2P')THEN
28559        RIGHT=PVAL2T
28560      ELSEIF(ICASPL.EQ.'2WLP')THEN
28561        RIGHT=PVALLT
28562      ELSEIF(ICASPL.EQ.'2WUP')THEN
28563        RIGHT=PVALUT
28564      ENDIF
28565      GOTO79000
28566C
2856734020 CONTINUE
28568      CALL DPMNN3(TEMP,NS2,TEMPZ,NSZ,
28569     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
28570     1            STATVA,STATV1,STATV2,STATV3,STATCD,NTIES,
28571     1            PVAL2T,PVALLT,PVALUT,
28572     1            IBUGG3,ISUBRO,IERROR)
28573C
28574      IF(ICASPL.EQ.'MWTE')THEN
28575        RIGHT=STATVA
28576      ELSEIF(ICASPL.EQ.'MWCD')THEN
28577        RIGHT=STATCD
28578      ELSEIF(ICASPL.EQ.'MW2P')THEN
28579        RIGHT=PVAL2T
28580      ELSEIF(ICASPL.EQ.'MWLP')THEN
28581        RIGHT=PVALLT
28582      ELSEIF(ICASPL.EQ.'MWUP')THEN
28583        RIGHT=PVALUT
28584      ELSEIF(ICASPL.EQ.'MWUS')THEN
28585        RIGHT=STATV3
28586      ENDIF
28587      GOTO79000
28588C
2858934030 CONTINUE
28590      CALL DPKLO3(TEMP,NS2,TEMPZ,NSZ,
28591     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
28592     1            STATVA,STATCD,PVAL2T,PVALLT,PVALUT,
28593     1            IBUGG3,ISUBRO,IERROR)
28594C
28595      IF(ICASPL.EQ.'KLTE')THEN
28596        RIGHT=STATVA
28597      ELSEIF(ICASPL.EQ.'KLCD')THEN
28598        RIGHT=STATCD
28599      ELSEIF(ICASPL.EQ.'KL2P')THEN
28600        RIGHT=PVAL2T
28601      ELSEIF(ICASPL.EQ.'KLLP')THEN
28602        RIGHT=PVALLT
28603      ELSEIF(ICASPL.EQ.'KLUP')THEN
28604        RIGHT=PVALUT
28605      ENDIF
28606      GOTO79000
28607C
2860834035 CONTINUE
28609      IKRUGS='OFF'
28610      CALL DPKRU3(TEMP,TEMPZ,NS2,
28611     1            TEMPZ3,XTEMP1,ITEMP1,MAXOBV,
28612     1            XTEMP2,XTEMP3,XTEMP3,XTEMP3,XTEMP3,XTEMP3,
28613     1            STATVA,STATCD,PVAL2T,NUMDF,NUMDIS,S2,
28614     1            IKRUGS,
28615     1            IBUGG3,ISUBRO,IERROR)
28616      IF(ICASPL.EQ.'KWTE')THEN
28617        RIGHT=STATVA
28618      ELSEIF(ICASPL.EQ.'KWCD')THEN
28619        RIGHT=STATCD
28620      ELSEIF(ICASPL.EQ.'KW2P')THEN
28621        RIGHT=PVAL2T
28622      ENDIF
28623      GOTO79000
28624C
2862534040 CONTINUE
28626      CALL DPSQR3(TEMP,TEMPZ,NS2,
28627     1            XTEMP1,XTEMP2,XTEMP3,TEMPZ3,MAXNXT,
28628     1            DTEMP1,DTEMP2,
28629     1            STATVA,STATCD,PVAL2T,PVALLT,PVALUT,
28630     1            IDF,NDIST,D2,
28631     1            IBUGG3,ISUBRO,IERROR)
28632C
28633      IF(ICASPL.EQ.'SRTE')THEN
28634        RIGHT=STATVA
28635      ELSEIF(ICASPL.EQ.'SRCD')THEN
28636        RIGHT=STATCD
28637      ELSEIF(ICASPL.EQ.'SR2P')THEN
28638        RIGHT=PVAL2T
28639      ELSEIF(ICASPL.EQ.'SRLP')THEN
28640        RIGHT=PVALLT
28641      ELSEIF(ICASPL.EQ.'SRUP')THEN
28642        RIGHT=PVALUT
28643      ENDIF
28644      GOTO79000
28645C
2864634050 CONTINUE
28647      IHP='XQ  '
28648      IHP2='    '
28649      IHWUSE='P'
28650      MESSAG='NO'
28651      CALL CHECKN(IHP,IHP2,IHWUSE,
28652     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28653     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28654      IF(IERROR.EQ.'YES')THEN
28655        PMTEQU=0.5
28656      ELSE
28657        PMTEQU=VALUE(ILOCP)
28658        IF(PMTEQU.LE.0.0 .OR. PMTEQU.GE.1.0)PMTEQU=0.5
28659      ENDIF
28660      CALL DPMET3(TEMP,TEMPZ,NS2,
28661     1            XTEMP1,XTEMP2,XTEMP3,PMTEQU,IQUAME,MAXNXT,
28662     1            XMED,XA,XB,IDF,NDIST,
28663     1            STATVA,STATCD,PVAL2T,
28664     1            IBUGG3,ISUBRO,IERROR)
28665C
28666      IF(ICASPL.EQ.'METE')THEN
28667        RIGHT=STATVA
28668      ELSEIF(ICASPL.EQ.'MECD')THEN
28669        RIGHT=STATCD
28670      ELSEIF(ICASPL.EQ.'ME2P')THEN
28671        RIGHT=PVAL2T
28672      ENDIF
28673      GOTO79000
28674C
2867534060 CONTINUE
28676      MAXOB2=MAXOBV/2
28677      IINDX=MAXOB2+1
28678      CALL DPFRI3(TEMP,TEMPZ,TEMPZ3,NS2,
28679     1            XTEMP1,XTEMP1(IINDX),XTEMP2,XTEMP3,XTEMP3(IINDX),
28680     1            DTEMP1,
28681     1            MAXOBV,MAXOB2,
28682     1            STATVA,STATCD,PVAL2T,
28683     1            NBLOCK,NTREAT,NUMDF1,NUMDF2,AT1,AT2,A1,C1,
28684     1            IBUGG3,ISUBRO,IERROR)
28685      IF(ICASPL.EQ.'FZTE')THEN
28686        RIGHT=STATVA
28687      ELSEIF(ICASPL.EQ.'FZCD')THEN
28688        RIGHT=STATCD
28689      ELSEIF(ICASPL.EQ.'FZ2P')THEN
28690        RIGHT=PVAL2T
28691      ENDIF
28692      GOTO79000
28693C
2869434070 CONTINUE
28695      MAXOB2=MAXOBV/2
28696      IINDX=MAXOB2+1
28697      CALL DPQUT3(TEMP,TEMPZ,TEMPZ3,NS2,
28698     1            XTEMP1,XTEMP1(IINDX),XTEMP2,XTEMP2(IINDX),
28699     1            XTEMP3,XTEMP3(IINDX),
28700     1            DTEMP1,
28701     1            MAXOBV,MAXOB2,
28702     1            STATVA,STATCD,PVAL2T,
28703     1            NBLOCK,NTREAT,NUMDF1,NUMDF2,
28704     1            AT1,AT2,A1,C1,SSTR,SSTO,
28705     1            IBUGG3,ISUBRO,IERROR)
28706      IF(ICASPL.EQ.'QUTE')THEN
28707        RIGHT=STATVA
28708      ELSEIF(ICASPL.EQ.'QUCD')THEN
28709        RIGHT=STATCD
28710      ELSEIF(ICASPL.EQ.'QU2P')THEN
28711        RIGHT=PVAL2T
28712      ENDIF
28713      GOTO79000
28714C
2871534075 CONTINUE
28716      MAXOB2=MAXOBV/2
28717      IINDX=MAXOB2+1
28718      CALL DPPAG3(TEMP,TEMPZ,TEMPZ3,NS2,
28719     1            XTEMP1,XTEMP1(IINDX),XTEMP2,XTEMP3,XTEMP3(IINDX),
28720     1            DTEMP1,
28721     1            MAXOBV,MAXOB2,
28722     1            STATVA,STATV2,STATCD,PVAL,
28723     1            NBLOCK,NTREAT,
28724     1            IBUGG3,ISUBRO,IERROR)
28725      IF(ICASPL.EQ.'PATE')THEN
28726        RIGHT=STATVA
28727      ELSEIF(ICASPL.EQ.'PAT2')THEN
28728        RIGHT=STATV2
28729      ELSEIF(ICASPL.EQ.'PACD')THEN
28730        RIGHT=STATCD
28731      ELSEIF(ICASPL.EQ.'PAPV')THEN
28732        RIGHT=PVAL
28733      ENDIF
28734      GOTO79000
28735C
2873634080 CONTINUE
28737      CALL DPINDM(TEMP,NS2,TEMPZ,NSZ,ICASPL,
28738     1            RIGHT,
28739     1            IBUGG3,ISUBRO,IERROR)
28740      GOTO79000
28741C
2874234090 CONTINUE
28743      ICASE='SUMM'
28744      ICASE2='DIVE'
28745      IF(ICASPL.EQ.'SHEI')ICASE2='EQUI'
28746      CALL SHANDI(TEMP,NS2,IWRITE,RIGHT,XTEMP1,XTEMP2,ICASE,ICASE2,
28747     1            IBUGG3,ISUBRO,IERROR)
28748      GOTO79000
28749C
2875034095 CONTINUE
28751      ICASE='RAW'
28752      ICASE2='DIVE'
28753      IF(ICASPL.EQ.'SEII')ICASE2='EQUI'
28754      CALL SHANDI(TEMP,NS2,IWRITE,RIGHT,XTEMP1,XTEMP2,ICASE,ICASE2,
28755     1            IBUGG3,ISUBRO,IERROR)
28756      GOTO79000
28757C
2875834100 CONTINUE
28759      ICASE='SUMM'
28760      CALL SIMPDI(TEMP,NS2,IWRITE,RIGHT,XTEMP1,XTEMP2,ICASE,
28761     1            IBUGG3,ISUBRO,IERROR)
28762      GOTO79000
28763C
2876434105 CONTINUE
28765      ICASE='SUMM'
28766      CALL SIMPDI(TEMP,NS2,IWRITE,RIGHT,XTEMP1,XTEMP2,ICASE,
28767     1            IBUGG3,ISUBRO,IERROR)
28768      GOTO79000
28769C
2877034110 CONTINUE
28771      CALL DPJAB3(TEMP,NS2,ISEED,IRANAL,MAXNXT,
28772     1            XTEMP1,XTEMP2,
28773     1            XSKEW,XKURT,
28774     1            STATVA,PVAL,CDF,
28775     1            CUT25,CUT50,CUT75,CUT80,CUT90,
28776     1            CUT95,CUT975,CUT99,CUT999,
28777     1            ISUBRO,IBUGG3,IERROR)
28778      IF(ICASPL.EQ.'JABE')THEN
28779        RIGHT=STATVA
28780      ELSEIF(ICASPL.EQ.'JAPV')THEN
28781        RIGHT=PVAL
28782      ELSEIF(ICASPL.EQ.'JACD')THEN
28783        RIGHT=CDF
28784      ENDIF
28785      GOTO79000
28786C
2878734120 CONTINUE
28788      IHP='ALPH'
28789      IHP2='A   '
28790      IHWUSE='P'
28791      MESSAG='YES'
28792      CALL CHECKN(IHP,IHP2,IHWUSE,
28793     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28794     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28795      IF(IERROR.EQ.'YES')GOTO9000
28796      ALPHA=VALUE(ILOCP)
28797      IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
28798        ALPHA=ALPHA/100.0
28799        IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
28800      ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
28801        IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
28802      ELSE
28803        ALPHA=0.95
28804      ENDIF
28805C
28806      IF(ICASPL(1:1).EQ.'S')THEN
28807        YMEAN=TEMP(1)
28808        YSD=TEMPZ(1)
28809        NS2=INT(TEMPZ3(1)+0.5)
28810      ELSE
28811        CALL MEAN(TEMP,NS2,IWRITE,YMEAN,IBUGG3,IERROR)
28812        CALL SD(TEMP,NS2,IWRITE,YSD,IBUGG3,IERROR)
28813      ENDIF
28814      YSDMEA=YSD/SQRT(REAL(NS2))
28815C
28816      PCONF=ALPHA
28817      IF(ICASPL.EQ.'LCL ' .OR. ICASPL.EQ.'UCL ' .OR.
28818     1   ICASPL.EQ.'SLCL' .OR. ICASPL.EQ.'SUCL')THEN
28819        CDF=0.5+(PCONF/2.0)
28820      ELSEIF(ICASPL.EQ.'1LCL' .OR. ICASPL.EQ.'1UCL' .OR.
28821     1       ICASPL.EQ.'SLC1' .OR. ICASPL.EQ.'SUC1')THEN
28822        CDF=PCONF
28823      ENDIF
28824      NM1=NS2-1
28825      CALL TPPF(CDF,REAL(NM1),TVAL)
28826      TSDM=TVAL*YSDMEA
28827      ALOWER=YMEAN-TSDM
28828      AUPPER=YMEAN+TSDM
28829      IF(ICASPL.EQ.'LCL ' .OR. ICASPL.EQ.'SLCL')THEN
28830        RIGHT=ALOWER
28831      ELSEIF(ICASPL.EQ.'UCL ' .OR. ICASPL.EQ.'SUCL')THEN
28832        RIGHT=AUPPER
28833      ELSEIF(ICASPL.EQ.'1LCL' .OR. ICASPL.EQ.'SLC1')THEN
28834        RIGHT=ALOWER
28835      ELSEIF(ICASPL.EQ.'1UCL' .OR. ICASPL.EQ.'SUC1')THEN
28836        RIGHT=AUPPER
28837      ENDIF
28838      GOTO79000
28839C
2884034130 CONTINUE
28841      IHP='ALPH'
28842      IHP2='A   '
28843      IHWUSE='P'
28844      MESSAG='NO'
28845      CALL CHECKN(IHP,IHP2,IHWUSE,
28846     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28847     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28848      IF(IERROR.EQ.'NO')THEN
28849        ALPHA=VALUE(ILOCP)
28850        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
28851          ALPHA=ALPHA/100.0
28852          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
28853        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
28854          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
28855        ELSE
28856          ALPHA=0.95
28857        ENDIF
28858      ELSE
28859        ALPHA=0.95
28860      ENDIF
28861C
28862      IHP='NNEW'
28863      IHP2='    '
28864      IHWUSE='P'
28865      MESSAG='NO'
28866      CALL CHECKN(IHP,IHP2,IHWUSE,
28867     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
28868     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
28869      IF(IERROR.EQ.'NO')THEN
28870        NNEW=INT(VALUE(ILOCP)+0.5)
28871      ELSE
28872        NNEW=1
28873      ENDIF
28874      IF(NNEW.LT.1)NNEW=1
28875C
28876      IF(ICASPL(1:1).EQ.'S')THEN
28877        IF(ICASPL.EQ.'SLS2' .OR. ICASPL.EQ.'SUS2' .OR.
28878     1     ICASPL.EQ.'SLS1' .OR. ICASPL.EQ.'SUS1')THEN
28879          YSD=TEMP(1)
28880          NS2=INT(TEMPZ(1)+0.5)
28881        ELSE
28882          YMEAN=TEMP(1)
28883          YSD=TEMPZ(1)
28884          NS2=INT(TEMPZ3(1)+0.5)
28885        ENDIF
28886      ENDIF
28887C
28888      ICASA2='LIMI'
28889      ICASA3='UPPE'
28890      ICASA4='RAW'
28891      ICASA5='TWOS'
28892C
28893      IF(ICASPL(1:1).EQ.'S')ICASA4='SUMM'
28894C
28895      IF(ICASPL.EQ.'LPB ')THEN
28896        ICASA2='BOUN'
28897        ICASA3='LOWE'
28898      ENDIF
28899      IF(ICASPL.EQ.'UPB ')ICASA2='BOUN'
28900      IF(ICASPL.EQ.'UPB1')ICASA2='BOUN'
28901C
28902      IF(ICASPL.EQ.'LPL1')THEN
28903        ICASA3='LOWE'
28904        ICASA5='ONES'
28905      ENDIF
28906      IF(ICASPL.EQ.'LPB1')THEN
28907        ICASA2='BOUN'
28908        ICASA3='LOWE'
28909        ICASA5='ONES'
28910      ENDIF
28911      IF(ICASPL.EQ.'UPL1')ICASA5='ONES'
28912      IF(ICASPL.EQ.'UPB1')ICASA5='ONES'
28913C
28914      IF(ICASPL.EQ.'SLPB')THEN
28915        ICASA2='BOUN'
28916        ICASA3='LOWE'
28917      ENDIF
28918      IF(ICASPL.EQ.'SUPB')ICASA2='BOUN'
28919      IF(ICASPL.EQ.'SUB1')ICASA2='BOUN'
28920C
28921      IF(ICASPL.EQ.'SLP1')THEN
28922        ICASA3='LOWE'
28923        ICASA5='ONES'
28924      ENDIF
28925      IF(ICASPL.EQ.'SLB1')THEN
28926        ICASA2='BOUN'
28927        ICASA3='LOWE'
28928        ICASA5='ONES'
28929      ENDIF
28930      IF(ICASPL.EQ.'SUB1')ICASA5='ONES'
28931      IF(ICASPL.EQ.'SUP1')ICASA5='ONES'
28932C
28933      IF(ICASPL.EQ.'UPS1')THEN
28934        ICASA2='SDLI'
28935        ICASA5='ONES'
28936      ELSEIF(ICASPL.EQ.'LPS1')THEN
28937        ICASA2='SDLI'
28938        ICASA3='LOWE'
28939        ICASA5='ONES'
28940      ELSEIF(ICASPL.EQ.'UPS2')THEN
28941        ICASA2='SDLI'
28942      ELSEIF(ICASPL.EQ.'LPS2')THEN
28943        ICASA2='SDLI'
28944        ICASA3='LOWE'
28945      ELSEIF(ICASPL.EQ.'SUS1')THEN
28946        ICASA2='SDLI'
28947        ICASA5='ONES'
28948      ELSEIF(ICASPL.EQ.'SLS1')THEN
28949        ICASA2='SDLI'
28950        ICASA3='LOWE'
28951        ICASA5='ONES'
28952      ELSEIF(ICASPL.EQ.'SUS2')THEN
28953        ICASA2='SDLI'
28954      ELSEIF(ICASPL.EQ.'SLS2')THEN
28955        ICASA2='SDLI'
28956        ICASA3='LOWE'
28957      ENDIF
28958C
28959      ALPHAT(1)=ALPHA
28960      NALPHA=1
28961      CALL DPPRL3(TEMP,NS2,NNEW,ICASA2,ICASA3,ICASA4,ICASA5,
28962     1            YMEAN,YSD,
28963     1            ALPHAT,NALPHA,ALOWLV,AUPPLV,
28964     1            ISUBRO,IBUGG3,IERROR)
28965C
28966      IF(ICASPL.EQ.'LPL ')RIGHT=ALOWLV(1)
28967      IF(ICASPL.EQ.'LPB ')RIGHT=ALOWLV(1)
28968      IF(ICASPL.EQ.'LPL1')RIGHT=ALOWLV(1)
28969      IF(ICASPL.EQ.'LPB1')RIGHT=ALOWLV(1)
28970      IF(ICASPL.EQ.'UPL ')RIGHT=AUPPLV(1)
28971      IF(ICASPL.EQ.'UPB ')RIGHT=AUPPLV(1)
28972      IF(ICASPL.EQ.'UPL1')RIGHT=AUPPLV(1)
28973      IF(ICASPL.EQ.'UPB1')RIGHT=AUPPLV(1)
28974      IF(ICASPL.EQ.'SLPL')RIGHT=ALOWLV(1)
28975      IF(ICASPL.EQ.'SLPB')RIGHT=ALOWLV(1)
28976      IF(ICASPL.EQ.'SLP1')RIGHT=ALOWLV(1)
28977      IF(ICASPL.EQ.'SLB1')RIGHT=ALOWLV(1)
28978      IF(ICASPL.EQ.'SUPL')RIGHT=AUPPLV(1)
28979      IF(ICASPL.EQ.'SUPB')RIGHT=AUPPLV(1)
28980      IF(ICASPL.EQ.'SUP1')RIGHT=AUPPLV(1)
28981      IF(ICASPL.EQ.'SUB1')RIGHT=AUPPLV(1)
28982C
28983      IF(ICASPL.EQ.'SUS1')RIGHT=AUPPLV(1)
28984      IF(ICASPL.EQ.'SUS2')RIGHT=AUPPLV(1)
28985      IF(ICASPL.EQ.'UPS1')RIGHT=AUPPLV(1)
28986      IF(ICASPL.EQ.'UPS2')RIGHT=AUPPLV(1)
28987      IF(ICASPL.EQ.'SLS1')RIGHT=ALOWLV(1)
28988      IF(ICASPL.EQ.'SLS2')RIGHT=ALOWLV(1)
28989      IF(ICASPL.EQ.'LPS1')RIGHT=ALOWLV(1)
28990      IF(ICASPL.EQ.'LPS2')RIGHT=ALOWLV(1)
28991C
28992      GOTO79000
28993C
2899434140 CONTINUE
28995      IHP='ALPH'
28996      IHP2='A   '
28997      IHWUSE='P'
28998      MESSAG='NO'
28999      CALL CHECKN(IHP,IHP2,IHWUSE,
29000     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29001     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29002      IF(IERROR.EQ.'NO')THEN
29003        ALPHA=VALUE(ILOCP)
29004        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
29005          ALPHA=ALPHA/100.0
29006          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
29007        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
29008          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
29009        ELSE
29010          ALPHA=0.95
29011        ENDIF
29012      ELSE
29013        ALPHA=0.95
29014      ENDIF
29015C
29016      IF(ICASPL(1:1).EQ.'S')THEN
29017        YSD=TEMP(1)
29018        NS2=INT(TEMPZ(1)+0.1)
29019      ENDIF
29020C
29021      ICASA2='LIMI'
29022      ICASA3='UPPE'
29023      ICASA4='RAW'
29024      ICASA5='TWOS'
29025C
29026      IF(ICASPL(1:1).EQ.'S')ICASA4='SUMM'
29027C
29028      IF(ICASPL.EQ.'LCS1')ICASA3='LOWE'
29029      IF(ICASPL.EQ.'LCS2')ICASA3='LOWE'
29030      IF(ICASPL.EQ.'SLZ1')ICASA3='LOWE'
29031      IF(ICASPL.EQ.'SLZ2')ICASA3='LOWE'
29032C
29033      IF(ICASPL.EQ.'LCS1')ICASA5='ONES'
29034      IF(ICASPL.EQ.'UCS1')ICASA5='ONES'
29035      IF(ICASPL.EQ.'SLZ1')ICASA5='ONES'
29036      IF(ICASPL.EQ.'SUZ1')ICASA5='ONES'
29037C
29038      ALPHAT(1)=ALPHA
29039      NALPHA=1
29040      CALL DPSDC3(TEMP,NS2,ICASA2,ICASA3,ICASA4,ICASA5,
29041     1            YSD,
29042     1            ALPHAT,NALPHA,ALOWLV,AUPPLV,
29043     1            ISUBRO,IBUGG3,IERROR)
29044C
29045      IF(ICASPL.EQ.'LCS1')RIGHT=ALOWLV(1)
29046      IF(ICASPL.EQ.'LCS2')RIGHT=ALOWLV(1)
29047      IF(ICASPL.EQ.'SLZ1')RIGHT=ALOWLV(1)
29048      IF(ICASPL.EQ.'SLZ2')RIGHT=ALOWLV(1)
29049      IF(ICASPL.EQ.'UCS1')RIGHT=AUPPLV(1)
29050      IF(ICASPL.EQ.'UCS2')RIGHT=AUPPLV(1)
29051      IF(ICASPL.EQ.'SUZ1')RIGHT=AUPPLV(1)
29052      IF(ICASPL.EQ.'SUZ2')RIGHT=AUPPLV(1)
29053C
29054      GOTO79000
29055C
2905634145 CONTINUE
29057      IHP='ALPH'
29058      IHP2='A   '
29059      IHWUSE='P'
29060      MESSAG='NO'
29061      CALL CHECKN(IHP,IHP2,IHWUSE,
29062     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29063     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29064      IF(IERROR.EQ.'NO')THEN
29065        ALPHA=VALUE(ILOCP)
29066        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
29067          ALPHA=ALPHA/100.0
29068          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
29069        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
29070          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
29071        ELSE
29072          ALPHA=0.95
29073        ENDIF
29074      ELSE
29075        ALPHA=0.95
29076      ENDIF
29077C
29078      IHP='N0  '
29079      IHP2='    '
29080      IHWUSE='P'
29081      MESSAG='NO'
29082      CALL CHECKN(IHP,IHP2,IHWUSE,
29083     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29084     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29085      IF(IERROR.EQ.'NO')THEN
29086        N0=INT(VALUE(ILOCP)+0.5)
29087      ELSE
29088        N0=0
29089      ENDIF
29090C
29091      IHP='KURT'
29092      IHP2='OSIS'
29093      IHWUSE='P'
29094      MESSAG='NO'
29095      CALL CHECKN(IHP,IHP2,IHWUSE,
29096     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29097     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29098      IF(IERROR.EQ.'NO')THEN
29099        AKURT=VALUE(ILOCP)
29100      ELSE
29101        AKURT=CPUMIN
29102      ENDIF
29103C
29104      ICASA3='UPPE'
29105      ICASA5='TWOS'
29106      IF(ICASPL.EQ.'BLSD')ICASA3='LOWE'
29107      ALPHAT(1)=ALPHA
29108      NALPHA=1
29109      CALL DPSDR3(TEMP,NS2,ICASA3,ICASA5,MAXNXT,
29110     1            XTEMP1,AKURT,N0,IBONAD,
29111     1            YSD,
29112     1            ALPHAT,NALPHA,ALOWLV,AUPPLV,
29113     1            ISUBRO,IBUGG3,IERROR)
29114C
29115      IF(ICASPL.EQ.'BLSD')RIGHT=ALOWLV(1)
29116      IF(ICASPL.EQ.'BUSD')RIGHT=AUPPLV(1)
29117      GOTO79000
29118C
2911934150 CONTINUE
29120      ICASE='STAT'
29121      IF(ICASPL.EQ.'MWLC')ICASE='CV'
29122      IF(ICASPL.EQ.'MWPV')ICASE='CV'
29123      CALL DPMCW3(TEMP,TEMPZ,NS2,
29124     1            TEMPZ3,XTEMP1,XTEMP2,XTEMP3,DTEMP1,ITEMP1,
29125     1            ICASE,ISEED,MAXNXT,
29126     1            STATVA,STATCD,PVAL,CV50,CV90,CV95,
29127     1            CA,CL,IR,IR1,IMCCR1,IRANAL,
29128     1            ISUBRO,IBUGG3,IERROR)
29129      IF(ICASPL.EQ.'MWLT')RIGHT=STATVA
29130      IF(ICASPL.EQ.'MWLC')RIGHT=STATCD
29131      IF(ICASPL.EQ.'MWPV')RIGHT=PVAL
29132      IF(ICASPL.EQ.'MW50')RIGHT=CV50
29133      IF(ICASPL.EQ.'MW90')RIGHT=CV90
29134      IF(ICASPL.EQ.'MW95')RIGHT=CV95
29135      GOTO79000
29136C
2913734160 CONTINUE
29138      ICASE='RAW'
29139      CALL DPPDT3(TEMP,TEMPZ,NS2,ICASE,
29140     1            STATVA,STATCD,STATNU,PVALUE,
29141     1            YMEAN,YSD,
29142     1            ISUBRO,IBUGG3,IERROR)
29143      IF(ICASPL.EQ.'PDTE')RIGHT=STATVA
29144      IF(ICASPL.EQ.'PDCD')RIGHT=STATCD
29145      IF(ICASPL.EQ.'PDPV')RIGHT=PVALUE
29146      GOTO79000
29147C
2914834170 CONTINUE
29149      ICASE='GROU'
29150      CALL DPPDT3(TEMP,TEMPZ,NS2,ICASE,
29151     1            STATVA,STATCD,STATNU,PVALUE,
29152     1            YMEAN,YSD,
29153     1            ISUBRO,IBUGG3,IERROR)
29154      IF(ICASPL.EQ.'GPDT')RIGHT=STATVA
29155      IF(ICASPL.EQ.'GPDC')RIGHT=STATCD
29156      IF(ICASPL.EQ.'GPDP')RIGHT=PVALUE
29157      GOTO79000
29158C
2915934180 CONTINUE
29160C
29161      IHP='XMIN'
29162      IHP2='    '
29163      IHWUSE='P'
29164      MESSAG='NO'
29165      CALL CHECKN(IHP,IHP2,IHWUSE,
29166     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29167     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29168      IF(IERROR.EQ.'NO')THEN
29169        XMIN=VALUE(ILOCP)
29170      ELSE
29171        XMIN=CPUMIN
29172      ENDIF
29173C
29174      IHP='XMAX'
29175      IHP2='    '
29176      IHWUSE='P'
29177      MESSAG='NO'
29178      CALL CHECKN(IHP,IHP2,IHWUSE,
29179     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29180     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29181      IF(IERROR.EQ.'NO')THEN
29182        XMAX=VALUE(ILOCP)
29183      ELSE
29184        XMAX=CPUMIN
29185      ENDIF
29186C
29187      IHP='YMIN'
29188      IHP2='    '
29189      IHWUSE='P'
29190      MESSAG='NO'
29191      CALL CHECKN(IHP,IHP2,IHWUSE,
29192     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29193     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29194      IF(IERROR.EQ.'NO')THEN
29195        YMIN=VALUE(ILOCP)
29196      ELSE
29197        YMIN=CPUMIN
29198      ENDIF
29199C
29200      IHP='YMAX'
29201      IHP2='    '
29202      IHWUSE='P'
29203      MESSAG='NO'
29204      CALL CHECKN(IHP,IHP2,IHWUSE,
29205     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29206     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29207      IF(IERROR.EQ.'NO')THEN
29208        YMAX=VALUE(ILOCP)
29209      ELSE
29210        YMAX=CPUMIN
29211      ENDIF
29212C
29213      CALL DPCSR3(TEMP,TEMPZ,NS2,XTEMP1,XTEMP2,
29214     1            XMIN,XMAX,YMIN,YMAX,
29215     1            STATVA,
29216     1            CV01,CV02,CV05,CV10,CV15,CV25,CV50,
29217     1            CV75,CV85,CV090,CV95,CV98,CV99,
29218     1            ISUBRO,IBUGG3,IERROR)
29219      IF(ICASPL.EQ.'BCVM')RIGHT=STATVA
29220      IF(ICASPL.EQ.'BC95')RIGHT=CV95
29221      IF(ICASPL.EQ.'BC05')RIGHT=CV05
29222      GOTO79000
29223C
29224C     ---------------------------
29225C
2922634190 CONTINUE
29227      CALL DPCSR4(TEMP,TEMPZ,NS2,XTEMP1,XTEMP2,
29228     1            STATVA,STATCD,PVALUE,
29229     1            ISUBRO,IBUGG3,IERROR)
29230      IF(ICASPL.EQ.'MNNC')RIGHT=STATVA
29231      IF(ICASPL.EQ.'MNND')RIGHT=STATCD
29232      IF(ICASPL.EQ.'MNNP')RIGHT=PVALUE
29233      GOTO79000
29234C
2923534200 CONTINUE
29236      IF(ICASPL.EQ.'POL1')JINDX=1
29237      IF(ICASPL.EQ.'POL2')JINDX=2
29238      IF(ICASPL.EQ.'POL3')JINDX=3
29239      IF(ICASPL.EQ.'POL4')JINDX=4
29240      IF(ICASPL.EQ.'POL5')JINDX=5
29241      IF(ICASPL.EQ.'POC1')JINDX=1
29242      IF(ICASPL.EQ.'POC2')JINDX=2
29243      IF(ICASPL.EQ.'POC3')JINDX=3
29244      IF(ICASPL.EQ.'POC4')JINDX=4
29245      IF(ICASPL.EQ.'POC5')JINDX=5
29246      IF(ICASPL.EQ.'POP1')JINDX=1
29247      IF(ICASPL.EQ.'POP2')JINDX=2
29248      IF(ICASPL.EQ.'POP3')JINDX=3
29249      IF(ICASPL.EQ.'POP4')JINDX=4
29250      IF(ICASPL.EQ.'POP5')JINDX=5
29251C
29252      CALL DPCSR5(TEMP,TEMPZ,NS2,JINDX,XTEMP1,
29253     1            STATVA,STATV2,STATCD,PVALUE,STATNU,
29254     1            ISUBRO,IBUGG3,IERROR)
29255C
29256      IF(ICASPL.EQ.'POL1')RIGHT=STATVA
29257      IF(ICASPL.EQ.'POL2')RIGHT=STATVA
29258      IF(ICASPL.EQ.'POL3')RIGHT=STATVA
29259      IF(ICASPL.EQ.'POL4')RIGHT=STATVA
29260      IF(ICASPL.EQ.'POL5')RIGHT=STATVA
29261      IF(ICASPL.EQ.'PO1C')RIGHT=STATCD
29262      IF(ICASPL.EQ.'PO2C')RIGHT=STATCD
29263      IF(ICASPL.EQ.'PO3C')RIGHT=STATCD
29264      IF(ICASPL.EQ.'PO4C')RIGHT=STATCD
29265      IF(ICASPL.EQ.'PO5C')RIGHT=STATCD
29266      IF(ICASPL.EQ.'PO1P')RIGHT=PVALUE
29267      IF(ICASPL.EQ.'PO2P')RIGHT=PVALUE
29268      IF(ICASPL.EQ.'PO3P')RIGHT=PVALUE
29269      IF(ICASPL.EQ.'PO4P')RIGHT=PVALUE
29270      IF(ICASPL.EQ.'PO5P')RIGHT=PVALUE
29271      GOTO79000
29272C
2927334210 CONTINUE
29274      IHP='XVAL'
29275      IHP2='UE  '
29276      IHWUSE='P'
29277      MESSAG='YES'
29278      CALL CHECKN(IHP,IHP2,IHWUSE,
29279     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29280     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29281      IF(IERROR.EQ.'NO')THEN
29282        XVAL=VALUE(ILOCP)
29283        CALL VALCNT(TEMP,NS2,XVAL,IWRITE,RIGHT,ISUBRO,IBUGG3,IERROR)
29284      ELSE
29285        RIGHT=0.0
29286      ENDIF
29287C
29288      GOTO79000
29289C
2929034220 CONTINUE
29291      CALL VARDIS(TEMP,NS2,IWRITE,VDIST,RDI,CHISQ,
29292     1            ICASPL,ISUBRO,IBUGG3,IERROR)
29293      IF(ICASPL.EQ.'VDIS')RIGHT=VDIST
29294      IF(ICASPL.EQ.'RDI ')RIGHT=RDI
29295      IF(ICASPL.EQ.'UCHS')RIGHT=CHISQ
29296      GOTO79000
29297C
2929834230 CONTINUE
29299      CALL DPCWS3(TEMP,TEMPZ,NS2,IWRITE,ISEED,MINMAX,MAXNXT,
29300     1            XTEMP1,DTEMP2,XTEMP2,XTEMP3,TEMPZ3,DTEMP1,
29301     1            STATVA,STATCD,PVALUE,NDIST,NGROUP,
29302     1            CV90,CV95,CV99,BETACM,
29303     1            IBUGG3,ISUBRO,IERROR)
29304      IF(ICASPL.EQ.'WSHT')RIGHT=STATVA
29305      IF(ICASPL.EQ.'WSCD')RIGHT=STATCD
29306      IF(ICASPL.EQ.'WSHP')RIGHT=PVALUE
29307      IF(ICASPL.EQ.'WS90')RIGHT=CV90
29308      IF(ICASPL.EQ.'WS95')RIGHT=CV95
29309      IF(ICASPL.EQ.'WS99')RIGHT=CV99
29310      GOTO79000
29311C
2931234240 CONTINUE
29313      CALL DPKAR3(TEMP,NS2,XTEMP1,MAXNXT,
29314     1            STATVA,CUTOFF,
29315     1            ISUBRO,IBUGG3,IERROR)
29316      RIGHT=STATVA
29317      IF(ICASPL.EQ.'KARC')RIGHT=CUTOFF
29318      GOTO79000
29319C
2932034260 CONTINUE
29321      ICASAN='UPPE'
29322      IF(ICASPL.EQ.'CV05')ICASAN='LOWE'
29323      IF(ICASPL.EQ.'CV01')ICASAN='LOWE'
29324      IF(ICASPL.EQ.'CMVC')ICASAN='LOWE'
29325      IF(ICASPL.EQ.'CMVP')ICASAN='LOWE'
29326      IF(ICASPL.EQ.'CVMO')ICASAN='LOWE'
29327      CALL DPCVO3(TEMP,TEMPZ,NS2,ICASAN,
29328     1            XTEMP1,XTEMP2,XTEMP3,TEMPZ3,ITEMP1,
29329     1            STATVA,STATV2,STATCU,STATCL,PVALU,PVALL,
29330     1            ALPHAV,CV,NUMALZ,
29331     1            IDF1,IDF2,ILABMX,ILABMN,NUMDIS,NGROUP,
29332     1            DVARTO,VARMAX,VARMIN,
29333     1            IBUGG3,ISUBRO,IERROR)
29334      RIGHT=STATVA
29335      IF(ICASPL.EQ.'CV95')RIGHT=CV(11)
29336      IF(ICASPL.EQ.'CV99')RIGHT=CV(13)
29337      IF(ICASPL.EQ.'CVCD')RIGHT=STATCU
29338      IF(ICASPL.EQ.'CVPV')RIGHT=PVALU
29339      IF(ICASPL.EQ.'CV01')RIGHT=CV(3)
29340      IF(ICASPL.EQ.'CV05')RIGHT=CV(5)
29341      IF(ICASPL.EQ.'CVMO')RIGHT=STATV2
29342      IF(ICASPL.EQ.'CMVC')RIGHT=STATCL
29343      IF(ICASPL.EQ.'CMVP')RIGHT=PVALL
29344      GOTO79000
29345C
2934634270 CONTINUE
29347      CALL DPEQS3(TEMP,TEMPZ,TEMPZ3,NS2,MAXNXT,
29348     1            XTEMP1,XTEMP2,XTEMP3,
29349     1            DTEMP1(1),DTEMP1(10000),DTEMP1(20000),
29350     1            DTEMP1(30000),DTEMP1(40000),
29351     1            DTEMP1(50000),DTEMP1(60000),ITEMP1,
29352     1            NUMSLO,ICASEE,
29353     1            STATVA,STATCD,PVAL2T,
29354     1            STATV1,STATC1,PVAL1,
29355     1            STATV2,STATC2,PVAL2,
29356     1            STATV3,STATC2,PVAL3,
29357     1            CV80,CV90,CV95,CV99,
29358     1            CV180,CV190,CV195,CV199,
29359     1            CV280,CV290,CV295,CV299,
29360     1            CV380,CV390,CV395,CV399,
29361     1            IBUGG3,ISUBRO,IERROR)
29362      IF(ICASEE.EQ.'3ORMORE')THEN
29363        RIGHT=STATV2
29364        IF(ICASPL.EQ.'ESCD')RIGHT=STATC2
29365        IF(ICASPL.EQ.'ESCV')RIGHT=CV295
29366        IF(ICASPL.EQ.'ESPV')RIGHT=PVAL2
29367      ELSE
29368        RIGHT=STATVA
29369        IF(ICASPL.EQ.'ESCD')RIGHT=STATCD
29370        IF(ICASPL.EQ.'ESCV')RIGHT=CV95
29371        IF(ICASPL.EQ.'ESPV')RIGHT=PVAL2T
29372      ENDIF
29373      GOTO79000
29374C
2937534280 CONTINUE
29376C
29377      IHP='GAMM'
29378      IHP2='A0  '
29379      IHWUSE='P'
29380      MESSAG='YES'
29381      CALL CHECKN(IHP,IHP2,IHWUSE,
29382     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29383     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29384      IF(IERROR.EQ.'YES')THEN
29385          RIGHT=0.0
29386          GOTO9000
29387      ELSE
29388        GAMMA0=VALUE(ILOCP)
29389      ENDIF
29390C
29391      ICASA3='RAW'
29392      CALL DPCVT3(TEMP,TEMPZ,ITEMP1,NS2,GAMMA0,IWRITE,ICASA3,
29393     1            XTEMP1,XTEMP2,
29394     1            NDIST,NGROUP,YMEAN,YSD,YCV,
29395     1            STATVA,STATCD,STATNU,
29396     1            PVAL2T,PVALLT,PVALUT,
29397     1            ISUBRO,IBUGG3,IERROR)
29398      IF(ICASPL.EQ.'1CTE')RIGHT=STATVA
29399      IF(ICASPL.EQ.'1CCD')RIGHT=STATCD
29400      IF(ICASPL.EQ.'1C2P')RIGHT=PVAL2T
29401      IF(ICASPL.EQ.'1CLP')RIGHT=PVALLT
29402      IF(ICASPL.EQ.'1CUP')RIGHT=PVALUT
29403C
29404      GOTO79000
29405C
2940634290 CONTINUE
29407C
29408      IHP='GAMM'
29409      IHP2='A0  '
29410      IHWUSE='P'
29411      MESSAG='YES'
29412      CALL CHECKN(IHP,IHP2,IHWUSE,
29413     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29414     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29415      IF(IERROR.EQ.'YES')THEN
29416          RIGHT=0.0
29417          GOTO9000
29418      ELSE
29419        GAMMA0=VALUE(ILOCP)
29420      ENDIF
29421C
29422      ICASA3='SUMM'
29423      DO34291II=1,NS2
29424        ITEMP1(II)=INT(TEMPZ3(II)+0.5)
2942534291 CONTINUE
29426      CALL DPCVT3(TEMP,TEMPZ,ITEMP1,NS2,GAMMA0,IWRITE,ICASA3,
29427     1            XTEMP1,XTEMP2,
29428     1            NDIST,NGROUP,YMEAN,YSD,YCV,
29429     1            STATVA,STATCD,STATNU,
29430     1            PVAL2T,PVALLT,PVALUT,
29431     1            ISUBRO,IBUGG3,IERROR)
29432      IF(ICASPL.EQ.'S1CT')RIGHT=STATVA
29433      IF(ICASPL.EQ.'S1CC')RIGHT=STATCD
29434      IF(ICASPL.EQ.'S1CP')RIGHT=PVAL2T
29435C
29436      GOTO79000
29437C
2943834300 CONTINUE
29439      DO34301II=1,NS2
29440        TEMPZ3(II)=1.0
2944134301 CONTINUE
29442      DO34303II=1,NSZ
29443        XTEMP3(II)=1.0
2944434303 CONTINUE
29445      IF(ICVTTE.EQ.'MILL')THEN
29446        CALL DPCVT6(TEMP,NS2,TEMPZ,NSZ,IWRITE,
29447     1              YMEAN1,YSD1,CV1,YMEAN2,YSD2,CV2,
29448     1              STATVA,STATCD,PVAL2T,PVALLT,PVALUT,
29449     1              ISUBRO,IBUGG3,IERROR)
29450      ELSE
29451        CALL DPCVT4(TEMP,TEMPZ3,NS2,TEMPZ,XTEMP3,NSZ,IWRITE,
29452     1              XTEMP1,XTEMP2,NGROU1,NGROU2,
29453     1              YMEAN1,YSD1,CV1,YMEAN2,YSD2,CV2,
29454     1              STATVA,STATCD,STATN1,STATN2,
29455     1              PVAL2T,PVALLT,PVALUT,
29456     1              ISUBRO,IBUGG3,IERROR)
29457      ENDIF
29458      IF(ICASPL.EQ.'2CTE')RIGHT=STATVA
29459      IF(ICASPL.EQ.'2CCD')RIGHT=STATCD
29460      IF(ICASPL.EQ.'2C2P')RIGHT=PVAL2T
29461      IF(ICASPL.EQ.'2CLP')RIGHT=PVALLT
29462      IF(ICASPL.EQ.'2CUP')RIGHT=PVALUT
29463      GOTO79000
29464C
29465C     ---------------------------
29466C
2946779000 CONTINUE
29468      NS2=NS2SAV
29469      NSZ=NSZSAV
29470      GOTO9000
29471C
29472C               ******************
29473C               **   STEP 90--  **
29474C               **   EXIT       **
29475C               ******************
29476C
29477 9000 CONTINUE
29478      IPRINT=IPRSAV
29479      IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PSTA')THEN
29480        WRITE(ICOUT,999)
29481        CALL DPWRST('XXX','BUG ')
29482        WRITE(ICOUT,9011)
29483 9011   FORMAT('***** AT THE END       OF CMPSTA--')
29484        CALL DPWRST('XXX','BUG ')
29485        WRITE(ICOUT,9013)ICASPL,IERROR,NS2,NUMV2,RIGHT
29486 9013   FORMAT('ICASPL,IERROR,NS2,NUMV2,RIGHT = ',2(A4,2X),2I8,G15.7)
29487        CALL DPWRST('XXX','BUG ')
29488      ENDIF
29489C
29490      RETURN
29491      END
29492      SUBROUTINE CMPST2(TEMP,TEMPZ,TEMPZ3,XTEMP1,XTEMP2,XTEMP3,
29493     1                  MAXNXT,NS2,NSZ,NSZ3,NUMV2,ICASPL,
29494     1                  ISEED,ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6,
29495     1                  DTEMP1,DTEMP2,DTEMP3,
29496     1                  RIGHT,
29497     1                  ISUBRO,IBUGG3,IERROR)
29498C
29499C     PURPOSE--THIS IS A COPY OF CMPSTA.  IT IS USED BY DPSBEX (USED
29500C              TO IMPLEMENT STATISTIC BLOCKS) TO AVOID CIRCULAR CALLS.
29501C              THE ONE DISTINCTION IS THAT CMPST2 DOES NOT CALL OTHER
29502C              STATISTIC BLOCKS.
29503C     WRITTEN BY--ALAN HECKERT
29504C                 STATISTICAL ENGINEERING DIVISION
29505C                 INFORMATION TECHNOLOGY LABORATORY
29506C                 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
29507C                 GAITHERSBURG, MD 20899-8980
29508C                 PHONE--301-975-2899
29509C     NOTE--DATAPLOT IS A REGISTERED TRADEMARK
29510C           OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
29511C     LANGUAGE--ANSI FORTRAN (1977)
29512C     VERSION NUMBER--2016/08
29513C     ORIGINAL VERSION--AUGUST    2016.
29514C     UPDATED         --DECEMBER  2016. COEFFICIENT OF VARIATION
29515C                                       CONFIDENCE LIMITS
29516C     UPDATED         --JANUARY   2017. UNBIASED COEFFICIENT OF VARIATION
29517C     UPDATED         --JANUARY   2017. SIGNAL TO NOISE RATIO
29518C     UPDATED         --JANUARY   2017. QUARTILE COEFFICIENT OF
29519C                                       DISPERSION
29520C     UPDATED         --JANUARY   2017. LOGNORMAL COEFFICIENT OF VARIATION
29521C     UPDATED         --JANUARY   2017. LOGNORMAL COEFFICIENT OF VARIATION
29522C                                       CONFIDENCE LIMITS
29523C     UPDATED         --JANUARY   2017. PRECISION
29524C     UPDATED         --JANUARY   2017. COMMON COEFFICIENT OF VARIATION
29525C     UPDATED         --JANUARY   2017. COMMON BIAS CORRECTED COEFFICIENT
29526C                                       OF VARIATION
29527C     UPDATED         --JANUARY   2017. LOWER COMMON COEFFICIENT OF
29528C                                       VARIATION CONFIDENCE LIMIT
29529C     UPDATED         --JANUARY   2017. UPPER COMMON COEFFICIENT OF
29530C                                       VARIATION CONFIDENCE LIMIT
29531C     UPDATED         --JANUARY   2017. COEFFICIENT OF DISPERSION
29532C     UPDATED         --JANUARY   2017. INDEX OF DISPERSION
29533C     UPDATED         --JANUARY   2017. AAD TO MEDIAN
29534C     UPDATED         --FEBRUARY  2017. SHORTEST HALF MIDMEAN
29535C     UPDATED         --FEBRUARY  2017. SHORTEST HALF MIDRANGE
29536C     UPDATED         --MARCH     2017. COSINE DISTANCE
29537C     UPDATED         --MARCH     2017. COSINE SIMILARITY
29538C     UPDATED         --MARCH     2017. ANGULAR COSINE DISTANCE
29539C     UPDATED         --MARCH     2017. ANGULAR COSINE SIMILARITY
29540C     UPDATED         --MARCH     2017. MANHATTAN DISTANCE
29541C     UPDATED         --MARCH     2017. EUCLIDEAN DISTANCE
29542C     UPDATED         --MARCH     2017. EUCLIDEAN LENGTH (SYNONYM FOR
29543C                                       SUM OF SQuARES)
29544C     UPDATED         --MARCH     2017. DOT PRODUCT
29545C     UPDATED         --MARCH     2017. DIFFERENCE OF PRECISION
29546C     UPDATED         --MARCH     2017. DIFFERENCE OF SNR
29547C     UPDATED         --APRIL     2017. ONE SAMPLE COEF OF VARI CDF
29548C     UPDATED         --APRIL     2017. ONE SAMPLE COEF OF VARI PVALUE
29549C     UPDATED         --JUNE      2017. PERCENTAGE DIFFERENCE OF MEAN
29550C     UPDATED         --JUNE      2017. ONE SAMPLE COEF OF VARI TEST
29551C     UPDATED         --JUNE      2017. ONE SAMPLE COEF OF VARI TEST CDF
29552C     UPDATED         --JUNE      2017. ONE SAMPLE COEF OF VARI TEST PVALUE
29553C     UPDATED         --JUNE      2017. ONE SAMPLE COEF OF VARI LOWER PVALUE
29554C     UPDATED         --JUNE      2017. ONE SAMPLE COEF OF VARI UPPER PVALUE
29555C     UPDATED         --JUNE      2017. SUMMARY ONE SAMPLE COEF OF VARI TEST
29556C     UPDATED         --JUNE      2017. SUMMARY ONE SAMPLE COEF OF VARI CDF
29557C     UPDATED         --JUNE      2017. SUMMARY ONE SAMPLE COEF OF VARI PVALUE
29558C     UPDATED         --JUNE      2017. TWO SAMPLE COEF OF VARI TEST
29559C     UPDATED         --JUNE      2017. TWO SAMPLE COEF OF VARI TEST CDF
29560C     UPDATED         --JUNE      2017. TWO SAMPLE COEF OF VARI TEST PVALUE
29561C     UPDATED         --JUNE      2017. TWO SAMPLE COEF OF VARI LOWER PVALUE
29562C     UPDATED         --JUNE      2017. TWO SAMPLE COEF OF VARI UPPER PVALUE
29563C     UPDATED         --JUNE      2017. DIFFERENCE OF AAD TO MEDIAN
29564C     UPDATED         --JUNE      2017. DIFFERENCE OF COEFFICIENT OF
29565C                                                  DISPERSION
29566C     UPDATED         --JUNE      2017. DIFFERENCE OF INDEX OF DISPERSION
29567C     UPDATED         --JUNE      2017. DIFFERENCE OF QUARTILE COEFFICIENT
29568C                                                  OF DISPERSION
29569C     UPDATED         --JUNE      2017. DIFFERENCE OF SHORTEST HALF
29570C                                                  MIDMEAN
29571C     UPDATED         --JUNE      2017. DIFFERENCE OF SHORTEST HALF
29572C                                                  MIDRANGE
29573C     UPDATED         --JULY      2017. HEDGES G
29574C     UPDATED         --JULY      2017. BIAS CORRECTED HEDGES G
29575C     UPDATED         --JULY      2017. GLASS G
29576C     UPDATED         --JULY      2017. COHENS D
29577C     UPDATED         --JULY      2017. MIDHINGE, TRIMEAN
29578C     UPDATED         --JULY      2017. DIFFERENCE OF MIDHINGE
29579C     UPDATED         --JULY      2017. DIFFERENCE OF TRIMEAN
29580C     UPDATED         --AUGUST    2017. PEARSON DISSIMILARITY
29581C     UPDATED         --AUGUST    2017. SPEARMAN DISSIMILARITY
29582C     UPDATED         --AUGUST    2017. KENDALL TAU DISSIMILARITY
29583C     UPDATED         --AUGUST    2017. BINARY MATCH DISSIMILARITY
29584C     UPDATED         --AUGUST    2017. BINARY MATCH SIMILARITY
29585C     UPDATED         --AUGUST    2017. BINARY ROGERS DISSIMILARITY
29586C     UPDATED         --AUGUST    2017. BINARY ROGERS SIMILARITY
29587C     UPDATED         --AUGUST    2017. BINARY SOKAL DISSIMILARITY
29588C     UPDATED         --AUGUST    2017. BINARY SOKAL SIMILARITY
29589C     UPDATED         --AUGUST    2017. BINARY JACCARD DISSIMILARITY
29590C     UPDATED         --AUGUST    2017. BINARY JACCARD SIMILARITY
29591C     UPDATED         --AUGUST    2017. BINARY ASYMMETRIC DICE DISSIMILARITY
29592C     UPDATED         --AUGUST    2017. BINARY ASYMMETRIC DICE SIMILARITY
29593C     UPDATED         --AUGUST    2017. BINARY ASYMMETRIC SOKAL DISSIMILARITY
29594C     UPDATED         --AUGUST    2017. BINARY ASYMMETRIC SOKAL SIMILARITY
29595C     UPDATED         --AUGUST    2017. YULES Q
29596C     UPDATED         --AUGUST    2017. CHEYSHEV DISTANCE
29597C     UPDATED         --AUGUST    2017. MINKOWSKI DISTANCE
29598C     UPDATED         --AUGUST    2017. GENERALIZED JACCARD COEFFICIENT
29599C     UPDATED         --AUGUST    2017. GENERALIZED JACCARD DISTANCE
29600C     UPDATED         --NOVEMBER  2017. DIFF OF BINO PROP LOWE CONF LIMI
29601C     UPDATED         --NOVEMBER  2017. DIFF OF BINO PROP UPPE CONF LIMI
29602C     UPDATED         --NOVEMBER  2017. BINOMIAL PROP LOWE CONF LIMI
29603C     UPDATED         --NOVEMBER  2017. BINOMIAL PROP UPPE CONF LIMI
29604C     UPDATED         --NOVEMBER  2017. COEFFICIENT OF DISPERSION
29605C                                       CONFIDENCE LIMITS
29606C     UPDATED         --DECEMBER  2017. LOWER BONETT STANDARD DEVIATION
29607C                                       CONFIDENCE LIMIT
29608C     UPDATED         --DECEMBER  2017. UPPER BONETT STANDARD DEVIATION
29609C                                       CONFIDENCE LIMIT
29610C     UPDATED         --JULY      2018. WEIGHTED COVARIANCE
29611C     UPDATED         --JULY      2018. WEIGHTED CORRELATION
29612C     UPDATED         --AUGUST    2018. HEDGES G STANDARD ERROR
29613C     UPDATED         --AUGUST    2018. HEDGES G LOWER CONFIDENCE LIMIT
29614C     UPDATED         --AUGUST    2018. HEDGES G UPPER CONFIDENCE LIMIT
29615C     UPDATED         --AUGUST    2018. HAMMING DISTANCE
29616C     UPDATED         --AUGUST    2018. CANBERRA DISTANCE
29617C     UPDATED         --AUGUST    2018. WEIGHTED COSINE DISTANCE
29618C     UPDATED         --OCTOBER   2018. PEARSON SIMILARITY
29619C     UPDATED         --OCTOBER   2018. SPEARMAN SIMILARITY
29620C     UPDATED         --OCTOBER   2018. KENDELLS TAU SIMILARITY
29621C     UPDATED         --OCTOBER   2018. WEIGHTED COSINE DISTANCE
29622C     UPDATED         --OCTOBER   2018. WEIGHTED COSINE SIMILARITY
29623C     UPDATED         --NOVEMBER  2018. GROUPED CORRELATION
29624C     UPDATED         --JANUARY   2019. PYTHON MEAN
29625C     UPDATED         --JANUARY   2019. YOUDEN INDEX
29626C     UPDATED         --JULY      2019. LOWER SEMI-INTERQUARTILE RANGE
29627C     UPDATED         --JULY      2019. UPPER SEMI-INTERQUARTILE RANGE
29628C     UPDATED         --AUGUST    2019. BINARY GAMMA COEFFICIENT
29629C     UPDATED         --AUGUST    2019. YULES Y
29630C     UPDATED         --AUGUST    2019. KENDALL TAU A
29631C     UPDATED         --AUGUST    2019. KENDALL TAU B
29632C     UPDATED         --AUGUST    2019. KENDALL TAU C (NOT WORKING YET)
29633C     UPDATED         --AUGUST    2019. CORRECTION TO RLP COMPUTATION
29634C     UPDATED         --AUGUST    2019. INTRACLASS CORRELATION
29635C     UPDATED         --AUGUST    2019. CORRELATION RATIO
29636C     UPDATED         --SEPTEMBER 2019. RATIO OF MEANS
29637C     UPDATED         --SEPTEMBER 2019. RATIO OF MEANS LOWER CONFIDENCE
29638C                                       LIMIT
29639C     UPDATED         --SEPTEMBER 2019. RATIO OF MEANS UPPER CONFIDENCE
29640C                                       LIMIT
29641C     UPDATED         --OCTOBER   2019. DAVID TEST, DAVID TEST CDF
29642C     UPDATED         --OCTOBER   2019. DAVID TEST PVALUE
29643C     UPDATED         --OCTOBER   2019. DAVID TEST MINIMUM INDEX
29644C     UPDATED         --OCTOBER   2019. DAVID TEST MAXIMUM INDEX
29645C     UPDATED         --OCTOBER   2019. SKEW OUTLIER TEST
29646C     UPDATED         --OCTOBER   2019. SKEW OUTLIER CDF
29647C     UPDATED         --OCTOBER   2019. SKEW OUTLIER CRITICAL VALUE
29648C     UPDATED         --OCTOBER   2019. SKEW OUTLIER INDEX
29649C     UPDATED         --OCTOBER   2019. SKEW OUTLIER PVALUE
29650C     UPDATED         --OCTOBER   2019. KURTOSIS OUTLIER TEST
29651C     UPDATED         --OCTOBER   2019. KURTOSIS OUTLIER CDF
29652C     UPDATED         --OCTOBER   2019. KURTOSIS OUTLIER CRITICAL VALUE
29653C     UPDATED         --OCTOBER   2019. KURTOSIS OUTLIER INDEX
29654C     UPDATED         --OCTOBER   2019. KURTOSIS OUTLIER PVALUE
29655C
29656C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
29657C
29658      CHARACTER*4 ICASPL
29659      CHARACTER*4 ISUBRO
29660      CHARACTER*4 IBUGG3
29661      CHARACTER*4 IERROR
29662C
29663      CHARACTER*4 IHP
29664      CHARACTER*4 IHP2
29665      CHARACTER*4 IHWUSE
29666      CHARACTER*4 MESSAG
29667C
29668      CHARACTER*4 ICASZZ
29669      CHARACTER*4 ITYP91
29670      CHARACTER*4 IWRITE
29671      CHARACTER*4 ICASE
29672      CHARACTER*4 ICASE2
29673      CHARACTER*12 ICASEE
29674      CHARACTER*4 IPRSAV
29675      CHARACTER*4 IDIR
29676      CHARACTER*4 IFLAG
29677CCCCC CHARACTER*4 IQUAME
29678CCCCC CHARACTER*4 IQUASE
29679      CHARACTER*4 ICASAN
29680      CHARACTER*4 ICASA2
29681      CHARACTER*4 ICASA3
29682      CHARACTER*4 ICASA4
29683      CHARACTER*4 ICASA5
29684      CHARACTER*4 ICASDI
29685      CHARACTER*4 ICAPSW
29686CCCCC CHARACTER*4 ICAPTY
29687      CHARACTER*4 IDATSW
29688      CHARACTER*20 IDIST
29689      CHARACTER*4 IDIST2
29690      CHARACTER*4 IDAVT2
29691      CHARACTER*4 ISKOT2
29692      CHARACTER*4 IKUOT2
29693C
29694      CHARACTER*4 ISUBN1
29695      CHARACTER*4 ISUBN2
29696      CHARACTER*4 IFOUND
29697C
29698C---------------------------------------------------------------------
29699C
29700      DIMENSION TEMP(*)
29701      DIMENSION TEMPZ(*)
29702      DIMENSION TEMPZ3(*)
29703      DIMENSION XTEMP1(*)
29704      DIMENSION XTEMP2(*)
29705      DIMENSION XTEMP3(*)
29706C
29707      INTEGER ITEMP1(*)
29708      INTEGER ITEMP2(*)
29709      INTEGER ITEMP3(*)
29710      INTEGER ITEMP4(*)
29711      INTEGER ITEMP5(*)
29712      INTEGER ITEMP6(*)
29713C
29714      DOUBLE PRECISION DTEMP1(*)
29715      DOUBLE PRECISION DTEMP2(*)
29716      DOUBLE PRECISION DTEMP3(*)
29717C
29718      DIMENSION ALPHAT(1)
29719      DIMENSION ADC(1)
29720      DIMENSION ALOWLV(1)
29721      DIMENSION AUPPLV(1)
29722C
29723      PARAMETER(NUMALZ=15)
29724      DIMENSION ALPHAV(NUMALZ)
29725      DIMENSION CV(NUMALZ)
29726C
29727      CHARACTER*4 IPNAM1
29728      CHARACTER*4 IPNAM2
29729      COMMON/STATIS/APVAL,IPNAM1,IPNAM2
29730C
29731C
29732C-----COMMON----------------------------------------------------------
29733C
29734      INCLUDE 'DPCOPA.INC'
29735      INCLUDE 'DPCOSU.INC'
29736      INCLUDE 'DPCOS2.INC'
29737      INCLUDE 'DPCOST.INC'
29738      INCLUDE 'DPCOHK.INC'
29739C
29740      DOUBLE PRECISION DSD
29741      DOUBLE PRECISION D2
29742C
29743      DOUBLE PRECISION DLOWMP
29744      DOUBLE PRECISION DHIGMP
29745      DOUBLE PRECISION DLOWMM
29746      DOUBLE PRECISION DHIGMM
29747      DOUBLE PRECISION DLOWM2
29748      DOUBLE PRECISION DHIGM2
29749      DOUBLE PRECISION DLOWML
29750      DOUBLE PRECISION DHIGML
29751      DOUBLE PRECISION DLOWBO
29752      DOUBLE PRECISION DHIGBO
29753      DOUBLE PRECISION DLOWGC
29754      DOUBLE PRECISION DHIGGC
29755      DOUBLE PRECISION DLOWBC
29756      DOUBLE PRECISION DHIGBC
29757      DOUBLE PRECISION DSUM1
29758      DOUBLE PRECISION DLOWFW
29759      DOUBLE PRECISION DHIGFW
29760CCCCC DOUBLE PRECISION DLOWF1
29761CCCCC DOUBLE PRECISION DHIGF1
29762      DOUBLE PRECISION DLOWF2
29763      DOUBLE PRECISION DHIGF2
29764      DOUBLE PRECISION DLOWF3
29765      DOUBLE PRECISION DHIGF3
29766      DOUBLE PRECISION DLOWSE
29767      DOUBLE PRECISION DHIGSE
29768      DOUBLE PRECISION XGDS20
29769      DOUBLE PRECISION XGDSZ1
29770      DOUBLE PRECISION XGDSZ2
29771      DOUBLE PRECISION DLOWGD
29772      DOUBLE PRECISION DHIGGD
29773      DOUBLE PRECISION TPLUS
29774      DOUBLE PRECISION TMINUS
29775      DOUBLE PRECISION RSUM
29776      DOUBLE PRECISION RSUMSQ
29777C
29778      DOUBLE PRECISION T0
29779      DOUBLE PRECISION T1
29780      COMMON /MPCOM/ T0, T1
29781      LOGICAL IFLAG9
29782C
29783C-----COMMON VARIABLES (GENERAL)--------------------------------------
29784C
29785      INCLUDE 'DPCOP2.INC'
29786C
29787C-----START POINT-----------------------------------------------------
29788C
29789      DATA ALPHAV/
29790     1 0.1, 0.5, 1.0, 2.5, 5.0, 10.0, 25.0,
29791     1 50.0,
29792     1 75.0, 90.0, 95.0, 97.5, 99.0, 99.5, 99.9/
29793C
29794      ISUBN1='CMPS'
29795      ISUBN2='T2  '
29796      IWRITE='OFF'
29797      IPRSAV=IPRINT
29798C
29799C     CHECK THE INPUT ARGUMENTS FOR ERRORS
29800C
29801      IF(NS2.LT.1)THEN
29802        WRITE(ICOUT,999)
29803  999   FORMAT(1X)
29804        CALL DPWRST('XXX','BUG ')
29805        WRITE(ICOUT,31)
29806   31   FORMAT('***** ERROR IN CMPST2--THE NUMBER OF OBSERVATIONS ',
29807     1         'MUST BE AT LEAST 1;')
29808        CALL DPWRST('XXX','BUG ')
29809        WRITE(ICOUT,34)NS2
29810   34   FORMAT('      THE ENTERED NUMBER OF OBSERVATIONS HERE = ',I8)
29811        CALL DPWRST('XXX','BUG ')
29812        WRITE(ICOUT,999)
29813        CALL DPWRST('XXX','BUG ')
29814        IERROR='YES'
29815        GOTO9000
29816      ENDIF
29817C
29818      IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PSTA')THEN
29819        WRITE(ICOUT,70)
29820   70   FORMAT('AT THE BEGINNING OF CMPST2--')
29821        CALL DPWRST('XXX','BUG ')
29822        WRITE(ICOUT,71)IBUGG3,ISUBRO
29823   71   FORMAT('IBUGG3,ISUBRO = ',A4,2X,A4)
29824        CALL DPWRST('XXX','BUG ')
29825        WRITE(ICOUT,72)NS2,NSZ,NUMV2,ICASPL
29826   72   FORMAT('NS2,NSZ,NUMV2,ICASPL = ',3I8,2X,A4)
29827        CALL DPWRST('XXX','BUG ')
29828        DO73I=1,MAX(NS2,NSZ)
29829          WRITE(ICOUT,74)I,TEMP(I),TEMPZ(I)
29830   74     FORMAT('I, TEMP(I),TEMPZ(I) = ',I8,2F15.7)
29831          CALL DPWRST('XXX','BUG ')
29832   73   CONTINUE
29833      ENDIF
29834C
29835      NS2SAV=NS2
29836      NSZSAV=NSZ
29837      IF(ICASPL.EQ.'NUMB')GOTO11310
29838      IF(ICASPL.EQ.'COUN')GOTO11310
29839      IF(ICASPL.EQ.'SIZE')GOTO11310
29840      IF(ICASPL.EQ.'INTC')GOTO11312
29841      IF(ICASPL.EQ.'INMN')GOTO31760
29842      IF(ICASPL.EQ.'INMX')GOTO31770
29843      IF(ICASPL.EQ.'INEX')GOTO31780
29844      IF(ICASPL.EQ.'UNIQ')GOTO11315
29845C
29846      IFLAGN=0
29847      IF(NUMV2.GT.1)THEN
29848        IF(NSZ.GT.0 .AND. NSZ.NE.NS2)THEN
29849          IFLAGN=2
29850        ELSE
29851          IFLAGN=1
29852        ENDIF
29853      ENDIF
29854C
29855      IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PSTA')THEN
29856        WRITE(ICOUT,78)IFLAGN
29857   78   FORMAT('IFLAGN = ',I4)
29858        CALL DPWRST('XXX','BUG ')
29859      ENDIF
29860C
29861      ICNT=0
29862      DO110I=1,NS2
29863        IF(IFLAGN.EQ.0 .OR. IFLAGN.EQ.2)THEN
29864          IF(TEMP(I).NE.PSTAMV)THEN
29865            ICNT=ICNT+1
29866            TEMP(ICNT)=TEMP(I)
29867          ENDIF
29868        ELSEIF(IFLAGN.EQ.1)THEN
29869          IF(TEMP(I).NE.PSTAMV .AND. TEMPZ(I).NE.PSTAMV)THEN
29870            ICNT=ICNT+1
29871            TEMP(ICNT)=TEMP(I)
29872            TEMPZ(ICNT)=TEMPZ(I)
29873          ENDIF
29874        ENDIF
29875  110 CONTINUE
29876C
29877      IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PSTA')THEN
29878        WRITE(ICOUT,79)ICNT
29879   79   FORMAT('AFTER CHECK FOR MISSING VALUES, ICNT = ',I8)
29880        CALL DPWRST('XXX','BUG ')
29881      ENDIF
29882C
29883      IF(ICNT.EQ.0)THEN
29884        RIGHT=PSTAMV
29885        GOTO79000
29886      ENDIF
29887      NS2=ICNT
29888C
29889      IF(IFLAGN.EQ.2)THEN
29890        ICNT=0
29891        DO120I=1,NSZ
29892          IF(TEMPZ(I).NE.PSTAMV)THEN
29893            ICNT=ICNT+1
29894            TEMPZ(ICNT)=TEMPZ(I)
29895          ENDIF
29896  120   CONTINUE
29897C
29898        IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PSTA')THEN
29899          WRITE(ICOUT,129)ICNT
29900  129     FORMAT('AFTER CHECK TEMPZ FOR MISSING VALUES, ICNT = ',I8)
29901          CALL DPWRST('XXX','BUG ')
29902        ENDIF
29903C
29904        IF(ICNT.EQ.0)THEN
29905          RIGHT=PSTAMV
29906          GOTO79000
29907        ENDIF
29908        NSZ=ICNT
29909      ENDIF
29910C
29911      IF(ICASPL.EQ.'SUM')GOTO11320
29912      IF(ICASPL.EQ.'PROD')GOTO11330
29913      IF(ICASPL.EQ.'INTE')GOTO11340
29914      IF(ICASPL.EQ.'MIDR')GOTO11350
29915      IF(ICASPL.EQ.'MEAN'.OR.ICASPL.EQ.'AVER')GOTO11360
29916      IF(ICASPL.EQ.'MECL')GOTO11360
29917      IF(ICASPL.EQ.'MIDM')GOTO11370
29918      IF(ICASPL.EQ.'SHMM')GOTO11372
29919      IF(ICASPL.EQ.'DSHM')GOTO11373
29920      IF(ICASPL.EQ.'SHMR')GOTO11374
29921      IF(ICASPL.EQ.'DSHR')GOTO11375
29922      IF(ICASPL.EQ.'MEDI')GOTO11380
29923      IF(ICASPL.EQ.'MDCL')GOTO11380
29924      IF(ICASPL.EQ.'SD')GOTO11390
29925      IF(ICASPL.EQ.'RMS')GOTO11395
29926      IF(ICASPL.EQ.'SSQM')GOTO11399
29927      IF(ICASPL.EQ.'DSSQ')GOTO19399
29928C
29929      IF(ICASPL.EQ.'SSQ' .OR. ICASPL.EQ.'RSUM' .OR.
29930     1   ICASPL.EQ.'RLP' .OR. ICASPL.EQ.'DSSQ' .OR.
29931     1   ICASPL.EQ.'DRSC')THEN
29932C
29933        IHP='CAPV'
29934        IHP2='ALUE'
29935        IHWUSE='P'
29936        MESSAG='NO'
29937        CALL CHECKN(IHP,IHP2,IHWUSE,
29938     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
29939     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
29940        IF(IERROR.EQ.'YES')THEN
29941          XCAP=CPUMIN
29942        ELSE
29943          XCAP=VALUE(ILOCP)
29944        ENDIF
29945C
29946        IF(ICASPL.EQ.'SSQ')GOTO11396
29947        IF(ICASPL.EQ.'RSUM')GOTO11397
29948        IF(ICASPL.EQ.'RLP ')GOTO11405
29949        IF(ICASPL.EQ.'DSSQ')GOTO11398
29950        IF(ICASPL.EQ.'DRSC')GOTO11401
29951      ENDIF
29952      IF(ICASPL.EQ.'JSCO')GOTO11403
29953C
29954      IF(ICASPL.EQ.'VARI')GOTO11400
29955      IF(ICASPL.EQ.'PREC')GOTO11400
29956      IF(ICASPL.EQ.'RESD')GOTO11410
29957      IF(ICASPL.EQ.'REVA')GOTO11415
29958      IF(ICASPL.EQ.'CVAR')GOTO11418
29959      IF(ICASPL.EQ.'UCVA')GOTO11418
29960      IF(ICASPL.EQ.'SNRA')GOTO11419
29961      IF(ICASPL.EQ.'RANG')GOTO11420
29962      IF(ICASPL.EQ.'CDIS')GOTO11421
29963      IF(ICASPL.EQ.'LCDL')GOTO11427
29964      IF(ICASPL.EQ.'UCDL')GOTO11427
29965      IF(ICASPL.EQ.'1LCD')GOTO11427
29966      IF(ICASPL.EQ.'1UCD')GOTO11427
29967      IF(ICASPL.EQ.'LCDQ')GOTO11428
29968      IF(ICASPL.EQ.'UCDQ')GOTO11428
29969      IF(ICASPL.EQ.'IDIS')GOTO11422
29970      IF(ICASPL.EQ.'MADR')GOTO11423
29971      IF(ICASPL.EQ.'DCDI')GOTO11424
29972      IF(ICASPL.EQ.'DIDI')GOTO11425
29973      IF(ICASPL.EQ.'DMMD')GOTO11426
29974      IF(ICASPL.EQ.'MINI')GOTO11430
29975      IF(ICASPL.EQ.'MAXI')GOTO11440
29976      IF(ICASPL.EQ.'SKEW')GOTO11450
29977      IF(ICASPL.EQ.'GSKE')GOTO11452
29978      IF(ICASPL.EQ.'PSK2')GOTO11454
29979      IF(ICASPL.EQ.'KURT')GOTO11460
29980      IF(ICASPL.EQ.'EKUR')GOTO11465
29981      IF(ICASPL.EQ.'AUCR')GOTO11470
29982      IF(ICASPL.EQ.'COVA')GOTO11480
29983      IF(ICASPL.EQ.'CORR')GOTO11490
29984      IF(ICASPL.EQ.'COAB')GOTO11490
29985      IF(ICASPL.EQ.'COPV')GOTO11490
29986      IF(ICASPL.EQ.'COCD')GOTO11490
29987      IF(ICASPL.EQ.'PDIS')GOTO11490
29988      IF(ICASPL.EQ.'PSIM')GOTO11490
29989      IF(ICASPL.EQ.'MDIS')GOTO11491
29990      IF(ICASPL.EQ.'CNDI')GOTO11492
29991      IF(ICASPL.EQ.'PCOR')GOTO11495
29992      IF(ICASPL.EQ.'PCAB')GOTO11495
29993      IF(ICASPL.EQ.'PCPV')GOTO11495
29994      IF(ICASPL.EQ.'PCCD')GOTO11495
29995      IF(ICASPL.EQ.'MAND')GOTO11496
29996      IF(ICASPL.EQ.'CHDI')GOTO11497
29997      IF(ICASPL.EQ.'COSD')GOTO11498
29998      IF(ICASPL.EQ.'COSS')GOTO11498
29999      IF(ICASPL.EQ.'ACOS')GOTO11498
30000      IF(ICASPL.EQ.'ACOD')GOTO11498
30001      IF(ICASPL.EQ.'EUCD')GOTO11499
30002      IF(ICASPL.EQ.'EUCL')GOTO11499
30003      IF(ICASPL.EQ.'DOTP')GOTO11499
30004      IF(ICASPL.EQ.'RACR')GOTO11500
30005      IF(ICASPL.EQ.'RACC')GOTO11500
30006      IF(ICASPL.EQ.'RACP')GOTO11500
30007      IF(ICASPL.EQ.'RALP')GOTO11500
30008      IF(ICASPL.EQ.'RAUP')GOTO11500
30009      IF(ICASPL.EQ.'RACA')GOTO11500
30010      IF(ICASPL.EQ.'RDIS')GOTO11500
30011      IF(ICASPL.EQ.'RSIM')GOTO11500
30012      IF(ICASPL.EQ.'HDIS')GOTO11502
30013      IF(ICASPL.EQ.'RPCR')GOTO11505
30014      IF(ICASPL.EQ.'RPCA')GOTO11505
30015      IF(ICASPL.EQ.'PDIF')GOTO11509
30016      IF(ICASPL.EQ.'SDME')GOTO11510
30017      IF(ICASPL.EQ.'AUCV')GOTO11520
30018      IF(ICASPL.EQ.'RACV')GOTO11530
30019      IF(ICASPL.EQ.'PEAG')GOTO11531
30020      IF(ICASPL.EQ.'PEDI')GOTO11531
30021      IF(ICASPL.EQ.'COMO')GOTO31480
30022      IF(ICASPL.EQ.'RACM')GOTO31530
30023      IF(ICASPL.EQ.'KTAU')GOTO31540
30024      IF(ICASPL.EQ.'KTAA')GOTO31540
30025      IF(ICASPL.EQ.'KTCD')GOTO31540
30026      IF(ICASPL.EQ.'KTPV')GOTO31540
30027      IF(ICASPL.EQ.'KTPL')GOTO31540
30028      IF(ICASPL.EQ.'KTPU')GOTO31540
30029      IF(ICASPL.EQ.'KDIS')GOTO31540
30030      IF(ICASPL.EQ.'KSIM')GOTO31540
30031      IF(ICASPL.EQ.'PKTA')GOTO31545
30032      IF(ICASPL.EQ.'PKAB')GOTO31545
30033      IF(ICASPL.EQ.'RATI')GOTO31550
30034      IF(ICASPL.EQ.'BRAT')GOTO31551
30035      IF(ICASPL.EQ.'RMEA')GOTO31565
30036      IF(ICASPL.EQ.'RMLL')GOTO31565
30037      IF(ICASPL.EQ.'RMUL')GOTO31565
30038      IF(ICASPL.EQ.'ODRA')GOTO31560
30039      IF(ICASPL.EQ.'ORSE')GOTO31570
30040      IF(ICASPL.EQ.'RELR')GOTO31580
30041      IF(ICASPL.EQ.'CRAM')GOTO31590
30042      IF(ICASPL.EQ.'PEAR')GOTO31600
30043      IF(ICASPL.EQ.'FALP')GOTO31610
30044      IF(ICASPL.EQ.'FALN')GOTO31620
30045      IF(ICASPL.EQ.'TRUP')GOTO31630
30046      IF(ICASPL.EQ.'TRUN')GOTO31640
30047      IF(ICASPL.EQ.'SENS')GOTO31650
30048      IF(ICASPL.EQ.'SPEC')GOTO31660
30049      IF(ICASPL.EQ.'PPV ')GOTO31670
30050      IF(ICASPL.EQ.'NPV ')GOTO31680
30051      IF(ICASPL.EQ.'BMDI')GOTO31685
30052      IF(ICASPL.EQ.'BMRD')GOTO31685
30053      IF(ICASPL.EQ.'BMSD')GOTO31685
30054      IF(ICASPL.EQ.'BJDI')GOTO31685
30055      IF(ICASPL.EQ.'BSDI')GOTO31685
30056      IF(ICASPL.EQ.'BDDI')GOTO31685
30057      IF(ICASPL.EQ.'BMSI')GOTO31685
30058      IF(ICASPL.EQ.'BMRS')GOTO31685
30059      IF(ICASPL.EQ.'BMSS')GOTO31685
30060      IF(ICASPL.EQ.'BJSI')GOTO31685
30061      IF(ICASPL.EQ.'BSSI')GOTO31685
30062      IF(ICASPL.EQ.'BDSI')GOTO31685
30063      IF(ICASPL.EQ.'YULQ')GOTO31685
30064      IF(ICASPL.EQ.'YULY')GOTO31685
30065      IF(ICASPL.EQ.'GC22')GOTO31685
30066      IF(ICASPL.EQ.'YOUD')GOTO31685
30067      IF(ICASPL.EQ.'GJCO')GOTO31688
30068      IF(ICASPL.EQ.'GJDI')GOTO31688
30069      IF(ICASPL.EQ.'LODR')GOTO31690
30070      IF(ICASPL.EQ.'LOSE')GOTO31700
30071      IF(ICASPL.EQ.'ICCR')GOTO31715
30072      IF(ICASPL.EQ.'CRAT')GOTO31715
30073C
30074      IF(ICASPL.EQ.'LOWH')GOTO11540
30075      IF(ICASPL.EQ.'UPPH')GOTO11550
30076      IF(ICASPL.EQ.'LOWQ')GOTO11560
30077      IF(ICASPL.EQ.'UPPQ')GOTO11570
30078      IF(ICASPL.EQ.'MHIN')GOTO11575
30079      IF(ICASPL.EQ.'DMHI')GOTO11576
30080      IF(ICASPL.EQ.'TMEA')GOTO11578
30081      IF(ICASPL.EQ.'DTRI')GOTO11579
30082C
30083      IF(ICASPL.EQ.'TRIM' .OR. ICASPL.EQ.'WINM' .OR.
30084     1   ICASPL.EQ.'WIVA' .OR. ICASPL.EQ.'WISD' .OR.
30085     1   ICASPL.EQ.'WICV' .OR. ICASPL.EQ.'WICR' .OR.
30086     1   ICASPL.EQ.'TRSD' .OR. ICASPL.EQ.'WETM' .OR.
30087     1   ICASPL.EQ.'TMSE' .OR. ICASPL.EQ.'DTRM' .OR.
30088     1   ICASPL.EQ.'DWNM' .OR. ICASPL.EQ.'DWSD' .OR.
30089     1   ICASPL.EQ.'DWVA' .OR. ICASPL.EQ.'DTSD')THEN
30090C
30091C        2012/10: FOR TRIMMED MEAN, CAN SPECIFY EITHER A SPECIFIC NUMBER
30092C                 TO TRIM OR A PERCENTAGE TO TRIM.  CHECK FOR SPECIFIC
30093C                 NUMBER FIRST AND IF NOT SPECIFIED, CHECK FOR A
30094C                 PERCENTAGE.
30095C
30096        NTRIM1=-1
30097        NTRIM2=-1
30098        P1=-99.0
30099        P2=-99.0
30100C
30101        IHP='NTRI'
30102        IHP2='M1  '
30103        IHWUSE='P'
30104        MESSAG='NO'
30105        CALL CHECKN(IHP,IHP2,IHWUSE,
30106     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
30107     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
30108        IF(IERROR.EQ.'NO')THEN
30109          NTRIM1=INT(VALUE(ILOCP)+0.1)
30110          IF(NTRIM1.LT.0)NTRIM1=0
30111        ENDIF
30112C
30113        IHP='NTRI'
30114        IHP2='M2  '
30115        IHWUSE='P'
30116        MESSAG='NO'
30117        CALL CHECKN(IHP,IHP2,IHWUSE,
30118     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
30119     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
30120        IF(IERROR.EQ.'NO')THEN
30121          NTRIM2=INT(VALUE(ILOCP)+0.1)
30122          IF(NTRIM2.LT.0)NTRIM2=0
30123        ENDIF
30124C
30125        IF(NTRIM1.LE.0)THEN
30126          IHP='P1  '
30127          IHP2='    '
30128          IHWUSE='P'
30129          MESSAG='YES'
30130          CALL CHECKN(IHP,IHP2,IHWUSE,
30131     1                IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
30132     1                ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
30133          IF(IERROR.EQ.'YES')GOTO9000
30134          IF(PROP1.LT.0.0 .OR. PROP1.GT.100.0)THEN
30135            WRITE(ICOUT,999)
30136            CALL DPWRST('XXX','BUG ')
30137            WRITE(ICOUT,11581)
3013811581       FORMAT('***** ERROR IN CMPSTA--')
30139            CALL DPWRST('XXX','BUG ')
30140            WRITE(ICOUT,11582)
3014111582       FORMAT('      THE PROPORTION FOR TRIMMING/WINSORIZING ',
30142     1             'BELOW')
30143            CALL DPWRST('XXX','BUG ')
30144            WRITE(ICOUT,11583)
3014511583       FORMAT('      MUST BE BETWEEN 0 AND 100, BUT WAS NOT.')
30146            CALL DPWRST('XXX','BUG ')
30147            WRITE(ICOUT,11584)PROP1
3014811584       FORMAT('      PARAMETER P1 = LOWER PROPORTION = ',G15.7)
30149            CALL DPWRST('XXX','BUG ')
30150            WRITE(ICOUT,11586)
3015111586       FORMAT('      USE THE LET COMMAND TO PRE-DEFINE P1 AS IN')
30152            CALL DPWRST('XXX','BUG ')
30153            WRITE(ICOUT,11587)
3015411587       FORMAT('      LET P1 = 25')
30155            CALL DPWRST('XXX','BUG ')
30156            IERROR='YES'
30157            GOTO9000
30158          ELSE
30159            PROP1=VALUE(ILOCP)
30160          ENDIF
30161        ENDIF
30162C
30163        IF(NTRIM2.LE.0)THEN
30164          IHP='P2  '
30165          IHP2='    '
30166          IHWUSE='P'
30167          MESSAG='YES'
30168          CALL CHECKN(IHP,IHP2,IHWUSE,
30169     1                IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
30170     1                ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
30171          IF(IERROR.EQ.'YES')GOTO9000
30172          IF(PROP2.LT.0.0 .OR. PROP2.GT.100.0)THEN
30173            WRITE(ICOUT,999)
30174            CALL DPWRST('XXX','BUG ')
30175            WRITE(ICOUT,11581)
30176            CALL DPWRST('XXX','BUG ')
30177            WRITE(ICOUT,11592)
3017811592       FORMAT('      THE PROPORTION FOR TRIMMING/WINSORIZING ',
30179     1             'ABOVE')
30180            CALL DPWRST('XXX','BUG ')
30181            WRITE(ICOUT,11583)
30182            CALL DPWRST('XXX','BUG ')
30183            WRITE(ICOUT,11594)PROP2
3018411594       FORMAT('      PARAMETER P2 = LOWER PROPORTION = ',G15.7)
30185            CALL DPWRST('XXX','BUG ')
30186            WRITE(ICOUT,11596)
3018711596       FORMAT('      USE THE LET COMMAND TO PRE-DEFINE P2 AS IN')
30188            CALL DPWRST('XXX','BUG ')
30189            WRITE(ICOUT,11597)
3019011597       FORMAT('      LET P2 = 25')
30191            CALL DPWRST('XXX','BUG ')
30192            IERROR='YES'
30193            GOTO9000
30194          ELSE
30195            PROP2=VALUE(ILOCP)
30196          ENDIF
30197        ENDIF
30198C
30199        IF(ICASPL.EQ.'TRIM')GOTO11580
30200        IF(ICASPL.EQ.'WINM')GOTO11590
30201        IF(ICASPL.EQ.'WIVA')GOTO12010
30202        IF(ICASPL.EQ.'WISD')GOTO12030
30203        IF(ICASPL.EQ.'WICV')GOTO12050
30204        IF(ICASPL.EQ.'WICR')GOTO12070
30205        IF(ICASPL.EQ.'WETM')GOTO11660
30206        IF(ICASPL.EQ.'TMSE')GOTO12150
30207        IF(ICASPL.EQ.'DTRM')GOTO12210
30208        IF(ICASPL.EQ.'DWNM')GOTO12220
30209        IF(ICASPL.EQ.'DWSD')GOTO12320
30210        IF(ICASPL.EQ.'DWVA')GOTO12330
30211        IF(ICASPL.EQ.'DTSD')GOTO12590
30212        IF(ICASPL.EQ.'TRSD')GOTO31710
30213      ENDIF
30214C
30215      IF(ICASPL.EQ.'MIDQ')GOTO11610
30216      IF(ICASPL.EQ.'1DEC')GOTO11610
30217      IF(ICASPL.EQ.'2DEC')GOTO11610
30218      IF(ICASPL.EQ.'3DEC')GOTO11610
30219      IF(ICASPL.EQ.'4DEC')GOTO11610
30220      IF(ICASPL.EQ.'5DEC')GOTO11610
30221      IF(ICASPL.EQ.'6DEC')GOTO11610
30222      IF(ICASPL.EQ.'7DEC')GOTO11610
30223      IF(ICASPL.EQ.'8DEC')GOTO11610
30224      IF(ICASPL.EQ.'9DEC')GOTO11610
30225C
30226      IF(ICASPL.EQ.'PERC')GOTO11615
30227C
30228      IF(ICASPL.EQ.'WEME')GOTO11620
30229      IF(ICASPL.EQ.'WOSM')GOTO11625
30230      IF(ICASPL.EQ.'WEMD')GOTO11630
30231      IF(ICASPL.EQ.'WESD')GOTO11640
30232      IF(ICASPL.EQ.'WEVA')GOTO11650
30233      IF(ICASPL.EQ.'WESK')GOTO11655
30234      IF(ICASPL.EQ.'WSUM')GOTO11670
30235      IF(ICASPL.EQ.'WSSQ')GOTO11670
30236      IF(ICASPL.EQ.'WSAB')GOTO11670
30237      IF(ICASPL.EQ.'WSDV')GOTO11670
30238      IF(ICASPL.EQ.'WAAB')GOTO11670
30239      IF(ICASPL.EQ.'WSSD')GOTO11670
30240      IF(ICASPL.EQ.'WCOV')GOTO11680
30241      IF(ICASPL.EQ.'WCOR')GOTO11680
30242      IF(ICASPL.EQ.'GCOR')GOTO11685
30243      IF(ICASPL.EQ.'WCDI')GOTO11690
30244      IF(ICASPL.EQ.'WCSI')GOTO11690
30245C
30246      IF(ICASPL.EQ.'VM')GOTO11700
30247      IF(ICASPL.EQ.'VAME')GOTO11700
30248C
30249      IF(ICASPL.EQ.'SIFR')GOTO11710
30250      IF(ICASPL.EQ.'SIAM')GOTO11720
30251      IF(ICASPL.EQ.'LIIN')GOTO11730
30252      IF(ICASPL.EQ.'LIIS')GOTO11735
30253      IF(ICASPL.EQ.'LISL')GOTO11740
30254      IF(ICASPL.EQ.'LISS')GOTO11745
30255      IF(ICASPL.EQ.'LIRE')GOTO11750
30256      IF(ICASPL.EQ.'LICO')GOTO11760
30257      IF(ICASPL.EQ.'REPE')GOTO11770
30258      IF(ICASPL.EQ.'REPR')GOTO11780
30259      IF(ICASPL.EQ.'CINT')GOTO11790
30260      IF(ICASPL.EQ.'CSD ')GOTO11795
30261C
30262      IF(ICASPL.EQ.'SN0')GOTO11810
30263      IF(ICASPL.EQ.'SN+')GOTO11810
30264      IF(ICASPL.EQ.'SN-')GOTO11810
30265      IF(ICASPL.EQ.'SN00')GOTO11810
30266C
30267      IF(ICASPL.EQ.'CP')GOTO11900
30268      IF(ICASPL.EQ.'CPK')GOTO11900
30269      IF(ICASPL.EQ.'CNPK')GOTO11900
30270      IF(ICASPL.EQ.'CPM')GOTO11900
30271      IF(ICASPL.EQ.'CC')GOTO11900
30272      IF(ICASPL.EQ.'CPL')GOTO11900
30273      IF(ICASPL.EQ.'CPU')GOTO11900
30274      IF(ICASPL.EQ.'NPMK')GOTO11900
30275      IF(ICASPL.EQ.'CNPM')GOTO11900
30276      IF(ICASPL.EQ.'CNP')GOTO11900
30277      IF(ICASPL.EQ.'CPMK')GOTO11900
30278      IF(ICASPL.EQ.'PEDE')GOTO11900
30279      IF(ICASPL.EQ.'EXLO')GOTO11900
30280C
30281      IF(ICASPL.EQ.'NOPP' .OR. ICASPL.EQ.'NOLO' .OR.
30282     1   ICASPL.EQ.'NOSC')THEN
30283        IDIST='NORMAL'
30284        GOTO11910
30285      ELSEIF(ICASPL.EQ.'UNPP' .OR. ICASPL.EQ.'UNLO' .OR.
30286     1   ICASPL.EQ.'UNSC')THEN
30287        IDIST='UNIFORM'
30288        GOTO11910
30289      ELSEIF(ICASPL.EQ.'CAPP' .OR. ICASPL.EQ.'CALO' .OR.
30290     1   ICASPL.EQ.'CASC')THEN
30291        IDIST='CAUCHY'
30292        GOTO11910
30293      ELSEIF(ICASPL.EQ.'LOPP' .OR. ICASPL.EQ.'LOLO' .OR.
30294     1   ICASPL.EQ.'LOSC')THEN
30295        IDIST='LOGISTIC'
30296        GOTO11910
30297      ELSEIF(ICASPL.EQ.'DEPP' .OR. ICASPL.EQ.'DELO' .OR.
30298     1   ICASPL.EQ.'DESC')THEN
30299        IDIST='DOUBLE EXPONENTIAL'
30300        GOTO11910
30301      ELSEIF(ICASPL.EQ.'COPP' .OR. ICASPL.EQ.'COLO' .OR.
30302     1   ICASPL.EQ.'COSC')THEN
30303        IDIST='COSINE'
30304        GOTO11910
30305      ELSEIF(ICASPL.EQ.'SIPP' .OR. ICASPL.EQ.'SILO' .OR.
30306     1   ICASPL.EQ.'SISC')THEN
30307        IDIST='SINE'
30308        GOTO11910
30309      ELSEIF(ICASPL.EQ.'ANPP' .OR. ICASPL.EQ.'ANLO' .OR.
30310     1   ICASPL.EQ.'ANSC')THEN
30311        IDIST='ANGLIT'
30312        GOTO11910
30313      ELSEIF(ICASPL.EQ.'ARPP' .OR. ICASPL.EQ.'ARLO' .OR.
30314     1   ICASPL.EQ.'ARSC')THEN
30315        IDIST='ARCSINE'
30316        GOTO11910
30317      ELSEIF(ICASPL.EQ.'EXPP' .OR. ICASPL.EQ.'EXLO' .OR.
30318     1   ICASPL.EQ.'EXSC')THEN
30319        IDIST='EXPONENTIAL'
30320        GOTO11910
30321      ELSEIF(ICASPL.EQ.'HSPP' .OR. ICASPL.EQ.'HSLO' .OR.
30322     1   ICASPL.EQ.'HSSC')THEN
30323        IDIST='HYPERBOLIC SECANT'
30324        GOTO11910
30325      ELSEIF(ICASPL.EQ.'SLPP' .OR. ICASPL.EQ.'SLLO' .OR.
30326     1   ICASPL.EQ.'SLSC')THEN
30327        IDIST='SLASH'
30328        GOTO11910
30329      ELSEIF(ICASPL.EQ.'MXPP' .OR. ICASPL.EQ.'MXLO' .OR.
30330     1   ICASPL.EQ.'MXSC')THEN
30331        IDIST='MAXWELL'
30332        GOTO11910
30333      ELSEIF(ICASPL.EQ.'RAPP' .OR. ICASPL.EQ.'RALO' .OR.
30334     1   ICASPL.EQ.'RASC')THEN
30335        IDIST='RAYLEIGH'
30336        GOTO11910
30337      ELSEIF(ICASPL.EQ.'HNPP' .OR. ICASPL.EQ.'HNLO' .OR.
30338     1   ICASPL.EQ.'HNSC')THEN
30339        IDIST='HALF-NORMAL'
30340        GOTO11910
30341      ELSEIF(ICASPL.EQ.'HCPP' .OR. ICASPL.EQ.'HCLO' .OR.
30342     1   ICASPL.EQ.'HCSC')THEN
30343        IDIST='HALF-CAUCHY'
30344        GOTO11910
30345      ELSEIF(ICASPL.EQ.'SCPP' .OR. ICASPL.EQ.'SCLO' .OR.
30346     1   ICASPL.EQ.'SCSC')THEN
30347        IDIST='SEMI-CIRCULAR'
30348        GOTO11910
30349      ELSEIF(ICASPL.EQ.'G1PP' .OR. ICASPL.EQ.'G1LO' .OR.
30350     1   ICASPL.EQ.'G1SC')THEN
30351        IDIST='MINIMUM GUMBEL'
30352        GOTO11910
30353      ELSEIF(ICASPL.EQ.'G2PP' .OR. ICASPL.EQ.'G2LO' .OR.
30354     1   ICASPL.EQ.'G2SC')THEN
30355        IDIST='MAXIMUM GUMBEL'
30356        GOTO11910
30357      ELSEIF(ICASPL.EQ.'TLPP' .OR. ICASPL.EQ.'TLSH' .OR.
30358     1       ICASPL.EQ.'TLLO' .OR. ICASPL.EQ.'TLSC')THEN
30359        IDIST='TUKEY-LAMBDA'
30360        GOTO11910
30361      ELSEIF(ICASPL.EQ.'WEPP' .OR. ICASPL.EQ.'WESH' .OR.
30362     1       ICASPL.EQ.'WELO' .OR. ICASPL.EQ.'WESC')THEN
30363        IDIST='WEIBULL'
30364        GOTO11910
30365      ELSEIF(ICASPL.EQ.'W2PP' .OR. ICASPL.EQ.'W2SH' .OR.
30366     1       ICASPL.EQ.'W2SC')THEN
30367        IDIST='2PAR WEIBULL'
30368        GOTO11910
30369      ELSEIF(ICASPL.EQ.'LNPP' .OR. ICASPL.EQ.'LNSH' .OR.
30370     1       ICASPL.EQ.'LNLO' .OR. ICASPL.EQ.'LNSC')THEN
30371        IDIST='LOGNORMAL'
30372        GOTO11910
30373      ELSEIF(ICASPL.EQ.'GPPP' .OR. ICASPL.EQ.'GPSH' .OR.
30374     1       ICASPL.EQ.'GPLO' .OR. ICASPL.EQ.'GPSC')THEN
30375        IDIST='GPARETO'
30376        GOTO11910
30377      ELSEIF(ICASPL.EQ.'GHPP' .OR. ICASPL.EQ.'GHSH' .OR.
30378     1       ICASPL.EQ.'GHS2' .OR.
30379     1       ICASPL.EQ.'GHLO' .OR. ICASPL.EQ.'GHSC')THEN
30380        IDIST='GH'
30381        GOTO11910
30382      ELSEIF(ICASPL.EQ.'GPPC' .OR. ICASPL.EQ.'GSHA' .OR.
30383     1       ICASPL.EQ.'GLOC' .OR. ICASPL.EQ.'GSCA')THEN
30384        IDIST='G'
30385        GOTO11910
30386      ELSEIF(ICASPL.EQ.'WAPP' .OR. ICASPL.EQ.'WASH' .OR.
30387     1       ICASPL.EQ.'WALO' .OR. ICASPL.EQ.'WASC')THEN
30388        IDIST='WALD'
30389        GOTO11910
30390      ELSEIF(ICASPL.EQ.'GAPP' .OR. ICASPL.EQ.'GASH' .OR.
30391     1       ICASPL.EQ.'GALO' .OR. ICASPL.EQ.'GASC')THEN
30392        IDIST='GAMMA'
30393        GOTO11910
30394      ELSEIF(ICASPL.EQ.'IWPP' .OR. ICASPL.EQ.'IWSH' .OR.
30395     1       ICASPL.EQ.'IWLO' .OR. ICASPL.EQ.'IWSC')THEN
30396        IDIST='INVERTED WEIBULL'
30397        GOTO11910
30398      ELSEIF(ICASPL.EQ.'FLPP' .OR. ICASPL.EQ.'FLSH' .OR.
30399     1       ICASPL.EQ.'FLLO' .OR. ICASPL.EQ.'FLSC')THEN
30400        IDIST='FATIGUE LIFE'
30401        GOTO11910
30402      ENDIF
30403C
30404      IF(ICASPL.EQ.'NOAD' .OR. ICASPL.EQ.'NADL' .OR.
30405     1   ICASPL.EQ.'NADS')THEN
30406        IDIST='NORMAL'
30407        GOTO11915
30408      ELSEIF(ICASPL.EQ.'EXAD' .OR. ICASPL.EQ.'EADL' .OR.
30409     1   ICASPL.EQ.'EADS')THEN
30410        IDIST='EXPONENTIAL'
30411        GOTO11915
30412      ELSEIF(ICASPL.EQ.'DXAL' .OR. ICASPL.EQ.'DXAS' .OR.
30413     1   ICASPL.EQ.'DXAD')THEN
30414        IDIST='DOUBLE EXPONENTIAL'
30415        GOTO11915
30416      ELSEIF(ICASPL.EQ.'GUAL' .OR. ICASPL.EQ.'GUAS' .OR.
30417     1   ICASPL.EQ.'GUAD')THEN
30418        IDIST='GUMBEL'
30419        GOTO11915
30420      ELSEIF(ICASPL.EQ.'LOAL' .OR. ICASPL.EQ.'LOAS' .OR.
30421     1   ICASPL.EQ.'LOAD')THEN
30422        IDIST='LOGISTIC'
30423        GOTO11915
30424      ELSEIF(ICASPL.EQ.'UNAL' .OR. ICASPL.EQ.'UNAS' .OR.
30425     1   ICASPL.EQ.'UNAD')THEN
30426        IDIST='UNIFORM'
30427        GOTO11915
30428      ELSEIF(ICASPL.EQ.'MXAL' .OR. ICASPL.EQ.'MXAS' .OR.
30429     1   ICASPL.EQ.'MXAD')THEN
30430        IDIST='MAXWELL'
30431        GOTO11915
30432      ELSEIF(ICASPL.EQ.'RAAL' .OR. ICASPL.EQ.'RAAS' .OR.
30433     1   ICASPL.EQ.'RAAD')THEN
30434        IDIST='RAYLEIGH'
30435        GOTO11915
30436      ELSEIF(ICASPL.EQ.'GAAZ' .OR. ICASPL.EQ.'GAAS' .OR.
30437     1   ICASPL.EQ.'GAAD')THEN
30438        IDIST='GAMMA'
30439        GOTO11915
30440      ELSEIF(ICASPL.EQ.'WEAZ' .OR. ICASPL.EQ.'WEAS' .OR.
30441     1   ICASPL.EQ.'WEAD')THEN
30442        IDIST='WEIBULL'
30443        GOTO11915
30444      ELSEIF(ICASPL.EQ.'LNAZ' .OR. ICASPL.EQ.'LNAS' .OR.
30445     1   ICASPL.EQ.'LNAD')THEN
30446        IDIST='LOGNORMAL'
30447        GOTO11915
30448      ELSEIF(ICASPL.EQ.'FLAZ' .OR. ICASPL.EQ.'FLAS' .OR.
30449     1   ICASPL.EQ.'FLAD')THEN
30450        IDIST='FATIGUE LIFE'
30451        GOTO11915
30452      ELSEIF(ICASPL.EQ.'FRAZ' .OR. ICASPL.EQ.'FRAS' .OR.
30453     1   ICASPL.EQ.'FRAD')THEN
30454        IDIST='FRECHET'
30455        GOTO11915
30456      ELSEIF(ICASPL.EQ.'LXAZ' .OR. ICASPL.EQ.'LXAS' .OR.
30457     1   ICASPL.EQ.'LXAD')THEN
30458        IDIST='LOGISTIC EXPONENTIAL'
30459        GOTO11915
30460      ELSEIF(ICASPL.EQ.'IGAZ' .OR. ICASPL.EQ.'IGAS' .OR.
30461     1   ICASPL.EQ.'IGAD')THEN
30462        IDIST='INVERTED GAMMA'
30463        GOTO11915
30464      ELSEIF(ICASPL.EQ.'B1AZ' .OR. ICASPL.EQ.'B1AS' .OR.
30465     1   ICASPL.EQ.'B1AD')THEN
30466        IDIST='BURR TYPE 10'
30467        GOTO11915
30468      ELSEIF(ICASPL.EQ.'GEAZ' .OR. ICASPL.EQ.'GEAS' .OR.
30469     1   ICASPL.EQ.'GEAD')THEN
30470        IDIST='GEOMETRIC EXTR EXPO'
30471        GOTO11915
30472      ENDIF
30473C
30474      IF(ICASPL.EQ.'BCPP')GOTO11920
30475      IF(ICASPL.EQ.'BCLA')GOTO11920
30476C
30477      IF(ICASPL.EQ.'EXTR')GOTO11933
30478      IF(ICASPL.EQ.'AAD ')GOTO11935
30479      IF(ICASPL.EQ.'AADM')GOTO11938
30480      IF(ICASPL.EQ.'MAD ')GOTO11940
30481      IF(ICASPL.EQ.'MADN')GOTO11940
30482      IF(ICASPL.EQ.'GEME')GOTO11950
30483      IF(ICASPL.EQ.'GESD')GOTO11960
30484      IF(ICASPL.EQ.'HAME')GOTO11970
30485      IF(ICASPL.EQ.'IQRA')GOTO11980
30486      IF(ICASPL.EQ.'NIQR')GOTO11980
30487      IF(ICASPL.EQ.'SIQL')GOTO11980
30488      IF(ICASPL.EQ.'SIQU')GOTO11980
30489      IF(ICASPL.EQ.'QQRA')GOTO11982
30490      IF(ICASPL.EQ.'BILO')GOTO11990
30491      IF(ICASPL.EQ.'BISC')GOTO12000
30492      IF(ICASPL.EQ.'BIMV')GOTO12090
30493      IF(ICASPL.EQ.'BIMC')GOTO12100
30494C
30495      IF(ICASPL.EQ.'PBMV' .OR. ICASPL.EQ.'PBCR' .OR.
30496     1   ICASPL.EQ.'DPBN')THEN
30497C
30498        IHP='BETA'
30499        IHP2='    '
30500        IHWUSE='P'
30501        MESSAG='NO'
30502        CALL CHECKN(IHP,IHP2,IHWUSE,
30503     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
30504     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
30505        IF(IERROR.EQ.'YES')THEN
30506          BETA=0.1
30507        ELSE
30508          BETA=VALUE(ILOCP)
30509        ENDIF
30510C
30511        IF(ICASPL.EQ.'PBMV')GOTO12110
30512        IF(ICASPL.EQ.'PBCR')GOTO12115
30513        IF(ICASPL.EQ.'DPBN')GOTO12360
30514      ENDIF
30515C
30516      IF(ICASPL.EQ.'HLEH')GOTO12120
30517      IF(ICASPL.EQ.'QUAN')GOTO12130
30518      IF(ICASPL.EQ.'DRAT')GOTO12135
30519      IF(ICASPL.EQ.'QUSE')GOTO12140
30520      IF(ICASPL.EQ.'BICR')GOTO12160
30521      IF(ICASPL.EQ.'CDIG')GOTO12172
30522      IF(ICASPL.EQ.'NCDI')GOTO12174
30523      IF(ICASPL.EQ.'SNSC')GOTO12176
30524      IF(ICASPL.EQ.'QNSC')GOTO12178
30525C
30526      IF(ICASPL.EQ.'LPME' .OR. ICASPL.EQ.'LPVA' .OR.
30527     1   ICASPL.EQ.'LPSD' .OR. ICASPL.EQ.'DLPL' .OR.
30528     1   ICASPL.EQ.'DLPV' .OR. ICASPL.EQ.'DLPS')THEN
30529C
30530        IHP='P   '
30531        IHP2='    '
30532        IHWUSE='P'
30533        MESSAG='NO'
30534        CALL CHECKN(IHP,IHP2,IHWUSE,
30535     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
30536     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
30537        IF(IERROR.EQ.'YES')THEN
30538          P=1.5
30539        ELSE
30540          P=VALUE(ILOCP)
30541        ENDIF
30542C
30543        IF(ICASPL.EQ.'LPME')GOTO31720
30544        IF(ICASPL.EQ.'LPVA')GOTO31730
30545        IF(ICASPL.EQ.'LPSD')GOTO31740
30546        IF(ICASPL.EQ.'DLPL')GOTO12540
30547        IF(ICASPL.EQ.'DLPV')GOTO12550
30548        IF(ICASPL.EQ.'DLPS')GOTO12560
30549      ENDIF
30550C
30551      IF(ICASPL.EQ.'BPRO')GOTO31750
30552      IF(ICASPL.EQ.'BPLC')GOTO31750
30553      IF(ICASPL.EQ.'BPUC')GOTO31750
30554      IF(ICASPL.EQ.'BPRC')GOTO31750
30555      IF(ICASPL.EQ.'GRUB')GOTO31790
30556      IF(ICASPL.EQ.'GCDF')GOTO31795
30557      IF(ICASPL.EQ.'GDIR')GOTO31810
30558      IF(ICASPL.EQ.'GIND')GOTO31820
30559      IF(ICASPL.EQ.'DCDF')GOTO31825
30560      IF(ICASPL.EQ.'DPVA')GOTO31825
30561      IF(ICASPL.EQ.'DMNI')GOTO31825
30562      IF(ICASPL.EQ.'DMXI')GOTO31825
30563      IF(ICASPL.EQ.'DACV')GOTO31825
30564      IF(ICASPL.EQ.'DAVI')GOTO31825
30565      IF(ICASPL.EQ.'SOCD')GOTO31828
30566      IF(ICASPL.EQ.'SOCV')GOTO31828
30567      IF(ICASPL.EQ.'SOPV')GOTO31828
30568      IF(ICASPL.EQ.'SOIN')GOTO31828
30569      IF(ICASPL.EQ.'SOUT')GOTO31828
30570      IF(ICASPL.EQ.'KOCD')GOTO31829
30571      IF(ICASPL.EQ.'KOCV')GOTO31829
30572      IF(ICASPL.EQ.'KOPV')GOTO31829
30573      IF(ICASPL.EQ.'KOIN')GOTO31829
30574      IF(ICASPL.EQ.'KOUT')GOTO31829
30575      IF(ICASPL.EQ.'1TTE')GOTO31830
30576      IF(ICASPL.EQ.'1TCD')GOTO31830
30577      IF(ICASPL.EQ.'1T2P')GOTO31830
30578      IF(ICASPL.EQ.'1TLP')GOTO31830
30579      IF(ICASPL.EQ.'1TUP')GOTO31830
30580      IF(ICASPL.EQ.'2TTE')GOTO31840
30581      IF(ICASPL.EQ.'2TCD')GOTO31840
30582      IF(ICASPL.EQ.'2T2P')GOTO31840
30583      IF(ICASPL.EQ.'2TLP')GOTO31840
30584      IF(ICASPL.EQ.'2TUP')GOTO31840
30585      IF(ICASPL.EQ.'PTTE')GOTO31845
30586      IF(ICASPL.EQ.'PTCD')GOTO31845
30587      IF(ICASPL.EQ.'PT2P')GOTO31845
30588      IF(ICASPL.EQ.'PTLP')GOTO31845
30589      IF(ICASPL.EQ.'PTUP')GOTO31845
30590      IF(ICASPL.EQ.'CSSD')GOTO31850
30591      IF(ICASPL.EQ.'CCDF')GOTO31850
30592      IF(ICASPL.EQ.'CS2P')GOTO31850
30593      IF(ICASPL.EQ.'CSLP')GOTO31850
30594      IF(ICASPL.EQ.'CSUP')GOTO31850
30595      IF(ICASPL.EQ.'FRET')GOTO31870
30596      IF(ICASPL.EQ.'FRCD')GOTO31880
30597      IF(ICASPL.EQ.'FBLO')GOTO31890
30598      IF(ICASPL.EQ.'FBCD')GOTO31900
30599      IF(ICASPL.EQ.'H10L')GOTO31910
30600      IF(ICASPL.EQ.'H12L')GOTO31920
30601      IF(ICASPL.EQ.'H15L')GOTO31930
30602      IF(ICASPL.EQ.'H17L')GOTO31940
30603      IF(ICASPL.EQ.'H20L')GOTO31950
30604      IF(ICASPL.EQ.'H10S')GOTO31960
30605      IF(ICASPL.EQ.'H12S')GOTO31970
30606      IF(ICASPL.EQ.'H15S')GOTO31980
30607      IF(ICASPL.EQ.'H17S')GOTO31990
30608      IF(ICASPL.EQ.'H20S')GOTO32000
30609      IF(ICASPL.EQ.'TM2S')GOTO32010
30610      IF(ICASPL.EQ.'TMMN')GOTO32010
30611      IF(ICASPL.EQ.'TMMX')GOTO32010
30612      IF(ICASPL.EQ.'ESD ')GOTO32020
30613      IF(ICASPL.EQ.'DI2S')GOTO32030
30614      IF(ICASPL.EQ.'DIMN')GOTO32030
30615      IF(ICASPL.EQ.'DIMX')GOTO32030
30616      IF(ICASPL.EQ.'1LAC')GOTO32040
30617      IF(ICASPL.EQ.'1UAC')GOTO32040
30618      IF(ICASPL.EQ.'2LAC')GOTO32040
30619      IF(ICASPL.EQ.'2UAC')GOTO32040
30620      IF(ICASPL.EQ.'1LEB')GOTO32050
30621      IF(ICASPL.EQ.'1UEB')GOTO32050
30622      IF(ICASPL.EQ.'2LEB')GOTO32050
30623      IF(ICASPL.EQ.'2UEB')GOTO32050
30624      IF(ICASPL.EQ.'ADKS')GOTO32060
30625      IF(ICASPL.EQ.'ADKC')GOTO32060
30626      IF(ICASPL.EQ.'KS2S')GOTO33100
30627      IF(ICASPL.EQ.'KSCV')GOTO33100
30628      IF(ICASPL.EQ.'CS2S')GOTO33105
30629      IF(ICASPL.EQ.'CC2S')GOTO33105
30630      IF(ICASPL.EQ.'CP2S')GOTO33105
30631      IF(ICASPL.EQ.'WSHA')GOTO33110
30632      IF(ICASPL.EQ.'WSPV')GOTO33110
30633      IF(ICASPL.EQ.'CSFT')GOTO33120
30634      IF(ICASPL.EQ.'CSFP')GOTO33120
30635      IF(ICASPL.EQ.'CSBT')GOTO33120
30636      IF(ICASPL.EQ.'CSBP')GOTO33120
30637      IF(ICASPL.EQ.'1LNT')GOTO33130
30638      IF(ICASPL.EQ.'1UNT')GOTO33130
30639      IF(ICASPL.EQ.'1KNT')GOTO33130
30640      IF(ICASPL.EQ.'2LNT')GOTO33130
30641      IF(ICASPL.EQ.'2UNT')GOTO33130
30642      IF(ICASPL.EQ.'2KNT')GOTO33130
30643      IF(ICASPL.EQ.'FTCD')GOTO33140
30644      IF(ICASPL.EQ.'FTPV')GOTO33140
30645      IF(ICASPL.EQ.'FTES')GOTO33140
30646      IF(ICASPL.EQ.'1STE')GOTO33150
30647      IF(ICASPL.EQ.'1SCD')GOTO33150
30648      IF(ICASPL.EQ.'1S2P')GOTO33150
30649      IF(ICASPL.EQ.'1SLP')GOTO33150
30650      IF(ICASPL.EQ.'1SUP')GOTO33150
30651      IF(ICASPL.EQ.'2STE')GOTO33160
30652      IF(ICASPL.EQ.'2SCD')GOTO33160
30653      IF(ICASPL.EQ.'2S2P')GOTO33160
30654      IF(ICASPL.EQ.'2SLP')GOTO33160
30655      IF(ICASPL.EQ.'2SUP')GOTO33160
30656      IF(ICASPL.EQ.'2SFR')GOTO33165
30657      IF(ICASPL.EQ.'2F2P')GOTO33165
30658      IF(ICASPL.EQ.'2F1P')GOTO33165
30659      IF(ICASPL.EQ.'WABA')GOTO33170
30660      IF(ICASPL.EQ.'WBBA')GOTO33170
30661      IF(ICASPL.EQ.'LABA')GOTO33170
30662      IF(ICASPL.EQ.'LBBA')GOTO33170
30663      IF(ICASPL.EQ.'NABA')GOTO33170
30664      IF(ICASPL.EQ.'NBBA')GOTO33170
30665      IF(ICASPL.EQ.'ZABA')GOTO33170
30666      IF(ICASPL.EQ.'ZBBA')GOTO33170
30667      IF(ICASPL.EQ.'1WTE')GOTO34000
30668      IF(ICASPL.EQ.'1WCD')GOTO34000
30669      IF(ICASPL.EQ.'1W2P')GOTO34000
30670      IF(ICASPL.EQ.'1WLP')GOTO34000
30671      IF(ICASPL.EQ.'1WUP')GOTO34000
30672      IF(ICASPL.EQ.'2WTE')GOTO34010
30673      IF(ICASPL.EQ.'2WCD')GOTO34010
30674      IF(ICASPL.EQ.'2W2P')GOTO34010
30675      IF(ICASPL.EQ.'2WLP')GOTO34010
30676      IF(ICASPL.EQ.'2WUP')GOTO34010
30677      IF(ICASPL.EQ.'MWTE')GOTO34020
30678      IF(ICASPL.EQ.'MWCD')GOTO34020
30679      IF(ICASPL.EQ.'MW2P')GOTO34020
30680      IF(ICASPL.EQ.'MWLP')GOTO34020
30681      IF(ICASPL.EQ.'MWUP')GOTO34020
30682      IF(ICASPL.EQ.'MWUS')GOTO34020
30683      IF(ICASPL.EQ.'KLTE')GOTO34030
30684      IF(ICASPL.EQ.'KLCD')GOTO34030
30685      IF(ICASPL.EQ.'KL2P')GOTO34030
30686      IF(ICASPL.EQ.'KLLP')GOTO34030
30687      IF(ICASPL.EQ.'KLUP')GOTO34030
30688      IF(ICASPL.EQ.'KWTE')GOTO34035
30689      IF(ICASPL.EQ.'KWCD')GOTO34035
30690      IF(ICASPL.EQ.'KW2P')GOTO34035
30691      IF(ICASPL.EQ.'SRTE')GOTO34040
30692      IF(ICASPL.EQ.'SRCD')GOTO34040
30693      IF(ICASPL.EQ.'SR2P')GOTO34040
30694      IF(ICASPL.EQ.'SRLP')GOTO34040
30695      IF(ICASPL.EQ.'SRUP')GOTO34040
30696      IF(ICASPL.EQ.'METE')GOTO34050
30697      IF(ICASPL.EQ.'MECD')GOTO34050
30698      IF(ICASPL.EQ.'ME2P')GOTO34050
30699      IF(ICASPL.EQ.'FZTE')GOTO34060
30700      IF(ICASPL.EQ.'FZCD')GOTO34060
30701      IF(ICASPL.EQ.'FZ2P')GOTO34060
30702      IF(ICASPL.EQ.'QUTE')GOTO34070
30703      IF(ICASPL.EQ.'QUCD')GOTO34070
30704      IF(ICASPL.EQ.'QU2P')GOTO34070
30705      IF(ICASPL.EQ.'FMAT')GOTO34080
30706      IF(ICASPL.EQ.'LMAT')GOTO34080
30707      IF(ICASPL.EQ.'FNOM')GOTO34080
30708      IF(ICASPL.EQ.'LNOM')GOTO34080
30709      IF(ICASPL.EQ.'SHDI')GOTO34090
30710      IF(ICASPL.EQ.'SHEI')GOTO34090
30711      IF(ICASPL.EQ.'SINR')GOTO34095
30712      IF(ICASPL.EQ.'SEIR')GOTO34095
30713      IF(ICASPL.EQ.'SIDI')GOTO34100
30714      IF(ICASPL.EQ.'SDIR')GOTO34105
30715      IF(ICASPL.EQ.'JABE')GOTO34110
30716      IF(ICASPL.EQ.'JAPV')GOTO34110
30717      IF(ICASPL.EQ.'JACD')GOTO34110
30718      IF(ICASPL.EQ.'LCL ')GOTO34120
30719      IF(ICASPL.EQ.'UCL ')GOTO34120
30720      IF(ICASPL.EQ.'1LCL')GOTO34120
30721      IF(ICASPL.EQ.'1UCL')GOTO34120
30722      IF(ICASPL.EQ.'SLCL')GOTO34120
30723      IF(ICASPL.EQ.'SUCL')GOTO34120
30724      IF(ICASPL.EQ.'SLC1')GOTO34120
30725      IF(ICASPL.EQ.'SUC1')GOTO34120
30726      IF(ICASPL.EQ.'LPL ')GOTO34130
30727      IF(ICASPL.EQ.'UPL ')GOTO34130
30728      IF(ICASPL.EQ.'1LPL')GOTO34130
30729      IF(ICASPL.EQ.'1UPL')GOTO34130
30730      IF(ICASPL.EQ.'LPB ')GOTO34130
30731      IF(ICASPL.EQ.'UPB ')GOTO34130
30732      IF(ICASPL.EQ.'1LPB')GOTO34130
30733      IF(ICASPL.EQ.'1UPB')GOTO34130
30734      IF(ICASPL.EQ.'SLPL')GOTO34130
30735      IF(ICASPL.EQ.'SUPL')GOTO34130
30736      IF(ICASPL.EQ.'SLP1')GOTO34130
30737      IF(ICASPL.EQ.'SUP1')GOTO34130
30738      IF(ICASPL.EQ.'SLPB')GOTO34130
30739      IF(ICASPL.EQ.'SUPB')GOTO34130
30740      IF(ICASPL.EQ.'SLB1')GOTO34130
30741      IF(ICASPL.EQ.'SUB1')GOTO34130
30742      IF(ICASPL.EQ.'SUS1')GOTO34130
30743      IF(ICASPL.EQ.'SLS1')GOTO34130
30744      IF(ICASPL.EQ.'SUS2')GOTO34130
30745      IF(ICASPL.EQ.'SLS2')GOTO34130
30746      IF(ICASPL.EQ.'UPS1')GOTO34130
30747      IF(ICASPL.EQ.'LPS1')GOTO34130
30748      IF(ICASPL.EQ.'UPS2')GOTO34130
30749      IF(ICASPL.EQ.'LPS2')GOTO34130
30750      IF(ICASPL.EQ.'UCS1')GOTO34140
30751      IF(ICASPL.EQ.'LCS1')GOTO34140
30752      IF(ICASPL.EQ.'UCS2')GOTO34140
30753      IF(ICASPL.EQ.'LCS2')GOTO34140
30754      IF(ICASPL.EQ.'SLZ1')GOTO34140
30755      IF(ICASPL.EQ.'SUZ1')GOTO34140
30756      IF(ICASPL.EQ.'SLZ2')GOTO34140
30757      IF(ICASPL.EQ.'SUZ2')GOTO34140
30758      IF(ICASPL.EQ.'BLSD')GOTO34145
30759      IF(ICASPL.EQ.'BUSD')GOTO34145
30760      IF(ICASPL.EQ.'MWLT')GOTO34150
30761      IF(ICASPL.EQ.'MWLC')GOTO34150
30762      IF(ICASPL.EQ.'MWPV')GOTO34150
30763      IF(ICASPL.EQ.'MW50')GOTO34150
30764      IF(ICASPL.EQ.'MW90')GOTO34150
30765      IF(ICASPL.EQ.'MW95')GOTO34150
30766      IF(ICASPL.EQ.'PDTE')GOTO34160
30767      IF(ICASPL.EQ.'PDCD')GOTO34160
30768      IF(ICASPL.EQ.'PDPV')GOTO34160
30769      IF(ICASPL.EQ.'GPDT')GOTO34170
30770      IF(ICASPL.EQ.'GPDC')GOTO34170
30771      IF(ICASPL.EQ.'GPDP')GOTO34170
30772      IF(ICASPL.EQ.'BCVM')GOTO34180
30773      IF(ICASPL.EQ.'BC95')GOTO34180
30774      IF(ICASPL.EQ.'BC05')GOTO34180
30775      IF(ICASPL.EQ.'MNNC')GOTO34190
30776      IF(ICASPL.EQ.'MNND')GOTO34190
30777      IF(ICASPL.EQ.'MNNP')GOTO34190
30778      IF(ICASPL.EQ.'PO1P')GOTO34200
30779      IF(ICASPL.EQ.'PO1C')GOTO34200
30780      IF(ICASPL.EQ.'POL1')GOTO34200
30781      IF(ICASPL.EQ.'PO2P')GOTO34200
30782      IF(ICASPL.EQ.'PO2C')GOTO34200
30783      IF(ICASPL.EQ.'POL2')GOTO34200
30784      IF(ICASPL.EQ.'PO3P')GOTO34200
30785      IF(ICASPL.EQ.'PO3C')GOTO34200
30786      IF(ICASPL.EQ.'POL3')GOTO34200
30787      IF(ICASPL.EQ.'PO4P')GOTO34200
30788      IF(ICASPL.EQ.'PO4C')GOTO34200
30789      IF(ICASPL.EQ.'POL4')GOTO34200
30790      IF(ICASPL.EQ.'PO5P')GOTO34200
30791      IF(ICASPL.EQ.'PO5C')GOTO34200
30792      IF(ICASPL.EQ.'POL5')GOTO34200
30793      IF(ICASPL.EQ.'VALC')GOTO34210
30794      IF(ICASPL.EQ.'VDIS')GOTO34220
30795      IF(ICASPL.EQ.'RDI ')GOTO34220
30796      IF(ICASPL.EQ.'UCHS')GOTO34220
30797      IF(ICASPL.EQ.'WSCD')GOTO34230
30798      IF(ICASPL.EQ.'WSHP')GOTO34230
30799      IF(ICASPL.EQ.'WSHT')GOTO34230
30800      IF(ICASPL.EQ.'WS90')GOTO34230
30801      IF(ICASPL.EQ.'WS95')GOTO34230
30802      IF(ICASPL.EQ.'WS99')GOTO34230
30803      IF(ICASPL.EQ.'KAPR')GOTO34240
30804      IF(ICASPL.EQ.'KARC')GOTO34240
30805      IF(ICASPL.EQ.'CVOT')GOTO34260
30806      IF(ICASPL.EQ.'CV95')GOTO34260
30807      IF(ICASPL.EQ.'CV99')GOTO34260
30808      IF(ICASPL.EQ.'CVCD')GOTO34260
30809      IF(ICASPL.EQ.'CVPV')GOTO34260
30810      IF(ICASPL.EQ.'CV05')GOTO34260
30811      IF(ICASPL.EQ.'CV01')GOTO34260
30812      IF(ICASPL.EQ.'CMVC')GOTO34260
30813      IF(ICASPL.EQ.'CMVP')GOTO34260
30814      IF(ICASPL.EQ.'CVMO')GOTO34260
30815      IF(ICASPL.EQ.'ESCD')GOTO34270
30816      IF(ICASPL.EQ.'ESCV')GOTO34270
30817      IF(ICASPL.EQ.'ESPV')GOTO34270
30818      IF(ICASPL.EQ.'ESP1')GOTO34270
30819      IF(ICASPL.EQ.'ESLO')GOTO34270
30820      IF(ICASPL.EQ.'DSLA' .AND. NUMV2.EQ.3)GOTO32100
30821      IF(ICASPL.EQ.'DHHD' .AND. NUMV2.EQ.3)GOTO32100
30822      IF(ICASPL.EQ.'DSMM' .AND. NUMV2.EQ.3)GOTO32100
30823      IF(ICASPL.EQ.'DSSE' .AND. NUMV2.EQ.3)GOTO32100
30824      IF(ICASPL.EQ.'MPAU' .AND. NUMV2.EQ.3)GOTO32200
30825      IF(ICASPL.EQ.'MPSE' .AND. NUMV2.EQ.3)GOTO32200
30826      IF(ICASPL.EQ.'MMPA' .AND. NUMV2.EQ.3)GOTO32200
30827      IF(ICASPL.EQ.'MMPS' .AND. NUMV2.EQ.3)GOTO32200
30828      IF(ICASPL.EQ.'VARU' .AND. NUMV2.EQ.3)GOTO32200
30829      IF(ICASPL.EQ.'VRSE' .AND. NUMV2.EQ.3)GOTO32200
30830      IF(ICASPL.EQ.'BOB ' .AND. NUMV2.EQ.3)GOTO32300
30831      IF(ICASPL.EQ.'BOBS' .AND. NUMV2.EQ.3)GOTO32300
30832      IF(ICASPL.EQ.'GCIN' .AND. NUMV2.EQ.3)GOTO32400
30833      IF(ICASPL.EQ.'GCIS' .AND. NUMV2.EQ.3)GOTO32400
30834      IF(ICASPL.EQ.'BCP ' .AND. NUMV2.EQ.3)GOTO32500
30835      IF(ICASPL.EQ.'BCPS' .AND. NUMV2.EQ.3)GOTO32500
30836      IF(ICASPL.EQ.'MMEA' .AND. NUMV2.EQ.3)GOTO32600
30837      IF(ICASPL.EQ.'MMES' .AND. NUMV2.EQ.3)GOTO32600
30838      IF(ICASPL.EQ.'FAIR' .AND. NUMV2.EQ.3)GOTO32700
30839      IF(ICASPL.EQ.'FWSE' .AND. NUMV2.EQ.3)GOTO32700
30840      IF(ICASPL.EQ.'GDEA' .AND. NUMV2.EQ.3)GOTO32800
30841      IF(ICASPL.EQ.'GDSE' .AND. NUMV2.EQ.3)GOTO32800
30842      IF(ICASPL.EQ.'GDSN' .AND. NUMV2.EQ.3)GOTO32800
30843      IF(ICASPL.EQ.'GDZ1' .AND. NUMV2.EQ.3)GOTO32800
30844      IF(ICASPL.EQ.'GDZ2' .AND. NUMV2.EQ.3)GOTO32800
30845      IF(ICASPL.EQ.'SCEB' .AND. NUMV2.EQ.3)GOTO32900
30846      IF(ICASPL.EQ.'SESE' .AND. NUMV2.EQ.3)GOTO32900
30847      IF(ICASPL.EQ.'DSLA' .AND. NUMV2.EQ.2)GOTO32070
30848      IF(ICASPL.EQ.'DHHD' .AND. NUMV2.EQ.2)GOTO32070
30849      IF(ICASPL.EQ.'DSMM' .AND. NUMV2.EQ.2)GOTO32070
30850      IF(ICASPL.EQ.'DSSE' .AND. NUMV2.EQ.2)GOTO32070
30851      IF(ICASPL.EQ.'MPAU' .AND. NUMV2.EQ.2)GOTO32070
30852      IF(ICASPL.EQ.'MPSE' .AND. NUMV2.EQ.2)GOTO32070
30853      IF(ICASPL.EQ.'MMPA' .AND. NUMV2.EQ.2)GOTO32070
30854      IF(ICASPL.EQ.'MMPS' .AND. NUMV2.EQ.2)GOTO32070
30855      IF(ICASPL.EQ.'VARU' .AND. NUMV2.EQ.2)GOTO32070
30856      IF(ICASPL.EQ.'VRSE' .AND. NUMV2.EQ.2)GOTO32070
30857      IF(ICASPL.EQ.'BOB ' .AND. NUMV2.EQ.2)GOTO32070
30858      IF(ICASPL.EQ.'BOBS' .AND. NUMV2.EQ.2)GOTO32070
30859      IF(ICASPL.EQ.'GCIN' .AND. NUMV2.EQ.2)GOTO32070
30860      IF(ICASPL.EQ.'GCIS' .AND. NUMV2.EQ.2)GOTO32070
30861      IF(ICASPL.EQ.'BCP ' .AND. NUMV2.EQ.2)GOTO32070
30862      IF(ICASPL.EQ.'BCPS' .AND. NUMV2.EQ.2)GOTO32070
30863      IF(ICASPL.EQ.'MMEA' .AND. NUMV2.EQ.2)GOTO32070
30864      IF(ICASPL.EQ.'MMES' .AND. NUMV2.EQ.2)GOTO32070
30865      IF(ICASPL.EQ.'FAIR' .AND. NUMV2.EQ.2)GOTO32070
30866      IF(ICASPL.EQ.'FWSE' .AND. NUMV2.EQ.2)GOTO32070
30867      IF(ICASPL.EQ.'GDEA' .AND. NUMV2.EQ.2)GOTO32070
30868      IF(ICASPL.EQ.'GDSE' .AND. NUMV2.EQ.2)GOTO32070
30869      IF(ICASPL.EQ.'GDSN' .AND. NUMV2.EQ.2)GOTO32070
30870      IF(ICASPL.EQ.'GDZ1' .AND. NUMV2.EQ.2)GOTO32070
30871      IF(ICASPL.EQ.'GDZ2' .AND. NUMV2.EQ.2)GOTO32070
30872      IF(ICASPL.EQ.'SCEB' .AND. NUMV2.EQ.2)GOTO32070
30873      IF(ICASPL.EQ.'SESE' .AND. NUMV2.EQ.2)GOTO32070
30874C
30875      IF(ICASPL.EQ.'DMEA')GOTO12180
30876      IF(ICASPL.EQ.'HEDG')GOTO12182
30877      IF(ICASPL.EQ.'BCHG')GOTO12182
30878      IF(ICASPL.EQ.'HESE')GOTO12182
30879      IF(ICASPL.EQ.'HELC')GOTO12182
30880      IF(ICASPL.EQ.'HEUC')GOTO12182
30881      IF(ICASPL.EQ.'COHD')GOTO12182
30882      IF(ICASPL.EQ.'GLAS')GOTO12182
30883      IF(ICASPL.EQ.'DMDM')GOTO12190
30884      IF(ICASPL.EQ.'DMED')GOTO12200
30885      IF(ICASPL.EQ.'DGEO')GOTO12230
30886      IF(ICASPL.EQ.'DHAR')GOTO12240
30887      IF(ICASPL.EQ.'DHDL')GOTO12250
30888      IF(ICASPL.EQ.'DBIW')GOTO12260
30889      IF(ICASPL.EQ.'DSD ')GOTO12270
30890      IF(ICASPL.EQ.'DRMS ')GOTO12275
30891      IF(ICASPL.EQ.'DVAR')GOTO12280
30892      IF(ICASPL.EQ.'DPRE')GOTO12282
30893      IF(ICASPL.EQ.'DSNR')GOTO12284
30894      IF(ICASPL.EQ.'DAAD')GOTO12290
30895      IF(ICASPL.EQ.'DAAM')GOTO12295
30896      IF(ICASPL.EQ.'DMAD')GOTO12300
30897      IF(ICASPL.EQ.'DMAN')GOTO12300
30898      IF(ICASPL.EQ.'DIQR')GOTO12310
30899      IF(ICASPL.EQ.'DNIQ')GOTO12310
30900      IF(ICASPL.EQ.'DBIM')GOTO12340
30901      IF(ICASPL.EQ.'DBIS')GOTO12350
30902      IF(ICASPL.EQ.'DGSD')GOTO12370
30903      IF(ICASPL.EQ.'DRAN')GOTO12380
30904C
30905      IF(ICASPL.EQ.'EXTR')GOTO11933
30906      IF(ICASPL.EQ.'AAD ')GOTO11935
30907      IF(ICASPL.EQ.'MAD ')GOTO11940
30908      IF(ICASPL.EQ.'MADN')GOTO11940
30909      IF(ICASPL.EQ.'GEME')GOTO11950
30910      IF(ICASPL.EQ.'GESD')GOTO11960
30911      IF(ICASPL.EQ.'HAME')GOTO11970
30912      IF(ICASPL.EQ.'IQRA')GOTO11980
30913      IF(ICASPL.EQ.'NIQR')GOTO11980
30914      IF(ICASPL.EQ.'SIQL')GOTO11980
30915      IF(ICASPL.EQ.'SIQU')GOTO11980
30916      IF(ICASPL.EQ.'QCDI')GOTO11981
30917      IF(ICASPL.EQ.'QQRA')GOTO11982
30918      IF(ICASPL.EQ.'DQDI')GOTO11983
30919      IF(ICASPL.EQ.'BILO')GOTO11990
30920      IF(ICASPL.EQ.'BISC')GOTO12000
30921      IF(ICASPL.EQ.'BIMV')GOTO12090
30922      IF(ICASPL.EQ.'BIMC')GOTO12100
30923C
30924      IF(ICASPL.EQ.'PBMV' .OR. ICASPL.EQ.'PBCR' .OR.
30925     1   ICASPL.EQ.'DPBN')THEN
30926C
30927        IHP='BETA'
30928        IHP2='    '
30929        IHWUSE='P'
30930        MESSAG='NO'
30931        CALL CHECKN(IHP,IHP2,IHWUSE,
30932     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
30933     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
30934        IF(IERROR.EQ.'YES')THEN
30935          BETA=0.1
30936        ELSE
30937          BETA=VALUE(ILOCP)
30938        ENDIF
30939C
30940        IF(ICASPL.EQ.'PBMV')GOTO12110
30941        IF(ICASPL.EQ.'PBCR')GOTO12115
30942        IF(ICASPL.EQ.'DPBN')GOTO12360
30943      ENDIF
30944C
30945      IF(ICASPL.EQ.'HLEH')GOTO12120
30946      IF(ICASPL.EQ.'QUAN')GOTO12130
30947      IF(ICASPL.EQ.'QUSE')GOTO12140
30948      IF(ICASPL.EQ.'BICR')GOTO12160
30949      IF(ICASPL.EQ.'CDIG')GOTO12172
30950      IF(ICASPL.EQ.'NCDI')GOTO12174
30951      IF(ICASPL.EQ.'SNSC')GOTO12176
30952      IF(ICASPL.EQ.'QNSC')GOTO12178
30953C
30954      IF(ICASPL.EQ.'LPME' .OR. ICASPL.EQ.'LPVA' .OR.
30955     1   ICASPL.EQ.'LPSD' .OR. ICASPL.EQ.'DLPL' .OR.
30956     1   ICASPL.EQ.'DLPV' .OR. ICASPL.EQ.'DLPS')THEN
30957C
30958        IHP='P   '
30959        IHP2='    '
30960        IHWUSE='P'
30961        MESSAG='NO'
30962        CALL CHECKN(IHP,IHP2,IHWUSE,
30963     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
30964     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
30965        IF(IERROR.EQ.'YES')THEN
30966          P=1.5
30967        ELSE
30968          P=VALUE(ILOCP)
30969        ENDIF
30970C
30971        IF(ICASPL.EQ.'LPME')GOTO31720
30972        IF(ICASPL.EQ.'LPVA')GOTO31730
30973        IF(ICASPL.EQ.'LPSD')GOTO31740
30974        IF(ICASPL.EQ.'DLPL')GOTO12540
30975        IF(ICASPL.EQ.'DLPV')GOTO12550
30976        IF(ICASPL.EQ.'DLPS')GOTO12560
30977      ENDIF
30978C
30979      IF(ICASPL.EQ.'BPRO')GOTO31750
30980      IF(ICASPL.EQ.'BPLC')GOTO31750
30981      IF(ICASPL.EQ.'BPUC')GOTO31750
30982      IF(ICASPL.EQ.'BPRC')GOTO31750
30983      IF(ICASPL.EQ.'GRUB')GOTO31790
30984      IF(ICASPL.EQ.'GCDF')GOTO31795
30985      IF(ICASPL.EQ.'GDIR')GOTO31810
30986      IF(ICASPL.EQ.'GIND')GOTO31820
30987      IF(ICASPL.EQ.'1TTE')GOTO31830
30988      IF(ICASPL.EQ.'1TCD')GOTO31830
30989      IF(ICASPL.EQ.'1T2P')GOTO31830
30990      IF(ICASPL.EQ.'1TLP')GOTO31830
30991      IF(ICASPL.EQ.'1TUP')GOTO31830
30992      IF(ICASPL.EQ.'2TTE')GOTO31840
30993      IF(ICASPL.EQ.'2TCD')GOTO31840
30994      IF(ICASPL.EQ.'2T2P')GOTO31840
30995      IF(ICASPL.EQ.'2TLP')GOTO31840
30996      IF(ICASPL.EQ.'2TUP')GOTO31840
30997      IF(ICASPL.EQ.'PTTE')GOTO31845
30998      IF(ICASPL.EQ.'PTCD')GOTO31845
30999      IF(ICASPL.EQ.'PT2P')GOTO31845
31000      IF(ICASPL.EQ.'PTLP')GOTO31845
31001      IF(ICASPL.EQ.'PTUP')GOTO31845
31002      IF(ICASPL.EQ.'CSSD')GOTO31850
31003      IF(ICASPL.EQ.'CCDF')GOTO31850
31004      IF(ICASPL.EQ.'CS2P')GOTO31850
31005      IF(ICASPL.EQ.'CSLP')GOTO31850
31006      IF(ICASPL.EQ.'CSUP')GOTO31850
31007      IF(ICASPL.EQ.'FRET')GOTO31870
31008      IF(ICASPL.EQ.'FRCD')GOTO31880
31009      IF(ICASPL.EQ.'FBLO')GOTO31890
31010      IF(ICASPL.EQ.'FBCD')GOTO31900
31011      IF(ICASPL.EQ.'MSDT')GOTO31905
31012      IF(ICASPL.EQ.'MSDN')GOTO31905
31013      IF(ICASPL.EQ.'MSDC')GOTO31905
31014      IF(ICASPL.EQ.'MSDP')GOTO31905
31015      IF(ICASPL.EQ.'ADRA')GOTO31905
31016      IF(ICASPL.EQ.'ADCD')GOTO31905
31017      IF(ICASPL.EQ.'ADPV')GOTO31905
31018      IF(ICASPL.EQ.'AD01')GOTO31905
31019      IF(ICASPL.EQ.'AD05')GOTO31905
31020      IF(ICASPL.EQ.'AD95')GOTO31905
31021      IF(ICASPL.EQ.'AD99')GOTO31905
31022      IF(ICASPL.EQ.'H10L')GOTO31910
31023      IF(ICASPL.EQ.'H12L')GOTO31920
31024      IF(ICASPL.EQ.'H15L')GOTO31930
31025      IF(ICASPL.EQ.'H17L')GOTO31940
31026      IF(ICASPL.EQ.'H20L')GOTO31950
31027      IF(ICASPL.EQ.'H10S')GOTO31960
31028      IF(ICASPL.EQ.'H12S')GOTO31970
31029      IF(ICASPL.EQ.'H15S')GOTO31980
31030      IF(ICASPL.EQ.'H17S')GOTO31990
31031      IF(ICASPL.EQ.'H20S')GOTO32000
31032      IF(ICASPL.EQ.'TM2S')GOTO32010
31033      IF(ICASPL.EQ.'TMMN')GOTO32010
31034      IF(ICASPL.EQ.'TMMX')GOTO32010
31035      IF(ICASPL.EQ.'ESD ')GOTO32020
31036      IF(ICASPL.EQ.'DI2S')GOTO32030
31037      IF(ICASPL.EQ.'DIMN')GOTO32030
31038      IF(ICASPL.EQ.'DIMX')GOTO32030
31039      IF(ICASPL.EQ.'1LAC')GOTO32040
31040      IF(ICASPL.EQ.'1UAC')GOTO32040
31041      IF(ICASPL.EQ.'2LAC')GOTO32040
31042      IF(ICASPL.EQ.'2UAC')GOTO32040
31043      IF(ICASPL.EQ.'1LEB')GOTO32050
31044      IF(ICASPL.EQ.'1UEB')GOTO32050
31045      IF(ICASPL.EQ.'2LEB')GOTO32050
31046      IF(ICASPL.EQ.'2UEB')GOTO32050
31047      IF(ICASPL.EQ.'ADKS')GOTO32060
31048      IF(ICASPL.EQ.'ADKC')GOTO32060
31049      IF(ICASPL.EQ.'KS2S')GOTO33100
31050      IF(ICASPL.EQ.'KSCV')GOTO33100
31051      IF(ICASPL.EQ.'CS2S')GOTO33105
31052      IF(ICASPL.EQ.'CC2S')GOTO33105
31053      IF(ICASPL.EQ.'CP2S')GOTO33105
31054      IF(ICASPL.EQ.'WSHA')GOTO33110
31055      IF(ICASPL.EQ.'WSPV')GOTO33110
31056      IF(ICASPL.EQ.'CSFT')GOTO33120
31057      IF(ICASPL.EQ.'CSFP')GOTO33120
31058      IF(ICASPL.EQ.'CSBT')GOTO33120
31059      IF(ICASPL.EQ.'CSBP')GOTO33120
31060      IF(ICASPL.EQ.'1LNT')GOTO33130
31061      IF(ICASPL.EQ.'1UNT')GOTO33130
31062      IF(ICASPL.EQ.'1KNT')GOTO33130
31063      IF(ICASPL.EQ.'2LNT')GOTO33130
31064      IF(ICASPL.EQ.'2UNT')GOTO33130
31065      IF(ICASPL.EQ.'2KNT')GOTO33130
31066      IF(ICASPL.EQ.'FTCD')GOTO33140
31067      IF(ICASPL.EQ.'FTPV')GOTO33140
31068      IF(ICASPL.EQ.'FTES')GOTO33140
31069      IF(ICASPL.EQ.'1STE')GOTO33150
31070      IF(ICASPL.EQ.'1SCD')GOTO33150
31071      IF(ICASPL.EQ.'1S2P')GOTO33150
31072      IF(ICASPL.EQ.'1SLP')GOTO33150
31073      IF(ICASPL.EQ.'1SUP')GOTO33150
31074      IF(ICASPL.EQ.'2STE')GOTO33160
31075      IF(ICASPL.EQ.'2SCD')GOTO33160
31076      IF(ICASPL.EQ.'2S2P')GOTO33160
31077      IF(ICASPL.EQ.'2SLP')GOTO33160
31078      IF(ICASPL.EQ.'2SUP')GOTO33160
31079      IF(ICASPL.EQ.'2SFR')GOTO33165
31080      IF(ICASPL.EQ.'2F2P')GOTO33165
31081      IF(ICASPL.EQ.'2F1P')GOTO33165
31082      IF(ICASPL.EQ.'WABA')GOTO33170
31083      IF(ICASPL.EQ.'WBBA')GOTO33170
31084      IF(ICASPL.EQ.'LABA')GOTO33170
31085      IF(ICASPL.EQ.'LBBA')GOTO33170
31086      IF(ICASPL.EQ.'NABA')GOTO33170
31087      IF(ICASPL.EQ.'NBBA')GOTO33170
31088      IF(ICASPL.EQ.'ZABA')GOTO33170
31089      IF(ICASPL.EQ.'ZBBA')GOTO33170
31090      IF(ICASPL.EQ.'1WTE')GOTO34000
31091      IF(ICASPL.EQ.'1WCD')GOTO34000
31092      IF(ICASPL.EQ.'1W2P')GOTO34000
31093      IF(ICASPL.EQ.'1WLP')GOTO34000
31094      IF(ICASPL.EQ.'1WUP')GOTO34000
31095      IF(ICASPL.EQ.'2WTE')GOTO34010
31096      IF(ICASPL.EQ.'2WCD')GOTO34010
31097      IF(ICASPL.EQ.'2W2P')GOTO34010
31098      IF(ICASPL.EQ.'2WLP')GOTO34010
31099      IF(ICASPL.EQ.'2WUP')GOTO34010
31100      IF(ICASPL.EQ.'MWTE')GOTO34020
31101      IF(ICASPL.EQ.'MWCD')GOTO34020
31102      IF(ICASPL.EQ.'MW2P')GOTO34020
31103      IF(ICASPL.EQ.'MWLP')GOTO34020
31104      IF(ICASPL.EQ.'MWUP')GOTO34020
31105      IF(ICASPL.EQ.'MWUS')GOTO34020
31106      IF(ICASPL.EQ.'KLTE')GOTO34030
31107      IF(ICASPL.EQ.'KLCD')GOTO34030
31108      IF(ICASPL.EQ.'KL2P')GOTO34030
31109      IF(ICASPL.EQ.'KLLP')GOTO34030
31110      IF(ICASPL.EQ.'KLUP')GOTO34030
31111      IF(ICASPL.EQ.'KWTE')GOTO34035
31112      IF(ICASPL.EQ.'KWCD')GOTO34035
31113      IF(ICASPL.EQ.'KW2P')GOTO34035
31114      IF(ICASPL.EQ.'SRTE')GOTO34040
31115      IF(ICASPL.EQ.'SRCD')GOTO34040
31116      IF(ICASPL.EQ.'SR2P')GOTO34040
31117      IF(ICASPL.EQ.'SRLP')GOTO34040
31118      IF(ICASPL.EQ.'SRUP')GOTO34040
31119      IF(ICASPL.EQ.'METE')GOTO34050
31120      IF(ICASPL.EQ.'MECD')GOTO34050
31121      IF(ICASPL.EQ.'ME2P')GOTO34050
31122      IF(ICASPL.EQ.'FZTE')GOTO34060
31123      IF(ICASPL.EQ.'FZCD')GOTO34060
31124      IF(ICASPL.EQ.'FZ2P')GOTO34060
31125      IF(ICASPL.EQ.'QUTE')GOTO34070
31126      IF(ICASPL.EQ.'QUCD')GOTO34070
31127      IF(ICASPL.EQ.'QU2P')GOTO34070
31128      IF(ICASPL.EQ.'PATE')GOTO34075
31129      IF(ICASPL.EQ.'PAT2')GOTO34075
31130      IF(ICASPL.EQ.'PACD')GOTO34075
31131      IF(ICASPL.EQ.'PAPV')GOTO34075
31132      IF(ICASPL.EQ.'FMAT')GOTO34080
31133      IF(ICASPL.EQ.'LMAT')GOTO34080
31134      IF(ICASPL.EQ.'FNOM')GOTO34080
31135      IF(ICASPL.EQ.'LNOM')GOTO34080
31136      IF(ICASPL.EQ.'SHDI')GOTO34090
31137      IF(ICASPL.EQ.'SHEI')GOTO34090
31138      IF(ICASPL.EQ.'SINR')GOTO34095
31139      IF(ICASPL.EQ.'SEIR')GOTO34095
31140      IF(ICASPL.EQ.'SIDI')GOTO34100
31141      IF(ICASPL.EQ.'SDIR')GOTO34105
31142      IF(ICASPL.EQ.'JABE')GOTO34110
31143      IF(ICASPL.EQ.'JAPV')GOTO34110
31144      IF(ICASPL.EQ.'JACD')GOTO34110
31145      IF(ICASPL.EQ.'LCL ')GOTO34120
31146      IF(ICASPL.EQ.'UCL ')GOTO34120
31147      IF(ICASPL.EQ.'1LCL')GOTO34120
31148      IF(ICASPL.EQ.'1UCL')GOTO34120
31149      IF(ICASPL.EQ.'LPL ')GOTO34130
31150      IF(ICASPL.EQ.'UPL ')GOTO34130
31151      IF(ICASPL.EQ.'1LPL')GOTO34130
31152      IF(ICASPL.EQ.'1UPL')GOTO34130
31153      IF(ICASPL.EQ.'LPB ')GOTO34130
31154      IF(ICASPL.EQ.'UPB ')GOTO34130
31155      IF(ICASPL.EQ.'1LPB')GOTO34130
31156      IF(ICASPL.EQ.'1UPB')GOTO34130
31157      IF(ICASPL.EQ.'DSLA' .AND. NUMV2.EQ.3)GOTO32100
31158      IF(ICASPL.EQ.'DHHD' .AND. NUMV2.EQ.3)GOTO32100
31159      IF(ICASPL.EQ.'DSMM' .AND. NUMV2.EQ.3)GOTO32100
31160      IF(ICASPL.EQ.'DSSE' .AND. NUMV2.EQ.3)GOTO32100
31161      IF(ICASPL.EQ.'MPAU' .AND. NUMV2.EQ.3)GOTO32200
31162      IF(ICASPL.EQ.'MPSE' .AND. NUMV2.EQ.3)GOTO32200
31163      IF(ICASPL.EQ.'MMPA' .AND. NUMV2.EQ.3)GOTO32200
31164      IF(ICASPL.EQ.'MMPS' .AND. NUMV2.EQ.3)GOTO32200
31165      IF(ICASPL.EQ.'VARU' .AND. NUMV2.EQ.3)GOTO32200
31166      IF(ICASPL.EQ.'VRSE' .AND. NUMV2.EQ.3)GOTO32200
31167      IF(ICASPL.EQ.'BOB ' .AND. NUMV2.EQ.3)GOTO32300
31168      IF(ICASPL.EQ.'BOBS' .AND. NUMV2.EQ.3)GOTO32300
31169      IF(ICASPL.EQ.'GCIN' .AND. NUMV2.EQ.3)GOTO32400
31170      IF(ICASPL.EQ.'GCIS' .AND. NUMV2.EQ.3)GOTO32400
31171      IF(ICASPL.EQ.'BCP ' .AND. NUMV2.EQ.3)GOTO32500
31172      IF(ICASPL.EQ.'BCPS' .AND. NUMV2.EQ.3)GOTO32500
31173      IF(ICASPL.EQ.'MMEA' .AND. NUMV2.EQ.3)GOTO32600
31174      IF(ICASPL.EQ.'MMES' .AND. NUMV2.EQ.3)GOTO32600
31175      IF(ICASPL.EQ.'FAIR' .AND. NUMV2.EQ.3)GOTO32700
31176      IF(ICASPL.EQ.'FWSE' .AND. NUMV2.EQ.3)GOTO32700
31177      IF(ICASPL.EQ.'GDEA' .AND. NUMV2.EQ.3)GOTO32800
31178      IF(ICASPL.EQ.'GDSE' .AND. NUMV2.EQ.3)GOTO32800
31179      IF(ICASPL.EQ.'GDSN' .AND. NUMV2.EQ.3)GOTO32800
31180      IF(ICASPL.EQ.'GDZ1' .AND. NUMV2.EQ.3)GOTO32800
31181      IF(ICASPL.EQ.'GDZ2' .AND. NUMV2.EQ.3)GOTO32800
31182      IF(ICASPL.EQ.'SCEB' .AND. NUMV2.EQ.3)GOTO32900
31183      IF(ICASPL.EQ.'SESE' .AND. NUMV2.EQ.3)GOTO32900
31184      IF(ICASPL.EQ.'DSLA' .AND. NUMV2.EQ.2)GOTO32070
31185      IF(ICASPL.EQ.'DHHD' .AND. NUMV2.EQ.2)GOTO32070
31186      IF(ICASPL.EQ.'DSMM' .AND. NUMV2.EQ.2)GOTO32070
31187      IF(ICASPL.EQ.'DSSE' .AND. NUMV2.EQ.2)GOTO32070
31188      IF(ICASPL.EQ.'MPAU' .AND. NUMV2.EQ.2)GOTO32070
31189      IF(ICASPL.EQ.'MPSE' .AND. NUMV2.EQ.2)GOTO32070
31190      IF(ICASPL.EQ.'MMPA' .AND. NUMV2.EQ.2)GOTO32070
31191      IF(ICASPL.EQ.'MMPS' .AND. NUMV2.EQ.2)GOTO32070
31192      IF(ICASPL.EQ.'VARU' .AND. NUMV2.EQ.2)GOTO32070
31193      IF(ICASPL.EQ.'VRSE' .AND. NUMV2.EQ.2)GOTO32070
31194      IF(ICASPL.EQ.'BOB ' .AND. NUMV2.EQ.2)GOTO32070
31195      IF(ICASPL.EQ.'BOBS' .AND. NUMV2.EQ.2)GOTO32070
31196      IF(ICASPL.EQ.'GCIN' .AND. NUMV2.EQ.2)GOTO32070
31197      IF(ICASPL.EQ.'GCIS' .AND. NUMV2.EQ.2)GOTO32070
31198      IF(ICASPL.EQ.'BCP ' .AND. NUMV2.EQ.2)GOTO32070
31199      IF(ICASPL.EQ.'BCPS' .AND. NUMV2.EQ.2)GOTO32070
31200      IF(ICASPL.EQ.'MMEA' .AND. NUMV2.EQ.2)GOTO32070
31201      IF(ICASPL.EQ.'MMES' .AND. NUMV2.EQ.2)GOTO32070
31202      IF(ICASPL.EQ.'FAIR' .AND. NUMV2.EQ.2)GOTO32070
31203      IF(ICASPL.EQ.'FWSE' .AND. NUMV2.EQ.2)GOTO32070
31204      IF(ICASPL.EQ.'GDEA' .AND. NUMV2.EQ.2)GOTO32070
31205      IF(ICASPL.EQ.'GDSE' .AND. NUMV2.EQ.2)GOTO32070
31206      IF(ICASPL.EQ.'GDSN' .AND. NUMV2.EQ.2)GOTO32070
31207      IF(ICASPL.EQ.'GDZ1' .AND. NUMV2.EQ.2)GOTO32070
31208      IF(ICASPL.EQ.'GDZ2' .AND. NUMV2.EQ.2)GOTO32070
31209      IF(ICASPL.EQ.'SCEB' .AND. NUMV2.EQ.2)GOTO32070
31210      IF(ICASPL.EQ.'SESE' .AND. NUMV2.EQ.2)GOTO32070
31211C
31212      IF(ICASPL.EQ.'DMEA')GOTO12180
31213      IF(ICASPL.EQ.'DMDM')GOTO12190
31214      IF(ICASPL.EQ.'DMED')GOTO12200
31215      IF(ICASPL.EQ.'DGEO')GOTO12230
31216      IF(ICASPL.EQ.'DHAR')GOTO12240
31217      IF(ICASPL.EQ.'DHDL')GOTO12250
31218      IF(ICASPL.EQ.'DBIW')GOTO12260
31219      IF(ICASPL.EQ.'DSD ')GOTO12270
31220      IF(ICASPL.EQ.'DRMS ')GOTO12275
31221      IF(ICASPL.EQ.'DVAR')GOTO12280
31222      IF(ICASPL.EQ.'DAAD')GOTO12290
31223      IF(ICASPL.EQ.'DMAD')GOTO12300
31224      IF(ICASPL.EQ.'DMAN')GOTO12300
31225      IF(ICASPL.EQ.'DIQR')GOTO12310
31226      IF(ICASPL.EQ.'DBIM')GOTO12340
31227      IF(ICASPL.EQ.'DBIS')GOTO12350
31228      IF(ICASPL.EQ.'DGSD')GOTO12370
31229      IF(ICASPL.EQ.'DRAN')GOTO12380
31230      IF(ICASPL.EQ.'DMDR')GOTO12390
31231      IF(ICASPL.EQ.'DQSE')GOTO12400
31232      IF(ICASPL.EQ.'DQUA')GOTO12405
31233      IF(ICASPL.EQ.'DSKE')GOTO12410
31234      IF(ICASPL.EQ.'DGSK')GOTO12412
31235      IF(ICASPL.EQ.'DPSK')GOTO12414
31236      IF(ICASPL.EQ.'DKUR')GOTO12420
31237      IF(ICASPL.EQ.'DEKU')GOTO12425
31238      IF(ICASPL.EQ.'DRSD')GOTO12430
31239      IF(ICASPL.EQ.'DSDM')GOTO12440
31240      IF(ICASPL.EQ.'DRVA')GOTO12450
31241      IF(ICASPL.EQ.'DVAM')GOTO12460
31242      IF(ICASPL.EQ.'DMIN')GOTO12470
31243      IF(ICASPL.EQ.'DMAX')GOTO12480
31244      IF(ICASPL.EQ.'DEXT')GOTO12490
31245      IF(ICASPL.EQ.'DCVA')GOTO12495
31246      IF(ICASPL.EQ.'DCOU')GOTO12500
31247      IF(ICASPL.EQ.'DSUM')GOTO12510
31248      IF(ICASPL.EQ.'DPRO')GOTO12512
31249      IF(ICASPL.EQ.'DSN')GOTO12520
31250      IF(ICASPL.EQ.'DQN')GOTO12530
31251      IF(ICASPL.EQ.'DBPR')GOTO12570
31252      IF(ICASPL.EQ.'DBLC')GOTO12570
31253      IF(ICASPL.EQ.'DBUC')GOTO12570
31254      IF(ICASPL.EQ.'DPER')GOTO12600
31255      IF(ICASPL.EQ.'D1DE')GOTO12600
31256      IF(ICASPL.EQ.'D2DE')GOTO12600
31257      IF(ICASPL.EQ.'D3DE')GOTO12600
31258      IF(ICASPL.EQ.'D4DE')GOTO12600
31259      IF(ICASPL.EQ.'D5DE')GOTO12600
31260      IF(ICASPL.EQ.'D6DE')GOTO12600
31261      IF(ICASPL.EQ.'D7DE')GOTO12600
31262      IF(ICASPL.EQ.'D8DE')GOTO12600
31263      IF(ICASPL.EQ.'D9DE')GOTO12600
31264      IF(ICASPL.EQ.'DLHI')GOTO12610
31265      IF(ICASPL.EQ.'DUHI')GOTO12620
31266      IF(ICASPL.EQ.'DLQU')GOTO12630
31267      IF(ICASPL.EQ.'DUQU')GOTO12640
31268      IF(ICASPL.EQ.'10LD')GOTO12650
31269      IF(ICASPL.EQ.'12LD')GOTO12660
31270      IF(ICASPL.EQ.'15LD')GOTO12670
31271      IF(ICASPL.EQ.'17LD')GOTO12680
31272      IF(ICASPL.EQ.'20LD')GOTO12690
31273      IF(ICASPL.EQ.'10SD')GOTO12700
31274      IF(ICASPL.EQ.'12SD')GOTO12710
31275      IF(ICASPL.EQ.'15SD')GOTO12720
31276      IF(ICASPL.EQ.'17SD')GOTO12730
31277      IF(ICASPL.EQ.'20SD')GOTO12740
31278      IF(ICASPL.EQ.'RPSD')GOTO12750
31279      IF(ICASPL.EQ.'RPRA')GOTO12760
31280C
31281      IF(ICASPL.EQ.'CVLC')GOTO3185
31282      IF(ICASPL.EQ.'CVUC')GOTO3185
31283      IF(ICASPL.EQ.'CVLO')GOTO3185
31284      IF(ICASPL.EQ.'CVUO')GOTO3185
31285      IF(ICASPL.EQ.'SCVL')GOTO3185
31286      IF(ICASPL.EQ.'SCVU')GOTO3185
31287      IF(ICASPL.EQ.'SCVA')GOTO3185
31288      IF(ICASPL.EQ.'LCVA')GOTO3185
31289      IF(ICASPL.EQ.'LLCV')GOTO3185
31290      IF(ICASPL.EQ.'ULCV')GOTO3185
31291C
31292      IF(ICASPL.EQ.'CCVA')GOTO3195
31293      IF(ICASPL.EQ.'UCCV')GOTO3195
31294      IF(ICASPL.EQ.'LCCV')GOTO3195
31295      IF(ICASPL.EQ.'UCC2')GOTO3195
31296C
31297      IF(ICASPL.EQ.'1CTE')GOTO34280
31298      IF(ICASPL.EQ.'1CCD')GOTO34280
31299      IF(ICASPL.EQ.'1C2P')GOTO34280
31300      IF(ICASPL.EQ.'1CLP')GOTO34280
31301      IF(ICASPL.EQ.'1CUP')GOTO34280
31302      IF(ICASPL.EQ.'S1CT')GOTO34290
31303      IF(ICASPL.EQ.'S1CC')GOTO34290
31304      IF(ICASPL.EQ.'S1CP')GOTO34290
31305      IF(ICASPL.EQ.'2CTE')GOTO34300
31306      IF(ICASPL.EQ.'2CCD')GOTO34300
31307      IF(ICASPL.EQ.'2C2P')GOTO34300
31308      IF(ICASPL.EQ.'2CLP')GOTO34300
31309      IF(ICASPL.EQ.'2CUP')GOTO34300
31310      IF(ICASPL.EQ.'PMEA')THEN
31311        ICASE='MEAN'
31312        CALL DPEXPY(ICASE,TEMP,TEMPZ,TEMPZ3,NS2,NSZ,NSZ3,
31313     1              XTEMP1,XTEMP2,XTEMP3,AVAL1,AVAL2,AVAL3,
31314     1              IBUGG3,ISUBRO,IFOUND,IERROR)
31315        GOTO79000
31316      ENDIF
31317C
31318      WRITE(ICOUT,999)
31319      CALL DPWRST('XXX','BUG ')
31320      WRITE(ICOUT,80001)
3132180001 FORMAT('***** INTERNAL ERROR IN CMPSTA')
31322      CALL DPWRST('XXX','BUG ')
31323      WRITE(ICOUT,80002)
3132480002 FORMAT('      AT BRANCH POINT 11800--')
31325      CALL DPWRST('XXX','BUG ')
31326      WRITE(ICOUT,80003)
3132780003 FORMAT('      ICASPL NOT EQUAL ONE OF THE ALLOWABLE--')
31328      CALL DPWRST('XXX','BUG ')
31329      WRITE(ICOUT,80004)
3133080004 FORMAT('      MEAN, MEDI, SD, RANG, ETC.,')
31331      CALL DPWRST('XXX','BUG ')
31332      WRITE(ICOUT,80006)ICASPL
3133380006 FORMAT('      ICASPL = ',A4)
31334      CALL DPWRST('XXX','BUG ')
31335      IERROR='YES'
31336      GOTO9000
31337C
31338C     ---------------------------
31339C
3134011310 CONTINUE
31341      CALL SIZE(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31342      GOTO79000
3134311312 CONTINUE
31344      IHP='LOWL'
31345      IHP2='IMIT'
31346      IHWUSE='P'
31347      MESSAG='NO'
31348      CALL CHECKN(IHP,IHP2,IHWUSE,
31349     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
31350     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
31351      IF(IERROR.EQ.'YES')THEN
31352        ALOWLM=CPUMIN
31353      ELSE
31354        ALOWLM=VALUE(ILOCP)
31355      ENDIF
31356      IHP='UPPL'
31357      IHP2='IMIT'
31358      IHWUSE='P'
31359      MESSAG='NO'
31360      CALL CHECKN(IHP,IHP2,IHWUSE,
31361     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
31362     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
31363      IF(IERROR.EQ.'YES')THEN
31364        AUPPLM=CPUMAX
31365      ELSE
31366        AUPPLM=VALUE(ILOCP)
31367      ENDIF
31368      CALL INTCNT(TEMP,NS2,ALOWLM,AUPPLM,IWRITE,RIGHT,
31369     1            ISUBRO,IBUGG3,IERROR)
31370      GOTO79000
3137111315 CONTINUE
31372      CALL DISTIN(TEMP,NS2,IWRITE,XTEMP1,NOUT,IBUGG3,IERROR)
31373      RIGHT=REAL(NOUT)
31374      GOTO79000
3137511320 CONTINUE
31376      CALL SUMDP(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31377      GOTO79000
3137811330 CONTINUE
31379      CALL PROD(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31380      GOTO79000
3138111340 CONTINUE
31382CCCCC CALL INTVEC(TEMP,TEMPZ,NS2,NUMVIN,IWRITE,RIGHT,IBUGG3,IERROR)
31383      CALL INTVEC(TEMP,TEMPZ,NS2,NUMV2,IWRITE,RIGHT,IBUGG3,IERROR)
31384      GOTO79000
3138511350 CONTINUE
31386      CALL MIDRAN(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31387      GOTO79000
3138811360 CONTINUE
31389      CALL MEAN(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31390      GOTO79000
3139111370 CONTINUE
31392      CALL MIDMEA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
31393      GOTO79000
3139411372 CONTINUE
31395      CALL SHMIDM(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,
31396     1            ISUBRO,IBUGG3,IERROR)
31397      GOTO79000
3139811373 CONTINUE
31399      CALL SHMIDM(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,
31400     1            ISUBRO,IBUGG3,IERROR)
31401      CALL SHMIDM(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,
31402     1            ISUBRO,IBUGG3,IERROR)
31403      RIGHT=RIGH1 - RIGH2
31404      GOTO79000
3140511374 CONTINUE
31406      CALL SHMIDR(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,
31407     1            ISUBRO,IBUGG3,IERROR)
31408      GOTO79000
3140911375 CONTINUE
31410      CALL SHMIDR(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,
31411     1            ISUBRO,IBUGG3,IERROR)
31412      CALL SHMIDR(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,
31413     1            ISUBRO,IBUGG3,IERROR)
31414      RIGHT=RIGH1 - RIGH2
31415      GOTO79000
3141611380 CONTINUE
31417      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
31418      GOTO79000
3141911390 CONTINUE
31420      CALL SD(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31421      GOTO79000
3142211395 CONTINUE
31423      CALL RMS(TEMP,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31424      GOTO79000
3142511396 CONTINUE
31426      CALL SSQ(TEMP,NS2,XCAP,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31427      GOTO79000
3142811397 CONTINUE
31429      CALL RSCSUM(TEMP,NS2,XCAP,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31430      GOTO79000
3143111398 CONTINUE
31432      CALL SSQ(TEMP,NS2,XCAP,IWRITE,RIGH1,IBUGG3,ISUBRO,IERROR)
31433      CALL SSQ(TEMPZ,NSZ,XCAP,IWRITE,RIGH2,IBUGG3,ISUBRO,IERROR)
31434      RIGHT=RIGH1 - RIGH2
31435      GOTO79000
3143611399 CONTINUE
31437      CALL SSQMEA(TEMP,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31438      GOTO79000
3143919399 CONTINUE
31440      CALL SSQMEA(TEMP,NS2,IWRITE,RIGH1,IBUGG3,ISUBRO,IERROR)
31441      CALL SSQMEA(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,ISUBRO,IERROR)
31442      RIGHT=RIGH1-RIGH2
31443      GOTO79000
3144411400 CONTINUE
31445      CALL VAR(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31446      IF(ICASPL.EQ.'PREC')THEN
31447         IF(RIGHT.GT.0.0)THEN
31448           RIGHT=1.0/RIGHT
31449         ELSE
31450           RIGHT=0.0
31451         ENDIF
31452      ENDIF
31453      GOTO79000
3145411401 CONTINUE
31455      CALL RSCSUM(TEMP,NS2,XCAP,IWRITE,RIGH1,IBUGG3,ISUBRO,IERROR)
31456      CALL RSCSUM(TEMPZ,NSZ,XCAP,IWRITE,RIGH2,IBUGG3,ISUBRO,IERROR)
31457      RIGHT=RIGH1 - RIGH2
31458      GOTO79000
3145911403 CONTINUE
31460      DO11404II=1,NS2
31461        TEMPZ(II)=1.0
3146211404 CONTINUE
31463      CALL JSCORE(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,XTEMP3,NTEMP,
31464     1            IBUGG3,ISUBRO,IERROR)
31465      RIGHT=XTEMP3(1)
31466      GOTO79000
3146711405 CONTINUE
31468      CALL DISTIN(TEMPZ,NS2,IWRITE,XTEMP1,NOUT,IBUGG3,IERROR)
31469      ANMAT=REAL(NOUT)
31470      CALL SSQ(TEMP,NS2,XCAP,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31471      RIGHT=SQRT(RIGHT/ANMAT)
31472      GOTO79000
3147311410 CONTINUE
31474      CALL RELSD(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31475      GOTO79000
3147611415 CONTINUE
31477      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
31478      CALL VAR(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
31479      RIGHT=0.0
31480CCCCC NOVEMBER 1994.  TO BE CONSISTENT WITH RELATIVE SD PLOT, USE
31481CCCCC ABS(MEAN) RATHER THAN MEAN.
31482CCCCC IF(RIGHTM.NE.0.0)RIGHT=100.0*RIGHTV/RIGHTM
31483      IF(RIGHTM.NE.0.0)RIGHT=100.0*RIGHTV/ABS(RIGHTM)
31484      GOTO79000
3148511418 CONTINUE
31486      CALL SD(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
31487      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
31488      RIGHT=0.0
31489      IF(RIGHTM.NE.0.0)RIGHT=RIGHTV/RIGHTM
31490      IF(ICASPL.EQ.'UCVA')THEN
31491        AVAL=1.0 + 1.0/(4.0*REAL(NS2))
31492        RIGHT=AVAL*RIGHT
31493      ENDIF
31494      GOTO79000
3149511419 CONTINUE
31496      CALL SD(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
31497      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
31498      RIGHT=0.0
31499      IF(RIGHTV.NE.0.0)RIGHT=RIGHTM/RIGHTV
31500      GOTO79000
3150111420 CONTINUE
31502      CALL RANGDP(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31503      GOTO79000
3150411421 CONTINUE
31505C
31506C     2017/11: USE AAD RATHER THAN MAD TO BE CONSISTENT WITH
31507C              DEFINITION IN BONETT AND SEIER PAPER.
31508C
31509CCCCC CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
31510CCCCC1         IBUGG3,IERROR)
31511      CALL AAD(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHTV,'MEDI',
31512     1         IBUGG3,IERROR)
31513      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
31514      RIGHT=0.0
31515      IF(RIGHTM.NE.0.0)RIGHT=RIGHTV/RIGHTM
31516      GOTO79000
3151711427 CONTINUE
31518C
31519      IHP='ALPH'
31520      IHP2='A   '
31521      IHWUSE='P'
31522      MESSAG='NO'
31523      CALL CHECKN(IHP,IHP2,IHWUSE,
31524     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
31525     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
31526      IF(IERROR.EQ.'NO')THEN
31527        ALPHA=VALUE(ILOCP)
31528      ELSE
31529        ALPHA=0.95
31530      ENDIF
31531C
31532      IF(ICASPL.EQ.'LCDL')ICASA3='LOWE'
31533      IF(ICASPL.EQ.'1LCD')ICASA3='LOWE'
31534      IF(ICASPL.EQ.'UCDL')ICASA3='UPPE'
31535      IF(ICASPL.EQ.'1UCD')ICASA3='UPPE'
31536      ICASA5='TWOS'
31537      IF(ICASPL.EQ.'1LCD')ICASA5='ONES'
31538      IF(ICASPL.EQ.'1UCD')ICASA5='ONES'
31539C
31540      ALPHAT(1)=ALPHA
31541      NALPHA=1
31542C
31543      CALL DPCDC3(TEMP,NS2,ICASA3,ICASA5,ISEED,MAXNXT,
31544     1            XTEMP1,ALPHAT,NALPHA,ALOWLV,AUPPLV,
31545     1            CD,YMED,YAAD,
31546     1            ISUBRO,IBUGG3,IERROR)
31547C
31548      IF(ICASPL.EQ.'LCDL')RIGHT=ALOWLV(1)
31549      IF(ICASPL.EQ.'1LCD')RIGHT=ALOWLV(1)
31550      IF(ICASPL.EQ.'UCDL')RIGHT=AUPPLV(1)
31551      IF(ICASPL.EQ.'1UCD')RIGHT=AUPPLV(1)
31552      GOTO79000
3155311428 CONTINUE
31554C
31555      IHP='ALPH'
31556      IHP2='A   '
31557      IHWUSE='P'
31558      MESSAG='NO'
31559      CALL CHECKN(IHP,IHP2,IHWUSE,
31560     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
31561     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
31562      IF(IERROR.EQ.'NO')THEN
31563        ALPHA=VALUE(ILOCP)
31564      ELSE
31565        ALPHA=0.95
31566      ENDIF
31567C
31568      IF(ICASPL.EQ.'LCDQ')ICASA3='LOWE'
31569      IF(ICASPL.EQ.'UCDQ')ICASA3='UPPE'
31570      ICASA5='TWOS'
31571C
31572      ALPHAT(1)=ALPHA
31573      NALPHA=1
31574C
31575      CALL DPCQD3(TEMP,NS2,ICASA3,ICASA5,ISEED,MAXNXT,IQUAME,
31576     1            XTEMP1,ALPHAT,NALPHA,ALOWLV,AUPPLV,
31577     1            CQV,Q1,Q3,
31578     1            ISUBRO,IBUGG3,IERROR)
31579C
31580      IF(ICASPL.EQ.'LCDQ')RIGHT=ALOWLV(1)
31581      IF(ICASPL.EQ.'UCDQ')RIGHT=AUPPLV(1)
31582      GOTO79000
3158311422 CONTINUE
31584      CALL VAR(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
31585      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
31586      RIGHT=0.0
31587      IF(RIGHTM.NE.0.0)RIGHT=RIGHTV/RIGHTM
31588      GOTO79000
3158911423 CONTINUE
31590      CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHV,
31591     1         IBUGG3,IERROR)
31592      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
31593      RIGHT=0.0
31594      IF(RIGHTM.NE.0.0)RIGHT=RIGHTV/RIGHTM
31595      GOTO79000
3159611424 CONTINUE
31597      CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
31598     1         IBUGG3,IERROR)
31599      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
31600      RIGH1=0.0
31601      IF(RIGHTM.NE.0.0)RIGH1=RIGHTV/RIGHTM
31602      CALL MAD(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
31603     1         IBUGG3,IERROR)
31604      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
31605      RIGH2=0.0
31606      IF(RIGHTM.NE.0.0)RIGH2=RIGHTV/RIGHTM
31607      RIGHT=RIGH1 - RIGH2
31608      GOTO79000
3160911425 CONTINUE
31610      CALL VAR(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
31611      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
31612      RIGH1=0.0
31613      IF(RIGHTM.NE.0.0)RIGH1=RIGHTV/RIGHTM
31614      CALL VAR(TEMPZ,NSZ,IWRITE,RIGHTV,IBUGG3,IERROR)
31615      CALL MEAN(TEMPZ,NSZ,IWRITE,RIGHTM,IBUGG3,IERROR)
31616      RIGH2=0.0
31617      IF(RIGHTM.NE.0.0)RIGH2=RIGHTV/RIGHTM
31618      RIGHT=RIGH1 - RIGH2
31619      GOTO79000
3162011426 CONTINUE
31621      CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
31622     1         IBUGG3,IERROR)
31623      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
31624      RIGH1=0.0
31625      IF(RIGHTM.NE.0.0)RIGH1=RIGHTV/RIGHTM
31626      CALL MAD(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHTV,
31627     1         IBUGG3,IERROR)
31628      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGHTM,IBUGG3,IERROR)
31629      RIGH2=0.0
31630      IF(RIGHTM.NE.0.0)RIGH2=RIGHTV/RIGHTM
31631      RIGHT=RIGH1 - RIGH2
31632      GOTO79000
3163311430 CONTINUE
31634      CALL MINIM(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31635      GOTO79000
3163611440 CONTINUE
31637      CALL MAXIM(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31638      GOTO79000
3163911450 CONTINUE
31640      CALL STMOM3(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31641      GOTO79000
3164211452 CONTINUE
31643      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q1,IBUGG3,IERROR)
31644      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q3,IBUGG3,IERROR)
31645      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q2,IBUGG3,IERROR)
31646      IF(Q1.NE.Q3)THEN
31647        RIGHT=(Q3 + Q1 - 2.0*Q2)/(Q3 - Q1)
31648      ELSE
31649        RIGHT=CPUMIN
31650      ENDIF
31651      GOTO79000
3165211454 CONTINUE
31653      CALL MEAN(TEMP,NS2,IWRITE,YMEAN,IBUGG3,IERROR)
31654      CALL SD(TEMP,NS2,IWRITE,YSD,IBUGG3,IERROR)
31655      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,YMED,IBUGG3,IERROR)
31656      IF(YSD.GT.0.0)THEN
31657        RIGHT=3.0*(YMEAN-YMED)/YSD
31658      ELSE
31659        RIGHT=CPUMIN
31660      ENDIF
31661      GOTO79000
3166211460 CONTINUE
31663      CALL STMOM4(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31664      GOTO79000
3166511465 CONTINUE
31666      CALL STMOM4(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31667      RIGHT=RIGHT-3.0
31668      GOTO79000
3166911470 CONTINUE
31670      CALL AUTOCR(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31671      GOTO79000
3167211480 CONTINUE
31673      CALL COV(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31674      GOTO79000
3167531480 CONTINUE
31676      CALL COMOVE(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31677      GOTO79000
3167811490 CONTINUE
31679      CALL CORR(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31680      IF(ICASPL.EQ.'COAB')THEN
31681        RIGHT=ABS(RIGHT)
31682      ELSEIF(ICASPL.EQ.'COPV')THEN
31683        IDF1=1
31684        IDF2=NS2 - 2
31685        ANUM=REAL(NS2-2)*RIGHT**2
31686        DENOM=1.0 - RIGHT**2
31687        CDF=0.0
31688        IF(DENOM.NE.0.0D0)THEN
31689          AVAL=ABS(ANUM/DENOM)
31690          CALL FCDF(AVAL,IDF1,IDF2,CDF)
31691        ENDIF
31692        RIGHT=1.0 - CDF
31693      ELSEIF(ICASPL.EQ.'COCD')THEN
31694        IDF1=1
31695        IDF2=NS2 - 2
31696        ANUM=REAL(NS2-2)*RIGHT**2
31697        DENOM=1.0 - RIGHT**2
31698        CDF=0.0
31699        IF(DENOM.NE.0.0D0)THEN
31700          AVAL=ABS(ANUM/DENOM)
31701          CALL FCDF(AVAL,IDF1,IDF2,CDF)
31702        ENDIF
31703        RIGHT=CDF
31704      ELSEIF(ICASPL.EQ.'PDIS')THEN
31705        RIGHT=(1.0 - RIGHT)/2.0
31706      ELSEIF(ICASPL.EQ.'PSIM')THEN
31707        RIGHT=1.0 - (1.0 - RIGHT)/2.0
31708      ENDIF
31709      GOTO79000
3171011491 CONTINUE
31711      IHP='P   '
31712      IHP2='    '
31713      IHWUSE='P'
31714      MESSAG='NO'
31715      CALL CHECKN(IHP,IHP2,IHWUSE,
31716     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
31717     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
31718      IF(IERROR.EQ.'YES')THEN
31719        P=1.0
31720      ELSE
31721        P=VALUE(ILOCP)
31722      ENDIF
31723      CALL MNKDIS(TEMP,TEMPZ,NS2,P,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31724      GOTO79000
3172511492 CONTINUE
31726      CALL CANDIS(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31727      GOTO79000
3172811495 CONTINUE
31729      CALL CORR(TEMP,TEMPZ,NS2,IWRITE,R12,IBUGG3,IERROR)
31730      CALL CORR(TEMP,TEMPZ3,NS2,IWRITE,R13,IBUGG3,IERROR)
31731      CALL CORR(TEMPZ,TEMPZ3,NS2,IWRITE,R23,IBUGG3,IERROR)
31732      ANUM=R12 - (R13*R23)
31733      DENOM=SQRT((1.0 - R13**2)*(1.0 - R23**2))
31734      IF(DENOM.GT.0.0)THEN
31735        RIGHT=ANUM/DENOM
31736      ELSE
31737        RIGHT=PSTAMV
31738      ENDIF
31739      IF(RIGHT.EQ.PSTAMV)GOTO79000
31740      IF(ICASPL.EQ.'PCAB')THEN
31741        RIGHT=ABS(RIGHT)
31742      ELSEIF(ICASPL.EQ.'PCPV')THEN
31743        IDF1=1
31744        IDF2=NS2 - 3
31745        ANUM=REAL(NS2-3)*RIGHT**2
31746        DENOM=1.0 - RIGHT**2
31747        CDF=0.0
31748        IF(DENOM.NE.0.0D0)THEN
31749          AVAL=ABS(ANUM/DENOM)
31750          CALL FCDF(AVAL,IDF1,IDF2,CDF)
31751        ENDIF
31752        RIGHT=1.0 - CDF
31753      ELSEIF(ICASPL.EQ.'PCCD')THEN
31754        IDF1=1
31755        IDF2=NS2
31756        ANUM=REAL(NS2-3)*RIGHT**2
31757        DENOM=1.0 - RIGHT**2
31758        CDF=0.0
31759        IF(DENOM.NE.0.0D0)THEN
31760          AVAL=ABS(ANUM/DENOM)
31761          CALL FCDF(AVAL,IDF1,IDF2,CDF)
31762        ENDIF
31763        RIGHT=CDF
31764      ENDIF
31765      GOTO79000
3176611496 CONTINUE
31767      CALL MANDIS(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31768      GOTO79000
3176911497 CONTINUE
31770      CALL CHEDI2(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31771      GOTO79000
3177211498 CONTINUE
31773      CALL COSDIS(TEMP,TEMPZ,NS2,IWRITE,ICASPL,RIGHT,
31774     1            IBUGG3,ISUBRO,IERROR)
31775      GOTO79000
3177611499 CONTINUE
31777      IF(ICASPL.EQ.'EUCD')ICASE2='VEDI'
31778      IF(ICASPL.EQ.'EUCL')ICASE2='VELE'
31779      IF(ICASPL.EQ.'DOTP')ICASE2='VEDP'
31780      CALL VECARI(TEMP,TEMPZ,NS2,ICASE2,IWRITE,
31781     1            TEMPZ3,NOUT,RIGHT,ITYP91,IBUGG3,ISUBRO,IERROR)
31782      GOTO79000
3178311500 CONTINUE
31784      CALL RANKCR(TEMP,TEMPZ,NS2,IRCRTA,IWRITE,
31785     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
31786     1            RIGHT,STATCD,PVAL,PVALLT,PVALUT,
31787     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,CTU999,
31788     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,CTL999,
31789     1            IBUGG3,ISUBRO,IERROR)
31790      IF(ICASPL.EQ.'RACA')RIGHT=ABS(RIGHT)
31791      IF(ICASPL.EQ.'RACC')RIGHT=STATCD
31792      IF(ICASPL.EQ.'RACP')RIGHT=PVAL
31793      IF(ICASPL.EQ.'RALP')RIGHT=PVALLT
31794      IF(ICASPL.EQ.'RAUP')RIGHT=PVALUT
31795      IF(ICASPL.EQ.'RDIS')RIGHT=(1.0 - RIGHT)/2.0
31796      IF(ICASPL.EQ.'RSIM')RIGHT=1.0 - (1.0 - RIGHT)/2.0
31797      GOTO79000
3179811502 CONTINUE
31799      CALL HAMDIS(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31800      GOTO79000
3180111505 CONTINUE
31802      CALL RANKCR(TEMP,TEMPZ,NS2,IRCRTA,IWRITE,
31803     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
31804     1            R12,STATCD,PVAL,PVALLT,PVALUT,
31805     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,CTU999,
31806     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,CTL999,
31807     1            IBUGG3,ISUBRO,IERROR)
31808      CALL RANKCR(TEMP,TEMPZ3,NS2,IRCRTA,IWRITE,
31809     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
31810     1            R13,STATCD,PVAL,PVALLT,PVALUT,
31811     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,CTU999,
31812     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,CTL999,
31813     1            IBUGG3,ISUBRO,IERROR)
31814      CALL RANKCR(TEMPZ,TEMPZ3,NS2,IRCRTA,IWRITE,
31815     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
31816     1            R23,STATCD,PVAL,PVALLT,PVALUT,
31817     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,CTU999,
31818     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,CTL999,
31819     1            IBUGG3,ISUBRO,IERROR)
31820      ANUM=R12 - (R13*R23)
31821      DENOM=SQRT((1.0 - R13**2)*(1.0 - R23**2))
31822      IF(DENOM.GT.0.0)THEN
31823        RIGHT=ANUM/DENOM
31824      ELSE
31825        RIGHT=PSTAMV
31826      ENDIF
31827      IF(ICASPL.EQ.'RPCA' .AND. RIGHT.NE.PSTAMV)RIGHT=ABS(RIGHT)
31828      GOTO79000
3182911509 CONTINUE
31830      CALL PERDME(TEMP,NS2,TEMPZ,NSZ,IWRITE,RIGHT,
31831     1            ISUBRO,IBUGG3,IERROR)
31832      GOTO79000
3183311510 CONTINUE
31834      CALL SDMEAN(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31835      GOTO79000
3183611520 CONTINUE
31837      CALL AUTOCV(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
31838      GOTO79000
3183911530 CONTINUE
31840      CALL RANKCV(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,XTEMP3,
31841     1MAXNXT,RIGHT,
31842     1IBUGG3,IERROR)
31843      GOTO79000
3184411531 CONTINUE
31845      CALL PERAGR(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
31846      IF(ICASPL.EQ.'PEDI' .AND. RIGHT.GE.0.0)RIGHT=100.0 - RIGHT
31847      GOTO79000
3184831530 CONTINUE
31849      CALL RANKCM(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,XTEMP3,
31850     1MAXNXT,RIGHT,
31851     1IBUGG3,IERROR)
31852      GOTO79000
3185331540 CONTINUE
31854      ICASZZ='TWOS'
31855      CALL KENTAU(TEMP,TEMPZ,NS2,ICASZZ,IKTATA,IWRITE,
31856     1            XTEMP1,XTEMP2,MAXNXT,
31857     1            RIGHT,AKTAUA,AKTAUB,AKTAUC,
31858     1            STATCD,PVAL,PVALLT,PVALUT,
31859     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,
31860     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,
31861     1            IBUGG3,ISUBRO,IERROR)
31862      IF(ICASPL.EQ.'TAUA')RIGHT=AKTAUA
31863      IF(ICASPL.EQ.'KTAB')RIGHT=AKTAUB
31864      IF(ICASPL.EQ.'KTAC')RIGHT=AKTAUC
31865      IF(ICASPL.EQ.'KTAA')RIGHT=ABS(RIGHT)
31866      IF(ICASPL.EQ.'KTCD')RIGHT=STATCD
31867      IF(ICASPL.EQ.'KTPV')RIGHT=PVAL
31868      IF(ICASPL.EQ.'KTPL')RIGHT=PVALLT
31869      IF(ICASPL.EQ.'KTPU')RIGHT=PVALUT
31870      IF(ICASPL.EQ.'KDIS')RIGHT=(1.0 - RIGHT)/2.0
31871      IF(ICASPL.EQ.'KSIM')RIGHT=1.0 - (1.0 - RIGHT)/2.0
31872      GOTO79000
3187331545 CONTINUE
31874      ICASZZ='TWOS'
31875      CALL KENTAU(TEMP,TEMPZ,NS2,ICASZZ,IKTATA,IWRITE,
31876     1            XTEMP1,XTEMP2,MAXNXT,
31877     1            R12,AKTAUA,AKTAUB,AKTAUC,
31878     1            STATCD,PVAL,PVALLT,PVALUT,
31879     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,
31880     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,
31881     1            IBUGG3,ISUBRO,IERROR)
31882      CALL KENTAU(TEMP,TEMPZ3,NS2,ICASZZ,IKTATA,IWRITE,
31883     1            XTEMP1,XTEMP2,MAXNXT,
31884     1            R13,AKTAUA,AKTAUB,AKTAUC,
31885     1            STATCD,PVAL,PVALLT,PVALUT,
31886     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,
31887     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,
31888     1            IBUGG3,ISUBRO,IERROR)
31889      CALL KENTAU(TEMPZ,TEMPZ3,NS2,ICASZZ,IKTATA,IWRITE,
31890     1            XTEMP1,XTEMP2,MAXNXT,
31891     1            R23,AKTAUA,AKTAUB,AKTAUC,
31892     1            STATCD,PVAL,PVALLT,PVALUT,
31893     1            CUTU90,CUTU95,CTU975,CUTU99,CTU995,
31894     1            CUTL90,CUTL95,CTL975,CUTL99,CTL995,
31895     1            IBUGG3,ISUBRO,IERROR)
31896      ANUM=R12 - (R13*R23)
31897      DENOM=SQRT((1.0 - R13**2)*(1.0 - R23**2))
31898      IF(DENOM.GT.0.0)THEN
31899        RIGHT=ANUM/DENOM
31900      ELSE
31901        RIGHT=PSTAMV
31902      ENDIF
31903      IF(ICASPL.EQ.'PKAB' .AND. RIGHT.NE.PSTAMV)RIGHT=ABS(RIGHT)
31904      GOTO79000
3190531550 CONTINUE
31906      CALL SUMDP(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
31907      CALL SUMDP(TEMPZ,NS2,IWRITE,RIGH2,IBUGG3,IERROR)
31908      RIGHT=0.0
31909      IF(RIGH2.NE.0.0)RIGHT=RIGH1/RIGH2
31910      GOTO79000
31911C
31912C     BINOMIAL RATIO - FOR CASE WHERE BINOMIAL PROBABILITIES GIVEN
31913C                      AS NUMBER OF SUCCESSES AND NUMBER OF TRIALS
31914C                      RATHER THAN A SERIES OF 0/1 VALUES (I.E., DATA
31915C                      PREVIOUSLY AGGREGATED).  SLIGHTLY DIFFERENT
31916C                      FROM "RATIO" IN THAT WE NEED TO CHECK THAT
31917C                      VALUE FOR SECOND VARIABLE ALWAYS > VALUE
31918C                      FOR FIRST VARIABLE.  ALSO, OMIT ROW IF EITHER
31919C                      VALUE IS EQUAL TO THE MISSING VALUE.
31920C
3192131551 CONTINUE
31922      RIGHT=PSTAMV
31923      NTEMP=0
31924      DO31552I=1,NS2
31925        IVAL1=INT(TEMP(I)+0.1)
31926        IVAL2=INT(TEMPZ(I)+0.1)
31927        IF(TEMP(I).EQ.PSTAMV .OR. TEMPZ(I).EQ.PSTAMV)THEN
31928          GOTO31552
31929        ELSEIF(IVAL1.GT.IVAL2)THEN
31930          IERROR='YES'
31931          WRITE(ICOUT,999)
31932          CALL DPWRST('XXX','BUG ')
31933          WRITE(ICOUT,31553)
3193431553     FORMAT('***** ERROR IN CMPSTA')
31935          CALL DPWRST('XXX','BUG ')
31936          WRITE(ICOUT,31554)
3193731554     FORMAT('      FOR BINOMIAL RATIO, NUMBER OF SUCCESSES IS ')
31938          CALL DPWRST('XXX','BUG ')
31939          WRITE(ICOUT,31555)
3194031555     FORMAT('      GREATER THAN THE NUMBER OF TRIALS.')
31941          CALL DPWRST('XXX','BUG ')
31942          WRITE(ICOUT,31556)IVAL1
3194331556     FORMAT('      THE NUMBER OF SUCCESSES = ',I8)
31944          CALL DPWRST('XXX','BUG ')
31945          WRITE(ICOUT,31557)IVAL2
3194631557     FORMAT('      THE NUMBER OF TRIALS    = ',I8)
31947          CALL DPWRST('XXX','BUG ')
31948          GOTO9000
31949        ELSE
31950          NTEMP=NTEMP+1
31951          IF(IVAL1.LT.0)THEN
31952            WRITE(ICOUT,999)
31953            CALL DPWRST('XXX','BUG ')
31954            WRITE(ICOUT,31553)
31955            CALL DPWRST('XXX','BUG ')
31956            WRITE(ICOUT,31558)IVAL1
3195731558       FORMAT('      THE NUMBER OF SUCCESSES, ',I8,
31958     1             ' IS NEGATIVE.')
31959            CALL DPWRST('XXX','BUG ')
31960            IERROR='YES'
31961            GOTO9000
31962          ENDIF
31963          IF(IVAL2.LT.0)THEN
31964            WRITE(ICOUT,999)
31965            CALL DPWRST('XXX','BUG ')
31966            WRITE(ICOUT,31553)
31967            CALL DPWRST('XXX','BUG ')
31968            WRITE(ICOUT,31559)IVAL2
3196931559       FORMAT('      THE NUMBER OF TRIALS, ',I8,
31970     1             ' IS NEGATIVE.')
31971            CALL DPWRST('XXX','BUG ')
31972            IERROR='YES'
31973            GOTO9000
31974          ENDIF
31975          TEMP(NTEMP)=IVAL1
31976          TEMPZ(NTEMP)=IVAL2
31977        ENDIF
3197831552 CONTINUE
31979      IF(NTEMP.LE.0)GOTO79000
31980      CALL SUMDP(TEMP,NTEMP,IWRITE,RIGH1,IBUGG3,IERROR)
31981      CALL SUMDP(TEMPZ,NTEMP,IWRITE,RIGH2,IBUGG3,IERROR)
31982      IF(RIGH2.NE.0.0)RIGHT=RIGH1/RIGH2
31983      ITEMP1(1)=INT(RIGH2+0.1)
31984      GOTO79000
31985C
3198631565 CONTINUE
31987      IHP='ALPH'
31988      IHP2='A   '
31989      IHWUSE='P'
31990      MESSAG='NO'
31991      CALL CHECKN(IHP,IHP2,IHWUSE,
31992     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
31993     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
31994      IF(IERROR.EQ.'NO')THEN
31995        ALPHA=VALUE(ILOCP)
31996      ELSE
31997        ALPHA=0.95
31998      ENDIF
31999C
32000      ALPHAT(1)=ALPHA
32001      NALPHA=1
32002      IF(IRATME.EQ.'FIEL')THEN
32003        CALL DPMRC3(TEMP,TEMPZ,NS2,ALPHAT,NALPHA,
32004     1              RATIO,ALOWLV,AUPPLV,
32005     1              YBAR,XBAR,YVAR,XVAR,
32006     1              ISUBRO,IBUGG3,IERROR)
32007      ELSEIF(IRATME.EQ.'LSAM')THEN
32008        CALL DPMRC4(TEMP,TEMPZ,NS2,ALPHAT,NALPHA,
32009     1              RATIO,ALOWLV,AUPPLV,
32010     1              YBAR,XBAR,YVAR,XVAR,XYCOV,
32011     1              ISUBRO,IBUGG3,IERROR)
32012      ELSEIF(IRATME.EQ.'LRAT')THEN
32013        CALL DPMRC5(TEMP,TEMPZ,NS2,ALPHAT,NALPHA,
32014     1              RATIO,ALOWLV,AUPPLV,
32015     1              YBAR,XBAR,YVAR,XVAR,XYCOV,
32016     1              ISUBRO,IBUGG3,IERROR)
32017      ENDIF
32018      IF(ICASPL.EQ.'RMEA')THEN
32019        RIGHT=RATIO
32020      ELSEIF(ICASPL.EQ.'RMLL')THEN
32021        RIGHT=ALOWLV(1)
32022      ELSEIF(ICASPL.EQ.'RMUL')THEN
32023        RIGHT=AUPPLV(1)
32024      ENDIF
32025      GOTO79000
32026C
3202731560 CONTINUE
32028      CALL ODDRAT(TEMP,NS2,TEMPZ,NSZ,PSTAMV,IWRITE,XTEMP1,RIGHT,
32029     1            IBUGG3,IERROR)
32030      GOTO79000
3203131570 CONTINUE
32032      CALL ODDRSE(TEMP,NS2,TEMPZ,NS2,PSTAMV,IWRITE,XTEMP1,RIGHT,
32033     1            IBUGG3,IERROR)
32034      GOTO79000
3203531580 CONTINUE
32036      CALL RELRSK(TEMP,NS2,TEMPZ,NSZ,PSTAMV,IWRITE,XTEMP1,RIGHT,
32037     1            IBUGG3,IERROR)
32038      GOTO79000
3203931590 CONTINUE
32040      CALL CRAMER(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,XTEMP3,
32041     1            RIGHT,IBUGG3,IERROR)
32042      GOTO79000
3204331600 CONTINUE
32044      CALL PEARCC(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,XTEMP3,
32045     1            RIGHT,IBUGG3,IERROR)
32046      GOTO79000
3204731610 CONTINUE
32048      CALL FALPOS(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
32049      GOTO79000
3205031620 CONTINUE
32051      CALL FALNEG(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
32052      GOTO79000
3205331630 CONTINUE
32054      CALL TRUPOS(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
32055      GOTO79000
3205631640 CONTINUE
32057      CALL TRUNEG(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
32058      GOTO79000
3205931650 CONTINUE
32060      CALL SENSIT(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
32061      GOTO79000
3206231660 CONTINUE
32063      CALL SPECIF(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
32064      GOTO79000
3206531670 CONTINUE
32066      CALL PPV(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
32067      GOTO79000
3206831680 CONTINUE
32069      CALL NPV(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,RIGHT,IBUGG3,IERROR)
32070      GOTO79000
3207131685 CONTINUE
32072      CALL BINMAT(TEMP,TEMPZ,NS2,ICASPL,IWRITE,XTEMP1,RIGHT,
32073     1            ISUBRO,IBUGG3,IERROR)
32074      GOTO79000
3207531688 CONTINUE
32076      CALL GJACC(TEMP,TEMPZ,NS2,ICASPL,IWRITE,RIGHT,DIST,
32077     1            ISUBRO,IBUGG3,IERROR)
32078      IF(ICASPL.EQ.'GJDI')RIGHT=DIST
32079      GOTO79000
3208031690 CONTINUE
32081      CALL LOGIT(TEMP,NS2,TEMPZ,NSZ,PSTAMV,IWRITE,XTEMP1,RIGHT,
32082     1           IBUGG3,IERROR)
32083      GOTO79000
3208431700 CONTINUE
32085      CALL LOGISE(TEMP,NS2,TEMPZ,NSZ,PSTAMV,IWRITE,XTEMP1,RIGHT,
32086     1            IBUGG3,IERROR)
32087      GOTO79000
32088C
3208931710 CONTINUE
32090      CALL TRIMSD(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,MAXNXT,
32091     1            XTEMP1,RIGHT,
32092     1            IBUGG3,ISUBRO,IERROR)
32093      GOTO79000
32094C
3209531715 CONTINUE
32096      CALL CORRAT(TEMP,TEMPZ,NS2,ICASPL,IWRITE,XTEMP1,ETA,
32097     1            IBUGG3,ISUBRO,IERROR)
32098      RIGHT=ETA
32099      IF(ICASPL.EQ.'ICCR')RIGHT=ETA**2
32100      GOTO79000
32101C
3210211540 CONTINUE
32103      CALL LOWHIN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
32104      GOTO79000
3210511550 CONTINUE
32106      CALL UPPHIN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
32107      GOTO79000
3210811560 CONTINUE
32109      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
32110      GOTO79000
3211111570 CONTINUE
32112      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,IBUGG3,IERROR)
32113      GOTO79000
3211411575 CONTINUE
32115      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
32116      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
32117      RIGHT=(RIGH2 + RIGH1)/2.0
32118      GOTO79000
3211911576 CONTINUE
32120      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
32121      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
32122      RIGH3=(RIGH2 + RIGH1)/2.0
32123      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH4,IBUGG3,IERROR)
32124      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH5,IBUGG3,IERROR)
32125      RIGH6=(RIGH4 + RIGH5)/2.0
32126      RIGHT=RIGH3 - RIGH6
32127      GOTO79000
3212811578 CONTINUE
32129      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
32130      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
32131      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH3,IBUGG3,IERROR)
32132      RIGH4=(RIGH2 + RIGH1)/2.0
32133      RIGHT=(RIGH4 + RIGH3)/2.0
32134      GOTO79000
3213511579 CONTINUE
32136      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
32137      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
32138      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH3,IBUGG3,IERROR)
32139      RIGH4=(RIGH2 + RIGH1)/2.0
32140      RIGH5=(RIGH4 + RIGH3)/2.0
32141      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH6,IBUGG3,IERROR)
32142      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH7,IBUGG3,IERROR)
32143      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH8,IBUGG3,IERROR)
32144      RIGH9=(RIGH7 + RIGH6)/2.0
32145      RIGH10=(RIGH9 + RIGH8)/2.0
32146      RIGHT=RIGH5-RIGH10
32147      GOTO79000
32148C
3214911580 CONTINUE
32150      CALL TRIMME(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,XTEMP1,
32151     1            MAXNXT,RIGHT,
32152     1            IBUGG3,ISUBRO,IERROR)
32153      GOTO79000
32154C
3215511590 CONTINUE
32156      CALL WINDME(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,XTEMP1,
32157     1            MAXNXT,RIGHT,
32158     1            IBUGG3,ISUBRO,IERROR)
32159      GOTO79000
32160C
3216111610 CONTINUE
32162      IF(ICASPL.EQ.'MIDQ')P100=50.0
32163      IF(ICASPL.EQ.'1DEC')P100=10.0
32164      IF(ICASPL.EQ.'2DEC')P100=20.0
32165      IF(ICASPL.EQ.'3DEC')P100=30.0
32166      IF(ICASPL.EQ.'4DEC')P100=40.0
32167      IF(ICASPL.EQ.'5DEC')P100=50.0
32168      IF(ICASPL.EQ.'6DEC')P100=60.0
32169      IF(ICASPL.EQ.'7DEC')P100=70.0
32170      IF(ICASPL.EQ.'8DEC')P100=80.0
32171      IF(ICASPL.EQ.'9DEC')P100=90.0
32172      CALL PERCEN(P100,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
32173     1RIGHT,IBUGG3,IERROR)
32174      GOTO79000
32175C
3217611615 CONTINUE
32177      IF(APVAL.GE.0.0 .AND. APVAL.LE.100.0)THEN
32178        P100=APVAL
32179      ELSEIF(IPNAM1.NE.'    ')THEN
32180        IHWUSE='P'
32181        MESSAG='YES'
32182        CALL CHECKN(IPNAM1,IPNAM2,IHWUSE,
32183     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32184     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32185        IF(IERROR.EQ.'YES')GOTO9000
32186        P100=VALUE(ILOCP)
32187      ELSE
32188        IHP='P100'
32189        IHP2='    '
32190        IHWUSE='P'
32191        MESSAG='YES'
32192        CALL CHECKN(IHP,IHP2,IHWUSE,
32193     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32194     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32195        IF(IERROR.EQ.'YES')GOTO9000
32196        P100=VALUE(ILOCP)
32197      ENDIF
32198C
32199      CALL PERCEN(P100,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
32200     1RIGHT,IBUGG3,IERROR)
32201      GOTO79000
32202C
3220311620 CONTINUE
32204      CALL WEMEAN(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32205      GOTO79000
3220611625 CONTINUE
32207      CALL WEOSME(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
32208      GOTO79000
3220911630 CONTINUE
32210      CALL WEMEDI(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32211      GOTO79000
3221211640 CONTINUE
32213      CALL WESD(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32214      GOTO79000
3221511650 CONTINUE
32216      CALL WEVARI(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32217      GOTO79000
3221811655 CONTINUE
32219      CALL WESKEW(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,ISUBRO,IERROR)
32220      GOTO79000
3222111660 CONTINUE
32222C
32223      CALL WETRME(TEMP,TEMPZ,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
32224     1            XTEMP1,XTEMP2,
32225     1            MAXNXT,RIGHT,
32226     1            IBUGG3,ISUBRO,IERROR)
32227      GOTO79000
32228C
3222911670 CONTINUE
32230      IF(ICASPL.EQ.'WSUM')THEN
32231        IFLAGW=1
32232      ELSEIF(ICASPL.EQ.'WSSQ')THEN
32233        IFLAGW=2
32234      ELSEIF(ICASPL.EQ.'WSAB')THEN
32235        IFLAGW=3
32236      ELSEIF(ICASPL.EQ.'WAAB')THEN
32237        IFLAGW=4
32238      ELSEIF(ICASPL.EQ.'WSDV')THEN
32239        IFLAGW=5
32240      ELSEIF(ICASPL.EQ.'WSSD')THEN
32241        IFLAGW=6
32242      ENDIF
32243      CALL WESUM(TEMP,TEMPZ,NS2,IFLAGW,IWRITE,RIGHT,
32244     1           IBUGG3,ISUBRO,IERROR)
32245      GOTO79000
32246C
3224711680 CONTINUE
32248      CALL WECOVA(TEMP,TEMPZ,TEMPZ3,NS2,ICASPL,IWRITE,RIGH1,RIGH2,
32249     1           IBUGG3,ISUBRO,IERROR)
32250      IF(ICASPL.EQ.'WCOV')RIGHT=RIGH1
32251      IF(ICASPL.EQ.'WCOR')RIGHT=RIGH2
32252      GOTO79000
32253C
3225411685 CONTINUE
32255      CALL GRPCOR(TEMP,TEMPZ,TEMPZ3,NS2,IWRITE,RIGHT,
32256     1            XTEMP1,XTEMP2,MAXOBV,
32257     1            IBUGG3,ISUBRO,IERROR)
32258      GOTO79000
32259C
3226011690 CONTINUE
32261      CALL WECODI(TEMP,TEMPZ,TEMPZ3,NS2,ICASPL,IWRITE,RIGH1,RIGH2,
32262     1           IBUGG3,ISUBRO,IERROR)
32263      IF(ICASPL.EQ.'WCDI')RIGHT=RIGH1
32264      IF(ICASPL.EQ.'WCSI')RIGHT=RIGH2
32265      GOTO79000
32266C
3226711700 CONTINUE
32268      CALL SDMEAN(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32269      RIGHT=RIGHT**2
32270      GOTO79000
32271C
3227211710 CONTINUE
32273      CALL SINFIT(TEMP,XTEMP2,NS2,IWRITE,XSINFR,XSINAM,XRESSD,
32274     1ISUBRO,IBUGG3,IERROR)
32275      RIGHT=XSINFR
32276      GOTO79000
32277C
3227811720 CONTINUE
32279      CALL SINFIT(TEMP,XTEMP2,NS2,IWRITE,XSINFR,XSINAM,XRESSD,
32280     1ISUBRO,IBUGG3,IERROR)
32281      RIGHT=XSINAM
32282      GOTO79000
32283C
3228411730 CONTINUE
32285      CALL LINFIT(TEMP,TEMPZ,NS2,
32286     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
32287     1ISUBRO,IBUGG3,IERROR)
32288      RIGHT=ALPHA
32289      GOTO79000
32290C
3229111735 CONTINUE
32292      CALL LINFIT(TEMP,TEMPZ,NS2,
32293     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
32294     1ISUBRO,IBUGG3,IERROR)
32295      RIGHT=SDALPH
32296      GOTO79000
32297C
3229811740 CONTINUE
32299      CALL LINFIT(TEMP,TEMPZ,NS2,
32300     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
32301     1ISUBRO,IBUGG3,IERROR)
32302      RIGHT=BETA
32303      GOTO79000
32304C
3230511745 CONTINUE
32306      CALL LINFIT(TEMP,TEMPZ,NS2,
32307     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
32308     1ISUBRO,IBUGG3,IERROR)
32309      RIGHT=SDBETA
32310      GOTO79000
32311C
3231211750 CONTINUE
32313      CALL LINFIT(TEMP,TEMPZ,NS2,
32314     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
32315     1ISUBRO,IBUGG3,IERROR)
32316      RIGHT=XRESSD
32317      GOTO79000
32318C
3231911760 CONTINUE
32320      CALL LINFIT(TEMP,TEMPZ,NS2,
32321     1ALPHA,BETA,XRESSD,XRESDF,CCXY,SDALPH,SDBETA,CCALBE,
32322     1ISUBRO,IBUGG3,IERROR)
32323      RIGHT=CCXY
32324      GOTO79000
32325C
3232611770 CONTINUE
32327      CALL REPEAZ(TEMP,TEMPZ,XTEMP1,XTEMP2,NS2,IWRITE,XREP,
32328     1ISUBRO,IBUGG3,IERROR)
32329      RIGHT=XREP
32330      GOTO79000
32331C
3233211780 CONTINUE
32333      CALL REPROD(TEMP,TEMPZ,XTEMP1,XTEMP2,XTEMP3,NS2,IWRITE,XREP,
32334     1ISUBRO,IBUGG3,IERROR)
32335      RIGHT=XREP
32336      GOTO79000
32337C
3233811790 CONTINUE
32339      CALL MEAN(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32340      GOTO79000
32341C
3234211795 CONTINUE
32343      CALL SD(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32344      GOTO79000
32345C
3234611810 CONTINUE
32347      CALL TAGUCH(TEMP,NS2,ICASPL,IWRITE,RIGHT,IBUGG3,IERROR)
32348      GOTO79000
32349C
3235011900 CONTINUE
32351      IHP='LSL '
32352      IHP2='    '
32353      IHWUSE='P'
32354      MESSAG='YES'
32355      CALL CHECKN(IHP,IHP2,IHWUSE,
32356     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32357     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32358      IF(IERROR.EQ.'YES')GOTO9000
32359      ENGLSL=VALUE(ILOCP)
32360C
32361      IHP='USL '
32362      IHP2='    '
32363      IHWUSE='P'
32364      MESSAG='YES'
32365      CALL CHECKN(IHP,IHP2,IHWUSE,
32366     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32367     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32368      IF(IERROR.EQ.'YES')GOTO9000
32369      ENGUSL=VALUE(ILOCP)
32370C
32371      IF(ICASPL.EQ.'CP')THEN
32372         CALL CP(TEMP,NS2,ENGLSL,ENGUSL,IWRITE,
32373     1           RIGHT,XLCL,XUCL,IBUGG3,IERROR)
32374         GOTO79000
32375      ELSEIF(ICASPL.EQ.'CPK')THEN
32376         CALL CPK(TEMP,NS2,ENGLSL,ENGUSL,IWRITE,
32377     1            RIGHT,XLCL,XUCL,IBUGG3,IERROR)
32378         GOTO79000
32379      ELSEIF(ICASPL.EQ.'CPL')THEN
32380         CALL CPL(TEMP,NS2,ENGLSL,ENGUSL,IWRITE,
32381     1            RIGHT,XLCL,XUCL,IBUGG3,IERROR)
32382         GOTO79000
32383      ELSEIF(ICASPL.EQ.'CPU')THEN
32384         CALL CPU(TEMP,NS2,ENGLSL,ENGUSL,IWRITE,
32385     1            RIGHT,XLCL,XUCL,IBUGG3,IERROR)
32386         GOTO79000
32387      ELSEIF(ICASPL.EQ.'CNP')THEN
32388         CALL CNP(TEMP,NS2,XTEMP1,MAXNXT,ENGLSL,ENGUSL,IWRITE,ICNPKD,
32389     1            RIGHT,IBUGG3,IERROR)
32390         GOTO79000
32391      ELSEIF(ICASPL.EQ.'CNPK')THEN
32392         CALL CNPK(TEMP,NS2,XTEMP1,MAXNXT,ENGLSL,ENGUSL,IWRITE,ICNPKD,
32393     1             RIGHT,IBUGG3,IERROR)
32394         GOTO79000
32395      ENDIF
32396C
32397      IF(ICASPL.EQ.'PEDE')THEN
32398         IFLAG='ACTU'
32399         CALL PERDEF(TEMP,NS2,ENGLSL,ENGUSL,IWRITE,
32400     1               RIGHT,RIJUNK,
32401     1               YACTL,YTHEL,YACTU,YTHEU,
32402     1               IFLAG,IBUGG3,IERROR)
32403         GOTO79000
32404      ENDIF
32405C
32406      IF(ICASPL.EQ.'EXLO')THEN
32407         IHP='USLC'
32408         IHP2='OST '
32409         IHWUSE='P'
32410         MESSAG='YES'
32411         CALL CHECKN(IHP,IHP2,IHWUSE,
32412     1   IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32413     1   ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32414         IF(IERROR.EQ.'YES')GOTO9000
32415         COSUSL=VALUE(ILOCP)
32416C
32417         CALL EXPLOS(TEMP,NS2,ENGLSL,ENGUSL,COSUSL,IWRITE,
32418     1               RIGHT,IBUGG3,IERROR)
32419         GOTO79000
32420      ENDIF
32421C
32422      IHP='TARG'
32423      IHP2='ET  '
32424      IHWUSE='P'
32425      MESSAG='YES'
32426      CALL CHECKN(IHP,IHP2,IHWUSE,
32427     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32428     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32429      IF(IERROR.EQ.'YES')GOTO9000
32430      TARGET=VALUE(ILOCP)
32431C
32432      IF(ICASPL.EQ.'CPM')THEN
32433         CALL CPM(TEMP,NS2,ENGLSL,ENGUSL,TARGET,IWRITE,
32434     1            RIGHT,XLCL,XUCL,IBUGG3,IERROR)
32435         GOTO79000
32436      ELSEIF(ICASPL.EQ.'CPMK')THEN
32437         CALL CPMK(TEMP,NS2,ENGLSL,ENGUSL,TARGET,IWRITE,
32438     1             RIGHT,XLCL,XUCL,IBUGG3,IERROR)
32439         GOTO79000
32440      ELSEIF(ICASPL.EQ.'CC')THEN
32441         CALL CC(TEMP,NS2,ENGLSL,ENGUSL,TARGET,IWRITE,
32442     1           RIGHT,IBUGG3,IERROR)
32443         GOTO79000
32444      ELSEIF(ICASPL.EQ.'CNPM')THEN
32445         CALL CNPM(TEMP,NS2,XTEMP1,MAXNXT,ENGLSL,ENGUSL,TARGET,
32446     1             IWRITE,ICNPKD,
32447     1             RIGHT,IBUGG3,IERROR)
32448         GOTO79000
32449      ELSEIF(ICASPL.EQ.'NPMK')THEN
32450         CALL CNPMK(TEMP,NS2,XTEMP1,MAXNXT,ENGLSL,ENGUSL,TARGET,
32451     1              IWRITE,ICNPKD,
32452     1              RIGHT,IBUGG3,IERROR)
32453         GOTO79000
32454      ENDIF
32455C
3245611910 CONTINUE
32457      SHAPE=0.0
32458      IF(ICASPL.EQ.'TLPP' .OR. ICASPL.EQ.'TLSH' .OR.
32459     1   ICASPL.EQ.'TLLO' .OR. ICASPL.EQ.'TLSC')THEN
32460        IHP='LAMB'
32461        IHP2='DA  '
32462        IHWUSE='P'
32463        MESSAG='NO'
32464        CALL CHECKN(IHP,IHP2,IHWUSE,
32465     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32466     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32467        IF(IERROR.EQ.'YES')THEN
32468          SHAPE=CPUMIN
32469        ELSE
32470          SHAPE=VALUE(ILOCP)
32471        ENDIF
32472      ELSEIF(ICASPL.EQ.'LNPP' .OR. ICASPL.EQ.'LNSH' .OR.
32473     1       ICASPL.EQ.'LNLO' .OR. ICASPL.EQ.'LNSC')THEN
32474        IHP='SIGM'
32475        IHP2='A   '
32476        IHWUSE='P'
32477        MESSAG='NO'
32478        CALL CHECKN(IHP,IHP2,IHWUSE,
32479     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32480     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32481        IF(IERROR.EQ.'YES')THEN
32482          SHAPE=CPUMIN
32483        ELSE
32484          SHAPE=VALUE(ILOCP)
32485        ENDIF
32486      ELSEIF(ICASPL.EQ.'GHPP' .OR. ICASPL.EQ.'GHSH' .OR.
32487     1       ICASPL.EQ.'GHS2' .OR. ICASPL.EQ.'GHLO' .OR.
32488     1       ICASPL.EQ.'GHSC')THEN
32489        IHP='G   '
32490        IHP2='    '
32491        IHWUSE='P'
32492        MESSAG='NO'
32493        CALL CHECKN(IHP,IHP2,IHWUSE,
32494     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32495     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32496        IF(IERROR.EQ.'YES')THEN
32497          SHAPE=CPUMIN
32498        ELSE
32499          SHAPE=VALUE(ILOCP)
32500        ENDIF
32501        IHP='H   '
32502        IHP2='    '
32503        IHWUSE='P'
32504        MESSAG='NO'
32505        CALL CHECKN(IHP,IHP2,IHWUSE,
32506     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32507     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32508        IF(IERROR.EQ.'YES')THEN
32509          SHAPE2=CPUMIN
32510        ELSE
32511          SHAPE2=VALUE(ILOCP)
32512        ENDIF
32513      ELSEIF(ICASPL.EQ.'GPPC' .OR. ICASPL.EQ.'GSHA' .OR.
32514     1       ICASPL.EQ.'GSCA' .OR. ICASPL.EQ.'GLOC')THEN
32515        IHP='G   '
32516        IHP2='    '
32517        IHWUSE='P'
32518        MESSAG='NO'
32519        CALL CHECKN(IHP,IHP2,IHWUSE,
32520     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32521     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32522        IF(IERROR.EQ.'YES')THEN
32523          SHAPE=CPUMIN
32524        ELSE
32525          SHAPE=VALUE(ILOCP)
32526        ENDIF
32527      ELSEIF(ICASPL.EQ.'WEPP' .OR. ICASPL.EQ.'WESH' .OR.
32528     1       ICASPL.EQ.'WELO' .OR. ICASPL.EQ.'WESC' .OR.
32529     1       ICASPL.EQ.'W2PP' .OR. ICASPL.EQ.'WESC' .OR.
32530     1       ICASPL.EQ.'W2SH' .OR.
32531     1       ICASPL.EQ.'GPPP' .OR. ICASPL.EQ.'GPSH' .OR.
32532     1       ICASPL.EQ.'GPLO' .OR. ICASPL.EQ.'GPSC' .OR.
32533     1       ICASPL.EQ.'FLPP' .OR. ICASPL.EQ.'FLSH' .OR.
32534     1       ICASPL.EQ.'FLLO' .OR. ICASPL.EQ.'FLSC' .OR.
32535     1       ICASPL.EQ.'GAPP' .OR. ICASPL.EQ.'GASH' .OR.
32536     1       ICASPL.EQ.'GALO' .OR. ICASPL.EQ.'GASC' .OR.
32537     1       ICASPL.EQ.'IWPP' .OR. ICASPL.EQ.'IWSH' .OR.
32538     1       ICASPL.EQ.'IWLO' .OR. ICASPL.EQ.'IWSC' .OR.
32539     1       ICASPL.EQ.'WAPP' .OR. ICASPL.EQ.'WASH' .OR.
32540     1       ICASPL.EQ.'WALO' .OR. ICASPL.EQ.'WASC')THEN
32541        IHP='GAMM'
32542        IHP2='A   '
32543        IHWUSE='P'
32544        MESSAG='NO'
32545        CALL CHECKN(IHP,IHP2,IHWUSE,
32546     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32547     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32548        IF(IERROR.EQ.'YES')THEN
32549          SHAPE=CPUMIN
32550        ELSE
32551          SHAPE=VALUE(ILOCP)
32552          IF(SHAPE.LE.0.0)SHAPE=CPUMIN
32553        ENDIF
32554      ENDIF
32555      CALL NORPPC(TEMP,NS2,IDIST,SHAPE,SHAPE2,
32556     1            IWRITE,XTEMP1,XTEMP2,XTEMP3,DTEMP1,MAXNXT,
32557     1            MINMAX,IGEPDF,
32558     1            RIGHT,SHAPE3,SHAPE4,ALOC,SCALE,
32559     1            IBUGG3,ISUBRO,IERROR)
32560      IF(ICASPL.EQ.'WESH' .OR. ICASPL.EQ.'TLSH' .OR.
32561     1   ICASPL.EQ.'LNSH' .OR. ICASPL.EQ.'GPSH' .OR.
32562     1   ICASPL.EQ.'FLSH' .OR. ICASPL.EQ.'IWSH' .OR.
32563     1   ICASPL.EQ.'GASH' .OR. ICASPL.EQ.'GSHA' .OR.
32564     1   ICASPL.EQ.'W2SH' .OR.
32565     1   ICASPL.EQ.'GHSH' .OR. ICASPL.EQ.'WASH')RIGHT=SHAPE3
32566      IF(ICASPL.EQ.'GHS2')RIGHT=SHAPE4
32567      IF(ICASPL.EQ.'WELO' .OR. ICASPL.EQ.'TLLO' .OR.
32568     1   ICASPL.EQ.'NOLO' .OR. ICASPL.EQ.'UNLO' .OR.
32569     1   ICASPL.EQ.'CALO' .OR. ICASPL.EQ.'LOLO' .OR.
32570     1   ICASPL.EQ.'DELO' .OR. ICASPL.EQ.'COLO' .OR.
32571     1   ICASPL.EQ.'ANLO' .OR. ICASPL.EQ.'ARLO' .OR.
32572     1   ICASPL.EQ.'EXLO' .OR. ICASPL.EQ.'HSLO' .OR.
32573     1   ICASPL.EQ.'SLLO' .OR. ICASPL.EQ.'MXLO' .OR.
32574     1   ICASPL.EQ.'RALO' .OR. ICASPL.EQ.'HNLO' .OR.
32575     1   ICASPL.EQ.'HCLO' .OR. ICASPL.EQ.'SCLO' .OR.
32576     1   ICASPL.EQ.'LNLO' .OR. ICASPL.EQ.'GPLO' .OR.
32577     1   ICASPL.EQ.'GHLO' .OR. ICASPL.EQ.'WALO' .OR.
32578     1   ICASPL.EQ.'FLLO' .OR. ICASPL.EQ.'GALO' .OR.
32579     1   ICASPL.EQ.'IWLO' .OR. ICASPL.EQ.'SILO' .OR.
32580     1   ICASPL.EQ.'GLOC' .OR.
32581     1   ICASPL.EQ.'G1LO' .OR. ICASPL.EQ.'G2LO'
32582     1)RIGHT=ALOC
32583      IF(ICASPL.EQ.'WESC' .OR. ICASPL.EQ.'TLSC' .OR.
32584     1   ICASPL.EQ.'NOSC' .OR. ICASPL.EQ.'UNSC' .OR.
32585     1   ICASPL.EQ.'W2SC' .OR.
32586     1   ICASPL.EQ.'CASC' .OR. ICASPL.EQ.'LOSC' .OR.
32587     1   ICASPL.EQ.'DESC' .OR. ICASPL.EQ.'COSC' .OR.
32588     1   ICASPL.EQ.'ANSC' .OR. ICASPL.EQ.'ARSC' .OR.
32589     1   ICASPL.EQ.'EXSC' .OR. ICASPL.EQ.'HSSC' .OR.
32590     1   ICASPL.EQ.'SLSC' .OR. ICASPL.EQ.'MXSC' .OR.
32591     1   ICASPL.EQ.'RASC' .OR. ICASPL.EQ.'HNSC' .OR.
32592     1   ICASPL.EQ.'HCSC' .OR. ICASPL.EQ.'SCSC' .OR.
32593     1   ICASPL.EQ.'LNSC' .OR. ICASPL.EQ.'GPSC' .OR.
32594     1   ICASPL.EQ.'GHSC' .OR. ICASPL.EQ.'WASC' .OR.
32595     1   ICASPL.EQ.'GASC' .OR. ICASPL.EQ.'FLSC' .OR.
32596     1   ICASPL.EQ.'IWSC' .OR. ICASPL.EQ.'SISC' .OR.
32597     1   ICASPL.EQ.'GSCA' .OR.
32598     1   ICASPL.EQ.'G1SC' .OR. ICASPL.EQ.'G2SC'
32599     1)RIGHT=SCALE
32600      GOTO79000
32601C
3260211915 CONTINUE
32603C
32604C     FOR WEIBULL CASE WHEN GAUGE LENGTH OPTION IS ON, CHECK FOR
32605C     L PARAMETER
32606C
32607      IF(IDIST.EQ.'WEIB' .AND. IWEIGL.EQ.'ON')THEN
32608        IHP='L   '
32609        IHP2='    '
32610        IHWUSE='P'
32611        MESSAG='NO'
32612        CALL CHECKN(IHP,IHP2,IHWUSE,
32613     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32614     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32615        IF(IERROR.EQ.'YES')THEN
32616          AL=0.0
32617        ELSE
32618          AL=VALUE(ILOCP)
32619          IF(AL.LE.0.0)AL=0.0
32620        ENDIF
32621      ELSE
32622        AL=0.0
32623      ENDIF
32624      CALL NORADA(TEMP,NS2,IDIST,IWRITE,MAXNXT,
32625     1            TEMPZ,TEMPZ3,XTEMP1,XTEMP2,XTEMP3,
32626     1            DTEMP1,DTEMP2,DTEMP3,ITEMP1,
32627     1            MINMAX,IGEPDF,IDFTTY,IWEIGL,AL,
32628     1            STATVA,SHAPE1,SHAPE2,ALOC,SCALE,
32629     1            IBUGG3,ISUBRO,IERROR)
32630      IF(ICASPL.EQ.'NOAD' .OR. ICASPL.EQ.'EXAD' .OR.
32631     1   ICASPL.EQ.'DXAD' .OR. ICASPL.EQ.'GUAD' .OR.
32632     1   ICASPL.EQ.'GAAD' .OR. ICASPL.EQ.'WEAD' .OR.
32633     1   ICASPL.EQ.'LNAD' .OR. ICASPL.EQ.'LOAD' .OR.
32634     1   ICASPL.EQ.'UNAD' .OR. ICASPL.EQ.'MXAD' .OR.
32635     1   ICASPL.EQ.'RAAD' .OR. ICASPL.EQ.'FLAD' .OR.
32636     1   ICASPL.EQ.'FRAD' .OR. ICASPL.EQ.'LXAD' .OR.
32637     1   ICASPL.EQ.'IGAD' .OR. ICASPL.EQ.'B1AD' .OR.
32638     1   ICASPL.EQ.'GEAD'
32639     1  )RIGHT=STATVA
32640      IF(ICASPL.EQ.'NADL' .OR. ICASPL.EQ.'EADL' .OR.
32641     1   ICASPL.EQ.'DXAL' .OR. ICASPL.EQ.'GUAL' .OR.
32642     1   ICASPL.EQ.'LOAL' .OR. ICASPL.EQ.'UNAL' .OR.
32643     1   ICASPL.EQ.'MXAL' .OR. ICASPL.EQ.'RAAL'
32644     1   )RIGHT=ALOC
32645      IF(ICASPL.EQ.'GAAZ' .OR. ICASPL.EQ.'WEAZ' .OR.
32646     1   ICASPL.EQ.'LNAZ' .OR. ICASPL.EQ.'FLAZ' .OR.
32647     1   ICASPL.EQ.'FRAZ' .OR. ICASPL.EQ.'LXAZ' .OR.
32648     1   ICASPL.EQ.'IGAZ' .OR. ICASPL.EQ.'B1AZ' .OR.
32649     1   ICASPL.EQ.'GEAZ'
32650     1  )RIGHT=SHAPE1
32651      IF(ICASPL.EQ.'NADS' .OR. ICASPL.EQ.'EADS' .OR.
32652     1   ICASPL.EQ.'DXAS' .OR. ICASPL.EQ.'GUAS' .OR.
32653     1   ICASPL.EQ.'LOAS' .OR. ICASPL.EQ.'UNAS' .OR.
32654     1   ICASPL.EQ.'MXAS' .OR. ICASPL.EQ.'RAAS' .OR.
32655     1   ICASPL.EQ.'GAAS' .OR. ICASPL.EQ.'WEAS' .OR.
32656     1   ICASPL.EQ.'FLAS' .OR. ICASPL.EQ.'FRAS' .OR.
32657     1   ICASPL.EQ.'LXAS' .OR. ICASPL.EQ.'IGAS' .OR.
32658     1   ICASPL.EQ.'B1AS' .OR. ICASPL.EQ.'GEAS' .OR.
32659     1   ICASPL.EQ.'LNAS'
32660     1  )RIGHT=SCALE
32661      GOTO79000
32662C
3266311920 CONTINUE
32664      CALL BCNORM(TEMP,NS2,XTEMP1,XTEMP2,XTEMP3,
32665     1            PPCC,ALAMBA,
32666     1            IBUGG3,ISUBRO,IERROR)
32667      IF(ICASPL.EQ.'BCPP')RIGHT=PPCC
32668      IF(ICASPL.EQ.'BCLA')RIGHT=ALAMBA
32669      GOTO79000
32670C
3267111933 CONTINUE
32672      CALL MINIM(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
32673      CALL MAXIM(TEMP,NS2,IWRITE,RIGH2,IBUGG3,IERROR)
32674      IF(RIGH1.GE.0.0)THEN
32675        ASIGN1=1.0
32676      ELSE
32677        ASIGN1=-1.0
32678      ENDIF
32679      IF(RIGH2.GE.0.0)THEN
32680        ASIGN2=1.0
32681      ELSE
32682        ASIGN2=-1.0
32683      ENDIF
32684      RIGH1=ABS(RIGH1)
32685      RIGH2=ABS(RIGH2)
32686      IF(RIGH2.GT.RIGH1)THEN
32687        RIGHT=RIGH2
32688        RIGHT=ASIGN2*RIGHT
32689      ELSE
32690        RIGHT=RIGH1
32691        RIGHT=ASIGN1*RIGHT
32692      ENDIF
32693      GOTO79000
3269411935 CONTINUE
32695      ICASE2='MEAN'
32696      CALL AAD(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,ICASE2,IBUGG3,IERROR)
32697      GOTO79000
3269811938 CONTINUE
32699      ICASE2='MEDI'
32700      CALL AAD(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,ICASE2,IBUGG3,IERROR)
32701      GOTO79000
3270211940 CONTINUE
32703      CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHT,IBUGG3,IERROR)
32704      IF(ICASPL.EQ.'MADN')RIGHT=RIGHT/0.67449
32705      GOTO79000
32706C
3270711950 CONTINUE
32708      CALL GEOMEA(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32709      GOTO79000
3271011960 CONTINUE
32711      CALL GEOSD(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32712      GOTO79000
3271311970 CONTINUE
32714      CALL HARMEA(TEMP,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32715      GOTO79000
3271611980 CONTINUE
32717      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
32718      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
32719      RIGHT=RIGH2-RIGH1
32720      IF(ICASPL.EQ.'SIQU' .OR. ICASPL.EQ.'SIQL')THEN
32721        CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH3,IBUGG3,IERROR)
32722      ENDIF
32723      RIGHT=RIGH2-RIGH1
32724      IF(ICASPL.EQ.'NIQR')THEN
32725        RIGHT=0.7413*RIGHT
32726      ELSEIF(ICASPL.EQ.'SIQU')THEN
32727        RIGHT=RIGH2-RIGH3
32728      ELSEIF(ICASPL.EQ.'SIQL')THEN
32729        RIGHT=RIGH3-RIGH1
32730      ENDIF
32731      GOTO79000
3273211981 CONTINUE
32733CCCCC 2017/12: ALLOW QUANTILE METHOD TO BE SPECIFIED
32734CCCCC CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RQ1,IBUGG3,IERROR)
32735CCCCC CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RQ3,IBUGG3,IERROR)
32736      QNT=0.25
32737      CALL QUANT(QNT,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,IQUAME,RQ1,
32738     1           IBUGG3,IERROR)
32739      QNT=0.75
32740      CALL QUANT(QNT,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,IQUAME,RQ3,
32741     1           IBUGG3,IERROR)
32742      RIGHT=(RQ3 - RQ1)/(RQ1 + RQ3)
32743      GOTO79000
32744C
3274511982 CONTINUE
32746C
32747      IHP='QUAN'
32748      IHP2='T   '
32749      IHWUSE='P'
32750      MESSAG='YES'
32751      CALL CHECKN(IHP,IHP2,IHWUSE,
32752     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32753     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32754      IF(IERROR.EQ.'YES')GOTO9000
32755      XQUANT=VALUE(ILOCP)
32756C
32757      CALL QQRANG(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,XQUANT,RIGHT,
32758     1            IBUGG3,ISUBRO,IERROR)
32759      GOTO79000
32760C
3276111983 CONTINUE
32762      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RQ1,IBUGG3,IERROR)
32763      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RQ3,IBUGG3,IERROR)
32764      RIGH1=(RQ3 - RQ1)/(RQ1 + RQ3)
32765      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RQ1,IBUGG3,IERROR)
32766      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RQ3,IBUGG3,IERROR)
32767      RIGH2=(RQ3 - RQ1)/(RQ1 + RQ3)
32768      RIGHT=RIGH1 - RIGH2
32769      GOTO79000
32770C
3277111990 CONTINUE
32772      CALL BIWLOC(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHT,
32773     1IBUGG3,IERROR)
32774      GOTO79000
32775C
3277612000 CONTINUE
32777      CALL BIWSCA(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHT,
32778     1IBUGG3,IERROR)
32779      GOTO79000
32780C
3278112010 CONTINUE
32782      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
32783     1            XTEMP1,MAXNXT,XTEMP2,
32784     1            IBUGG3,ISUBRO,IERROR)
32785      IF(IERROR.EQ.'YES')GOTO9000
32786      CALL VAR(XTEMP2,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32787      GOTO79000
32788C
3278912030 CONTINUE
32790      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
32791     1            XTEMP1,MAXNXT,XTEMP2,
32792     1            IBUGG3,ISUBRO,IERROR)
32793      IF(IERROR.EQ.'YES')GOTO9000
32794      CALL SD(XTEMP2,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32795      GOTO79000
32796C
3279712050 CONTINUE
32798      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
32799     1            XTEMP1,MAXNXT,XTEMP2,
32800     1            IBUGG3,ISUBRO,IERROR)
32801      DO12052I=1,NS2
32802        TEMP(I)=XTEMP2(I)
3280312052 CONTINUE
32804      CALL WINSOR(TEMPZ,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
32805     1            XTEMP1,MAXNXT,XTEMP2,
32806     1            IBUGG3,ISUBRO,IERROR)
32807      DO12054I=1,NS2
32808        TEMPZ(I)=XTEMP2(I)
3280912054 CONTINUE
32810      CALL COV(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32811      GOTO79000
32812C
3281312070 CONTINUE
32814      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
32815     1            XTEMP1,MAXNXT,XTEMP2,
32816     1            IBUGG3,ISUBRO,IERROR)
32817      DO12072I=1,NS2
32818        TEMP(I)=XTEMP2(I)
3281912072 CONTINUE
32820      CALL WINSOR(TEMPZ,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
32821     1            XTEMP1,MAXNXT,XTEMP2,
32822     1            IBUGG3,ISUBRO,IERROR)
32823      DO12074I=1,NS2
32824        TEMPZ(I)=XTEMP2(I)
3282512074 CONTINUE
32826      CALL CORR(TEMP,TEMPZ,NS2,IWRITE,RIGHT,IBUGG3,IERROR)
32827      GOTO79000
32828C
3282912090 CONTINUE
32830      CALL BIWMDV(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHT,
32831     1IBUGG3,IERROR)
32832      GOTO79000
32833C
3283412100 CONTINUE
32835      CALL BIWMCV(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGHT,
32836     1IBUGG3,IERROR)
32837      GOTO79000
32838C
3283912110 CONTINUE
32840      CALL PBNMDV(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGHT,BETA,
32841     1            IBUGG3,IERROR)
32842      GOTO79000
32843C
3284412115 CONTINUE
32845      CALL PBNCOR(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,
32846     1            RIGHT,BETA,
32847     1            IBUGG3,IERROR)
32848      GOTO79000
32849C
3285012120 CONTINUE
32851      DO12122I=1,NS2
32852        ITEMP1(I)=0
32853        ITEMP2(I)=0
32854        ITEMP3(I)=0
3285512122 CONTINUE
32856      CALL HLQEST(TEMP,NS2,XTEMP1,ITEMP1,ITEMP2,ITEMP3,ISEED,RIGHT)
32857      GOTO79000
32858C
3285912130 CONTINUE
32860C
32861      IF(APVAL.GE.0.0 .AND. APVAL.LE.1.0)THEN
32862        XQ=APVAL
32863      ELSEIF(IPNAM1.NE.'    ')THEN
32864        IHWUSE='P'
32865        MESSAG='YES'
32866        CALL CHECKN(IPNAM1,IPNAM2,IHWUSE,
32867     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32868     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32869        IF(IERROR.EQ.'YES')GOTO9000
32870        XQ=VALUE(ILOCP)
32871      ELSE
32872        IHP='XQ  '
32873        IHP2='    '
32874        IHWUSE='P'
32875        MESSAG='YES'
32876        CALL CHECKN(IHP,IHP2,IHWUSE,
32877     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32878     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32879        IF(IERROR.EQ.'YES')GOTO9000
32880        XQ=VALUE(ILOCP)
32881      ENDIF
32882C
32883      CALL QUANT(XQ,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
32884     1IQUAME,
32885     1RIGHT,IBUGG3,IERROR)
32886      GOTO79000
32887C
3288812135 CONTINUE
32889C
32890      IHP='XQNU'
32891      IHP2='M   '
32892      IHWUSE='P'
32893      MESSAG='NO'
32894      CALL CHECKN(IHP,IHP2,IHWUSE,
32895     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32896     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32897      IF(IERROR.EQ.'YES')THEN
32898        XQNUM=0.9
32899      ELSE
32900        XQNUM=VALUE(ILOCP)
32901        IF(XQNUM.GT.1.0 .AND. XQNUM.LE.100.0)XQNUM=XQNUM/100.0
32902        IF(XQNUM.LT.0.0 .OR. XQNUM.GT.100.0)XQNUM=0.9
32903      ENDIF
32904C
32905      IHP='XQDE'
32906      IHP2='NOM '
32907      IHWUSE='P'
32908      MESSAG='NO'
32909      CALL CHECKN(IHP,IHP2,IHWUSE,
32910     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32911     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32912      IF(IERROR.EQ.'YES')THEN
32913        XQDEN=0.4
32914      ELSE
32915        XQDEN=VALUE(ILOCP)
32916        IF(XQDEN.GT.1.0 .AND. XQDEN.LE.100.0)XQDEN=XQDEN/100.0
32917        IF(XQDEN.LT.0.0 .OR. XQDEN.GT.100.0)XQDEN=0.4
32918      ENDIF
32919C
32920      CALL DECRAT(TEMP,NS2,IWRITE,XQNUM,XQDEN,
32921     1            RIGHT,
32922     1            IBUGG3,ISUBRO,IERROR)
32923      GOTO79000
3292412140 CONTINUE
32925C
32926      IF(APVAL.GE.0.0 .AND. APVAL.LE.1.0)THEN
32927        XQ=APVAL
32928      ELSEIF(IPNAM1.NE.'    ')THEN
32929        IHWUSE='P'
32930        MESSAG='YES'
32931        CALL CHECKN(IPNAM1,IPNAM2,IHWUSE,
32932     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32933     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32934        IF(IERROR.EQ.'YES')GOTO9000
32935        XQ=VALUE(ILOCP)
32936      ELSE
32937        IHP='XQ  '
32938        IHP2='    '
32939        IHWUSE='P'
32940        MESSAG='YES'
32941        CALL CHECKN(IHP,IHP2,IHWUSE,
32942     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
32943     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
32944        IF(IERROR.EQ.'YES')GOTO9000
32945        XQ=VALUE(ILOCP)
32946      ENDIF
32947C
32948      CALL QUANSE(XQ,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
32949     1IQUASE,
32950     1RIGHT,IBUGG3,IERROR)
32951      GOTO79000
32952C
3295312150 CONTINUE
32954      CALL TRIMSE(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
32955     1            XTEMP1,XTEMP2,MAXNXT,RIGHT,
32956     1            IBUGG3,ISUBRO,IERROR)
32957      GOTO79000
32958C
3295912160 CONTINUE
32960      CALL BIWMDV(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH1,
32961     1IBUGG3,IERROR)
32962      CALL BIWMDV(TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH2,
32963     1IBUGG3,IERROR)
32964      CALL BIWMCV(TEMP,TEMPZ,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH3,
32965     1IBUGG3,IERROR)
32966      RIGH4=RIGH1*RIGH2
32967      IF(RIGH4.GT.0.0)THEN
32968        RIGHT=RIGH3/SQRT(RIGH4)
32969      ELSE
32970        RIGHT=0.0
32971      ENDIF
32972      GOTO79000
32973C
3297412172 CONTINUE
32975      CALL COMDIG(TEMP,NS2,IWRITE,RIGHT,NRIGH,IBUGG3,IERROR)
32976      GOTO79000
32977C
3297812174 CONTINUE
32979      CALL COMDIG(TEMP,NS2,IWRITE,RIGHT,NRIGH,IBUGG3,IERROR)
32980      RIGHT=REAL(NRIGH)
32981      GOTO79000
32982C
3298312176 CONTINUE
32984      RIGHT=SN(TEMP,NS2,XTEMP1,XTEMP2,XTEMP3)
32985      GOTO79000
32986C
3298712178 CONTINUE
32988      RIGHT=QN(TEMP,NS2,XTEMP1,XTEMP2,XTEMP3,
32989     1        ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6)
32990      GOTO79000
32991C
3299212180 CONTINUE
32993      CALL MEAN(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
32994      CALL MEAN(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
32995      RIGHT=RIGH1-RIGH2
32996      GOTO79000
32997C
3299812182 CONTINUE
32999      IHP='ALPH'
33000      IHP2='A   '
33001      IHWUSE='P'
33002      MESSAG='NO'
33003      CALL CHECKN(IHP,IHP2,IHWUSE,
33004     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33005     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33006      IF(IERROR.EQ.'NO')THEN
33007        ALPHA=VALUE(ILOCP)
33008      ELSE
33009        ALPHA=0.95
33010      ENDIF
33011C
33012      CALL HEDGEG(TEMP,TEMPZ,NS2,NSZ,IWRITE,STATVA,STATBC,STATSE,
33013     1            ALPHA,ALCL,AUCL,
33014     1            YMEAN1,YSD1,YMEAN2,YSD2,SPOOL,
33015     1            ICASPL,ISUBRO,IBUGG3,IERROR)
33016      RIGHT=STATVA
33017      IF(ICASPL.EQ.'BCHG')THEN
33018        RIGHT=STATBC
33019      ELSEIF(ICASPL.EQ.'BCHG')THEN
33020        RIGHT=STATBC
33021      ELSEIF(ICASPL.EQ.'HESE')THEN
33022        RIGHT=STATSE
33023      ELSEIF(ICASPL.EQ.'HELC')THEN
33024        RIGHT=ALCL
33025      ELSEIF(ICASPL.EQ.'HEUC')THEN
33026        RIGHT=AUCL
33027      ENDIF
33028      GOTO79000
33029C
3303012190 CONTINUE
33031      CALL MIDMEA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
33032      CALL MIDMEA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
33033      RIGHT=RIGH1-RIGH2
33034      GOTO79000
33035C
3303612200 CONTINUE
33037      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
33038      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
33039      RIGHT=RIGH1-RIGH2
33040      GOTO79000
33041C
3304212210 CONTINUE
33043      CALL TRIMME(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
33044     1            XTEMP1,MAXNXT,RIGH1,
33045     1            IBUGG3,ISUBRO,IERROR)
33046      CALL TRIMME(TEMPZ,NSZ,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
33047     1            XTEMP1,MAXNXT,RIGH2,
33048     1            IBUGG3,ISUBRO,IERROR)
33049      RIGHT=RIGH1-RIGH2
33050      GOTO79000
33051C
3305212220 CONTINUE
33053      CALL WINDME(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
33054     1            XTEMP1,MAXNXT,RIGH1,
33055     1            IBUGG3,ISUBRO,IERROR)
33056      CALL WINDME(TEMPZ,NSZ,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
33057     1            XTEMP1,MAXNXT,RIGH2,
33058     1            IBUGG3,ISUBRO,IERROR)
33059      RIGHT=RIGH1-RIGH2
33060      GOTO79000
33061C
3306212230 CONTINUE
33063      CALL GEOMEA(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33064      CALL GEOMEA(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33065      RIGHT=RIGH1-RIGH2
33066      GOTO79000
33067C
3306812240 CONTINUE
33069      CALL HARMEA(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33070      CALL HARMEA(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33071      RIGHT=RIGH1-RIGH2
33072      GOTO79000
33073C
3307412250 CONTINUE
33075      DO12252I=1,NS2
33076        ITEMP1(I)=0
33077        ITEMP2(I)=0
33078        ITEMP3(I)=0
3307912252 CONTINUE
33080      CALL HLQEST(TEMP,NS2,XTEMP1,ITEMP1,ITEMP2,ITEMP3,ISEED,RIGH1)
33081      DO12254I=1,NSZ
33082        ITEMP1(I)=0
33083        ITEMP2(I)=0
33084        ITEMP3(I)=0
3308512254 CONTINUE
33086      CALL HLQEST(TEMPZ,NSZ,XTEMP1,ITEMP1,ITEMP2,ITEMP3,ISEED,RIGH2)
33087      RIGHT=RIGH1-RIGH2
33088      GOTO79000
33089C
3309012260 CONTINUE
33091      CALL BIWLOC(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH1,
33092     1IBUGG3,IERROR)
33093      CALL BIWLOC(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH2,
33094     1IBUGG3,IERROR)
33095      RIGHT=RIGH1-RIGH2
33096      GOTO79000
33097C
3309812270 CONTINUE
33099      CALL SD(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33100      CALL SD(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33101      RIGHT=RIGH1-RIGH2
33102      GOTO79000
33103C
3310412275 CONTINUE
33105      CALL RMS(TEMP,NS2,IWRITE,RIGH1,IBUGG3,ISUBRO,IERROR)
33106      CALL RMS(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,ISUBRO,IERROR)
33107      RIGHT=RIGH1-RIGH2
33108      GOTO79000
33109C
3311012280 CONTINUE
33111      CALL VAR(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33112      CALL VAR(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33113      RIGHT=RIGH1-RIGH2
33114      GOTO79000
33115C
3311612282 CONTINUE
33117      CALL VAR(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33118      CALL VAR(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33119      IF(RIGH1.GT.0.0)THEN
33120        RIGH1=1.0/RIGH1
33121      ELSE
33122        RIGH1=0.0
33123        IERROR='YES'
33124      ENDIF
33125      IF(RIGH2.GT.0.0)THEN
33126        RIGH2=1.0/RIGH2
33127      ELSE
33128        RIGH2=0.0
33129        IERROR='YES'
33130      ENDIF
33131      RIGHT=RIGH1-RIGH2
33132      GOTO79000
33133C
3313412284 CONTINUE
33135      CALL SD(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
33136      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
33137      RIGH1=0.0
33138      IF(RIGHTV.NE.0.0)RIGH1=RIGHTM/RIGHTV
33139      CALL SD(TEMPZ,NSZ,IWRITE,RIGHTV,IBUGG3,IERROR)
33140      CALL MEAN(TEMPZ,NSZ,IWRITE,RIGHTM,IBUGG3,IERROR)
33141      RIGH2=0.0
33142      IF(RIGHTV.NE.0.0)RIGH2=RIGHTM/RIGHTV
33143      RIGHT=RIGH1-RIGH2
33144      GOTO79000
33145C
3314612290 CONTINUE
33147      ICASE2='MEAN'
33148      CALL AAD(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,ICASE2,IBUGG3,IERROR)
33149      CALL AAD(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,ICASE2,
33150     1         IBUGG3,IERROR)
33151      RIGHT=RIGH1-RIGH2
33152      GOTO79000
33153C
3315412295 CONTINUE
33155      ICASE2='MEDI'
33156      CALL AAD(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,ICASE2,IBUGG3,IERROR)
33157      CALL AAD(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,ICASE2,
33158     1         IBUGG3,IERROR)
33159      RIGHT=RIGH1-RIGH2
33160      GOTO79000
33161C
3316212300 CONTINUE
33163      CALL MAD(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH1,
33164     1         IBUGG3,IERROR)
33165      IF(ICASPL.EQ.'DMAN')RIGH1=RIGH1/0.67449
33166      CALL MAD(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH2,
33167     1         IBUGG3,IERROR)
33168      IF(ICASPL.EQ.'DMAN')RIGH2=RIGH2/0.67449
33169      RIGHT=RIGH1-RIGH2
33170      GOTO79000
33171C
3317212310 CONTINUE
33173      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH3,IBUGG3,IERROR)
33174      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH4,IBUGG3,IERROR)
33175      RIGH1=RIGH4-RIGH3
33176      IF(ICASPL.EQ.'DNIQ')RIGH1=0.7413*(RIGH4-RIGH3)
33177      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH5,IBUGG3,IERROR)
33178      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH6,IBUGG3,IERROR)
33179      RIGH2=RIGH6-RIGH5
33180      IF(ICASPL.EQ.'DNIQ')RIGH2=0.7413*(RIGH6-RIGH5)
33181      RIGHT=RIGH1-RIGH2
33182      GOTO79000
33183C
3318412320 CONTINUE
33185      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
33186     1            XTEMP1,MAXNXT,XTEMP2,
33187     1            IBUGG3,ISUBRO,IERROR)
33188      CALL SD(XTEMP2,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33189      CALL WINSOR(TEMPZ,NSZ,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
33190     1            XTEMP1,MAXNXT,XTEMP2,
33191     1            IBUGG3,ISUBRO,IERROR)
33192      CALL SD(XTEMP2,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33193      RIGHT=RIGH1-RIGH2
33194      GOTO79000
33195C
3319612330 CONTINUE
33197      CALL WINSOR(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
33198     1            XTEMP1,MAXNXT,XTEMP2,
33199     1            IBUGG3,ISUBRO,IERROR)
33200      CALL VAR(XTEMP2,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33201      CALL WINSOR(TEMPZ,NSZ,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,
33202     1            XTEMP1,MAXNXT,XTEMP2,
33203     1            IBUGG3,ISUBRO,IERROR)
33204      CALL VAR(XTEMP2,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33205      RIGHT=RIGH1-RIGH2
33206      GOTO79000
33207C
3320812340 CONTINUE
33209      CALL BIWMDV(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH1,
33210     1IBUGG3,IERROR)
33211      CALL BIWMDV(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH2,
33212     1IBUGG3,IERROR)
33213      RIGHT=RIGH1-RIGH2
33214      GOTO79000
33215C
3321612350 CONTINUE
33217      CALL BIWSCA(TEMP,NS2,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH1,
33218     1IBUGG3,IERROR)
33219      CALL BIWSCA(TEMPZ,NSZ,IWRITE,XTEMP1,XTEMP2,MAXNXT,RIGH2,
33220     1IBUGG3,IERROR)
33221      RIGHT=RIGH1-RIGH2
33222      GOTO79000
33223C
3322412360 CONTINUE
33225      CALL PBNMDV(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,BETA,
33226     1            IBUGG3,IERROR)
33227      CALL PBNMDV(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,BETA,
33228     1            IBUGG3,IERROR)
33229      RIGHT=RIGH1-RIGH2
33230      GOTO79000
33231C
3323212370 CONTINUE
33233      CALL GEOSD(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33234      CALL GEOSD(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33235      RIGHT=RIGH1-RIGH2
33236      GOTO79000
33237C
3323812380 CONTINUE
33239      CALL RANGDP(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33240      CALL RANGDP(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33241      RIGHT=RIGH1-RIGH2
33242      GOTO79000
33243C
3324412390 CONTINUE
33245      CALL MIDRAN(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33246      CALL MIDRAN(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33247      RIGHT=RIGH1-RIGH2
33248      GOTO79000
33249C
3325012400 CONTINUE
33251C
33252      IF(APVAL.GE.0.0 .AND. APVAL.LE.1.0)THEN
33253        XQ=APVAL
33254      ELSEIF(IPNAM1.NE.'    ')THEN
33255        IHWUSE='P'
33256        MESSAG='YES'
33257        CALL CHECKN(IPNAM1,IPNAM2,IHWUSE,
33258     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33259     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33260        IF(IERROR.EQ.'YES')GOTO9000
33261        XQ=VALUE(ILOCP)
33262      ELSE
33263        IHP='XQ  '
33264        IHP2='    '
33265        IHWUSE='P'
33266        MESSAG='YES'
33267        CALL CHECKN(IHP,IHP2,IHWUSE,
33268     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33269     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33270        IF(IERROR.EQ.'YES')GOTO9000
33271        XQ=VALUE(ILOCP)
33272      ENDIF
33273C
33274      CALL QUANSE(XQ,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
33275     1IQUASE,
33276     1RIGH1,IBUGG3,IERROR)
33277      CALL QUANSE(XQ,TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,
33278     1IQUASE,
33279     1RIGH2,IBUGG3,IERROR)
33280      RIGHT=RIGH1-RIGH2
33281      GOTO79000
33282C
3328312405 CONTINUE
33284C
33285      IF(APVAL.GE.0.0 .AND. APVAL.LE.1.0)THEN
33286        XQ=APVAL
33287      ELSEIF(IPNAM1.NE.'    ')THEN
33288        IHWUSE='P'
33289        MESSAG='YES'
33290        CALL CHECKN(IPNAM1,IPNAM2,IHWUSE,
33291     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33292     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33293        IF(IERROR.EQ.'YES')GOTO9000
33294        XQ=VALUE(ILOCP)
33295      ELSE
33296        IHP='XQ  '
33297        IHP2='    '
33298        IHWUSE='P'
33299        MESSAG='YES'
33300        CALL CHECKN(IHP,IHP2,IHWUSE,
33301     1              IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33302     1              ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33303                    IF(IERROR.EQ.'YES')GOTO9000
33304        XQ=VALUE(ILOCP)
33305      ENDIF
33306C
33307      CALL QUANT(XQ,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
33308     1IQUAME,
33309     1RIGH1,IBUGG3,IERROR)
33310      CALL QUANT(XQ,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
33311     1IQUAME,
33312     1RIGH2,IBUGG3,IERROR)
33313      RIGHT=RIGH1-RIGH2
33314      GOTO79000
33315C
3331612410 CONTINUE
33317      CALL STMOM3(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33318      CALL STMOM3(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33319      RIGHT=RIGH1-RIGH2
33320      GOTO79000
33321C
3332212412 CONTINUE
33323      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q1,IBUGG3,IERROR)
33324      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q3,IBUGG3,IERROR)
33325      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,Q2,IBUGG3,IERROR)
33326      IF(Q1.NE.Q3)THEN
33327        RIGH1=(Q3 + Q1 - 2.0*Q2)/(Q3 - Q1)
33328      ELSE
33329        RIGH1=CPUMIN
33330      ENDIF
33331C
33332      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,Q1,IBUGG3,IERROR)
33333      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,Q3,IBUGG3,IERROR)
33334      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,Q2,IBUGG3,IERROR)
33335      IF(Q1.NE.Q3)THEN
33336        RIGH2=(Q3 + Q1 - 2.0*Q2)/(Q3 - Q1)
33337      ELSE
33338        RIGH2=CPUMIN
33339      ENDIF
33340C
33341      IF(RIGH1.EQ.CPUMIN .OR. RIGH2.EQ.CPUMIN)THEN
33342        RIGHT=CPUMIN
33343      ELSE
33344        RIGHT=RIGH1-RIGH2
33345      ENDIF
33346      GOTO79000
33347C
3334812414 CONTINUE
33349      CALL MEAN(TEMP,NS2,IWRITE,YMEAN,IBUGG3,IERROR)
33350      CALL SD(TEMP,NS2,IWRITE,YSD,IBUGG3,IERROR)
33351      CALL MEDIAN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,YMED,IBUGG3,IERROR)
33352      IF(YSD.GT.0.0)THEN
33353        RIGHT=3.0*(YMEAN-YMED)/YSD
33354      ELSE
33355        RIGHT=CPUMIN
33356      ENDIF
33357C
33358      CALL MEAN(TEMPZ,NSZ,IWRITE,YMEAN,IBUGG3,IERROR)
33359      CALL SD(TEMPZ,NSZ,IWRITE,YSD,IBUGG3,IERROR)
33360      CALL MEDIAN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,YMED,IBUGG3,IERROR)
33361      IF(YSD.GT.0.0)THEN
33362        RIGH2=3.0*(YMEAN-YMED)/YSD
33363      ELSE
33364        RIGH2=CPUMIN
33365      ENDIF
33366C
33367      IF(RIGH1.EQ.CPUMIN .OR. RIGH2.EQ.CPUMIN)THEN
33368        RIGHT=CPUMIN
33369      ELSE
33370        RIGHT=RIGH1-RIGH2
33371      ENDIF
33372      GOTO79000
33373C
3337412420 CONTINUE
33375      CALL STMOM4(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33376      CALL STMOM4(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33377      RIGHT=RIGH1-RIGH2
33378      GOTO79000
33379C
3338012425 CONTINUE
33381      CALL STMOM4(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33382      RIGH1=RIGH1-3.0
33383      CALL STMOM4(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33384      RIGH2=RIGH2-3.0
33385      RIGHT=RIGH1-RIGH2
33386      GOTO79000
33387C
3338812430 CONTINUE
33389      CALL RELSD(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33390      CALL RELSD(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33391      RIGHT=RIGH1-RIGH2
33392      GOTO79000
33393C
3339412440 CONTINUE
33395      CALL SDMEAN(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33396      CALL SDMEAN(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33397      RIGHT=RIGH1-RIGH2
33398      GOTO79000
33399C
3340012450 CONTINUE
33401      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
33402      CALL VAR(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
33403      RIGH1=0.0
33404      IF(RIGHTM.NE.0.0)RIGH1=100.0*RIGHTV/ABS(RIGHTM)
33405      CALL MEAN(TEMPZ,NSZ,IWRITE,RIGHTM,IBUGG3,IERROR)
33406      CALL VAR(TEMPZ,NSZ,IWRITE,RIGHTV,IBUGG3,IERROR)
33407      RIGH2=0.0
33408      IF(RIGHTM.NE.0.0)RIGH2=100.0*RIGHTV/ABS(RIGHTM)
33409      RIGHT=RIGH1-RIGH2
33410      GOTO79000
33411C
3341212460 CONTINUE
33413      CALL SDMEAN(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33414      RIGH1=RIGH1**2
33415      CALL SDMEAN(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33416      RIGH2=RIGH2**2
33417      RIGHT=RIGH1-RIGH2
33418      GOTO79000
33419C
3342012470 CONTINUE
33421      CALL MINIM(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33422      CALL MINIM(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33423      RIGHT=RIGH1-RIGH2
33424      GOTO79000
33425C
3342612480 CONTINUE
33427      CALL MAXIM(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33428      CALL MAXIM(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33429      RIGHT=RIGH1-RIGH2
33430      GOTO79000
33431C
3343212490 CONTINUE
33433      CALL MINIM(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33434      CALL MAXIM(TEMP,NS2,IWRITE,RIGH2,IBUGG3,IERROR)
33435      RIGH1=ABS(RIGH1)
33436      RIGH2=ABS(RIGH2)
33437      RIGH3=RIGH1
33438      IF(RIGH2.GT.RIGH1)RIGH3=RIGH2
33439C
33440      CALL MINIM(TEMPZ,NSZ,IWRITE,RIGH4,IBUGG3,IERROR)
33441      CALL MAXIM(TEMPZ,NSZ,IWRITE,RIGH5,IBUGG3,IERROR)
33442      RIGH4=ABS(RIGH4)
33443      RIGH5=ABS(RIGH5)
33444      RIGH6=RIGH4
33445      IF(RIGH5.GT.RIGH4)RIGH6=RIGH5
33446      RIGHT=RIGH3-RIGH6
33447      GOTO79000
33448C
3344912495 CONTINUE
33450      CALL SD(TEMP,NS2,IWRITE,RIGHTV,IBUGG3,IERROR)
33451      CALL MEAN(TEMP,NS2,IWRITE,RIGHTM,IBUGG3,IERROR)
33452      RIGH1=0.0
33453      IF(RIGHTM.NE.0.0)RIGH1=RIGHTV/RIGHTM
33454      CALL SD(TEMPZ,NSZ,IWRITE,RIGHTV,IBUGG3,IERROR)
33455      CALL MEAN(TEMPZ,NSZ,IWRITE,RIGHTM,IBUGG3,IERROR)
33456      RIGH2=0.0
33457      IF(RIGHTM.NE.0.0)RIGH2=RIGHTV/RIGHTM
33458      RIGHT=RIGH1-RIGH2
33459      GOTO79000
3346012500 CONTINUE
33461      CALL SIZE(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33462      CALL SIZE(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33463      RIGHT=RIGH1-RIGH2
33464      GOTO79000
33465C
3346612510 CONTINUE
33467      CALL SUMDP(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33468      CALL SUMDP(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33469      RIGHT=RIGH1-RIGH2
33470      GOTO79000
33471C
3347212512 CONTINUE
33473      CALL PROD(TEMP,NS2,IWRITE,RIGH1,IBUGG3,IERROR)
33474      CALL PROD(TEMPZ,NSZ,IWRITE,RIGH2,IBUGG3,IERROR)
33475      RIGHT=RIGH1-RIGH2
33476      GOTO79000
33477C
3347812520 CONTINUE
33479      RIGH1=SN(TEMP,NS2,XTEMP1,XTEMP2,XTEMP3)
33480      RIGH2=SN(TEMPZ,NSZ,XTEMP1,XTEMP2,XTEMP3)
33481      RIGHT=RIGH1-RIGH2
33482      GOTO79000
33483C
3348412530 CONTINUE
33485      RIGH1=QN(TEMP,NS2,XTEMP1,XTEMP2,XTEMP3,
33486     1         ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6)
33487      RIGH2=QN(TEMPZ,NSZ,XTEMP1,XTEMP2,XTEMP3,
33488     1         ITEMP1,ITEMP2,ITEMP3,ITEMP4,ITEMP5,ITEMP6)
33489      RIGHT=RIGH1-RIGH2
33490      GOTO79000
33491C
3349212540 CONTINUE
33493      CALL LPLOC(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH1,
33494     1           IBUGG3,IERROR)
33495      CALL LPLOC(TEMPZ,NSZ,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH2,
33496     1           IBUGG3,IERROR)
33497      RIGHT=RIGH1-RIGH2
33498      GOTO79000
33499C
3350012550 CONTINUE
33501      CALL LPVARI(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH1,
33502     1           IQUASE,IBUGG3,IERROR)
33503      CALL LPVARI(TEMPZ,NSZ,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH2,
33504     1           IQUASE,IBUGG3,IERROR)
33505      RIGHT=RIGH1-RIGH2
33506      GOTO79000
33507C
3350812560 CONTINUE
33509      CALL LPVARI(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH1,
33510     1           IQUASE,IBUGG3,IERROR)
33511      RIGH1=SQRT(RIGH1)
33512      CALL LPVARI(TEMPZ,NSZ,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGH2,
33513     1           IQUASE,IBUGG3,IERROR)
33514      RIGH2=SQRT(RIGH2)
33515      RIGHT=RIGH1-RIGH2
33516      GOTO79000
33517C
3351812570 CONTINUE
33519      IHP='ALPH'
33520      IHP2='A   '
33521      IHWUSE='P'
33522      MESSAG='NO'
33523      CALL CHECKN(IHP,IHP2,IHWUSE,
33524     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33525     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33526      IF(IERROR.EQ.'YES')THEN
33527        ALPHA=0.05
33528      ELSE
33529        ALPHA=VALUE(ILOCP)
33530        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
33531          ALPHA=ALPHA/100.0
33532        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
33533          CONTINUE
33534        ELSE
33535          ALPHA=0.05
33536        ENDIF
33537      ENDIF
33538C
33539      CALL DPPRC4(TEMP,NS2,TEMPZ,NSZ,ALPHA,PSTAMV,IBI2ME,XTEMP1,
33540     1            YDIFF,ALOWLM,AUPPLM,
33541     1            ISUBRO,IBUGG3,IERROR)
33542      RIGHT=YDIFF
33543      IF(ICASPL.EQ.'DBLC')RIGHT=ALOWLM
33544      IF(ICASPL.EQ.'DBUC')RIGHT=AUPPLM
33545      GOTO79000
33546C
3354712590 CONTINUE
33548      CALL TRIMSD(TEMP,NS2,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,MAXNXT,
33549     1            XTEMP1,RIGH1,
33550     1            IBUGG3,ISUBRO,IERROR)
33551      CALL TRIMSD(TEMPZ,NSZ,PROP1,PROP2,NTRIM1,NTRIM2,IWRITE,MAXNXT,
33552     1            XTEMP1,RIGH2,
33553     1            IBUGG3,ISUBRO,IERROR)
33554      RIGHT=RIGH1-RIGH2
33555      GOTO79000
33556C
3355712600 CONTINUE
33558      IF(ICASPL.EQ.'MIDQ')P100=50.0
33559      IF(ICASPL.EQ.'1DEC')P100=10.0
33560      IF(ICASPL.EQ.'2DEC')P100=20.0
33561      IF(ICASPL.EQ.'3DEC')P100=30.0
33562      IF(ICASPL.EQ.'4DEC')P100=40.0
33563      IF(ICASPL.EQ.'5DEC')P100=50.0
33564      IF(ICASPL.EQ.'6DEC')P100=60.0
33565      IF(ICASPL.EQ.'7DEC')P100=70.0
33566      IF(ICASPL.EQ.'8DEC')P100=80.0
33567      IF(ICASPL.EQ.'9DEC')P100=90.0
33568      CALL PERCEN(P100,TEMP,NS2,IWRITE,XTEMP1,MAXNXT,
33569     1RIGH1,IBUGG3,IERROR)
33570      CALL PERCEN(P100,TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,
33571     1RIGH2,IBUGG3,IERROR)
33572      RIGHT=RIGH1-RIGH2
33573      GOTO79000
33574C
3357512610 CONTINUE
33576      CALL LOWHIN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
33577      CALL LOWHIN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
33578      RIGHT=RIGH1-RIGH2
33579      GOTO79000
3358012620 CONTINUE
33581      CALL UPPHIN(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
33582      CALL UPPHIN(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
33583      RIGHT=RIGH1-RIGH2
33584      GOTO79000
3358512630 CONTINUE
33586      CALL LOWQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
33587      CALL LOWQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
33588      RIGHT=RIGH1-RIGH2
33589      GOTO79000
3359012640 CONTINUE
33591      CALL UPPQUA(TEMP,NS2,IWRITE,XTEMP1,MAXNXT,RIGH1,IBUGG3,IERROR)
33592      CALL UPPQUA(TEMPZ,NSZ,IWRITE,XTEMP1,MAXNXT,RIGH2,IBUGG3,IERROR)
33593      RIGHT=RIGH1-RIGH2
33594      GOTO79000
33595C
3359612650 CONTINUE
33597      NCUT=0
33598      C=1.0
33599      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33600     1         ISUBRO,IBUGG3)
33601      RIGH1=AH15
33602      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33603     1         ISUBRO,IBUGG3)
33604      RIGH2=AH15
33605      RIGHT=RIGH1-RIGH2
33606      GOTO79000
33607C
3360812660 CONTINUE
33609      NCUT=0
33610      C=1.2
33611      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP1,MAXNXT,
33612     1         ISUBRO,IBUGG3)
33613      RIGH1=AH15
33614      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33615     1         ISUBRO,IBUGG3)
33616      RIGH2=AH15
33617      RIGHT=RIGH1-RIGH2
33618      GOTO79000
33619C
3362012670 CONTINUE
33621      NCUT=0
33622      C=1.5
33623      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33624     1         ISUBRO,IBUGG3)
33625      RIGH1=AH15
33626      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33627     1         ISUBRO,IBUGG3)
33628      RIGH2=AH15
33629      RIGHT=RIGH1-RIGH2
33630      GOTO79000
33631C
3363212680 CONTINUE
33633      NCUT=0
33634      C=1.7
33635      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33636     1         ISUBRO,IBUGG3)
33637      RIGH1=AH15
33638      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33639     1         ISUBRO,IBUGG3)
33640      RIGH2=AH15
33641      RIGHT=RIGH1-RIGH2
33642      GOTO79000
33643C
3364412690 CONTINUE
33645      NCUT=0
33646      C=2.0
33647      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33648     1         ISUBRO,IBUGG3)
33649      RIGH1=AH15
33650      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33651     1         ISUBRO,IBUGG3)
33652      RIGH2=AH15
33653      RIGHT=RIGH1-RIGH2
33654      GOTO79000
33655C
3365612700 CONTINUE
33657      NCUT=0
33658      C=1.0
33659      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33660     1         ISUBRO,IBUGG3)
33661      RIGH1=XSC
33662      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33663     1         ISUBRO,IBUGG3)
33664      RIGH2=XSC
33665      RIGHT=RIGH1-RIGH2
33666      GOTO79000
33667C
3366812710 CONTINUE
33669      NCUT=0
33670      C=1.2
33671      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33672     1         ISUBRO,IBUGG3)
33673      RIGH1=XSC
33674      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33675     1         ISUBRO,IBUGG3)
33676      RIGH2=XSC
33677      RIGHT=RIGH1-RIGH2
33678      GOTO79000
33679C
3368012720 CONTINUE
33681      NCUT=0
33682      C=1.5
33683      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33684     1         ISUBRO,IBUGG3)
33685      RIGH1=XSC
33686      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33687     1         ISUBRO,IBUGG3)
33688      RIGH2=XSC
33689      RIGHT=RIGH1-RIGH2
33690      GOTO79000
33691C
3369212730 CONTINUE
33693      NCUT=0
33694      C=1.7
33695      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33696     1         ISUBRO,IBUGG3)
33697      RIGH1=XSC
33698      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33699     1         ISUBRO,IBUGG3)
33700      RIGH2=XSC
33701      RIGHT=RIGH1-RIGH2
33702      GOTO79000
33703C
3370412740 CONTINUE
33705      NCUT=0
33706      C=2.0
33707      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33708     1         ISUBRO,IBUGG3)
33709      RIGH1=XSC
33710      CALL H15(TEMPZ,NSZ,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
33711     1         ISUBRO,IBUGG3)
33712      RIGH2=XSC
33713      RIGHT=RIGH1-RIGH2
33714      GOTO79000
33715C
3371612750 CONTINUE
33717C
33718      IHP='NREP'
33719      IHP2='L   '
33720      IHWUSE='P'
33721      MESSAG='YES'
33722      CALL CHECKN(IHP,IHP2,IHWUSE,
33723     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33724     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33725      IF(IERROR.EQ.'YES')GOTO9000
33726      NREPL=INT(VALUE(ILOCP)+0.5)
33727C
33728      ICASE='SD'
33729      CALL ROBPSD(TEMP,NS2,NREPL,XTEMP1,ICASE,IWRITE,MAXNXT,
33730     1            RIGHT,IERROR,ISUBRO,IBUGG3)
33731      GOTO79000
33732C
3373312760 CONTINUE
33734      NREPL=1
33735      ICASE='RANG'
33736      CALL ROBPSD(TEMP,NS2,NREPL,XTEMP1,ICASE,IWRITE,MAXNXT,
33737     1            RIGHT,IERROR,ISUBRO,IBUGG3)
33738      GOTO79000
33739C
3374031720 CONTINUE
33741      CALL LPLOC(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGHT,
33742     1           IBUGG3,IERROR)
33743      GOTO79000
33744C
3374531730 CONTINUE
33746      CALL LPVARI(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGHT,
33747     1           IQUASE,IBUGG3,IERROR)
33748      GOTO79000
33749C
3375031740 CONTINUE
33751      CALL LPVARI(TEMP,NS2,P,IWRITE,XTEMP1,DTEMP1,MAXNXT,RIGHT,
33752     1           IQUASE,IBUGG3,IERROR)
33753      RIGHT=SQRT(RIGHT)
33754      GOTO79000
33755C
3375631750 CONTINUE
33757      IHP='ALPH'
33758      IHP2='A   '
33759      IHWUSE='P'
33760      MESSAG='NO'
33761      CALL CHECKN(IHP,IHP2,IHWUSE,
33762     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33763     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33764      IF(IERROR.EQ.'YES')THEN
33765        ALPHA=0.05
33766      ELSE
33767        ALPHA=VALUE(ILOCP)
33768        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
33769          ALPHA=ALPHA/100.0
33770        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
33771          CONTINUE
33772        ELSE
33773          ALPHA=0.05
33774        ENDIF
33775      ENDIF
33776C
33777      CALL DPPRC3(TEMP,NS2,ALPHA,PSTAMV,IBINME,XTEMP1,
33778     1            RIGHT,ALOWLM,AUPPLM,
33779     1            ISUBRO,IBUGG3,IERROR)
33780      IF(ICASPL.EQ.'BPLC')RIGHT=ALOWLM
33781      IF(ICASPL.EQ.'BPUC')RIGHT=AUPPLM
33782      GOTO79000
33783C
3378431760 CONTINUE
33785      CALL MININD(TEMP,NS2,IWRITE,PSTAMV,RIGHT,ISUBRO,IBUGG3,IERROR)
33786      GOTO79000
33787C
3378831770 CONTINUE
33789      CALL MAXIND(TEMP,NS2,IWRITE,PSTAMV,RIGHT,ISUBRO,IBUGG3,IERROR)
33790      GOTO79000
33791C
3379231780 CONTINUE
33793      CALL EXTIND(TEMP,NS2,IWRITE,PSTAMV,RIGHT,ISUBRO,IBUGG3,IERROR)
33794      GOTO79000
33795C
3379631790 CONTINUE
33797      CALL DPGRU3(TEMP,NS2,IWRITE,PSTAMV,XGRUB,XCDF,XDIR,XIND,
33798     1            ISUBRO,IBUGG3,IERROR)
33799      RIGHT=XGRUB
33800      GOTO79000
33801C
3380231795 CONTINUE
33803      CALL DPGRU3(TEMP,NS2,IWRITE,PSTAMV,XGRUB,XCDF,XDIR,XIND,
33804     1            ISUBRO,IBUGG3,IERROR)
33805      RIGHT=XCDF
33806      GOTO79000
33807C
3380831810 CONTINUE
33809      CALL DPGRU3(TEMP,NS2,IWRITE,PSTAMV,XGRUB,XCDF,XDIR,XIND,
33810     1            ISUBRO,IBUGG3,IERROR)
33811      RIGHT=XDIR
33812      GOTO79000
33813C
3381431820 CONTINUE
33815      CALL DPGRU3(TEMP,NS2,IWRITE,PSTAMV,XGRUB,XCDF,XDIR,XIND,
33816     1            ISUBRO,IBUGG3,IERROR)
33817      RIGHT=XIND
33818      GOTO79000
33819C
3382031825 CONTINUE
33821C
33822      IHP='ALPH'
33823      IHP2='A   '
33824      IHWUSE='P'
33825      MESSAG='NO'
33826      CALL CHECKN(IHP,IHP2,IHWUSE,
33827     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33828     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33829      IF(IERROR.EQ.'NO')THEN
33830        ALPHA=VALUE(ILOCP)
33831      ELSE
33832        ALPHA=0.95
33833      ENDIF
33834C
33835      ALPHAT(1)=ALPHA
33836      NALPHA=1
33837      IDAVT2=IDAVTA
33838      IF(ICASPL.EQ.'DCDF' .OR. ICASPL.EQ.'DPVA')IDAVTA='SIMU'
33839C
33840      CALL DPDAV3(TEMP,NS2,XTEMP1,XTEMP2,IWRITE,PSTAMV,
33841     1            MAXNXT,IDAVTA,ISEED,
33842     1            ALPHAT,CV,NALPHA,
33843     1            STATVA,XMEAN,XSD,XRANGE,
33844     1            PVAL,CDF,XINDMN,XINDMX,
33845     1            ISUBRO,IBUGG3,IERROR)
33846      IF(ICASPL.EQ.'DAVI')RIGHT=STATVA
33847      IF(ICASPL.EQ.'DCDF')RIGHT=CDF
33848      IF(ICASPL.EQ.'DPVA')RIGHT=PVAL
33849      IF(ICASPL.EQ.'DMNI')RIGHT=XINDMN
33850      IF(ICASPL.EQ.'DMXI')RIGHT=XINDMX
33851      IF(ICASPL.EQ.'DACV')RIGHT=CV(1)
33852      IDAVTA=IDAVT2
33853      GOTO79000
33854C
3385531828 CONTINUE
33856C
33857      IHP='ALPH'
33858      IHP2='A   '
33859      IHWUSE='P'
33860      MESSAG='NO'
33861      CALL CHECKN(IHP,IHP2,IHWUSE,
33862     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33863     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33864      IF(IERROR.EQ.'NO')THEN
33865        ALPHA=VALUE(ILOCP)
33866      ELSE
33867        ALPHA=0.95
33868      ENDIF
33869C
33870      ALPHAT(1)=ALPHA
33871      NALPHA=1
33872      ISKOT2=ISKOTA
33873      IF(ICASPL.EQ.'SKCD' .OR. ICASPL.EQ.'SKPV')ISKOTA='SIMU'
33874C
33875      CALL DPSKO3(TEMP,NS2,XTEMP1,XTEMP2,IWRITE,PSTAMV,
33876     1            MAXNXT,ISKOTA,ISEED,
33877     1            ALPHAT,CV,NALPHA,
33878     1            STATVA,XMEAN,XSD,XMIN,XMAX,XSKEW,
33879     1            PVAL,STATCD,XINDX,
33880     1            ISUBRO,IBUGG3,IERROR)
33881      IF(ICASPL.EQ.'SOUT')RIGHT=STATVA
33882      IF(ICASPL.EQ.'SOCD')RIGHT=STATCD
33883      IF(ICASPL.EQ.'SOPV')RIGHT=PVAL
33884      IF(ICASPL.EQ.'SOIN')RIGHT=XINDX
33885      IF(ICASPL.EQ.'SOCV')RIGHT=CV(1)
33886      ISKOTA=ISKOT2
33887      GOTO79000
33888C
3388931829 CONTINUE
33890C
33891      IHP='ALPH'
33892      IHP2='A   '
33893      IHWUSE='P'
33894      MESSAG='NO'
33895      CALL CHECKN(IHP,IHP2,IHWUSE,
33896     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33897     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33898      IF(IERROR.EQ.'NO')THEN
33899        ALPHA=VALUE(ILOCP)
33900      ELSE
33901        ALPHA=0.95
33902      ENDIF
33903C
33904      ALPHAT(1)=ALPHA
33905      NALPHA=1
33906      IKUOT2=IKUOTA
33907      IF(ICASPL.EQ.'KOCD' .OR. ICASPL.EQ.'KOPV')IKUOTA='SIMU'
33908C
33909      CALL DPKUO3(TEMP,NS2,XTEMP1,XTEMP2,IWRITE,PSTAMV,
33910     1            MAXNXT,IKUOTA,ISEED,
33911     1            ALPHAT,CV,NALPHA,
33912     1            STATVA,XMEAN,XSD,XMIN,XMAX,XKURT,
33913     1            PVAL,STATCD,XINDX,
33914     1            ISUBRO,IBUGG3,IERROR)
33915      IF(ICASPL.EQ.'KOUT')RIGHT=STATVA
33916      IF(ICASPL.EQ.'KOCD')RIGHT=STATCD
33917      IF(ICASPL.EQ.'KOPV')RIGHT=PVAL
33918      IF(ICASPL.EQ.'KOIN')RIGHT=XINDX
33919      IF(ICASPL.EQ.'KOCV')RIGHT=CV(1)
33920      IKUOTA=IKUOT2
33921      GOTO79000
33922C
3392331830 CONTINUE
33924      IHP='MU  '
33925      IHP2='    '
33926      IHWUSE='P'
33927      MESSAG='NO'
33928      CALL CHECKN(IHP,IHP2,IHWUSE,
33929     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
33930     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
33931      IF(IERROR.EQ.'YES')THEN
33932        AMU=0.0
33933      ELSE
33934        AMU=VALUE(ILOCP)
33935      ENDIF
33936C
33937      CALL DPTTE3(TEMP,NS2,AMU,IWRITE,STATVA,STATCD,STATNU,
33938     1            XMEAN,XSD,XSDM,DEL,
33939     1            PVAL2T,PVALLT,PVALUT,
33940     1            ISUBRO,IBUGG3,IERROR)
33941      IF(ICASPL.EQ.'1TTE')THEN
33942        RIGHT=STATVA
33943      ELSEIF(ICASPL.EQ.'1TCD')THEN
33944        RIGHT=STATCD
33945      ELSEIF(ICASPL.EQ.'1T2P')THEN
33946        RIGHT=PVAL2T
33947      ELSEIF(ICASPL.EQ.'1TLP')THEN
33948        RIGHT=PVALLT
33949      ELSEIF(ICASPL.EQ.'1TUP')THEN
33950        RIGHT=PVALUT
33951      ENDIF
33952      GOTO79000
33953C
3395431840 CONTINUE
33955      CALL DPTTE4(TEMP,NS2,TEMPZ,NSZ,IWRITE,
33956     1            STATVA,STATCD,STATNU,
33957     1            STATV2,STATC2,STATN2,
33958     1            Y1MEAN,Y1SD,Y1SDM,
33959     1            Y2MEAN,Y2SD,Y2SDM,
33960     1            DEL,POOLSD,DELSD,DELSD2,CDFBAR,
33961     1            PVAL2T,PVALLT,PVALUT,
33962     1            ISUBRO,IBUGG3,IERROR)
33963C
33964C     FOR NOW, JUST RETURN THE "UNEQUAL VARIANCES" CASE.  MAY
33965C     ADD "EQUAL VARIANCES" CASE LATER (NEED TO ADD "ITTEVA"
33966C     TO THE CALL LIST.
33967C
33968      IF(ICASPL.EQ.'2TTE')THEN
33969        RIGHT=STATV2
33970      ELSEIF(ICASPL.EQ.'2TCD')THEN
33971        RIGHT=STATC2
33972      ELSEIF(ICASPL.EQ.'2T2P')THEN
33973        RIGHT=PVAL2T
33974      ELSEIF(ICASPL.EQ.'2TLP')THEN
33975        RIGHT=PVALLT
33976      ELSEIF(ICASPL.EQ.'2TUP')THEN
33977        RIGHT=PVALUT
33978      ENDIF
33979      GOTO79000
33980C
3398131845 CONTINUE
33982      CALL DPTTE6(TEMP,NS2,TEMPZ,NSZ,XTEMP1,IWRITE,
33983     1            STATVA,STATCD,STATNU,
33984     1            Y1MEAN,Y1SD,Y1SDM,
33985     1            Y2MEAN,Y2SD,Y2SDM,
33986     1            YDMEAN,YDSD,YDSDM,
33987     1            PVAL2T,PVALLT,PVALUT,
33988     1            ISUBRO,IBUGG3,IERROR)
33989      IF(ICASPL.EQ.'PTTE')THEN
33990        RIGHT=STATVA
33991      ELSEIF(ICASPL.EQ.'PTCD')THEN
33992        RIGHT=STATCD
33993      ELSEIF(ICASPL.EQ.'PT2P')THEN
33994        RIGHT=PVAL2T
33995      ELSEIF(ICASPL.EQ.'PTLP')THEN
33996        RIGHT=PVALLT
33997      ELSEIF(ICASPL.EQ.'PTUP')THEN
33998        RIGHT=PVALUT
33999      ENDIF
34000      GOTO79000
34001C
3400231850 CONTINUE
34003      IHP='SIGM'
34004      IHP2='A   '
34005      IHWUSE='P'
34006      MESSAG='YES'
34007      CALL CHECKN(IHP,IHP2,IHWUSE,
34008     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34009     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34010      IF(IERROR.EQ.'YES')GOTO9000
34011      SIGMA0=VALUE(ILOCP)
34012C
34013      CALL DPCST3(TEMP,NS2,SIGMA0,IWRITE,
34014     1            STATVA,STATCD,STATNU,
34015     1            YMEAN,YSD,RATIO,
34016     1            ISUBRO,IBUGG3,IERROR)
34017      IF(ICASPL.EQ.'CSSD')THEN
34018        RIGHT=STATVA
34019      ELSEIF(ICASPL.EQ.'CCDF')THEN
34020        RIGHT=STATCD
34021      ELSEIF(ICASPL.EQ.'CSLP')THEN
34022        RIGHT=STATCD
34023      ELSEIF(ICASPL.EQ.'CSUP')THEN
34024        RIGHT=1.0 - STATCD
34025      ELSEIF(ICASPL.EQ.'CS2P')THEN
34026        IF(YSD.LE.SIGMA0)THEN
34027          RIGHT=2.0*STATCD
34028        ELSE
34029          RIGHT=2.0*(1.0 - STATCD)
34030        ENDIF
34031      ENDIF
34032      GOTO79000
34033C
3403431870 CONTINUE
34035      CALL DPFRT3(TEMP,NS2,IWRITE,XTEMP1,STATVA,STATCD,
34036     1            ISUBRO,IBUGG3,IERROR)
34037      RIGHT=STATVA
34038      GOTO79000
34039C
3404031880 CONTINUE
34041      CALL DPFRT3(TEMP,NS2,IWRITE,XTEMP1,STATVA,STATCD,
34042     1            ISUBRO,IBUGG3,IERROR)
34043      RIGHT=STATCD
34044      GOTO79000
34045C
3404631905 CONTINUE
34047C
34048      IHP='ALPH'
34049      IHP2='A   '
34050      IHWUSE='P'
34051      MESSAG='NO'
34052      CALL CHECKN(IHP,IHP2,IHWUSE,
34053     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34054     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34055      IF(IERROR.EQ.'YES')THEN
34056        ALPHA=0.95
34057      ELSE
34058        ALPHA=VALUE(ILOCP)
34059        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
34060          ALPHA=ALPHA/100.0
34061        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
34062          CONTINUE
34063        ELSE
34064          ALPHA=0.95
34065        ENDIF
34066      ENDIF
34067      CALL DPMSD3(TEMP,NS2,IWRITE,ALPHA,
34068     1            STATVA,STATV2,STATCD,PVAL,
34069     1            ISUBRO,IBUGG3,IERROR)
34070      RIGHT=STATVA
34071      IF(ICASPL.EQ.'MSDN')RIGHT=STATV2
34072      IF(ICASPL.EQ.'MSDC')RIGHT=STATCD
34073      IF(ICASPL.EQ.'MSDP')RIGHT=PVAL
34074      IF(ICASPL.EQ.'ADCD')RIGHT=STATCD
34075      IF(ICASPL.EQ.'ADPV')RIGHT=PVAL
34076CCCCC IF(ICASPL.EQ.'AD01')GOTO31905
34077CCCCC IF(ICASPL.EQ.'AD05')GOTO31905
34078CCCCC IF(ICASPL.EQ.'AD95')GOTO31905
34079CCCCC IF(ICASPL.EQ.'AD99')GOTO31905
34080      GOTO79000
34081C
3408231890 CONTINUE
34083      IHP='M   '
34084      IHP2='    '
34085      IHWUSE='P'
34086      MESSAG='YES'
34087      CALL CHECKN(IHP,IHP2,IHWUSE,
34088     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34089     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34090      IF(IERROR.EQ.'YES')GOTO9000
34091      AM=VALUE(ILOCP)
34092      M=INT(AM+0.5)
34093C
34094      CALL DPFRT4(TEMP,NS2,M,IWRITE,XTEMP1,STATVA,STATCD,
34095     1            ISUBRO,IBUGG3,IERROR)
34096      RIGHT=STATVA
34097      GOTO79000
34098C
3409931900 CONTINUE
34100      IHP='M   '
34101      IHP2='    '
34102      IHWUSE='P'
34103      MESSAG='YES'
34104      CALL CHECKN(IHP,IHP2,IHWUSE,
34105     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34106     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34107      IF(IERROR.EQ.'YES')GOTO9000
34108      AM=VALUE(ILOCP)
34109      M=INT(AM+0.5)
34110C
34111      CALL DPFRT4(TEMP,NS2,M,IWRITE,XTEMP1,STATVA,STATCD,
34112     1            ISUBRO,IBUGG3,IERROR)
34113      RIGHT=STATCD
34114      GOTO79000
34115C
3411631910 CONTINUE
34117      NCUT=0
34118      C=1.0
34119      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
34120     1         ISUBRO,IBUGG3)
34121      RIGHT=AH15
34122      GOTO79000
34123C
3412431920 CONTINUE
34125      NCUT=0
34126      C=1.2
34127      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
34128     1         ISUBRO,IBUGG3)
34129      RIGHT=AH15
34130      GOTO79000
34131C
3413231930 CONTINUE
34133      NCUT=0
34134      C=1.5
34135      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
34136     1         ISUBRO,IBUGG3)
34137      RIGHT=AH15
34138      GOTO79000
34139C
3414031940 CONTINUE
34141      NCUT=0
34142      C=1.7
34143      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
34144     1         ISUBRO,IBUGG3)
34145      RIGHT=AH15
34146      GOTO79000
34147C
3414831950 CONTINUE
34149      NCUT=0
34150      C=2.0
34151      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
34152     1         ISUBRO,IBUGG3)
34153      RIGHT=AH15
34154      GOTO79000
34155C
3415631960 CONTINUE
34157      NCUT=0
34158      C=1.0
34159      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
34160     1         ISUBRO,IBUGG3)
34161      RIGHT=XSC
34162      GOTO79000
34163C
3416431970 CONTINUE
34165      NCUT=0
34166      C=1.2
34167      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP1,MAXNXT,
34168     1         ISUBRO,IBUGG3)
34169      RIGHT=XSC
34170      GOTO79000
34171C
3417231980 CONTINUE
34173      NCUT=0
34174      C=1.5
34175      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
34176     1         ISUBRO,IBUGG3)
34177      RIGHT=XSC
34178      GOTO79000
34179C
3418031990 CONTINUE
34181      NCUT=0
34182      C=1.7
34183      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
34184     1         ISUBRO,IBUGG3)
34185      RIGHT=XSC
34186      GOTO79000
34187C
3418832000 CONTINUE
34189      NCUT=0
34190      C=2.0
34191      CALL H15(TEMP,NS2,C,NCUT,AH15,XSC,XTEMP1,XTEMP2,MAXNXT,
34192     1         ISUBRO,IBUGG3)
34193      RIGHT=XSC
34194      GOTO79000
34195C
3419632010 CONTINUE
34197C
34198      IHP='NOUT'
34199      IHP2='LIER'
34200      IHWUSE='P'
34201      MESSAG='NO'
34202      CALL CHECKN(IHP,IHP2,IHWUSE,
34203     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34204     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34205      IF(IERROR.EQ.'YES')THEN
34206        IR=1
34207      ELSE
34208        AVAL=VALUE(ILOCP)
34209        IR=INT(AVAL+0.1)
34210        IF(IR.LT.1)IR=1
34211        IF(IR.GT.NS2/2)IR=NS2/2
34212      ENDIF
34213C
34214      IF(ICASPL.EQ.'TM2S')THEN
34215        ICASAN='TWOS'
34216      ELSEIF(ICASPL.EQ.'TMMN')THEN
34217        ICASAN='MINI'
34218      ELSEIF(ICASPL.EQ.'TMMX')THEN
34219        ICASAN='MAXI'
34220      ENDIF
34221C
34222      CALL DPTIE3(TEMP,NS2,ICASAN,IR,
34223     1            XTEMP1,XTEMP2,XTEMP3,ITEMP1,ITEMP2,
34224     1            RIGHT,YMEAN,YSD,YMIN,YMAX,
34225     1            ISUBRO,IBUGG3,IERROR)
34226      GOTO79000
34227C
3422832020 CONTINUE
34229C
34230      IHP='NOUT'
34231      IHP2='LIER'
34232      IHWUSE='P'
34233      MESSAG='NO'
34234      CALL CHECKN(IHP,IHP2,IHWUSE,
34235     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34236     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34237      IF(IERROR.EQ.'YES')THEN
34238        IR=1
34239      ELSE
34240        AVAL=VALUE(ILOCP)
34241        IR=INT(AVAL+0.1)
34242        IF(IR.LT.1)IR=1
34243        IF(IR.GT.NS2/2)IR=NS2/2
34244      ENDIF
34245C
34246      CALL DPGES3(TEMP,NS2,IR,
34247     1            XTEMP1,XTEMP2,ITEMP1,ITEMP2,
34248     1            RIGHT,
34249     1            ISUBRO,IBUGG3,IERROR)
34250      GOTO79000
34251C
34252 3185 CONTINUE
34253C
34254      IF(NUMV2.EQ.1)THEN
34255        YMEAN=CPUMIN
34256        YSD=CPUMIN
34257        IF(ICASPL.EQ.'SCVA')THEN
34258          CALL MEAN(TEMP,NS2,IWRITE,YMEAN,IBUGG3,IERROR)
34259          CALL SD(TEMP,NS2,IWRITE,YSD,IBUGG3,IERROR)
34260          IF(YMEAN.NE.0.0)THEN
34261            RIGHT=YSD/YMEAN
34262          ELSE
34263            RIGHT=CPUMAX
34264          ENDIF
34265          GOTO79000
34266        ENDIF
34267      ELSE
34268        YMEAN=TEMP(1)
34269        YSD=TEMPZ(1)
34270        IF(ICASPL.EQ.'SCVA')THEN
34271          IF(YMEAN.NE.0.0)THEN
34272            RIGHT=YSD/YMEAN
34273          ELSE
34274            RIGHT=CPUMAX
34275          ENDIF
34276          GOTO79000
34277        ENDIF
34278        NS2=INT(TEMPZ3(1)+0.1)
34279      ENDIF
34280C
34281      IHP='ALPH'
34282      IHP2='A   '
34283      IHWUSE='P'
34284      MESSAG='NO'
34285      CALL CHECKN(IHP,IHP2,IHWUSE,
34286     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34287     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34288      IF(IERROR.EQ.'NO')THEN
34289        ALPHA=VALUE(ILOCP)
34290        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
34291          ALPHA=ALPHA/100.0
34292          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
34293        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
34294          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
34295        ELSE
34296          ALPHA=0.95
34297        ENDIF
34298      ELSE
34299        ALPHA=0.95
34300      ENDIF
34301C
34302      ICASA2='CVLI'
34303      ICASA3='UPPE'
34304      ICASA4='RAW'
34305      ICASA5='TWOS'
34306C
34307      IF(ICASPL(1:1).EQ.'S')ICASA4='SUMM'
34308C
34309      IF(ICASPL.EQ.'CVLC')ICASA3='LOWE'
34310      IF(ICASPL.EQ.'CVLO')ICASA3='LOWE'
34311      IF(ICASPL.EQ.'CVUC')ICASA3='UPPE'
34312      IF(ICASPL.EQ.'CVUO')ICASA3='UPPE'
34313      IF(ICASPL.EQ.'SCVL')ICASA3='LOWE'
34314      IF(ICASPL.EQ.'SCVU')ICASA3='UPPE'
34315C
34316      IF(ICASPL.EQ.'CVLO')ICASA5='ONES'
34317      IF(ICASPL.EQ.'CVUO')ICASA5='ONES'
34318C
34319      IDIST2='NORM'
34320      IF(ICASPL.EQ.'LLCV')IDIST2='LOGN'
34321      IF(ICASPL.EQ.'LLCV')ICASA3='LOWE'
34322      IF(ICASPL.EQ.'ULCV')IDIST2='LOGN'
34323      IF(ICASPL.EQ.'LCVA')IDIST2='LOGN'
34324C
34325      ALPHAT(1)=ALPHA
34326      NALPHA=1
34327      CALL DPCVC3(TEMP,NS2,YMEAN,YSD,
34328     1            ICASA2,ICASA3,ICASA4,ICASA5,
34329     1            ISEED,MAXNXT,IDIST2,
34330     1            XTEMP1,XTEMP2,
34331     1            ICVACI,ALPHAT,NALPHA,ALOWLV,AUPPLV,CVAR,
34332     1            ISUBRO,IBUGG3,IERROR)
34333C
34334      IF(ICASPL.EQ.'CVLC')RIGHT=ALOWLV(1)
34335      IF(ICASPL.EQ.'CVLO')RIGHT=ALOWLV(1)
34336      IF(ICASPL.EQ.'SCVL')RIGHT=ALOWLV(1)
34337      IF(ICASPL.EQ.'CVUC')RIGHT=AUPPLV(1)
34338      IF(ICASPL.EQ.'CVUO')RIGHT=AUPPLV(1)
34339      IF(ICASPL.EQ.'SCVU')RIGHT=AUPPLV(1)
34340      IF(ICASPL.EQ.'LCVA')RIGHT=CVAR
34341      IF(ICASPL.EQ.'LLCV')RIGHT=ALOWLV(1)
34342      IF(ICASPL.EQ.'ULCV')RIGHT=AUPPLV(1)
34343C
34344      GOTO79000
34345C
34346 3195 CONTINUE
34347C
34348      IF(NUMV2.EQ.2)THEN
34349        ICASA4='RAW'
34350        DO3196II=1,NS2
34351          ITEMP1(II)=0
34352 3196   CONTINUE
34353      ELSEIF(NUMV2.EQ.3)THEN
34354        ICASA4='SUMM'
34355        DO3197II=1,NS2
34356          ITEMP1(II)=INT(TEMPZ3(II)+0.1)
34357 3197   CONTINUE
34358      ENDIF
34359C
34360      IHP='ALPH'
34361      IHP2='A   '
34362      IHWUSE='P'
34363      MESSAG='NO'
34364      CALL CHECKN(IHP,IHP2,IHWUSE,
34365     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34366     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34367      IF(IERROR.EQ.'NO')THEN
34368        ALPHA=VALUE(ILOCP)
34369        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
34370          ALPHA=ALPHA/100.0
34371          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
34372        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
34373          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
34374        ELSE
34375          ALPHA=0.95
34376        ENDIF
34377      ELSE
34378        ALPHA=0.95
34379      ENDIF
34380C
34381      ICASA2='CVLI'
34382      ICASA3='UPPE'
34383      ICASA5='TWOS'
34384      ALPHAT(1)=ALPHA
34385      NALPHA=1
34386C
34387      CALL DPCVC4(TEMP,TEMPZ,NS2,ITEMP1,XTEMP1,XTEMP2,
34388     1            ICASA2,ICASA3,ICASA4,ICASA5,
34389     1            ALPHAT,NALPHA,ALOWLV,AUPPLV,
34390     1            AVAL1,AVAL2,NDIST,NGROUP,
34391     1            ISUBRO,IBUGG3,IERROR)
34392C
34393      IF(ICASPL.EQ.'CCVA')RIGHT=AVAL1
34394      IF(ICASPL.EQ.'UCCV')RIGHT=AVAL2
34395      IF(ICASPL.EQ.'LCCV')RIGHT=ALOWLV(1)
34396      IF(ICASPL.EQ.'UCC2')RIGHT=AUPPLV(1)
34397C
34398      GOTO79000
3439932030 CONTINUE
34400C
34401      IF(ICASPL.EQ.'DI2S')THEN
34402        ICASAN='TWOS'
34403      ELSEIF(ICASPL.EQ.'DIMN')THEN
34404        ICASAN='MINI'
34405      ELSEIF(ICASPL.EQ.'DIMX')THEN
34406        ICASAN='MAXI'
34407      ENDIF
34408C
34409      CALL DPDIX3(TEMP,XTEMP1,NS2,XTEMP2,IWRITE,ICASAN,
34410     1            RIGHT,
34411     1            ISUBRO,IBUGG3,IERROR)
34412      GOTO79000
34413C
3441432040 CONTINUE
34415      EPS=0.1E-05
34416      XTEMP1(1)=PSTAMV
34417      XTEMP1(2)=PSTAMV
34418      CALL DISTIN(TEMP,NS2,IWRITE,XTEMP1,NDIST,IBUGG3,IERROR)
34419      IF(NDIST.GT.2)THEN
34420        WRITE(ICOUT,999)
34421        CALL DPWRST('XXX','WRIT')
34422        WRITE(ICOUT,32041)
3442332041   FORMAT('***** ERROR FROM CMPSTA (AGRESTI-COUL BINOMIAL ',
34424     1         'LIMITS)--')
34425        CALL DPWRST('XXX','WRIT')
34426        WRITE(ICOUT,32042)
3442732042   FORMAT('      FOR AGRESTI-COUL LIMITS CASE, MORE THAN ',
34428     1         'TWO DISTINCT VALUES DETECTED.')
34429        CALL DPWRST('XXX','WRIT')
34430        WRITE(ICOUT,32043)NDIST
3443132043   FORMAT('      NUMBER OF DISTINCT VALUES = ',I8)
34432        CALL DPWRST('XXX','WRIT')
34433        IERROR='YES'
34434        GOTO9000
34435C
34436C       IF ALL VALUES ARE EQUAL TO THE "MISSING VALUE",
34437C       THEN SET VALUE OF STATISTIC TO MISSING VALUE.
34438C
34439      ELSEIF(NDIST.EQ.1 .AND. XTEMP1(1).EQ.PSTAMV)THEN
34440        RIGHT=PSTAMV
34441        GOTO79000
34442      ENDIF
34443C
34444      HOLD1=XTEMP1(1)
34445      HOLD2=XTEMP1(2)
34446      IF(NDIST.EQ.1)THEN
34447        IF(XTEMP1(1).GE.0.5)THEN
34448          XMAX=XTEMP1(1)
34449          XMIN=CPUMIN
34450        ELSE
34451          XMIN=XTEMP1(1)
34452          XMAX=CPUMAX
34453        ENDIF
34454      ELSEIF(NDIST.EQ.2)THEN
34455        IF(HOLD1.LT.HOLD2)THEN
34456          XMIN=HOLD1
34457          XMAX=HOLD2
34458        ELSE
34459          XMAX=HOLD1
34460          XMIN=HOLD2
34461        ENDIF
34462      ENDIF
34463C
34464      DO32045I=1,NS2
34465        IF(TEMP(I).EQ.XMAX)THEN
34466          TEMP(I)=1.0
34467        ELSE
34468          TEMP(I)=0.0
34469        ENDIF
3447032045 CONTINUE
34471C
34472      XSUM=0.0
34473      DO32048I=1,NS2
34474        XSUM=XSUM + TEMP(I)
3447532048 CONTINUE
34476      P=XSUM/REAL(NS2)
34477C
34478      IHP='ALPH'
34479      IHP2='A   '
34480      IHWUSE='P'
34481      MESSAG='YES'
34482      CALL CHECKN(IHP,IHP2,IHWUSE,
34483     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34484     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34485      IF(IERROR.EQ.'YES')GOTO9000
34486      ALPHA=VALUE(ILOCP)
34487C
34488      IF(ICASPL.EQ.'1LAC')THEN
34489        IDIR='LOWE'
34490        CALL DPAGC1(P,NS2,ALPHA,IDIR,IWRITE,RIGHT,IBUGG3,IERROR)
34491      ELSEIF(ICASPL.EQ.'1UAC')THEN
34492        IDIR='UPPE'
34493        CALL DPAGC1(P,NS2,ALPHA,IDIR,IWRITE,RIGHT,IBUGG3,IERROR)
34494      ELSEIF(ICASPL.EQ.'2LAC')THEN
34495        CALL DPAGCO(P,NS2,ALPHA,IWRITE,ALOWLM,AUPPLM,IBUGG3,IERROR)
34496        RIGHT=ALOWLM
34497      ELSEIF(ICASPL.EQ.'2UAC')THEN
34498        CALL DPAGCO(P,NS2,ALPHA,IWRITE,ALOWLM,AUPPLM,IBUGG3,IERROR)
34499        RIGHT=AUPPLM
34500      ENDIF
34501C
34502      GOTO79000
3450332050 CONTINUE
34504      EPS=0.1E-05
34505      XTEMP1(1)=PSTAMV
34506      XTEMP1(2)=PSTAMV
34507      CALL DISTIN(TEMP,NS2,IWRITE,XTEMP1,NDIST,IBUGG3,IERROR)
34508      IF(NDIST.GT.2)THEN
34509        WRITE(ICOUT,999)
34510        CALL DPWRST('XXX','WRIT')
34511        WRITE(ICOUT,32051)
3451232051   FORMAT('***** ERROR FROM CMPSTA (EXACT BINOMIAL LIMITS)--')
34513        CALL DPWRST('XXX','WRIT')
34514        WRITE(ICOUT,32052)
3451532052   FORMAT('      FOR EXACT BINOMIAL LIMITS CASE, MORE THAN ',
34516     1         'TWO DISTINCT VALUES DETECTED.')
34517        CALL DPWRST('XXX','WRIT')
34518        WRITE(ICOUT,32053)NDIST
3451932053   FORMAT('      NUMBER OF DISTINCT VALUES = ',I8)
34520        CALL DPWRST('XXX','WRIT')
34521        IERROR='YES'
34522        GOTO9000
34523C
34524C       IF ALL VALUES ARE EQUAL TO THE "MISSING VALUE",
34525C       THEN SET VALUE OF STATISTIC TO MISSING VALUE.
34526C
34527      ELSEIF(NDIST.EQ.1 .AND. XTEMP1(1).EQ.PSTAMV)THEN
34528        RIGHT=PSTAMV
34529        GOTO79000
34530      ENDIF
34531C
34532      HOLD1=XTEMP1(1)
34533      HOLD2=XTEMP1(2)
34534      IF(HOLD1.LT.HOLD2)THEN
34535        XMIN=HOLD1
34536        XMAX=HOLD2
34537      ELSE
34538        XMAX=HOLD1
34539        XMIN=HOLD2
34540      ENDIF
34541C
34542      DO32055I=1,NS2
34543        IF(TEMP(I).EQ.XMAX)THEN
34544          TEMP(I)=1.0
34545        ELSE
34546          TEMP(I)=0.0
34547        ENDIF
3454832055 CONTINUE
34549C
34550      XSUM=0.0
34551      DO32058I=1,NS2
34552        XSUM=XSUM + TEMP(I)
3455332058 CONTINUE
34554      P=XSUM/REAL(NS2)
34555C
34556      IHP='ALPH'
34557      IHP2='A   '
34558      IHWUSE='P'
34559      MESSAG='YES'
34560      CALL CHECKN(IHP,IHP2,IHWUSE,
34561     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34562     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34563      IF(IERROR.EQ.'YES')GOTO9000
34564      ALPHA=VALUE(ILOCP)
34565C
34566      IF(ICASPL.EQ.'1LEB')THEN
34567        CALL DPEBLL(P,NS2,ALPHA,IWRITE,RIGHT,'ONES',IBUGG3,IERROR)
34568      ELSEIF(ICASPL.EQ.'1UEB')THEN
34569        CALL DPEBUL(P,NS2,ALPHA,IWRITE,RIGHT,'ONES',IBUGG3,IERROR)
34570      ELSEIF(ICASPL.EQ.'2LEB')THEN
34571        CALL DPEBLL(P,NS2,ALPHA,IWRITE,RIGHT,'TWOS',IBUGG3,IERROR)
34572      ELSEIF(ICASPL.EQ.'2UEB')THEN
34573        CALL DPEBUL(P,NS2,ALPHA,IWRITE,RIGHT,'TWOS',IBUGG3,IERROR)
34574      ENDIF
34575      GOTO79000
34576C
3457732060 CONTINUE
34578C
34579      IHP='ALPH'
34580      IHP2='A   '
34581      IHWUSE='P'
34582      MESSAG='NO'
34583      CALL CHECKN(IHP,IHP2,IHWUSE,
34584     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
34585     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
34586      IF(IERROR.EQ.'YES')THEN
34587        ALPHA=0.95
34588      ELSE
34589        ALPHA=VALUE(ILOCP)
34590        IF(ALPHA.LE.0.0)THEN
34591          ALPHA=0.95
34592        ELSEIF(ALPHA.GE.1.0 .OR. ALPHA.LE.100.0)THEN
34593          ALPHA=ALPHA/100.0
34594          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
34595        ELSEIF(ALPHA.LT.0.5)THEN
34596          ALPHA=1.0 - ALPHA
34597        ENDIF
34598      ENDIF
34599C
34600      ALPHAT(1)=100.0*ALPHA
34601      NUMALP=1
34602      CALL DPADK3(TEMP,TEMPZ,NS2,ALPHAT,NUMALP,
34603     1            XTEMP1,XTEMP2,DTEMP1,DTEMP2,DTEMP3,ITEMP1,ITEMP2,
34604     1            ITEMP3,ITEMP4,
34605     1            ADKSTA,ADC,DSD,IFLGZZ,NBCH,MINSIZ,MAXSIZ,
34606     1            IBUGG3,ISUBRO,IERROR)
34607      IF(ICASPL.EQ.'ADKS')RIGHT=ADKSTA
34608      IF(ICASPL.EQ.'ADKC')RIGHT=ADC(1)
34609      GOTO79000
34610C
3461132070 CONTINUE
34612C
34613C     FOR VARIOUS CONSENSUS MEANS COMMANDS, IF WE HAVE RAW DATA
34614C     WE FIRST NEED TO CONVERT TO SUMMARY DATA (I.E., MEAN, SD's,
34615C     AND SAMPLE SIZES) BEFORE CALLING APPROPRIATE METHOD.
34616C
34617      CALL DISTIN(TEMPZ,NS2,IWRITE,XTEMP1,NLAB,IBUGG3,IERROR)
34618C
34619      DO32075I=1,NLAB
34620        ATEMP=XTEMP1(I)
34621        NTEMP=0
34622        DO32079J=1,NS2
34623          IF(TEMPZ(J).EQ.ATEMP)THEN
34624            NTEMP=NTEMP+1
34625            TEMPZ3(NTEMP)=TEMP(J)
34626          ENDIF
3462732079   CONTINUE
34628        ITEMP1(I)=NTEMP
34629C
34630        CALL MEAN(TEMPZ3,NTEMP,IWRITE,AMEAN,IBUGG3,IERROR)
34631        CALL SD(TEMPZ3,NTEMP,IWRITE,ASD,IBUGG3,IERROR)
34632        XTEMP2(I)=AMEAN
34633        XTEMP3(I)=ASD
34634C
3463532075 CONTINUE
34636C
34637      DO32080I=1,NLAB
34638        TEMP(I)=XTEMP2(I)
34639        TEMPZ(I)=XTEMP3(I)
34640        TEMPZ3(I)=REAL(ITEMP1(I))
3464132080 CONTINUE
34642      NS2=NLAB
34643C
34644      IF(ICASPL.EQ.'DSLA')GOTO32100
34645      IF(ICASPL.EQ.'DHHD')GOTO32100
34646      IF(ICASPL.EQ.'DSMM')GOTO32100
34647      IF(ICASPL.EQ.'DSSE')GOTO32100
34648      IF(ICASPL.EQ.'MPAU')GOTO32200
34649      IF(ICASPL.EQ.'MPSE')GOTO32200
34650      IF(ICASPL.EQ.'MMPA')GOTO32200
34651      IF(ICASPL.EQ.'MMPS')GOTO32200
34652      IF(ICASPL.EQ.'VARU')GOTO32200
34653      IF(ICASPL.EQ.'VRSE')GOTO32200
34654      IF(ICASPL.EQ.'BOB ')GOTO32300
34655      IF(ICASPL.EQ.'BOBS')GOTO32300
34656      IF(ICASPL.EQ.'GCIN')GOTO32400
34657      IF(ICASPL.EQ.'GCIS')GOTO32400
34658      IF(ICASPL.EQ.'BCP ')GOTO32500
34659      IF(ICASPL.EQ.'BCPS')GOTO32500
34660      IF(ICASPL.EQ.'MMEA')GOTO32600
34661      IF(ICASPL.EQ.'MMES')GOTO32600
34662      IF(ICASPL.EQ.'FAIR')GOTO32700
34663      IF(ICASPL.EQ.'FWSE')GOTO32700
34664      IF(ICASPL.EQ.'GDEA')GOTO32800
34665      IF(ICASPL.EQ.'GDSE')GOTO32800
34666      IF(ICASPL.EQ.'GDSN')GOTO32800
34667      IF(ICASPL.EQ.'GDZ1')GOTO32800
34668      IF(ICASPL.EQ.'GDZ2')GOTO32800
34669      IF(ICASPL.EQ.'SCEB')GOTO32900
34670      IF(ICASPL.EQ.'SESE')GOTO32900
34671C
3467232100 CONTINUE
34673C
34674C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
34675C     NON-POSITIVE STANDARD DEVIATION.
34676C
34677      IPRINT='OFF'
34678      NLAB=NS2
34679      NPTS=0
34680      IF(NLAB.LT.2)THEN
34681        WRITE(ICOUT,999)
34682        CALL DPWRST('XXX','WRIT')
34683        WRITE(ICOUT,32101)
3468432101   FORMAT('***** ERROR FROM CMPSTA (DERSIMONIAN-LAIRD ',
34685     1         'ESTIMATION)--')
34686        CALL DPWRST('XXX','WRIT')
34687        WRITE(ICOUT,32103)
3468832103   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
34689        CALL DPWRST('XXX','WRIT')
34690        IERROR='YES'
34691        GOTO9000
34692      ENDIF
34693      DO32111I=1,NLAB
34694        ITEMP9=INT(TEMPZ3(I)+0.1)
34695        IF(TEMPZ(I).LE.0.0)THEN
34696          WRITE(ICOUT,999)
34697          CALL DPWRST('XXX','WRIT')
34698          WRITE(ICOUT,32101)
34699          CALL DPWRST('XXX','WRIT')
34700          WRITE(ICOUT,32113)I,TEMPZ(I)
3470132113     FORMAT('      LAB ',I6,' HAS NON-POSITIVE STANDARD ',
34702     1           'DEVIATION (= ',G15.7)
34703          CALL DPWRST('XXX','WRIT')
34704          IERROR='YES'
34705          GOTO9000
34706        ELSEIF(ITEMP9.LE.1)THEN
34707          WRITE(ICOUT,999)
34708          CALL DPWRST('XXX','WRIT')
34709          WRITE(ICOUT,32101)
34710          CALL DPWRST('XXX','WRIT')
34711          WRITE(ICOUT,32118)I
3471232118     FORMAT('      LAB ',I6,' HAS LESS THAN 2 OBSERVATIONS.')
34713          CALL DPWRST('XXX','WRIT')
34714          IERROR='YES'
34715          GOTO9000
34716        ENDIF
34717        ITEMP1(I)=ITEMP9
34718        NPTS=NPTS+ITEMP9
3471932111 CONTINUE
34720C
34721      ICAPSW='XXXX'
34722      ICAPTY='XXXX'
34723      NUMDIG=-99
34724      IWRITE='OFF'
34725CCCCC IOUNI5=-99
34726CCCCC CALL DPDERS(NPTS,NLAB,
34727CCCCC1            TEMP,TEMPZ,ITEMP1,
34728CCCCC1            XTEMP3(1),XTEMP3(MAXNXT/2),ITEMP2,
34729CCCCC1            XTEMP1,XTEMP2,DTEMP1,
34730CCCCC1            DTEMP2,DTEMP2(5001),DTEMP3,
34731CCCCC1            XDL,XDLS2,YDL,SEDLK1,SEDLK2,DLOWDL,DHIGDL,
34732CCCCC1            SERUK1,SERUK2,DLOWD2,DHIGD2,
34733CCCCC1            SEHDK1,SEHDK2,DLOWD3,DHIGD3,
34734CCCCC1            SEBOK1,SEBOK2,DLOWD4,DHIGD4,
34735CCCCC1            DLOWD5,DHIGD5,DLOWD6,DHIGD6,
34736CCCCC1            AK2,AK3,
34737CCCCC1            IWRITE,IOUNI5,
34738CCCCC1            ICAPSW,ICAPTY,NUMDIG,ISEED,
34739CCCCC1            ISUBRO,IBUGG3,IERROR)
34740CCCCC IF(ICASPL.EQ.'DSLA')RIGHT=XDL
34741CCCCC IF(ICASPL.EQ.'DHHD')RIGHT=SEHDK1
34742CCCCC IF(ICASPL.EQ.'DSMM')RIGHT=SERUK1
34743CCCCC IF(ICASPL.EQ.'DSSE')RIGHT=SEDLK1
34744CCCCC IF(ICASPL.EQ.'DSBO')RIGHT=SEBOK1
34745      RIGHT=CPUMIN
34746      GOTO79000
34747C
3474832200 CONTINUE
34749C
34750C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
34751C     NON-POSITIVE STANDARD DEVIATION.
34752C
34753      IPRINT='OFF'
34754      NLAB=NS2
34755      NPTS=0
34756      IF(NLAB.LT.2)THEN
34757        WRITE(ICOUT,999)
34758        CALL DPWRST('XXX','WRIT')
34759        WRITE(ICOUT,32201)
3476032201   FORMAT('***** ERROR FROM CMPSTA (MANDEL-PAULE ',
34761     1         'ESTIMATION)--')
34762        CALL DPWRST('XXX','WRIT')
34763        WRITE(ICOUT,32203)
3476432203   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
34765        CALL DPWRST('XXX','WRIT')
34766        IERROR='YES'
34767        GOTO9000
34768      ENDIF
34769      DO32211I=1,NLAB
34770        ITEMP9=INT(TEMPZ3(I)+0.1)
34771        IF(TEMPZ(I).LE.0.0)THEN
34772          WRITE(ICOUT,999)
34773          CALL DPWRST('XXX','WRIT')
34774          WRITE(ICOUT,32201)
34775          CALL DPWRST('XXX','WRIT')
34776          WRITE(ICOUT,32213)I,TEMPZ(I)
3477732213     FORMAT('      LAB ',I6,' HAS NON-POSITIVE STANDARD ',
34778     1           'DEVIATION (= ',G15.7)
34779          CALL DPWRST('XXX','WRIT')
34780          IERROR='YES'
34781          GOTO9000
34782        ELSEIF(ITEMP9.LE.1)THEN
34783          WRITE(ICOUT,999)
34784          CALL DPWRST('XXX','WRIT')
34785          WRITE(ICOUT,32201)
34786          CALL DPWRST('XXX','WRIT')
34787          WRITE(ICOUT,32218)I
3478832218     FORMAT('      LAB ',I6,' HAS LESS THAN 2 OBSERVATIONS.')
34789          CALL DPWRST('XXX','WRIT')
34790          IERROR='YES'
34791          GOTO9000
34792        ENDIF
34793        ITEMP1(I)=ITEMP9
34794        NPTS=NPTS+ITEMP9
3479532211 CONTINUE
34796C
34797      T0=10000000.D0
34798      T1=-T0
34799C
34800      AMNX=CPUMAX
34801      AMXX=CPUMIN
34802      AMNSD=CPUMAX
34803      AMXSD=CPUMIN
34804C
34805      DO32250I=1,NLAB
34806C
34807        DTEMP1(I)=DBLE(TEMP(I))
34808        IF(DTEMP1(I).LT.T0) T0=DTEMP1(I)
34809        IF(DTEMP1(I).GT.T1) T1=DTEMP1(I)
34810        IF(TEMP(I).GT.AMXX)AMXX=TEMP(I)
34811        IF(TEMP(I).LT.AMNX)AMNX=TEMP(I)
34812C
34813        DTEMP2(I)=DBLE(TEMPZ(I))**2/DBLE(ITEMP1(I))
34814        IF(TEMPZ(I).GT.0.0)THEN
34815          IF(TEMPZ(I).LT.AMNSD)AMNSD=TEMPZ(I)
34816          IF(TEMPZ(I).GT.AMXSD)AMXSD=TEMPZ(I)
34817        ENDIF
34818C
3481932250 CONTINUE
34820C
34821      EPS=0.00001
34822      T0=AMNX - EPS
34823      T1=AMXX
34824      DO32270I=1,NS2
34825        DTEMP1(I)=(DTEMP1(I)-T0)/(T1-T0)
34826        DTEMP2(I)=DTEMP2(I)/((T1-T0)**2)
3482732270 CONTINUE
34828C
34829      ICAPSW='XXXX'
34830      ICAPTY='XXXX'
34831      NUMDIG=-99
34832      IWRITE='OFF'
34833C
34834      IF(ICASPL.EQ.'MPAU' .OR. ICASPL.EQ.'MPSE' .OR.
34835     1   ICASPL.EQ.'VARU' .OR. ICASPL.EQ.'VRSE')THEN
34836        CALL DPMNPL(TEMP,TEMPZ,TEMPZ3,NPTS,NLAB,
34837     1              DTEMP1,DTEMP2,ITEMP1,
34838     1              XMPS,S2BMPS,SEMP,SEMPK1,SEMPK2,
34839     1              DLOWMP,DHIGMP,STXMU,STS2B,
34840     1              IWRITE,
34841     1              ICAPSW,ICAPTY,NUMDIG,
34842     1              ISUBRO,IBUGG3,IERROR)
34843      ELSEIF(ICASPL.EQ.'MMPA' .OR. ICASPL.EQ.'MMPS')THEN
34844        CALL DPMMPL(TEMP,TEMPZ,TEMPZ3,NPTS,NLAB,
34845     1              DTEMP1,DTEMP2,ITEMP1,
34846     1              XMMPS,S2BMMP,SEMMP,SEMMP1,SEMMP2,
34847     1              DLOWMM,DHIGMM,
34848     1              IWRITE,
34849     1              ICAPSW,ICAPTY,NUMDIG,
34850     1              ISUBRO,IBUGG3,IERROR)
34851      ENDIF
34852C
34853      IF(ICASPL.EQ.'VARU' .OR. ICASPL.EQ.'VRSE')THEN
34854        CALL DPVRML(NPTS,NLAB,
34855     1              TEMP,TEMPZ,ITEMP1,
34856     1              XTEMP3(1),XTEMP3(MAXNXT/2),ITEMP2,XTEMP1,XTEMP2,
34857     1              DTEMP1,DTEMP2,DTEMP3,
34858     1              DTEMP2(MAXNXT/2),DTEMP3(MAXNXT/2),
34859     1              XMLS,S2BMLS,SEML,SEMLK1,SEMLK2,
34860     1              DLOWML,DHIGML,STXMU,STS2B,
34861     1              SEMLBO,DLOWM2,DHIGM2,
34862     1              IWRITE,
34863     1              ICAPSW,ICAPTY,IOUNI5,NUMDIG,ISEED,
34864     1              ISUBRO,IBUGG3,IERROR)
34865      ENDIF
34866C
34867      IF(ICASPL.EQ.'MPAU')RIGHT=XMPS
34868      IF(ICASPL.EQ.'MPSE')RIGHT=SEMP
34869      IF(ICASPL.EQ.'VARU')RIGHT=XMLS
34870      IF(ICASPL.EQ.'VRSE')RIGHT=SEML
34871      IF(ICASPL.EQ.'MMPA')RIGHT=XMMPS
34872      IF(ICASPL.EQ.'MMPS')RIGHT=SEMMP
34873      GOTO79000
34874C
3487532300 CONTINUE
34876C
34877C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
34878C     NON-POSITIVE STANDARD DEVIATION.
34879C
34880      IPRINT='OFF'
34881      NLAB=NS2
34882      NPTS=0
34883      IF(NLAB.LT.2 .OR. NLAB.GT.5)THEN
34884        WRITE(ICOUT,999)
34885        CALL DPWRST('XXX','WRIT')
34886        WRITE(ICOUT,32301)
3488732301   FORMAT('***** ERROR FROM CMPSTA (BOB ESTIMATION)--')
34888        CALL DPWRST('XXX','WRIT')
34889        WRITE(ICOUT,32303)
3489032303   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO OR ',
34891     1         'GREATER THAN FIVE.')
34892        CALL DPWRST('XXX','WRIT')
34893        IERROR='YES'
34894        GOTO9000
34895      ENDIF
34896      DO32311I=1,NLAB
34897        ITEMP9=INT(TEMPZ3(I)+0.1)
34898        IF(TEMPZ(I).LT.0.0)THEN
34899          WRITE(ICOUT,999)
34900          CALL DPWRST('XXX','WRIT')
34901          WRITE(ICOUT,32301)
34902          CALL DPWRST('XXX','WRIT')
34903          WRITE(ICOUT,32313)I,TEMPZ(I)
3490432313     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
34905     1           'DEVIATION (= ',G15.7)
34906          CALL DPWRST('XXX','WRIT')
34907          IERROR='YES'
34908          GOTO9000
34909        ELSEIF(ITEMP9.LE.0)THEN
34910          WRITE(ICOUT,999)
34911          CALL DPWRST('XXX','WRIT')
34912          WRITE(ICOUT,32301)
34913          CALL DPWRST('XXX','WRIT')
34914          WRITE(ICOUT,32318)I
3491532318     FORMAT('      LAB ',I6,' HAS LESS THAN 1 OBSERVATION.')
34916          CALL DPWRST('XXX','WRIT')
34917          IERROR='YES'
34918          GOTO9000
34919        ENDIF
34920        ITEMP1(I)=ITEMP9
34921        NPTS=NPTS+ITEMP9
3492232311 CONTINUE
34923C
34924      AMNX=CPUMAX
34925      AMXX=CPUMIN
34926C
34927      DSUM1=0.0D0
34928      DO32350I=1,NLAB
34929        IF(TEMP(I).GT.AMXX)AMXX=TEMP(I)
34930        IF(TEMP(I).LT.AMNX)AMNX=TEMP(I)
34931        DSUM1=DSUM1 + DBLE(TEMPZ(I))**2/DBLE(ITEMP1(I))
3493232350 CONTINUE
34933      SW=REAL(DSQRT(DSUM1)/DBLE(NLAB))
34934C
34935      ICAPSW='XXXX'
34936      ICAPTY='XXXX'
34937      NUMDIG=-99
34938      IWRITE='OFF'
34939      CALL DPBOB(NPTS,NLAB,
34940     1           TEMP,TEMPZ,AMNX,AMXX,SW,
34941     1           ASM,ASB,AKU,AKUK1,AKUK2,
34942     1           DLOWBO,DHIGBO,
34943     1           IWRITE,
34944     1           ICAPSW,ICAPTY,NUMDIG,
34945     1           ISUBRO,IBUGG3,IERROR)
34946      IF(ICASPL.EQ.'BOB ')RIGHT=ASM
34947      IF(ICASPL.EQ.'BOBS')RIGHT=AKUK1
34948      GOTO79000
34949C
3495032400 CONTINUE
34951C
34952C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
34953C     NON-POSITIVE STANDARD DEVIATION.
34954C
34955
34956      IPRINT='OFF'
34957      NLAB=NS2
34958      NPTS=0
34959      IF(NLAB.LT.2)THEN
34960        WRITE(ICOUT,999)
34961        CALL DPWRST('XXX','WRIT')
34962        WRITE(ICOUT,32401)
3496332401   FORMAT('***** ERROR FROM CMPSTA (GENERALIZED CONFIDENCE ',
34964     1         'INTERVAL ESTIMATION)--')
34965        CALL DPWRST('XXX','WRIT')
34966        WRITE(ICOUT,32403)
3496732403   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
34968        CALL DPWRST('XXX','WRIT')
34969        IERROR='YES'
34970        GOTO9000
34971      ENDIF
34972      DO32411I=1,NLAB
34973        ITEMP9=INT(TEMPZ3(I)+0.1)
34974        IF(TEMPZ(I).LT.0.0)THEN
34975          WRITE(ICOUT,999)
34976          CALL DPWRST('XXX','WRIT')
34977          WRITE(ICOUT,32401)
34978          CALL DPWRST('XXX','WRIT')
34979          WRITE(ICOUT,32413)I,TEMPZ(I)
3498032413     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
34981     1           'DEVIATION (= ',G15.7)
34982          CALL DPWRST('XXX','WRIT')
34983          IERROR='YES'
34984          GOTO9000
34985        ELSEIF(ITEMP9.LT.1)THEN
34986          WRITE(ICOUT,999)
34987          CALL DPWRST('XXX','WRIT')
34988          WRITE(ICOUT,32401)
34989          CALL DPWRST('XXX','WRIT')
34990          WRITE(ICOUT,32418)I
3499132418     FORMAT('      LAB ',I6,' HAS LESS THAN 1 OBSERVATION.')
34992          CALL DPWRST('XXX','WRIT')
34993          IERROR='YES'
34994          GOTO9000
34995        ENDIF
34996        ITEMP1(I)=ITEMP9
34997        NPTS=NPTS+ITEMP9
3499832411 CONTINUE
34999C
35000      ICAPSW='XXXX'
35001      ICAPTY='XXXX'
35002      NUMDIG=-99
35003      IWRITE='OFF'
35004      CALL DPGCI(NPTS,NLAB,
35005     1           TEMP,TEMPZ,ITEMP1,
35006     1           DTEMP1,DTEMP2,
35007     1           XGCI,SEGCI,
35008     1           DLOWGC,DHIGGC,
35009     1           IWRITE,IOUNI5,
35010     1           ICAPSW,ICAPTY,NUMDIG,
35011     1           ISUBRO,IBUGG3,IERROR)
35012      IF(ICASPL.EQ.'GCIN')RIGHT=XGCI
35013      IF(ICASPL.EQ.'GCIS')RIGHT=SEGCI
35014      GOTO79000
35015C
3501632500 CONTINUE
35017C
35018C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
35019C     NON-POSITIVE STANDARD DEVIATION.
35020C
35021      IPRINT='OFF'
35022      NLAB=NS2
35023      NPTS=0
35024      IF(NLAB.LT.2 .OR. NLAB.GT.6)THEN
35025        WRITE(ICOUT,999)
35026        CALL DPWRST('XXX','WRIT')
35027        WRITE(ICOUT,32501)
3502832501   FORMAT('***** ERROR FROM CMPSTA (BCP ESTIMATION)--')
35029        CALL DPWRST('XXX','WRIT')
35030        WRITE(ICOUT,32503)
3503132503   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO OR ',
35032     1         'GREATER THAN SIX.')
35033        CALL DPWRST('XXX','WRIT')
35034        IERROR='YES'
35035        GOTO9000
35036      ENDIF
35037      DO32511I=1,NLAB
35038        ITEMP9=INT(TEMPZ3(I)+0.1)
35039        IF(TEMPZ(I).LT.0.0)THEN
35040          WRITE(ICOUT,999)
35041          CALL DPWRST('XXX','WRIT')
35042          WRITE(ICOUT,32501)
35043          CALL DPWRST('XXX','WRIT')
35044          WRITE(ICOUT,32513)I,TEMPZ(I)
3504532513     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
35046     1           'DEVIATION (= ',G15.7)
35047          CALL DPWRST('XXX','WRIT')
35048          IERROR='YES'
35049          GOTO9000
35050        ELSEIF(ITEMP9.LE.0)THEN
35051          WRITE(ICOUT,999)
35052          CALL DPWRST('XXX','WRIT')
35053          WRITE(ICOUT,32501)
35054          CALL DPWRST('XXX','WRIT')
35055          WRITE(ICOUT,32518)I
3505632518     FORMAT('      LAB ',I6,' HAS LESS THAN 1 OBSERVATION.')
35057          CALL DPWRST('XXX','WRIT')
35058          IERROR='YES'
35059          GOTO9000
35060        ENDIF
35061        ITEMP1(I)=ITEMP9
35062        NPTS=NPTS+ITEMP9
3506332511 CONTINUE
35064C
35065      AMNX=CPUMAX
35066      AMXX=CPUMIN
35067C
35068      DO32550I=1,NLAB
35069        IF(TEMP(I).GT.AMXX)AMXX=TEMP(I)
35070        IF(TEMP(I).LT.AMNX)AMNX=TEMP(I)
3507132550 CONTINUE
35072C
35073      ICAPSW='XXXX'
35074      ICAPTY='XXXX'
35075      NUMDIG=-99
35076      IWRITE='OFF'
35077      CALL DPBCP(NPTS,NLAB,
35078     1           TEMP,TEMPZ,ITEMP1,AMNX,AMXX,
35079     1           XBCP,XBCPSE,XBCPK1,SBCPK2,
35080     1           DLOWBC,DHIGBC,
35081     1           IWRITE,
35082     1           ICAPSW,ICAPTY,NUMDIG,
35083     1           ISUBRO,IBUGG3,IERROR)
35084      IF(ICASPL.EQ.'BCP ')RIGHT=XBCP
35085      IF(ICASPL.EQ.'BCPS')RIGHT=XBCPSE
35086      GOTO79000
35087C
3508832600 CONTINUE
35089C
35090C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
35091C     NON-POSITIVE STANDARD DEVIATION.
35092C
35093
35094      IPRINT='OFF'
35095      NLAB=NS2
35096      IF(NLAB.LT.2)THEN
35097        WRITE(ICOUT,999)
35098        CALL DPWRST('XXX','WRIT')
35099        WRITE(ICOUT,32601)
3510032601   FORMAT('***** ERROR FROM CMPSTA (MEAN OF MEANS ESTIMATION)--')
35101        CALL DPWRST('XXX','WRIT')
35102        WRITE(ICOUT,32603)
3510332603   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
35104        CALL DPWRST('XXX','WRIT')
35105        IERROR='YES'
35106        GOTO9000
35107      ENDIF
35108C
35109      CALL MEAN(TEMP,NLAB,IWRITE,ASM,IBUGG3,IERROR)
35110      CALL SD(TEMP,NLAB,IWRITE,ASD,IBUGG3,IERROR)
35111      IF(ICASPL.EQ.'MMEA')RIGHT=ASM
35112      IF(ICASPL.EQ.'MMES')RIGHT=ASD/SQRT(REAL(NLAB))
35113      GOTO79000
35114C
3511532700 CONTINUE
35116C
35117C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
35118C     NON-POSITIVE STANDARD DEVIATION.
35119C
35120
35121      IPRINT='OFF'
35122      NLAB=NS2
35123      NPTS=0
35124      IF(NLAB.LT.2)THEN
35125        WRITE(ICOUT,999)
35126        CALL DPWRST('XXX','WRIT')
35127        WRITE(ICOUT,32701)
3512832701   FORMAT('***** ERROR FROM CMPSTA (FAIRWEATHER ESTIMATION)--')
35129        CALL DPWRST('XXX','WRIT')
35130        WRITE(ICOUT,32703)
3513132703   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
35132        CALL DPWRST('XXX','WRIT')
35133        IERROR='YES'
35134        GOTO9000
35135      ENDIF
35136      DO32711I=1,NLAB
35137        ITEMP9=INT(TEMPZ3(I)+0.1)
35138        IF(TEMPZ(I).LT.0.0)THEN
35139          WRITE(ICOUT,999)
35140          CALL DPWRST('XXX','WRIT')
35141          WRITE(ICOUT,32701)
35142          CALL DPWRST('XXX','WRIT')
35143          WRITE(ICOUT,32713)I,TEMPZ(I)
3514432713     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
35145     1           'DEVIATION (= ',G15.7)
35146          CALL DPWRST('XXX','WRIT')
35147          IERROR='YES'
35148          GOTO9000
35149        ELSEIF(ITEMP9.LT.1)THEN
35150          WRITE(ICOUT,999)
35151          CALL DPWRST('XXX','WRIT')
35152          WRITE(ICOUT,32701)
35153          CALL DPWRST('XXX','WRIT')
35154          WRITE(ICOUT,32718)I
3515532718     FORMAT('      LAB ',I6,' HAS LESS THAN 1 OBSERVATION.')
35156          CALL DPWRST('XXX','WRIT')
35157          IERROR='YES'
35158          GOTO9000
35159        ENDIF
35160        ITEMP1(I)=ITEMP9
35161        NPTS=NPTS+ITEMP9
3516232711 CONTINUE
35163C
35164      ICAPSW='XXXX'
35165      ICAPTY='XXXX'
35166      NUMDIG=-99
35167      IWRITE='OFF'
35168      CALL DPFAIR(NPTS,NLAB,
35169     1            TEMP,TEMPZ,ITEMP1,
35170     1            XFW,XFWS2,SEFWK1,SEFWK2,
35171     1            DLOWFW,DHIGFW,DLOWF2,DHIGF2,DLOWF3,DHIGF3,
35172     1            IWRITE,
35173     1            ICAPSW,ICAPTY,IFLAG9,NUMDIG,
35174     1            ISUBRO,IBUGG3,IERROR)
35175      RIGHT=CPUMIN
35176      IF(IFLAG9)THEN
35177        IF(ICASPL.EQ.'FAIR')RIGHT=XFW
35178        IF(ICASPL.EQ.'FWSE')RIGHT=SEFWK1
35179      ENDIF
35180      GOTO79000
35181C
3518232800 CONTINUE
35183C
35184C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
35185C     NON-POSITIVE STANDARD DEVIATION.
35186C
35187      IPRINT='OFF'
35188      NLAB=NS2
35189      NPTS=0
35190      IF(NLAB.LT.2)THEN
35191        WRITE(ICOUT,999)
35192        CALL DPWRST('XXX','WRIT')
35193        WRITE(ICOUT,32801)
3519432801   FORMAT('***** ERROR FROM CMPSTA (GRAYBILL-DEAL ESTIMATION)--')
35195        CALL DPWRST('XXX','WRIT')
35196        WRITE(ICOUT,32803)
3519732803   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
35198        CALL DPWRST('XXX','WRIT')
35199        IERROR='YES'
35200        GOTO9000
35201      ENDIF
35202      DO32811I=1,NLAB
35203        ITEMP9=INT(TEMPZ3(I)+0.1)
35204        IF(TEMPZ(I).LT.0.0)THEN
35205          WRITE(ICOUT,999)
35206          CALL DPWRST('XXX','WRIT')
35207          WRITE(ICOUT,32801)
35208          CALL DPWRST('XXX','WRIT')
35209          WRITE(ICOUT,32813)I,TEMPZ(I)
3521032813     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
35211     1           'DEVIATION (= ',G15.7)
35212          CALL DPWRST('XXX','WRIT')
35213          IERROR='YES'
35214          GOTO9000
35215        ELSEIF(ITEMP9.LT.1)THEN
35216          WRITE(ICOUT,999)
35217          CALL DPWRST('XXX','WRIT')
35218          WRITE(ICOUT,32801)
35219          CALL DPWRST('XXX','WRIT')
35220          WRITE(ICOUT,32818)I
3522132818     FORMAT('      LAB ',I6,' HAS LESS THAN 1 OBSERVATION.')
35222          CALL DPWRST('XXX','WRIT')
35223          IERROR='YES'
35224          GOTO9000
35225        ENDIF
35226        ITEMP1(I)=ITEMP9
35227        NPTS=NPTS+ITEMP9
3522832811 CONTINUE
35229C
35230      ICAPSW='XXXX'
35231      ICAPTY='XXXX'
35232      NUMDIG=-99
35233      IWRITE='OFF'
35234      IOUNI5=-99
35235      CALL DPGRAY(NPTS,NLAB,
35236     1            TEMP,TEMPZ,ITEMP1,
35237     1            XGD,XGDS2,SEGDK1,SEGDK2,
35238     1            XGDS20,XGDSZ1,XGDSZ2,
35239     1            DLOWGD,DHIGGD,
35240     1            IWRITE,IOUNI5,
35241     1            ICAPSW,ICAPTY,NUMDIG,
35242     1            ISUBRO,IBUGG3,IERROR)
35243      IF(ICASPL.EQ.'GDEA')RIGHT=XGD
35244      IF(ICASPL.EQ.'GDSE')RIGHT=SEGDK1
35245      IF(ICASPL.EQ.'GDSN')RIGHT=SQRT(XGDS20)
35246      IF(ICASPL.EQ.'GDZ1')RIGHT=SQRT(XGDSZ1)
35247      IF(ICASPL.EQ.'GDZ2')RIGHT=SQRT(XGDSZ2)
35248      GOTO79000
35249C
3525032900 CONTINUE
35251C
35252C     CHECK FOR LABS WITH LESS THAN 2 OBSERVATIONS OR WITH
35253C     NON-POSITIVE STANDARD DEVIATION.
35254C
35255      IPRINT='OFF'
35256      NLAB=NS2
35257      NPTS=0
35258      IF(NLAB.LT.2)THEN
35259        WRITE(ICOUT,999)
35260        CALL DPWRST('XXX','WRIT')
35261        WRITE(ICOUT,32901)
3526232901   FORMAT('***** ERROR FROM CMPSTA (SCHILLER-EBERHARDT ',
35263     1         'ESTIMATION)--')
35264        CALL DPWRST('XXX','WRIT')
35265        WRITE(ICOUT,32903)
3526632903   FORMAT('      THE NUMBER OF LABS IS LESS THAN TWO.')
35267        CALL DPWRST('XXX','WRIT')
35268        IERROR='YES'
35269        GOTO9000
35270      ENDIF
35271      DO32911I=1,NLAB
35272        ITEMP9=INT(TEMPZ3(I)+0.1)
35273        IF(TEMPZ(I).LT.0.0)THEN
35274          WRITE(ICOUT,999)
35275          CALL DPWRST('XXX','WRIT')
35276          WRITE(ICOUT,32901)
35277          CALL DPWRST('XXX','WRIT')
35278          WRITE(ICOUT,32913)I,TEMPZ(I)
3527932913     FORMAT('      LAB ',I6,' HAS NEGATIVE STANDARD ',
35280     1           'DEVIATION (= ',G15.7)
35281          CALL DPWRST('XXX','WRIT')
35282          IERROR='YES'
35283          GOTO9000
35284        ELSEIF(ITEMP9.LT.2)THEN
35285          WRITE(ICOUT,999)
35286          CALL DPWRST('XXX','WRIT')
35287          WRITE(ICOUT,32901)
35288          CALL DPWRST('XXX','WRIT')
35289          WRITE(ICOUT,32918)I
3529032918     FORMAT('      LAB ',I6,' HAS LESS THAN 2 OBSERVATIONS.')
35291          CALL DPWRST('XXX','WRIT')
35292          IERROR='YES'
35293          GOTO9000
35294        ENDIF
35295        ITEMP1(I)=ITEMP9
35296        NPTS=NPTS+ITEMP9
3529732911 CONTINUE
35298C
35299      IHP='SIGM'
35300      IHP2='AH  '
35301      IHWUSE='P'
35302      MESSAG='NO'
35303      CALL CHECKN(IHP,IHP2,IHWUSE,
35304     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
35305     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
35306      IF(IERROR.EQ.'YES')THEN
35307        SIGMAH=0.0
35308      ELSE
35309        SIGMAH=VALUE(ILOCP)
35310        IF(SIGMAH.LT.0.0)SIGMAH=0.0
35311      ENDIF
35312      IHP='DFH '
35313      IHP2='    '
35314      IHWUSE='P'
35315      MESSAG='NO'
35316      CALL CHECKN(IHP,IHP2,IHWUSE,
35317     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
35318     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
35319      IF(IERROR.EQ.'YES')THEN
35320        IDFH=1
35321      ELSE
35322        IDFH=INT(VALUE(ILOCP)+ 0.5)
35323      ENDIF
35324      IF(IDFH.LE.0)IDFH=1
35325C
35326C     SCHILLER-EBERHARDT NEEDS TO CALL MANDEL-PAULE TO
35327C     OBTAIN "S2BMPS" VALUE.
35328C
35329      T0=10000000.D0
35330      T1=-T0
35331C
35332      AMNX=CPUMAX
35333      AMXX=CPUMIN
35334      AMNSD=CPUMAX
35335      AMXSD=CPUMIN
35336C
35337      DO32950I=1,NLAB
35338C
35339        DTEMP1(I)=DBLE(TEMP(I))
35340        IF(DTEMP1(I).LT.T0) T0=DTEMP1(I)
35341        IF(DTEMP1(I).GT.T1) T1=DTEMP1(I)
35342        IF(TEMP(I).GT.AMXX)AMXX=TEMP(I)
35343        IF(TEMP(I).LT.AMNX)AMNX=TEMP(I)
35344C
35345        DTEMP2(I)=DBLE(TEMPZ(I))**2/DBLE(ITEMP1(I))
35346        IF(TEMPZ(I).GT.0.0)THEN
35347          IF(TEMPZ(I).LT.AMNSD)AMNSD=TEMPZ(I)
35348          IF(TEMPZ(I).GT.AMXSD)AMXSD=TEMPZ(I)
35349        ENDIF
35350C
3535132950 CONTINUE
35352C
35353      EPS=0.00001
35354      T0=AMNX - EPS
35355      T1=AMXX
35356      DO32970I=1,NS2
35357        DTEMP1(I)=(DTEMP1(I)-T0)/(T1-T0)
35358        DTEMP2(I)=DTEMP2(I)/((T1-T0)**2)
3535932970 CONTINUE
35360C
35361      ICAPSW='XXXX'
35362      ICAPTY='XXXX'
35363      NUMDIG=-99
35364      IWRITE='OFF'
35365C
35366      CALL DPMNPL(TEMP,TEMPZ,TEMPZ3,NPTS,NLAB,
35367     1            DTEMP1,DTEMP2,ITEMP1,
35368     1            XMPS,S2BMPS,SEMP,SEMPK1,SEMPK2,
35369     1            DLOWMP,DHIGMP,STXMU,STS2B,
35370     1            IWRITE,
35371     1            ICAPSW,ICAPTY,NUMDIG,
35372     1            ISUBRO,IBUGG3,IERROR)
35373      CALL DPSCEB(NPTS,NLAB,
35374     1            DTEMP1,ITEMP1,
35375     1            TEMP,TEMPZ,S2BMPS,
35376     1            XSE,XSES2,IDFH,SIGMAH,
35377     1            SESUK1,SESUK2,
35378     1            DLOWSE,DHIGSE,
35379     1            IWRITE,
35380     1            ICAPSW,ICAPTY,NUMDIG,
35381     1            ISUBRO,IBUGG3,IERROR)
35382      IF(ICASPL.EQ.'SCEB')RIGHT=XSE
35383      IF(ICASPL.EQ.'SESE')RIGHT=SESUK1
35384      GOTO79000
35385C
3538633100 CONTINUE
35387C
35388      IHP='ALPH'
35389      IHP2='A   '
35390      IHWUSE='P'
35391      MESSAG='NO'
35392      CALL CHECKN(IHP,IHP2,IHWUSE,
35393     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
35394     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
35395      IF(IERROR.EQ.'YES')THEN
35396        ALPHA=0.95
35397      ELSE
35398        ALPHA=VALUE(ILOCP)
35399        IF(ALPHA.EQ.90.0 .OR. ALPHA.EQ.0.90)THEN
35400          ALPHA=0.90
35401        ELSEIF(ALPHA.EQ.10.0 .OR. ALPHA.EQ.0.10)THEN
35402          ALPHA=0.90
35403        ELSEIF(ALPHA.EQ.99.0 .OR. ALPHA.EQ.0.99)THEN
35404          ALPHA=0.99
35405        ELSEIF(ALPHA.EQ.1.0 .OR. ALPHA.EQ.0.01)THEN
35406          ALPHA=0.99
35407        ELSEIF(ALPHA.EQ.95.0 .OR. ALPHA.EQ.0.95)THEN
35408          ALPHA=0.95
35409        ELSEIF(ALPHA.EQ.5.0 .OR. ALPHA.EQ.0.05)THEN
35410          ALPHA=0.95
35411        ELSE
35412          ALPHA=0.95
35413        ENDIF
35414      ENDIF
35415C
35416      CALL DP2KS3(TEMP,TEMPZ,NS2,NSZ,
35417     1            XTEMP1,
35418     1            STATVA,STATCD,CUTU90,CUTU95,CUTU99,
35419     1            IBUGG3,ISUBRO,IERROR)
35420      IF(ICASPL.EQ.'KS2S')THEN
35421        RIGHT=STATVA
35422      ELSEIF(ICASPL.EQ.'KSCV')THEN
35423        IF(ALPHA.EQ.0.90)THEN
35424          RIGHT=CUTU90
35425        ELSEIF(ALPHA.EQ.0.99)THEN
35426          RIGHT=CUTU99
35427        ELSE
35428          RIGHT=CUTU95
35429        ENDIF
35430      ENDIF
35431      GOTO79000
35432C
3543333105 CONTINUE
35434      IDATSW='RAW'
35435      CLWID=CLWIDT(1)
35436      XSTART=CLLIMI(1)
35437      XSTOP=CLLIMI(2)
35438      MAXOB2=MAXOBV/2
35439      IINDX=(MAXOBV/2) + 1
35440      CALL DP2CH3(TEMP,TEMPZ,TEMPZ3,NS2,NSZ,NSZ3,
35441     1            IDATSW,IRHSTG,
35442     1            CLWID,XSTART,XSTOP,
35443     1            CLWID2,DXSTAR,DXSTOP,
35444     1            XTEMP1,IHSTCW,IHSTOU,MAXOBV,MAXOB2,
35445     1            STATVA,STATCD,STATNU,NCELLS,
35446     1            Y1MEAN,Y1SD,Y1MIN,Y1MAX,
35447     1            Y2MEAN,Y2SD,Y2MIN,Y2MAX,
35448     1            XTEMP2,XTEMP3,XTEMP2(IINDX),XTEMP3(IINDX),M2,
35449     1            IBUGG3,ISUBRO,IERROR)
35450      IF(ICASPL.EQ.'CS2S')THEN
35451        RIGHT=STATVA
35452      ELSEIF(ICASPL.EQ.'CC2S')THEN
35453        RIGHT=STATCD
35454      ELSEIF(ICASPL.EQ.'CP2S')THEN
35455        RIGHT=1.0 - STATCD
35456      ENDIF
35457      GOTO79000
35458C
3545933110 CONTINUE
35460C
35461      CALL DPWSH3(TEMP,NS2,
35462     1            XTEMP1,MAXNXT,
35463     1            STATVA,PVAL,
35464     1            ISUBRO,IBUGG3,IERROR)
35465      IF(ICASPL.EQ.'WSHA')THEN
35466        RIGHT=STATVA
35467      ELSEIF(ICASPL.EQ.'WSPV')THEN
35468        RIGHT=PVAL
35469      ENDIF
35470      GOTO79000
35471C
3547233120 CONTINUE
35473C
35474      CALL DPCUS3(TEMP,NS2,
35475     1            STATVA,STATV2,STATCD,STATC2,PVAL1,PVAL2,
35476     1            XTEMP2,
35477     1            ISUBRO,IBUGG3,IERROR)
35478      IF(ICASPL.EQ.'CSFT')THEN
35479        RIGHT=STATVA
35480      ELSEIF(ICASPL.EQ.'CSFP')THEN
35481        RIGHT=PVAL1
35482      ELSEIF(ICASPL.EQ.'CSBT')THEN
35483        RIGHT=STATV2
35484      ELSEIF(ICASPL.EQ.'CSBP')THEN
35485        RIGHT=PVAL2
35486      ENDIF
35487      GOTO79000
35488C
3548933130 CONTINUE
35490C
35491      IF(NUMV2.EQ.1)THEN
35492        XMEAN=CPUMIN
35493        XSD=CPUMIN
35494        AN=CPUMIN
35495      ELSE
35496        XMEAN=TEMP(1)
35497        XSD=TEMPZ(1)
35498        AN=TEMPZ3(1)
35499      ENDIF
35500C
35501      IHP='ALPH'
35502      IHP2='A   '
35503      IHWUSE='P'
35504      MESSAG='NO'
35505      CALL CHECKN(IHP,IHP2,IHWUSE,
35506     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
35507     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
35508      IF(IERROR.EQ.'YES')THEN
35509        ALPHA=0.95
35510      ELSE
35511        ALPHA=VALUE(ILOCP)
35512      ENDIF
35513C
35514      IHP='GAMM'
35515      IHP2='A   '
35516      IHWUSE='P'
35517      MESSAG='NO'
35518      CALL CHECKN(IHP,IHP2,IHWUSE,
35519     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
35520     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
35521      IF(IERROR.EQ.'YES')THEN
35522        GAMMA=0.95
35523      ELSE
35524        GAMMA=VALUE(ILOCP)
35525      ENDIF
35526C
35527      CALL DPTOL3(TEMP,NS2,XMEAN,XSD,AN,PTOLDF,
35528     1            ICASPL,ALPHA,GAMMA,ITOLGC,ITOLM2,
35529     1            AK,ALOWLM,AUPPLM,
35530     1            ISUBRO,IBUGG3,IERROR)
35531      IF(ICASPL.EQ.'1LNT' .OR. ICASPL.EQ.'2LNT')THEN
35532        RIGHT=ALOWLM
35533      ELSEIF(ICASPL.EQ.'1UNT' .OR. ICASPL.EQ.'2UNT')THEN
35534        RIGHT=AUPPLM
35535      ELSEIF(ICASPL.EQ.'1KNT' .OR. ICASPL.EQ.'2KNT')THEN
35536        RIGHT=AK
35537      ENDIF
35538      GOTO79000
35539C
3554033140 CONTINUE
35541C
35542      CALL DPFTE3(TEMP,NS2,TEMPZ,NSZ,MAXNXT,
35543     1            Y1MEAN,Y1SD,Y2MEAN,Y2SD,
35544     1            SDNUM,SDDEN,IDFNUM,IDFDEN,
35545     1            STATVA,STANU1,STANU2,POOLSD,STATCD,PVAL,
35546     1            IBUGG3,ISUBRO,IERROR)
35547      IF(ICASPL.EQ.'FTES')THEN
35548        RIGHT=STATVA
35549      ELSEIF(ICASPL.EQ.'FTPV')THEN
35550        RIGHT=PVAL
35551      ELSEIF(ICASPL.EQ.'FTCD')THEN
35552        RIGHT=STATCD
35553      ENDIF
35554      GOTO79000
35555C
3555633150 CONTINUE
35557      IHP='MU  '
35558      IHP2='    '
35559      IHWUSE='P'
35560      MESSAG='NO'
35561      CALL CHECKN(IHP,IHP2,IHWUSE,
35562     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
35563     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
35564      IF(IERROR.EQ.'YES')THEN
35565        AMU=0.0
35566      ELSE
35567        AMU=VALUE(ILOCP)
35568      ENDIF
35569C
35570      CALL DPSIG3(TEMP,NS2,AMU,IWRITE,
35571     1            XTEMP1,XTEMP2,MAXNXT,
35572     1            XMEAN,XMED,XSD,XMAD,
35573     1            STATV1,STATC1,STATV2,STATC2,RTIES,NTEMP,
35574     1            PVAL2T,PVALLT,PVALUT,
35575     1            ISUBRO,IBUGG3,IERROR)
35576      IF(ICASPL.EQ.'1STE')THEN
35577        RIGHT=STATV1
35578      ELSEIF(ICASPL.EQ.'1SCD')THEN
35579        RIGHT=STATC1
35580      ELSEIF(ICASPL.EQ.'1S2P')THEN
35581        RIGHT=PVAL2T
35582      ELSEIF(ICASPL.EQ.'1SLP')THEN
35583        RIGHT=PVALLT
35584      ELSEIF(ICASPL.EQ.'1SUP')THEN
35585        RIGHT=PVALUT
35586      ENDIF
35587      GOTO79000
35588C
3558933160 CONTINUE
35590      IHP='D0  '
35591      IHP2='    '
35592      IHWUSE='P'
35593      MESSAG='NO'
35594      CALL CHECKN(IHP,IHP2,IHWUSE,
35595     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
35596     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
35597      IF(IERROR.EQ.'YES')THEN
35598        D0=0.0
35599      ELSE
35600        D0=VALUE(ILOCP)
35601      ENDIF
35602C
35603      CALL DPSIG4(TEMP,NS2,TEMPZ,NSZ,D0,IWRITE,
35604     1            XTEMP1,XTEMP2,MAXNXT,
35605     1            X1MEAN,X1MED,X1SD,X1MAD,
35606     1            X2MEAN,X2MED,X2SD,X2MAD,
35607     1            STATV1,STATC1,STATV2,STATC2,RTIES,NTEMP,
35608     1            PVAL2T,PVALLT,PVALUT,
35609     1            ISUBRO,IBUGG3,IERROR)
35610      IF(ICASPL.EQ.'2STE')THEN
35611        RIGHT=STATV1
35612      ELSEIF(ICASPL.EQ.'2SCD')THEN
35613        RIGHT=STATC1
35614      ELSEIF(ICASPL.EQ.'2S2P')THEN
35615        RIGHT=PVAL2T
35616      ELSEIF(ICASPL.EQ.'2SLP')THEN
35617        RIGHT=PVALLT
35618      ELSEIF(ICASPL.EQ.'2SUP')THEN
35619        RIGHT=PVALUT
35620      ENDIF
35621      GOTO79000
35622C
3562333165 CONTINUE
35624      IF(MAXNXT.GE.1000000)THEN
35625        MAXSAM=22
35626      ELSE
35627        MAXSAM=20
35628      ENDIF
35629      SUMX=CPUMIN
35630      PTEMP=CPUMIN
35631      CALL FISHER(TEMP,NS2,TEMPZ,NSZ,ITOTAL,POSSIB,PTEMP,
35632     1            SUMX,SUMY,XMEAN,YMEAN,
35633     1            XTEMP1,XTEMP2,ITEMP1,MAXSAM,MAXNXT,
35634     1            IFAULT,IBUGG3)
35635      IF(IFAULT.GT.0)THEN
35636        RIGHT=CPUMIN
35637        WRITE(ICOUT,999)
35638        CALL DPWRST('XXX','WRIT')
35639        WRITE(ICOUT,33166)
3564033166   FORMAT('****** ERROR IN FISHER TWO-SAMPLE RANDOMIZATION TEST--')
35641        CALL DPWRST('XXX','WRIT')
35642        WRITE(ICOUT,33167)
3564333167   FORMAT('       MAXIMUM STORAGE SPACE EXCEEDED.')
35644        CALL DPWRST('XXX','WRIT')
35645        WRITE(ICOUT,33168)NS2
3564633168   FORMAT('       NUMBER OF OBSERVATIONS FOR SAMPLE ONE  = ',I8)
35647        CALL DPWRST('XXX','WRIT')
35648        WRITE(ICOUT,33169)NSZ
3564933169   FORMAT('       NUMBER OF OBSERVATIONS FOR SAMPLE TWO  = ',I8)
35650        CALL DPWRST('XXX','WRIT')
35651      ELSEIF(ICASPL.EQ.'2FRT')THEN
35652        RIGHT=SUMX
35653      ELSEIF(ICASPL.EQ.'2F2P' .AND. NS2.EQ.NSZ)THEN
35654        RIGHT=2.0*PTEMP
35655      ELSEIF(ICASPL.EQ.'2F2P' .AND. NS2.NE.NSZ)THEN
35656        RIGHT=2.0*PTEMP
35657      ELSEIF(ICASPL.EQ.'2F1P')THEN
35658        RIGHT=PTEMP
35659      ENDIF
35660      GOTO79000
35661C
3566233170 CONTINUE
35663      IF(ICASPL.EQ.'WABA')THEN
35664        ICASAN='ABAS'
35665        ICASDI='WEIB'
35666      ELSEIF(ICASPL.EQ.'WBBA')THEN
35667        ICASAN='BBAS'
35668        ICASDI='WEIB'
35669      ELSEIF(ICASPL.EQ.'LABA')THEN
35670        ICASAN='ABAS'
35671        ICASDI='LOGN'
35672      ELSEIF(ICASPL.EQ.'LBBA')THEN
35673        ICASAN='BBAS'
35674        ICASDI='LOGN'
35675      ELSEIF(ICASPL.EQ.'NABA')THEN
35676        ICASAN='ABAS'
35677        ICASDI='NORM'
35678      ELSEIF(ICASPL.EQ.'NBBA')THEN
35679        ICASAN='BBAS'
35680        ICASDI='NORM'
35681      ELSEIF(ICASPL.EQ.'ZABA')THEN
35682        ICASAN='ABAS'
35683        ICASDI='NONP'
35684      ELSEIF(ICASPL.EQ.'ZBBA')THEN
35685        ICASAN='BBAS'
35686        ICASDI='NONP'
35687      ENDIF
35688      CALL DPABA3(TEMP,NS2,
35689     1            XTEMP1,MAXNXT,
35690     1            ICASAN,ICASDI,
35691     1            T10,V10,NDF,GAMMA,ALPHA,YMEAN,YSD,YMIN,YMAX,
35692     1            ABASIS,BBASIS,
35693     1            ISUBRO,IBUGG3,IERROR)
35694      IF(ICASPL.EQ.'WABA')RIGHT=ABASIS
35695      IF(ICASPL.EQ.'WBBA')RIGHT=BBASIS
35696      IF(ICASPL.EQ.'LABA')RIGHT=ABASIS
35697      IF(ICASPL.EQ.'LBBA')RIGHT=BBASIS
35698      IF(ICASPL.EQ.'NABA')RIGHT=ABASIS
35699      IF(ICASPL.EQ.'NBBA')RIGHT=BBASIS
35700      IF(ICASPL.EQ.'ZABA')RIGHT=ABASIS
35701      IF(ICASPL.EQ.'ZBBA')RIGHT=BBASIS
35702      GOTO79000
35703C
3570434000 CONTINUE
35705      IHP='D0  '
35706      IHP2='    '
35707      IHWUSE='P'
35708      MESSAG='NO'
35709      CALL CHECKN(IHP,IHP2,IHWUSE,
35710     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
35711     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
35712      IF(IERROR.EQ.'YES')THEN
35713        D0=0.0
35714      ELSE
35715        D0=VALUE(ILOCP)
35716      ENDIF
35717C
35718      ICASAN='ONES'
35719      IF(ICASPL.EQ.'1WLP')THEN
35720        ICASA2='LOWE'
35721      ELSEIF(ICASPL.EQ.'1WUP')THEN
35722        ICASA2='UPPE'
35723      ELSE
35724        ICASA2='TWOT'
35725      ENDIF
35726      CALL DPWIL3(TEMP,TEMPZ,NS2,D0,ICASAN,ICASA2,
35727     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
35728     1            STATVA,STATV2,STATCD,
35729     1            PVAL2T,PVALLT,PVALUT,
35730     1            NTEMP,NPLUS,NMINUS,NTIES,
35731     1            TPLUS,TMINUS,RSUM,RSUMSQ,
35732     1            IBUGG3,ISUBRO,IERROR)
35733C
35734C     NOTE: RETURN THE "NORMAL APPROXIMATION" TEST STATISTIC
35735C
35736      IF(ICASPL.EQ.'1WTE')THEN
35737        RIGHT=STATV2
35738      ELSEIF(ICASPL.EQ.'1WCD')THEN
35739        RIGHT=STATCD
35740      ELSEIF(ICASPL.EQ.'1W2P')THEN
35741        RIGHT=PVAL2T
35742      ELSEIF(ICASPL.EQ.'1WLP')THEN
35743        RIGHT=PVALLT
35744      ELSEIF(ICASPL.EQ.'1WUP')THEN
35745        RIGHT=PVALUT
35746      ENDIF
35747      GOTO79000
35748C
3574934010 CONTINUE
35750      IHP='D0  '
35751      IHP2='    '
35752      IHWUSE='P'
35753      MESSAG='NO'
35754      CALL CHECKN(IHP,IHP2,IHWUSE,
35755     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
35756     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
35757      IF(IERROR.EQ.'YES')THEN
35758        D0=0.0
35759      ELSE
35760        D0=VALUE(ILOCP)
35761      ENDIF
35762C
35763      ICASAN='TWOS'
35764      IF(ICASPL.EQ.'1WLP')THEN
35765        ICASA2='LOWE'
35766      ELSEIF(ICASPL.EQ.'1WUP')THEN
35767        ICASA2='UPPE'
35768      ELSE
35769        ICASA2='TWOT'
35770      ENDIF
35771      CALL DPWIL3(TEMP,TEMPZ,NS2,D0,ICASAN,ICASA2,
35772     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
35773     1            STATVA,STATV2,STATCD,
35774     1            PVAL2T,PVALLT,PVALUT,
35775     1            NTEMP,NPLUS,NMINUS,NTIES,
35776     1            TPLUS,TMINUS,RSUM,RSUMSQ,
35777     1            IBUGG3,ISUBRO,IERROR)
35778C
35779C     NOTE: RETURN THE "NORMAL APPROXIMATION" TEST STATISTIC
35780C
35781      IF(ICASPL.EQ.'2WTE')THEN
35782        RIGHT=STATV2
35783      ELSEIF(ICASPL.EQ.'2WCD')THEN
35784        RIGHT=STATCD
35785      ELSEIF(ICASPL.EQ.'2W2P')THEN
35786        RIGHT=PVAL2T
35787      ELSEIF(ICASPL.EQ.'2WLP')THEN
35788        RIGHT=PVALLT
35789      ELSEIF(ICASPL.EQ.'2WUP')THEN
35790        RIGHT=PVALUT
35791      ENDIF
35792      GOTO79000
35793C
3579434020 CONTINUE
35795      CALL DPMNN3(TEMP,NS2,TEMPZ,NSZ,
35796     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
35797     1            STATVA,STATV1,STATV2,STATV3,STATCD,NTIES,
35798     1            PVAL2T,PVALLT,PVALUT,
35799     1            IBUGG3,ISUBRO,IERROR)
35800C
35801      IF(ICASPL.EQ.'MWTE')THEN
35802        RIGHT=STATVA
35803      ELSEIF(ICASPL.EQ.'MWCD')THEN
35804        RIGHT=STATCD
35805      ELSEIF(ICASPL.EQ.'MW2P')THEN
35806        RIGHT=PVAL2T
35807      ELSEIF(ICASPL.EQ.'MWLP')THEN
35808        RIGHT=PVALLT
35809      ELSEIF(ICASPL.EQ.'MWUP')THEN
35810        RIGHT=PVALUT
35811      ELSEIF(ICASPL.EQ.'MWUS')THEN
35812        RIGHT=STATV3
35813      ENDIF
35814      GOTO79000
35815C
3581634030 CONTINUE
35817      CALL DPKLO3(TEMP,NS2,TEMPZ,NSZ,
35818     1            XTEMP1,XTEMP2,XTEMP3,MAXNXT,
35819     1            STATVA,STATCD,PVAL2T,PVALLT,PVALUT,
35820     1            IBUGG3,ISUBRO,IERROR)
35821C
35822      IF(ICASPL.EQ.'KLTE')THEN
35823        RIGHT=STATVA
35824      ELSEIF(ICASPL.EQ.'KLCD')THEN
35825        RIGHT=STATCD
35826      ELSEIF(ICASPL.EQ.'KL2P')THEN
35827        RIGHT=PVAL2T
35828      ELSEIF(ICASPL.EQ.'KLLP')THEN
35829        RIGHT=PVALLT
35830      ELSEIF(ICASPL.EQ.'KLUP')THEN
35831        RIGHT=PVALUT
35832      ENDIF
35833      GOTO79000
35834C
3583534035 CONTINUE
35836      IKRUGS='OFF'
35837      CALL DPKRU3(TEMP,TEMPZ,NS2,
35838     1            TEMPZ3,XTEMP1,ITEMP1,MAXOBV,
35839     1            XTEMP2,XTEMP3,XTEMP3,XTEMP3,XTEMP3,XTEMP3,
35840     1            STATVA,STATCD,PVAL2T,NUMDF,NUMDIS,S2,
35841     1            IKRUGS,
35842     1            IBUGG3,ISUBRO,IERROR)
35843      IF(ICASPL.EQ.'KWTE')THEN
35844        RIGHT=STATVA
35845      ELSEIF(ICASPL.EQ.'KWCD')THEN
35846        RIGHT=STATCD
35847      ELSEIF(ICASPL.EQ.'KW2P')THEN
35848        RIGHT=PVAL2T
35849      ENDIF
35850      GOTO79000
35851C
3585234040 CONTINUE
35853      CALL DPSQR3(TEMP,TEMPZ,NS2,
35854     1            XTEMP1,XTEMP2,XTEMP3,TEMPZ3,MAXNXT,
35855     1            DTEMP1,DTEMP2,
35856     1            STATVA,STATCD,PVAL2T,PVALLT,PVALUT,
35857     1            IDF,NDIST,D2,
35858     1            IBUGG3,ISUBRO,IERROR)
35859C
35860      IF(ICASPL.EQ.'SRTE')THEN
35861        RIGHT=STATVA
35862      ELSEIF(ICASPL.EQ.'SRCD')THEN
35863        RIGHT=STATCD
35864      ELSEIF(ICASPL.EQ.'SR2P')THEN
35865        RIGHT=PVAL2T
35866      ELSEIF(ICASPL.EQ.'SRLP')THEN
35867        RIGHT=PVALLT
35868      ELSEIF(ICASPL.EQ.'SRUP')THEN
35869        RIGHT=PVALUT
35870      ENDIF
35871      GOTO79000
35872C
3587334050 CONTINUE
35874      IHP='XQ  '
35875      IHP2='    '
35876      IHWUSE='P'
35877      MESSAG='NO'
35878      CALL CHECKN(IHP,IHP2,IHWUSE,
35879     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
35880     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
35881      IF(IERROR.EQ.'YES')THEN
35882        PMTEQU=0.5
35883      ELSE
35884        PMTEQU=VALUE(ILOCP)
35885        IF(PMTEQU.LE.0.0 .OR. PMTEQU.GE.1.0)PMTEQU=0.5
35886      ENDIF
35887      CALL DPMET3(TEMP,TEMPZ,NS2,
35888     1            XTEMP1,XTEMP2,XTEMP3,PMTEQU,IQUAME,MAXNXT,
35889     1            XMED,XA,XB,IDF,NDIST,
35890     1            STATVA,STATCD,PVAL2T,
35891     1            IBUGG3,ISUBRO,IERROR)
35892C
35893      IF(ICASPL.EQ.'METE')THEN
35894        RIGHT=STATVA
35895      ELSEIF(ICASPL.EQ.'MECD')THEN
35896        RIGHT=STATCD
35897      ELSEIF(ICASPL.EQ.'ME2P')THEN
35898        RIGHT=PVAL2T
35899      ENDIF
35900      GOTO79000
35901C
3590234060 CONTINUE
35903      MAXOB2=MAXOBV/2
35904      IINDX=MAXOB2+1
35905      CALL DPFRI3(TEMP,TEMPZ,TEMPZ3,NS2,
35906     1            XTEMP1,XTEMP1(IINDX),XTEMP2,XTEMP3,XTEMP3(IINDX),
35907     1            DTEMP1,
35908     1            MAXOBV,MAXOB2,
35909     1            STATVA,STATCD,PVAL2T,
35910     1            NBLOCK,NTREAT,NUMDF1,NUMDF2,AT1,AT2,A1,C1,
35911     1            IBUGG3,ISUBRO,IERROR)
35912      IF(ICASPL.EQ.'FZTE')THEN
35913        RIGHT=STATVA
35914      ELSEIF(ICASPL.EQ.'FZCD')THEN
35915        RIGHT=STATCD
35916      ELSEIF(ICASPL.EQ.'FZ2P')THEN
35917        RIGHT=PVAL2T
35918      ENDIF
35919      GOTO79000
35920C
3592134070 CONTINUE
35922      MAXOB2=MAXOBV/2
35923      IINDX=MAXOB2+1
35924      CALL DPQUT3(TEMP,TEMPZ,TEMPZ3,NS2,
35925     1            XTEMP1,XTEMP1(IINDX),XTEMP2,XTEMP2(IINDX),
35926     1            XTEMP3,XTEMP3(IINDX),
35927     1            DTEMP1,
35928     1            MAXOBV,MAXOB2,
35929     1            STATVA,STATCD,PVAL2T,
35930     1            NBLOCK,NTREAT,NUMDF1,NUMDF2,
35931     1            AT1,AT2,A1,C1,SSTR,SSTO,
35932     1            IBUGG3,ISUBRO,IERROR)
35933      IF(ICASPL.EQ.'QUTE')THEN
35934        RIGHT=STATVA
35935      ELSEIF(ICASPL.EQ.'QUCD')THEN
35936        RIGHT=STATCD
35937      ELSEIF(ICASPL.EQ.'QU2P')THEN
35938        RIGHT=PVAL2T
35939      ENDIF
35940      GOTO79000
35941C
3594234075 CONTINUE
35943      MAXOB2=MAXOBV/2
35944      IINDX=MAXOB2+1
35945      CALL DPPAG3(TEMP,TEMPZ,TEMPZ3,NS2,
35946     1            XTEMP1,XTEMP1(IINDX),XTEMP2,XTEMP3,XTEMP3(IINDX),
35947     1            DTEMP1,
35948     1            MAXOBV,MAXOB2,
35949     1            STATVA,STATV2,STATCD,PVAL,
35950     1            NBLOCK,NTREAT,
35951     1            IBUGG3,ISUBRO,IERROR)
35952      IF(ICASPL.EQ.'PATE')THEN
35953        RIGHT=STATVA
35954      ELSEIF(ICASPL.EQ.'PAT2')THEN
35955        RIGHT=STATV2
35956      ELSEIF(ICASPL.EQ.'PACD')THEN
35957        RIGHT=STATCD
35958      ELSEIF(ICASPL.EQ.'PAPV')THEN
35959        RIGHT=PVAL
35960      ENDIF
35961      GOTO79000
35962C
3596334080 CONTINUE
35964      CALL DPINDM(TEMP,NS2,TEMPZ,NSZ,ICASPL,
35965     1            RIGHT,
35966     1            IBUGG3,ISUBRO,IERROR)
35967      GOTO79000
35968C
3596934090 CONTINUE
35970      ICASE='SUMM'
35971      ICASE2='DIVE'
35972      IF(ICASPL.EQ.'SHEI')ICASE2='EQUI'
35973      CALL SHANDI(TEMP,NS2,IWRITE,RIGHT,XTEMP1,XTEMP2,ICASE,ICASE2,
35974     1            IBUGG3,ISUBRO,IERROR)
35975      GOTO79000
35976C
3597734095 CONTINUE
35978      ICASE='RAW'
35979      ICASE2='DIVE'
35980      IF(ICASPL.EQ.'SEII')ICASE2='EQUI'
35981      CALL SHANDI(TEMP,NS2,IWRITE,RIGHT,XTEMP1,XTEMP2,ICASE,ICASE2,
35982     1            IBUGG3,ISUBRO,IERROR)
35983      GOTO79000
35984C
3598534100 CONTINUE
35986      ICASE='SUMM'
35987      CALL SIMPDI(TEMP,NS2,IWRITE,RIGHT,XTEMP1,XTEMP2,ICASE,
35988     1            IBUGG3,ISUBRO,IERROR)
35989      GOTO79000
35990C
3599134105 CONTINUE
35992      ICASE='SUMM'
35993      CALL SIMPDI(TEMP,NS2,IWRITE,RIGHT,XTEMP1,XTEMP2,ICASE,
35994     1            IBUGG3,ISUBRO,IERROR)
35995      GOTO79000
35996C
3599734110 CONTINUE
35998      CALL DPJAB3(TEMP,NS2,ISEED,IRANAL,MAXNXT,
35999     1            XTEMP1,XTEMP2,
36000     1            XSKEW,XKURT,
36001     1            STATVA,PVAL,CDF,
36002     1            CUT25,CUT50,CUT75,CUT80,CUT90,
36003     1            CUT95,CUT975,CUT99,CUT999,
36004     1            ISUBRO,IBUGG3,IERROR)
36005      IF(ICASPL.EQ.'JABE')THEN
36006        RIGHT=STATVA
36007      ELSEIF(ICASPL.EQ.'JAPV')THEN
36008        RIGHT=PVAL
36009      ELSEIF(ICASPL.EQ.'JACD')THEN
36010        RIGHT=CDF
36011      ENDIF
36012      GOTO79000
36013C
3601434120 CONTINUE
36015      IHP='ALPH'
36016      IHP2='A   '
36017      IHWUSE='P'
36018      MESSAG='YES'
36019      CALL CHECKN(IHP,IHP2,IHWUSE,
36020     1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36021     1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36022      IF(IERROR.EQ.'YES')GOTO9000
36023      ALPHA=VALUE(ILOCP)
36024      IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
36025        ALPHA=ALPHA/100.0
36026        IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
36027      ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
36028        IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
36029      ELSE
36030        ALPHA=0.95
36031      ENDIF
36032C
36033      IF(ICASPL(1:1).EQ.'S')THEN
36034        YMEAN=TEMP(1)
36035        YSD=TEMPZ(1)
36036        NS2=INT(TEMPZ3(1)+0.5)
36037      ELSE
36038        CALL MEAN(TEMP,NS2,IWRITE,YMEAN,IBUGG3,IERROR)
36039        CALL SD(TEMP,NS2,IWRITE,YSD,IBUGG3,IERROR)
36040      ENDIF
36041      YSDMEA=YSD/SQRT(REAL(NS2))
36042C
36043      PCONF=ALPHA
36044      IF(ICASPL.EQ.'LCL ' .OR. ICASPL.EQ.'UCL ' .OR.
36045     1   ICASPL.EQ.'SLCL' .OR. ICASPL.EQ.'SUCL')THEN
36046        CDF=0.5+(PCONF/2.0)
36047      ELSEIF(ICASPL.EQ.'1LCL' .OR. ICASPL.EQ.'1UCL' .OR.
36048     1       ICASPL.EQ.'SLC1' .OR. ICASPL.EQ.'SUC1')THEN
36049        CDF=PCONF
36050      ENDIF
36051      NM1=NS2-1
36052      CALL TPPF(CDF,REAL(NM1),TVAL)
36053      TSDM=TVAL*YSDMEA
36054      ALOWER=YMEAN-TSDM
36055      AUPPER=YMEAN+TSDM
36056      IF(ICASPL.EQ.'LCL ' .OR. ICASPL.EQ.'SLCL')THEN
36057        RIGHT=ALOWER
36058      ELSEIF(ICASPL.EQ.'UCL ' .OR. ICASPL.EQ.'SUCL')THEN
36059        RIGHT=AUPPER
36060      ELSEIF(ICASPL.EQ.'1LCL' .OR. ICASPL.EQ.'SLC1')THEN
36061        RIGHT=ALOWER
36062      ELSEIF(ICASPL.EQ.'1UCL' .OR. ICASPL.EQ.'SUC1')THEN
36063        RIGHT=AUPPER
36064      ENDIF
36065      GOTO79000
36066C
3606734130 CONTINUE
36068      IHP='ALPH'
36069      IHP2='A   '
36070      IHWUSE='P'
36071      MESSAG='NO'
36072      CALL CHECKN(IHP,IHP2,IHWUSE,
36073     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36074     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36075      IF(IERROR.EQ.'NO')THEN
36076        ALPHA=VALUE(ILOCP)
36077        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
36078          ALPHA=ALPHA/100.0
36079          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
36080        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
36081          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
36082        ELSE
36083          ALPHA=0.95
36084        ENDIF
36085      ELSE
36086        ALPHA=0.95
36087      ENDIF
36088C
36089      IHP='NNEW'
36090      IHP2='    '
36091      IHWUSE='P'
36092      MESSAG='NO'
36093      CALL CHECKN(IHP,IHP2,IHWUSE,
36094     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36095     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36096      IF(IERROR.EQ.'NO')THEN
36097        NNEW=INT(VALUE(ILOCP)+0.5)
36098      ELSE
36099        NNEW=1
36100      ENDIF
36101      IF(NNEW.LT.1)NNEW=1
36102C
36103      IF(ICASPL(1:1).EQ.'S')THEN
36104        IF(ICASPL.EQ.'SLS2' .OR. ICASPL.EQ.'SUS2' .OR.
36105     1     ICASPL.EQ.'SLS1' .OR. ICASPL.EQ.'SUS1')THEN
36106          YSD=TEMP(1)
36107          NS2=INT(TEMPZ(1)+0.5)
36108        ELSE
36109          YMEAN=TEMP(1)
36110          YSD=TEMPZ(1)
36111          NS2=INT(TEMPZ3(1)+0.5)
36112        ENDIF
36113      ENDIF
36114C
36115      ICASA2='LIMI'
36116      ICASA3='UPPE'
36117      ICASA4='RAW'
36118      ICASA5='TWOS'
36119C
36120      IF(ICASPL(1:1).EQ.'S')ICASA4='SUMM'
36121C
36122      IF(ICASPL.EQ.'LPB ')THEN
36123        ICASA2='BOUN'
36124        ICASA3='LOWE'
36125      ENDIF
36126      IF(ICASPL.EQ.'UPB ')ICASA2='BOUN'
36127      IF(ICASPL.EQ.'UPB1')ICASA2='BOUN'
36128C
36129      IF(ICASPL.EQ.'LPL1')THEN
36130        ICASA3='LOWE'
36131        ICASA5='ONES'
36132      ENDIF
36133      IF(ICASPL.EQ.'LPB1')THEN
36134        ICASA2='BOUN'
36135        ICASA3='LOWE'
36136        ICASA5='ONES'
36137      ENDIF
36138      IF(ICASPL.EQ.'UPL1')ICASA5='ONES'
36139      IF(ICASPL.EQ.'UPB1')ICASA5='ONES'
36140C
36141      IF(ICASPL.EQ.'SLPB')THEN
36142        ICASA2='BOUN'
36143        ICASA3='LOWE'
36144      ENDIF
36145      IF(ICASPL.EQ.'SUPB')ICASA2='BOUN'
36146      IF(ICASPL.EQ.'SUB1')ICASA2='BOUN'
36147C
36148      IF(ICASPL.EQ.'SLP1')THEN
36149        ICASA3='LOWE'
36150        ICASA5='ONES'
36151      ENDIF
36152      IF(ICASPL.EQ.'SLB1')THEN
36153        ICASA2='BOUN'
36154        ICASA3='LOWE'
36155        ICASA5='ONES'
36156      ENDIF
36157      IF(ICASPL.EQ.'SUB1')ICASA5='ONES'
36158      IF(ICASPL.EQ.'SUP1')ICASA5='ONES'
36159C
36160      IF(ICASPL.EQ.'UPS1')THEN
36161        ICASA2='SDLI'
36162        ICASA5='ONES'
36163      ELSEIF(ICASPL.EQ.'LPS1')THEN
36164        ICASA2='SDLI'
36165        ICASA3='LOWE'
36166        ICASA5='ONES'
36167      ELSEIF(ICASPL.EQ.'UPS2')THEN
36168        ICASA2='SDLI'
36169      ELSEIF(ICASPL.EQ.'LPS2')THEN
36170        ICASA2='SDLI'
36171        ICASA3='LOWE'
36172      ELSEIF(ICASPL.EQ.'SUS1')THEN
36173        ICASA2='SDLI'
36174        ICASA5='ONES'
36175      ELSEIF(ICASPL.EQ.'SLS1')THEN
36176        ICASA2='SDLI'
36177        ICASA3='LOWE'
36178        ICASA5='ONES'
36179      ELSEIF(ICASPL.EQ.'SUS2')THEN
36180        ICASA2='SDLI'
36181      ELSEIF(ICASPL.EQ.'SLS2')THEN
36182        ICASA2='SDLI'
36183        ICASA3='LOWE'
36184      ENDIF
36185C
36186      ALPHAT(1)=ALPHA
36187      NALPHA=1
36188      CALL DPPRL3(TEMP,NS2,NNEW,ICASA2,ICASA3,ICASA4,ICASA5,
36189     1            YMEAN,YSD,
36190     1            ALPHAT,NALPHA,ALOWLV,AUPPLV,
36191     1            ISUBRO,IBUGG3,IERROR)
36192C
36193      IF(ICASPL.EQ.'LPL ')RIGHT=ALOWLV(1)
36194      IF(ICASPL.EQ.'LPB ')RIGHT=ALOWLV(1)
36195      IF(ICASPL.EQ.'LPL1')RIGHT=ALOWLV(1)
36196      IF(ICASPL.EQ.'LPB1')RIGHT=ALOWLV(1)
36197      IF(ICASPL.EQ.'UPL ')RIGHT=AUPPLV(1)
36198      IF(ICASPL.EQ.'UPB ')RIGHT=AUPPLV(1)
36199      IF(ICASPL.EQ.'UPL1')RIGHT=AUPPLV(1)
36200      IF(ICASPL.EQ.'UPB1')RIGHT=AUPPLV(1)
36201      IF(ICASPL.EQ.'SLPL')RIGHT=ALOWLV(1)
36202      IF(ICASPL.EQ.'SLPB')RIGHT=ALOWLV(1)
36203      IF(ICASPL.EQ.'SLP1')RIGHT=ALOWLV(1)
36204      IF(ICASPL.EQ.'SLB1')RIGHT=ALOWLV(1)
36205      IF(ICASPL.EQ.'SUPL')RIGHT=AUPPLV(1)
36206      IF(ICASPL.EQ.'SUPB')RIGHT=AUPPLV(1)
36207      IF(ICASPL.EQ.'SUP1')RIGHT=AUPPLV(1)
36208      IF(ICASPL.EQ.'SUB1')RIGHT=AUPPLV(1)
36209C
36210      IF(ICASPL.EQ.'SUS1')RIGHT=AUPPLV(1)
36211      IF(ICASPL.EQ.'SUS2')RIGHT=AUPPLV(1)
36212      IF(ICASPL.EQ.'UPS1')RIGHT=AUPPLV(1)
36213      IF(ICASPL.EQ.'UPS2')RIGHT=AUPPLV(1)
36214      IF(ICASPL.EQ.'SLS1')RIGHT=ALOWLV(1)
36215      IF(ICASPL.EQ.'SLS2')RIGHT=ALOWLV(1)
36216      IF(ICASPL.EQ.'LPS1')RIGHT=ALOWLV(1)
36217      IF(ICASPL.EQ.'LPS2')RIGHT=ALOWLV(1)
36218C
36219      GOTO79000
36220C
3622134140 CONTINUE
36222      IHP='ALPH'
36223      IHP2='A   '
36224      IHWUSE='P'
36225      MESSAG='NO'
36226      CALL CHECKN(IHP,IHP2,IHWUSE,
36227     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36228     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36229      IF(IERROR.EQ.'NO')THEN
36230        ALPHA=VALUE(ILOCP)
36231        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
36232          ALPHA=ALPHA/100.0
36233          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
36234        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
36235          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
36236        ELSE
36237          ALPHA=0.95
36238        ENDIF
36239      ELSE
36240        ALPHA=0.95
36241      ENDIF
36242C
36243      IF(ICASPL(1:1).EQ.'S')THEN
36244        YSD=TEMP(1)
36245        NS2=INT(TEMPZ(1)+0.1)
36246      ENDIF
36247C
36248      ICASA2='LIMI'
36249      ICASA3='UPPE'
36250      ICASA4='RAW'
36251      ICASA5='TWOS'
36252C
36253      IF(ICASPL(1:1).EQ.'S')ICASA4='SUMM'
36254C
36255      IF(ICASPL.EQ.'LCS1')ICASA3='LOWE'
36256      IF(ICASPL.EQ.'LCS2')ICASA3='LOWE'
36257      IF(ICASPL.EQ.'SLZ1')ICASA3='LOWE'
36258      IF(ICASPL.EQ.'SLZ2')ICASA3='LOWE'
36259C
36260      IF(ICASPL.EQ.'LCS1')ICASA5='ONES'
36261      IF(ICASPL.EQ.'UCS1')ICASA5='ONES'
36262      IF(ICASPL.EQ.'SLZ1')ICASA5='ONES'
36263      IF(ICASPL.EQ.'SUZ1')ICASA5='ONES'
36264C
36265      ALPHAT(1)=ALPHA
36266      NALPHA=1
36267      CALL DPSDC3(TEMP,NS2,ICASA2,ICASA3,ICASA4,ICASA5,
36268     1            YSD,
36269     1            ALPHAT,NALPHA,ALOWLV,AUPPLV,
36270     1            ISUBRO,IBUGG3,IERROR)
36271C
36272      IF(ICASPL.EQ.'LCS1')RIGHT=ALOWLV(1)
36273      IF(ICASPL.EQ.'LCS2')RIGHT=ALOWLV(1)
36274      IF(ICASPL.EQ.'SLZ1')RIGHT=ALOWLV(1)
36275      IF(ICASPL.EQ.'SLZ2')RIGHT=ALOWLV(1)
36276      IF(ICASPL.EQ.'UCS1')RIGHT=AUPPLV(1)
36277      IF(ICASPL.EQ.'UCS2')RIGHT=AUPPLV(1)
36278      IF(ICASPL.EQ.'SUZ1')RIGHT=AUPPLV(1)
36279      IF(ICASPL.EQ.'SUZ2')RIGHT=AUPPLV(1)
36280C
36281      GOTO79000
36282C
3628334145 CONTINUE
36284      IHP='ALPH'
36285      IHP2='A   '
36286      IHWUSE='P'
36287      MESSAG='NO'
36288      CALL CHECKN(IHP,IHP2,IHWUSE,
36289     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36290     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36291      IF(IERROR.EQ.'NO')THEN
36292        ALPHA=VALUE(ILOCP)
36293        IF(ALPHA.GT.1.0 .AND. ALPHA.LT.100.0)THEN
36294          ALPHA=ALPHA/100.0
36295          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
36296        ELSEIF(ALPHA.GT.0.0 .AND. ALPHA.LT.1.0)THEN
36297          IF(ALPHA.LT.0.5)ALPHA=1.0 - ALPHA
36298        ELSE
36299          ALPHA=0.95
36300        ENDIF
36301      ELSE
36302        ALPHA=0.95
36303      ENDIF
36304C
36305      IHP='N0  '
36306      IHP2='    '
36307      IHWUSE='P'
36308      MESSAG='NO'
36309      CALL CHECKN(IHP,IHP2,IHWUSE,
36310     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36311     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36312      IF(IERROR.EQ.'NO')THEN
36313        N0=INT(VALUE(ILOCP)+0.5)
36314      ELSE
36315        N0=0
36316      ENDIF
36317C
36318      IHP='KURT'
36319      IHP2='OSIS'
36320      IHWUSE='P'
36321      MESSAG='NO'
36322      CALL CHECKN(IHP,IHP2,IHWUSE,
36323     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36324     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36325      IF(IERROR.EQ.'NO')THEN
36326        AKURT=VALUE(ILOCP)
36327      ELSE
36328        AKURT=CPUMIN
36329      ENDIF
36330C
36331      ICASA3='UPPE'
36332      ICASA5='TWOS'
36333      IF(ICASPL.EQ.'BLSD')ICASA3='LOWE'
36334      ALPHAT(1)=ALPHA
36335      NALPHA=1
36336      CALL DPSDR3(TEMP,NS2,ICASA3,ICASA5,MAXNXT,
36337     1            XTEMP1,AKURT,N0,IBONAD,
36338     1            YSD,
36339     1            ALPHAT,NALPHA,ALOWLV,AUPPLV,
36340     1            ISUBRO,IBUGG3,IERROR)
36341C
36342      IF(ICASPL.EQ.'BLSD')RIGHT=ALOWLV(1)
36343      IF(ICASPL.EQ.'BUSD')RIGHT=AUPPLV(1)
36344      GOTO79000
36345C
3634634150 CONTINUE
36347      ICASE='STAT'
36348      IF(ICASPL.EQ.'MWLC')ICASE='CV'
36349      IF(ICASPL.EQ.'MWPV')ICASE='CV'
36350      CALL DPMCW3(TEMP,TEMPZ,NS2,
36351     1            TEMPZ3,XTEMP1,XTEMP2,XTEMP3,DTEMP1,ITEMP1,
36352     1            ICASE,ISEED,MAXNXT,
36353     1            STATVA,STATCD,PVAL,CV50,CV90,CV95,
36354     1            CA,CL,IR,IR1,IMCCR1,IRANAL,
36355     1            ISUBRO,IBUGG3,IERROR)
36356      IF(ICASPL.EQ.'MWLT')RIGHT=STATVA
36357      IF(ICASPL.EQ.'MWLC')RIGHT=STATCD
36358      IF(ICASPL.EQ.'MWPV')RIGHT=PVAL
36359      IF(ICASPL.EQ.'MW50')RIGHT=CV50
36360      IF(ICASPL.EQ.'MW90')RIGHT=CV90
36361      IF(ICASPL.EQ.'MW95')RIGHT=CV95
36362      GOTO79000
36363C
3636434160 CONTINUE
36365      ICASE='RAW'
36366      CALL DPPDT3(TEMP,TEMPZ,NS2,ICASE,
36367     1            STATVA,STATCD,STATNU,PVALUE,
36368     1            YMEAN,YSD,
36369     1            ISUBRO,IBUGG3,IERROR)
36370      IF(ICASPL.EQ.'PDTE')RIGHT=STATVA
36371      IF(ICASPL.EQ.'PDCD')RIGHT=STATCD
36372      IF(ICASPL.EQ.'PDPV')RIGHT=PVALUE
36373      GOTO79000
36374C
3637534170 CONTINUE
36376      ICASE='GROU'
36377      CALL DPPDT3(TEMP,TEMPZ,NS2,ICASE,
36378     1            STATVA,STATCD,STATNU,PVALUE,
36379     1            YMEAN,YSD,
36380     1            ISUBRO,IBUGG3,IERROR)
36381      IF(ICASPL.EQ.'GPDT')RIGHT=STATVA
36382      IF(ICASPL.EQ.'GPDC')RIGHT=STATCD
36383      IF(ICASPL.EQ.'GPDP')RIGHT=PVALUE
36384      GOTO79000
36385C
3638634180 CONTINUE
36387C
36388      IHP='XMIN'
36389      IHP2='    '
36390      IHWUSE='P'
36391      MESSAG='NO'
36392      CALL CHECKN(IHP,IHP2,IHWUSE,
36393     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36394     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36395      IF(IERROR.EQ.'NO')THEN
36396        XMIN=VALUE(ILOCP)
36397      ELSE
36398        XMIN=CPUMIN
36399      ENDIF
36400C
36401      IHP='XMAX'
36402      IHP2='    '
36403      IHWUSE='P'
36404      MESSAG='NO'
36405      CALL CHECKN(IHP,IHP2,IHWUSE,
36406     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36407     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36408      IF(IERROR.EQ.'NO')THEN
36409        XMAX=VALUE(ILOCP)
36410      ELSE
36411        XMAX=CPUMIN
36412      ENDIF
36413C
36414      IHP='YMIN'
36415      IHP2='    '
36416      IHWUSE='P'
36417      MESSAG='NO'
36418      CALL CHECKN(IHP,IHP2,IHWUSE,
36419     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36420     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36421      IF(IERROR.EQ.'NO')THEN
36422        YMIN=VALUE(ILOCP)
36423      ELSE
36424        YMIN=CPUMIN
36425      ENDIF
36426C
36427      IHP='YMAX'
36428      IHP2='    '
36429      IHWUSE='P'
36430      MESSAG='NO'
36431      CALL CHECKN(IHP,IHP2,IHWUSE,
36432     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36433     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36434      IF(IERROR.EQ.'NO')THEN
36435        YMAX=VALUE(ILOCP)
36436      ELSE
36437        YMAX=CPUMIN
36438      ENDIF
36439C
36440      CALL DPCSR3(TEMP,TEMPZ,NS2,XTEMP1,XTEMP2,
36441     1            XMIN,XMAX,YMIN,YMAX,
36442     1            STATVA,
36443     1            CV01,CV02,CV05,CV10,CV15,CV25,CV50,
36444     1            CV75,CV85,CV090,CV95,CV98,CV99,
36445     1            ISUBRO,IBUGG3,IERROR)
36446      IF(ICASPL.EQ.'BCVM')RIGHT=STATVA
36447      IF(ICASPL.EQ.'BC95')RIGHT=CV95
36448      IF(ICASPL.EQ.'BC05')RIGHT=CV05
36449      GOTO79000
36450C
36451C     ---------------------------
36452C
3645334190 CONTINUE
36454      CALL DPCSR4(TEMP,TEMPZ,NS2,XTEMP1,XTEMP2,
36455     1            STATVA,STATCD,PVALUE,
36456     1            ISUBRO,IBUGG3,IERROR)
36457      IF(ICASPL.EQ.'MNNC')RIGHT=STATVA
36458      IF(ICASPL.EQ.'MNND')RIGHT=STATCD
36459      IF(ICASPL.EQ.'MNNP')RIGHT=PVALUE
36460      GOTO79000
36461C
3646234200 CONTINUE
36463      IF(ICASPL.EQ.'POL1')JINDX=1
36464      IF(ICASPL.EQ.'POL2')JINDX=2
36465      IF(ICASPL.EQ.'POL3')JINDX=3
36466      IF(ICASPL.EQ.'POL4')JINDX=4
36467      IF(ICASPL.EQ.'POL5')JINDX=5
36468      IF(ICASPL.EQ.'POC1')JINDX=1
36469      IF(ICASPL.EQ.'POC2')JINDX=2
36470      IF(ICASPL.EQ.'POC3')JINDX=3
36471      IF(ICASPL.EQ.'POC4')JINDX=4
36472      IF(ICASPL.EQ.'POC5')JINDX=5
36473      IF(ICASPL.EQ.'POP1')JINDX=1
36474      IF(ICASPL.EQ.'POP2')JINDX=2
36475      IF(ICASPL.EQ.'POP3')JINDX=3
36476      IF(ICASPL.EQ.'POP4')JINDX=4
36477      IF(ICASPL.EQ.'POP5')JINDX=5
36478C
36479      CALL DPCSR5(TEMP,TEMPZ,NS2,JINDX,XTEMP1,
36480     1            STATVA,STATV2,STATCD,PVALUE,STATNU,
36481     1            ISUBRO,IBUGG3,IERROR)
36482C
36483      IF(ICASPL.EQ.'POL1')RIGHT=STATVA
36484      IF(ICASPL.EQ.'POL2')RIGHT=STATVA
36485      IF(ICASPL.EQ.'POL3')RIGHT=STATVA
36486      IF(ICASPL.EQ.'POL4')RIGHT=STATVA
36487      IF(ICASPL.EQ.'POL5')RIGHT=STATVA
36488      IF(ICASPL.EQ.'PO1C')RIGHT=STATCD
36489      IF(ICASPL.EQ.'PO2C')RIGHT=STATCD
36490      IF(ICASPL.EQ.'PO3C')RIGHT=STATCD
36491      IF(ICASPL.EQ.'PO4C')RIGHT=STATCD
36492      IF(ICASPL.EQ.'PO5C')RIGHT=STATCD
36493      IF(ICASPL.EQ.'PO1P')RIGHT=PVALUE
36494      IF(ICASPL.EQ.'PO2P')RIGHT=PVALUE
36495      IF(ICASPL.EQ.'PO3P')RIGHT=PVALUE
36496      IF(ICASPL.EQ.'PO4P')RIGHT=PVALUE
36497      IF(ICASPL.EQ.'PO5P')RIGHT=PVALUE
36498      GOTO79000
36499C
3650034210 CONTINUE
36501      IHP='XVAL'
36502      IHP2='UE  '
36503      IHWUSE='P'
36504      MESSAG='YES'
36505      CALL CHECKN(IHP,IHP2,IHWUSE,
36506     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36507     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36508      IF(IERROR.EQ.'NO')THEN
36509        XVAL=VALUE(ILOCP)
36510        CALL VALCNT(TEMP,NS2,XVAL,IWRITE,RIGHT,ISUBRO,IBUGG3,IERROR)
36511      ELSE
36512        RIGHT=0.0
36513      ENDIF
36514C
36515      GOTO79000
36516C
3651734220 CONTINUE
36518      CALL VARDIS(TEMP,NS2,IWRITE,VDIST,RDI,CHISQ,
36519     1            ICASPL,ISUBRO,IBUGG3,IERROR)
36520      IF(ICASPL.EQ.'VDIS')RIGHT=VDIST
36521      IF(ICASPL.EQ.'RDI ')RIGHT=RDI
36522      IF(ICASPL.EQ.'UCHS')RIGHT=CHISQ
36523      GOTO79000
36524C
3652534230 CONTINUE
36526      CALL DPCWS3(TEMP,TEMPZ,NS2,IWRITE,ISEED,MINMAX,MAXNXT,
36527     1            XTEMP1,DTEMP2,XTEMP2,XTEMP3,TEMPZ3,DTEMP1,
36528     1            STATVA,STATCD,PVALUE,NDIST,NGROUP,
36529     1            CV90,CV95,CV99,BETACM,
36530     1            IBUGG3,ISUBRO,IERROR)
36531      IF(ICASPL.EQ.'WSHT')RIGHT=STATVA
36532      IF(ICASPL.EQ.'WSCD')RIGHT=STATCD
36533      IF(ICASPL.EQ.'WSHP')RIGHT=PVALUE
36534      IF(ICASPL.EQ.'WS90')RIGHT=CV90
36535      IF(ICASPL.EQ.'WS95')RIGHT=CV95
36536      IF(ICASPL.EQ.'WS99')RIGHT=CV99
36537      GOTO79000
36538C
3653934240 CONTINUE
36540      CALL DPKAR3(TEMP,NS2,XTEMP1,MAXNXT,
36541     1            STATVA,CUTOFF,
36542     1            ISUBRO,IBUGG3,IERROR)
36543      RIGHT=STATVA
36544      IF(ICASPL.EQ.'KARC')RIGHT=CUTOFF
36545      GOTO79000
36546C
3654734260 CONTINUE
36548      ICASAN='UPPE'
36549      IF(ICASPL.EQ.'CV05')ICASAN='LOWE'
36550      IF(ICASPL.EQ.'CV01')ICASAN='LOWE'
36551      IF(ICASPL.EQ.'CMVC')ICASAN='LOWE'
36552      IF(ICASPL.EQ.'CMVP')ICASAN='LOWE'
36553      IF(ICASPL.EQ.'CVMO')ICASAN='LOWE'
36554      CALL DPCVO3(TEMP,TEMPZ,NS2,ICASAN,
36555     1            XTEMP1,XTEMP2,XTEMP3,TEMPZ3,ITEMP1,
36556     1            STATVA,STATV2,STATCU,STATCL,PVALU,PVALL,
36557     1            ALPHAV,CV,NUMALZ,
36558     1            IDF1,IDF2,ILABMX,ILABMN,NUMDIS,NGROUP,
36559     1            DVARTO,VARMAX,VARMIN,
36560     1            IBUGG3,ISUBRO,IERROR)
36561      RIGHT=STATVA
36562      IF(ICASPL.EQ.'CV95')RIGHT=CV(11)
36563      IF(ICASPL.EQ.'CV99')RIGHT=CV(13)
36564      IF(ICASPL.EQ.'CVCD')RIGHT=STATCU
36565      IF(ICASPL.EQ.'CVPV')RIGHT=PVALU
36566      IF(ICASPL.EQ.'CV01')RIGHT=CV(3)
36567      IF(ICASPL.EQ.'CV05')RIGHT=CV(5)
36568      IF(ICASPL.EQ.'CVMO')RIGHT=STATV2
36569      IF(ICASPL.EQ.'CMVC')RIGHT=STATCL
36570      IF(ICASPL.EQ.'CMVP')RIGHT=PVALL
36571      GOTO79000
36572C
3657334270 CONTINUE
36574      CALL DPEQS3(TEMP,TEMPZ,TEMPZ3,NS2,MAXNXT,
36575     1            XTEMP1,XTEMP2,XTEMP3,
36576     1            DTEMP1(1),DTEMP1(10000),DTEMP1(20000),
36577     1            DTEMP1(30000),DTEMP1(40000),
36578     1            DTEMP1(50000),DTEMP1(60000),ITEMP1,
36579     1            NUMSLO,ICASEE,
36580     1            STATVA,STATCD,PVAL2T,
36581     1            STATV1,STATC1,PVAL1,
36582     1            STATV2,STATC2,PVAL2,
36583     1            STATV3,STATC2,PVAL3,
36584     1            CV80,CV90,CV95,CV99,
36585     1            CV180,CV190,CV195,CV199,
36586     1            CV280,CV290,CV295,CV299,
36587     1            CV380,CV390,CV395,CV399,
36588     1            IBUGG3,ISUBRO,IERROR)
36589      IF(ICASEE.EQ.'3ORMORE')THEN
36590        RIGHT=STATV2
36591        IF(ICASPL.EQ.'ESCD')RIGHT=STATC2
36592        IF(ICASPL.EQ.'ESCV')RIGHT=CV295
36593        IF(ICASPL.EQ.'ESPV')RIGHT=PVAL2
36594      ELSE
36595        RIGHT=STATVA
36596        IF(ICASPL.EQ.'ESCD')RIGHT=STATCD
36597        IF(ICASPL.EQ.'ESCV')RIGHT=CV95
36598        IF(ICASPL.EQ.'ESPV')RIGHT=PVAL2T
36599      ENDIF
36600      GOTO79000
36601C
3660234280 CONTINUE
36603C
36604      IHP='GAMM'
36605      IHP2='A0  '
36606      IHWUSE='P'
36607      MESSAG='YES'
36608      CALL CHECKN(IHP,IHP2,IHWUSE,
36609     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36610     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36611      IF(IERROR.EQ.'YES')THEN
36612          RIGHT=0.0
36613          GOTO9000
36614      ELSE
36615        GAMMA0=VALUE(ILOCP)
36616      ENDIF
36617C
36618      ICASA3='RAW'
36619      CALL DPCVT3(TEMP,TEMPZ,ITEMP1,NS2,GAMMA0,IWRITE,ICASA3,
36620     1            XTEMP1,XTEMP2,
36621     1            NDIST,NGROUP,YMEAN,YSD,YCV,
36622     1            STATVA,STATCD,STATNU,
36623     1            PVAL2T,PVALLT,PVALUT,
36624     1            ISUBRO,IBUGG3,IERROR)
36625      IF(ICASPL.EQ.'1CTE')RIGHT=STATVA
36626      IF(ICASPL.EQ.'1CCD')RIGHT=STATCD
36627      IF(ICASPL.EQ.'1C2P')RIGHT=PVAL2T
36628      IF(ICASPL.EQ.'1CLP')RIGHT=PVALLT
36629      IF(ICASPL.EQ.'1CUP')RIGHT=PVALUT
36630C
36631      GOTO79000
36632C
3663334290 CONTINUE
36634C
36635      IHP='GAMM'
36636      IHP2='A0  '
36637      IHWUSE='P'
36638      MESSAG='YES'
36639      CALL CHECKN(IHP,IHP2,IHWUSE,
36640     1            IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
36641     1            ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
36642      IF(IERROR.EQ.'YES')THEN
36643          RIGHT=0.0
36644          GOTO9000
36645      ELSE
36646        GAMMA0=VALUE(ILOCP)
36647      ENDIF
36648C
36649      ICASA3='SUMM'
36650      DO34291II=1,NS2
36651        ITEMP1(II)=INT(TEMPZ3(II)+0.5)
3665234291 CONTINUE
36653      CALL DPCVT3(TEMP,TEMPZ,ITEMP1,NS2,GAMMA0,IWRITE,ICASA3,
36654     1            XTEMP1,XTEMP2,
36655     1            NDIST,NGROUP,YMEAN,YSD,YCV,
36656     1            STATVA,STATCD,STATNU,
36657     1            PVAL2T,PVALLT,PVALUT,
36658     1            ISUBRO,IBUGG3,IERROR)
36659      IF(ICASPL.EQ.'S1CT')RIGHT=STATVA
36660      IF(ICASPL.EQ.'S1CC')RIGHT=STATCD
36661      IF(ICASPL.EQ.'S1CP')RIGHT=PVAL2T
36662C
36663      GOTO79000
36664C
3666534300 CONTINUE
36666      DO34301II=1,NS2
36667        TEMPZ3(II)=1.0
3666834301 CONTINUE
36669      DO34303II=1,NSZ
36670        XTEMP3(II)=1.0
3667134303 CONTINUE
36672      IF(ICVTTE.EQ.'MILL')THEN
36673        CALL DPCVT6(TEMP,NS2,TEMPZ,NSZ,IWRITE,
36674     1              YMEAN1,YSD1,CV1,YMEAN2,YSD2,CV2,
36675     1              STATVA,STATCD,PVAL2T,PVALLT,PVALUT,
36676     1              ISUBRO,IBUGG3,IERROR)
36677      ELSE
36678        CALL DPCVT4(TEMP,TEMPZ3,NS2,TEMPZ,XTEMP3,NSZ,IWRITE,
36679     1              XTEMP1,XTEMP2,NGROU1,NGROU2,
36680     1              YMEAN1,YSD1,CV1,YMEAN2,YSD2,CV2,
36681     1              STATVA,STATCD,STATN1,STATN2,
36682     1              PVAL2T,PVALLT,PVALUT,
36683     1              ISUBRO,IBUGG3,IERROR)
36684      ENDIF
36685      IF(ICASPL.EQ.'2CTE')RIGHT=STATVA
36686      IF(ICASPL.EQ.'2CCD')RIGHT=STATCD
36687      IF(ICASPL.EQ.'2C2P')RIGHT=PVAL2T
36688      IF(ICASPL.EQ.'2CLP')RIGHT=PVALLT
36689      IF(ICASPL.EQ.'2CUP')RIGHT=PVALUT
36690      GOTO79000
36691C
36692C     ---------------------------
36693C
3669479000 CONTINUE
36695      NS2=NS2SAV
36696      NSZ=NSZSAV
36697      GOTO9000
36698C
36699C               ******************
36700C               **   STEP 90--  **
36701C               **   EXIT       **
36702C               ******************
36703C
36704 9000 CONTINUE
36705      IPRINT=IPRSAV
36706      IF(IBUGG3.EQ.'ON'.OR.ISUBRO.EQ.'PSTA')THEN
36707        WRITE(ICOUT,999)
36708        CALL DPWRST('XXX','BUG ')
36709        WRITE(ICOUT,9011)
36710 9011   FORMAT('***** AT THE END       OF CMPST2--')
36711        CALL DPWRST('XXX','BUG ')
36712        WRITE(ICOUT,9012)IBUGG3,ISUBRO
36713 9012   FORMAT('IBUGG3,ISUBRO = ',A4,2X,A4)
36714        CALL DPWRST('XXX','BUG ')
36715        WRITE(ICOUT,9013)ICASPL,NS2,IERROR
36716 9013   FORMAT('ICASPL,NS2,IERROR = ',A4,I8,2X,A4)
36717        CALL DPWRST('XXX','BUG ')
36718        WRITE(ICOUT,9014)NUMV2,RIGHT
36719 9014   FORMAT('NUMV2,RIGHT = ',I8,E15.7)
36720        CALL DPWRST('XXX','BUG ')
36721      ENDIF
36722C
36723      RETURN
36724      END
36725