STYLE: Remove trailing whitespace in Fortran files
[platform/upstream/lapack.git] / TESTING / EIG / dget31.f
1 *> \brief \b DGET31
2 *
3 *  =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at
6 *            http://www.netlib.org/lapack/explore-html/
7 *
8 *  Definition:
9 *  ===========
10 *
11 *       SUBROUTINE DGET31( RMAX, LMAX, NINFO, KNT )
12 *
13 *       .. Scalar Arguments ..
14 *       INTEGER            KNT, LMAX
15 *       DOUBLE PRECISION   RMAX
16 *       ..
17 *       .. Array Arguments ..
18 *       INTEGER            NINFO( 2 )
19 *       ..
20 *
21 *
22 *> \par Purpose:
23 *  =============
24 *>
25 *> \verbatim
26 *>
27 *> DGET31 tests DLALN2, a routine for solving
28 *>
29 *>    (ca A - w D)X = sB
30 *>
31 *> where A is an NA by NA matrix (NA=1 or 2 only), w is a real (NW=1) or
32 *> complex (NW=2) constant, ca is a real constant, D is an NA by NA real
33 *> diagonal matrix, and B is an NA by NW matrix (when NW=2 the second
34 *> column of B contains the imaginary part of the solution).  The code
35 *> returns X and s, where s is a scale factor, less than or equal to 1,
36 *> which is chosen to avoid overflow in X.
37 *>
38 *> If any singular values of ca A-w D are less than another input
39 *> parameter SMIN, they are perturbed up to SMIN.
40 *>
41 *> The test condition is that the scaled residual
42 *>
43 *>     norm( (ca A-w D)*X - s*B ) /
44 *>           ( max( ulp*norm(ca A-w D), SMIN )*norm(X) )
45 *>
46 *> should be on the order of 1.  Here, ulp is the machine precision.
47 *> Also, it is verified that SCALE is less than or equal to 1, and that
48 *> XNORM = infinity-norm(X).
49 *> \endverbatim
50 *
51 *  Arguments:
52 *  ==========
53 *
54 *> \param[out] RMAX
55 *> \verbatim
56 *>          RMAX is DOUBLE PRECISION
57 *>          Value of the largest test ratio.
58 *> \endverbatim
59 *>
60 *> \param[out] LMAX
61 *> \verbatim
62 *>          LMAX is INTEGER
63 *>          Example number where largest test ratio achieved.
64 *> \endverbatim
65 *>
66 *> \param[out] NINFO
67 *> \verbatim
68 *>          NINFO is INTEGER array, dimension (3)
69 *>          NINFO(1) = number of examples with INFO less than 0
70 *>          NINFO(2) = number of examples with INFO greater than 0
71 *> \endverbatim
72 *>
73 *> \param[out] KNT
74 *> \verbatim
75 *>          KNT is INTEGER
76 *>          Total number of examples tested.
77 *> \endverbatim
78 *
79 *  Authors:
80 *  ========
81 *
82 *> \author Univ. of Tennessee
83 *> \author Univ. of California Berkeley
84 *> \author Univ. of Colorado Denver
85 *> \author NAG Ltd.
86 *
87 *> \date November 2011
88 *
89 *> \ingroup double_eig
90 *
91 *  =====================================================================
92       SUBROUTINE DGET31( RMAX, LMAX, NINFO, KNT )
93 *
94 *  -- LAPACK test routine (version 3.4.0) --
95 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
96 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
97 *     November 2011
98 *
99 *     .. Scalar Arguments ..
100       INTEGER            KNT, LMAX
101       DOUBLE PRECISION   RMAX
102 *     ..
103 *     .. Array Arguments ..
104       INTEGER            NINFO( 2 )
105 *     ..
106 *
107 *  =====================================================================
108 *
109 *     .. Parameters ..
110       DOUBLE PRECISION   ZERO, HALF, ONE
111       PARAMETER          ( ZERO = 0.0D0, HALF = 0.5D0, ONE = 1.0D0 )
112       DOUBLE PRECISION   TWO, THREE, FOUR
113       PARAMETER          ( TWO = 2.0D0, THREE = 3.0D0, FOUR = 4.0D0 )
114       DOUBLE PRECISION   SEVEN, TEN
115       PARAMETER          ( SEVEN = 7.0D0, TEN = 10.0D0 )
116       DOUBLE PRECISION   TWNONE
117       PARAMETER          ( TWNONE = 21.0D0 )
118 *     ..
119 *     .. Local Scalars ..
120       INTEGER            IA, IB, ICA, ID1, ID2, INFO, ISMIN, ITRANS,
121      $                   IWI, IWR, NA, NW
122       DOUBLE PRECISION   BIGNUM, CA, D1, D2, DEN, EPS, RES, SCALE, SMIN,
123      $                   SMLNUM, TMP, UNFL, WI, WR, XNORM
124 *     ..
125 *     .. Local Arrays ..
126       LOGICAL            LTRANS( 0: 1 )
127       DOUBLE PRECISION   A( 2, 2 ), B( 2, 2 ), VAB( 3 ), VCA( 5 ),
128      $                   VDD( 4 ), VSMIN( 4 ), VWI( 4 ), VWR( 4 ),
129      $                   X( 2, 2 )
130 *     ..
131 *     .. External Functions ..
132       DOUBLE PRECISION   DLAMCH
133       EXTERNAL           DLAMCH
134 *     ..
135 *     .. External Subroutines ..
136       EXTERNAL           DLABAD, DLALN2
137 *     ..
138 *     .. Intrinsic Functions ..
139       INTRINSIC          ABS, MAX, SQRT
140 *     ..
141 *     .. Data statements ..
142       DATA               LTRANS / .FALSE., .TRUE. /
143 *     ..
144 *     .. Executable Statements ..
145 *
146 *     Get machine parameters
147 *
148       EPS = DLAMCH( 'P' )
149       UNFL = DLAMCH( 'U' )
150       SMLNUM = DLAMCH( 'S' ) / EPS
151       BIGNUM = ONE / SMLNUM
152       CALL DLABAD( SMLNUM, BIGNUM )
153 *
154 *     Set up test case parameters
155 *
156       VSMIN( 1 ) = SMLNUM
157       VSMIN( 2 ) = EPS
158       VSMIN( 3 ) = ONE / ( TEN*TEN )
159       VSMIN( 4 ) = ONE / EPS
160       VAB( 1 ) = SQRT( SMLNUM )
161       VAB( 2 ) = ONE
162       VAB( 3 ) = SQRT( BIGNUM )
163       VWR( 1 ) = ZERO
164       VWR( 2 ) = HALF
165       VWR( 3 ) = TWO
166       VWR( 4 ) = ONE
167       VWI( 1 ) = SMLNUM
168       VWI( 2 ) = EPS
169       VWI( 3 ) = ONE
170       VWI( 4 ) = TWO
171       VDD( 1 ) = SQRT( SMLNUM )
172       VDD( 2 ) = ONE
173       VDD( 3 ) = TWO
174       VDD( 4 ) = SQRT( BIGNUM )
175       VCA( 1 ) = ZERO
176       VCA( 2 ) = SQRT( SMLNUM )
177       VCA( 3 ) = EPS
178       VCA( 4 ) = HALF
179       VCA( 5 ) = ONE
180 *
181       KNT = 0
182       NINFO( 1 ) = 0
183       NINFO( 2 ) = 0
184       LMAX = 0
185       RMAX = ZERO
186 *
187 *     Begin test loop
188 *
189       DO 190 ID1 = 1, 4
190          D1 = VDD( ID1 )
191          DO 180 ID2 = 1, 4
192             D2 = VDD( ID2 )
193             DO 170 ICA = 1, 5
194                CA = VCA( ICA )
195                DO 160 ITRANS = 0, 1
196                   DO 150 ISMIN = 1, 4
197                      SMIN = VSMIN( ISMIN )
198 *
199                      NA = 1
200                      NW = 1
201                      DO 30 IA = 1, 3
202                         A( 1, 1 ) = VAB( IA )
203                         DO 20 IB = 1, 3
204                            B( 1, 1 ) = VAB( IB )
205                            DO 10 IWR = 1, 4
206                               IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ.
207      $                            ONE ) THEN
208                                  WR = VWR( IWR )*A( 1, 1 )
209                               ELSE
210                                  WR = VWR( IWR )
211                               END IF
212                               WI = ZERO
213                               CALL DLALN2( LTRANS( ITRANS ), NA, NW,
214      $                                     SMIN, CA, A, 2, D1, D2, B, 2,
215      $                                     WR, WI, X, 2, SCALE, XNORM,
216      $                                     INFO )
217                               IF( INFO.LT.0 )
218      $                           NINFO( 1 ) = NINFO( 1 ) + 1
219                               IF( INFO.GT.0 )
220      $                           NINFO( 2 ) = NINFO( 2 ) + 1
221                               RES = ABS( ( CA*A( 1, 1 )-WR*D1 )*
222      $                              X( 1, 1 )-SCALE*B( 1, 1 ) )
223                               IF( INFO.EQ.0 ) THEN
224                                  DEN = MAX( EPS*( ABS( ( CA*A( 1,
225      $                                 1 )-WR*D1 )*X( 1, 1 ) ) ),
226      $                                 SMLNUM )
227                               ELSE
228                                  DEN = MAX( SMIN*ABS( X( 1, 1 ) ),
229      $                                 SMLNUM )
230                               END IF
231                               RES = RES / DEN
232                               IF( ABS( X( 1, 1 ) ).LT.UNFL .AND.
233      $                            ABS( B( 1, 1 ) ).LE.SMLNUM*
234      $                            ABS( CA*A( 1, 1 )-WR*D1 ) )RES = ZERO
235                               IF( SCALE.GT.ONE )
236      $                           RES = RES + ONE / EPS
237                               RES = RES + ABS( XNORM-ABS( X( 1, 1 ) ) )
238      $                               / MAX( SMLNUM, XNORM ) / EPS
239                               IF( INFO.NE.0 .AND. INFO.NE.1 )
240      $                           RES = RES + ONE / EPS
241                               KNT = KNT + 1
242                               IF( RES.GT.RMAX ) THEN
243                                  LMAX = KNT
244                                  RMAX = RES
245                               END IF
246    10                      CONTINUE
247    20                   CONTINUE
248    30                CONTINUE
249 *
250                      NA = 1
251                      NW = 2
252                      DO 70 IA = 1, 3
253                         A( 1, 1 ) = VAB( IA )
254                         DO 60 IB = 1, 3
255                            B( 1, 1 ) = VAB( IB )
256                            B( 1, 2 ) = -HALF*VAB( IB )
257                            DO 50 IWR = 1, 4
258                               IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ.
259      $                            ONE ) THEN
260                                  WR = VWR( IWR )*A( 1, 1 )
261                               ELSE
262                                  WR = VWR( IWR )
263                               END IF
264                               DO 40 IWI = 1, 4
265                                  IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND.
266      $                               CA.EQ.ONE ) THEN
267                                     WI = VWI( IWI )*A( 1, 1 )
268                                  ELSE
269                                     WI = VWI( IWI )
270                                  END IF
271                                  CALL DLALN2( LTRANS( ITRANS ), NA, NW,
272      $                                        SMIN, CA, A, 2, D1, D2, B,
273      $                                        2, WR, WI, X, 2, SCALE,
274      $                                        XNORM, INFO )
275                                  IF( INFO.LT.0 )
276      $                              NINFO( 1 ) = NINFO( 1 ) + 1
277                                  IF( INFO.GT.0 )
278      $                              NINFO( 2 ) = NINFO( 2 ) + 1
279                                  RES = ABS( ( CA*A( 1, 1 )-WR*D1 )*
280      $                                 X( 1, 1 )+( WI*D1 )*X( 1, 2 )-
281      $                                 SCALE*B( 1, 1 ) )
282                                  RES = RES + ABS( ( -WI*D1 )*X( 1, 1 )+
283      $                                 ( CA*A( 1, 1 )-WR*D1 )*X( 1, 2 )-
284      $                                 SCALE*B( 1, 2 ) )
285                                  IF( INFO.EQ.0 ) THEN
286                                     DEN = MAX( EPS*( MAX( ABS( CA*A( 1,
287      $                                    1 )-WR*D1 ), ABS( D1*WI ) )*
288      $                                    ( ABS( X( 1, 1 ) )+ABS( X( 1,
289      $                                    2 ) ) ) ), SMLNUM )
290                                  ELSE
291                                     DEN = MAX( SMIN*( ABS( X( 1,
292      $                                    1 ) )+ABS( X( 1, 2 ) ) ),
293      $                                    SMLNUM )
294                                  END IF
295                                  RES = RES / DEN
296                                  IF( ABS( X( 1, 1 ) ).LT.UNFL .AND.
297      $                               ABS( X( 1, 2 ) ).LT.UNFL .AND.
298      $                               ABS( B( 1, 1 ) ).LE.SMLNUM*
299      $                               ABS( CA*A( 1, 1 )-WR*D1 ) )
300      $                               RES = ZERO
301                                  IF( SCALE.GT.ONE )
302      $                              RES = RES + ONE / EPS
303                                  RES = RES + ABS( XNORM-
304      $                                 ABS( X( 1, 1 ) )-
305      $                                 ABS( X( 1, 2 ) ) ) /
306      $                                 MAX( SMLNUM, XNORM ) / EPS
307                                  IF( INFO.NE.0 .AND. INFO.NE.1 )
308      $                              RES = RES + ONE / EPS
309                                  KNT = KNT + 1
310                                  IF( RES.GT.RMAX ) THEN
311                                     LMAX = KNT
312                                     RMAX = RES
313                                  END IF
314    40                         CONTINUE
315    50                      CONTINUE
316    60                   CONTINUE
317    70                CONTINUE
318 *
319                      NA = 2
320                      NW = 1
321                      DO 100 IA = 1, 3
322                         A( 1, 1 ) = VAB( IA )
323                         A( 1, 2 ) = -THREE*VAB( IA )
324                         A( 2, 1 ) = -SEVEN*VAB( IA )
325                         A( 2, 2 ) = TWNONE*VAB( IA )
326                         DO 90 IB = 1, 3
327                            B( 1, 1 ) = VAB( IB )
328                            B( 2, 1 ) = -TWO*VAB( IB )
329                            DO 80 IWR = 1, 4
330                               IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ.
331      $                            ONE ) THEN
332                                  WR = VWR( IWR )*A( 1, 1 )
333                               ELSE
334                                  WR = VWR( IWR )
335                               END IF
336                               WI = ZERO
337                               CALL DLALN2( LTRANS( ITRANS ), NA, NW,
338      $                                     SMIN, CA, A, 2, D1, D2, B, 2,
339      $                                     WR, WI, X, 2, SCALE, XNORM,
340      $                                     INFO )
341                               IF( INFO.LT.0 )
342      $                           NINFO( 1 ) = NINFO( 1 ) + 1
343                               IF( INFO.GT.0 )
344      $                           NINFO( 2 ) = NINFO( 2 ) + 1
345                               IF( ITRANS.EQ.1 ) THEN
346                                  TMP = A( 1, 2 )
347                                  A( 1, 2 ) = A( 2, 1 )
348                                  A( 2, 1 ) = TMP
349                               END IF
350                               RES = ABS( ( CA*A( 1, 1 )-WR*D1 )*
351      $                              X( 1, 1 )+( CA*A( 1, 2 ) )*
352      $                              X( 2, 1 )-SCALE*B( 1, 1 ) )
353                               RES = RES + ABS( ( CA*A( 2, 1 ) )*
354      $                              X( 1, 1 )+( CA*A( 2, 2 )-WR*D2 )*
355      $                              X( 2, 1 )-SCALE*B( 2, 1 ) )
356                               IF( INFO.EQ.0 ) THEN
357                                  DEN = MAX( EPS*( MAX( ABS( CA*A( 1,
358      $                                 1 )-WR*D1 )+ABS( CA*A( 1, 2 ) ),
359      $                                 ABS( CA*A( 2, 1 ) )+ABS( CA*A( 2,
360      $                                 2 )-WR*D2 ) )*MAX( ABS( X( 1,
361      $                                 1 ) ), ABS( X( 2, 1 ) ) ) ),
362      $                                 SMLNUM )
363                               ELSE
364                                  DEN = MAX( EPS*( MAX( SMIN / EPS,
365      $                                 MAX( ABS( CA*A( 1,
366      $                                 1 )-WR*D1 )+ABS( CA*A( 1, 2 ) ),
367      $                                 ABS( CA*A( 2, 1 ) )+ABS( CA*A( 2,
368      $                                 2 )-WR*D2 ) ) )*MAX( ABS( X( 1,
369      $                                 1 ) ), ABS( X( 2, 1 ) ) ) ),
370      $                                 SMLNUM )
371                               END IF
372                               RES = RES / DEN
373                               IF( ABS( X( 1, 1 ) ).LT.UNFL .AND.
374      $                            ABS( X( 2, 1 ) ).LT.UNFL .AND.
375      $                            ABS( B( 1, 1 ) )+ABS( B( 2, 1 ) ).LE.
376      $                            SMLNUM*( ABS( CA*A( 1,
377      $                            1 )-WR*D1 )+ABS( CA*A( 1,
378      $                            2 ) )+ABS( CA*A( 2,
379      $                            1 ) )+ABS( CA*A( 2, 2 )-WR*D2 ) ) )
380      $                            RES = ZERO
381                               IF( SCALE.GT.ONE )
382      $                           RES = RES + ONE / EPS
383                               RES = RES + ABS( XNORM-
384      $                              MAX( ABS( X( 1, 1 ) ), ABS( X( 2,
385      $                              1 ) ) ) ) / MAX( SMLNUM, XNORM ) /
386      $                              EPS
387                               IF( INFO.NE.0 .AND. INFO.NE.1 )
388      $                           RES = RES + ONE / EPS
389                               KNT = KNT + 1
390                               IF( RES.GT.RMAX ) THEN
391                                  LMAX = KNT
392                                  RMAX = RES
393                               END IF
394    80                      CONTINUE
395    90                   CONTINUE
396   100                CONTINUE
397 *
398                      NA = 2
399                      NW = 2
400                      DO 140 IA = 1, 3
401                         A( 1, 1 ) = VAB( IA )*TWO
402                         A( 1, 2 ) = -THREE*VAB( IA )
403                         A( 2, 1 ) = -SEVEN*VAB( IA )
404                         A( 2, 2 ) = TWNONE*VAB( IA )
405                         DO 130 IB = 1, 3
406                            B( 1, 1 ) = VAB( IB )
407                            B( 2, 1 ) = -TWO*VAB( IB )
408                            B( 1, 2 ) = FOUR*VAB( IB )
409                            B( 2, 2 ) = -SEVEN*VAB( IB )
410                            DO 120 IWR = 1, 4
411                               IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ.
412      $                            ONE ) THEN
413                                  WR = VWR( IWR )*A( 1, 1 )
414                               ELSE
415                                  WR = VWR( IWR )
416                               END IF
417                               DO 110 IWI = 1, 4
418                                  IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND.
419      $                               CA.EQ.ONE ) THEN
420                                     WI = VWI( IWI )*A( 1, 1 )
421                                  ELSE
422                                     WI = VWI( IWI )
423                                  END IF
424                                  CALL DLALN2( LTRANS( ITRANS ), NA, NW,
425      $                                        SMIN, CA, A, 2, D1, D2, B,
426      $                                        2, WR, WI, X, 2, SCALE,
427      $                                        XNORM, INFO )
428                                  IF( INFO.LT.0 )
429      $                              NINFO( 1 ) = NINFO( 1 ) + 1
430                                  IF( INFO.GT.0 )
431      $                              NINFO( 2 ) = NINFO( 2 ) + 1
432                                  IF( ITRANS.EQ.1 ) THEN
433                                     TMP = A( 1, 2 )
434                                     A( 1, 2 ) = A( 2, 1 )
435                                     A( 2, 1 ) = TMP
436                                  END IF
437                                  RES = ABS( ( CA*A( 1, 1 )-WR*D1 )*
438      $                                 X( 1, 1 )+( CA*A( 1, 2 ) )*
439      $                                 X( 2, 1 )+( WI*D1 )*X( 1, 2 )-
440      $                                 SCALE*B( 1, 1 ) )
441                                  RES = RES + ABS( ( CA*A( 1,
442      $                                 1 )-WR*D1 )*X( 1, 2 )+
443      $                                 ( CA*A( 1, 2 ) )*X( 2, 2 )-
444      $                                 ( WI*D1 )*X( 1, 1 )-SCALE*
445      $                                 B( 1, 2 ) )
446                                  RES = RES + ABS( ( CA*A( 2, 1 ) )*
447      $                                 X( 1, 1 )+( CA*A( 2, 2 )-WR*D2 )*
448      $                                 X( 2, 1 )+( WI*D2 )*X( 2, 2 )-
449      $                                 SCALE*B( 2, 1 ) )
450                                  RES = RES + ABS( ( CA*A( 2, 1 ) )*
451      $                                 X( 1, 2 )+( CA*A( 2, 2 )-WR*D2 )*
452      $                                 X( 2, 2 )-( WI*D2 )*X( 2, 1 )-
453      $                                 SCALE*B( 2, 2 ) )
454                                  IF( INFO.EQ.0 ) THEN
455                                     DEN = MAX( EPS*( MAX( ABS( CA*A( 1,
456      $                                    1 )-WR*D1 )+ABS( CA*A( 1,
457      $                                    2 ) )+ABS( WI*D1 ),
458      $                                    ABS( CA*A( 2,
459      $                                    1 ) )+ABS( CA*A( 2,
460      $                                    2 )-WR*D2 )+ABS( WI*D2 ) )*
461      $                                    MAX( ABS( X( 1,
462      $                                    1 ) )+ABS( X( 2, 1 ) ),
463      $                                    ABS( X( 1, 2 ) )+ABS( X( 2,
464      $                                    2 ) ) ) ), SMLNUM )
465                                  ELSE
466                                     DEN = MAX( EPS*( MAX( SMIN / EPS,
467      $                                    MAX( ABS( CA*A( 1,
468      $                                    1 )-WR*D1 )+ABS( CA*A( 1,
469      $                                    2 ) )+ABS( WI*D1 ),
470      $                                    ABS( CA*A( 2,
471      $                                    1 ) )+ABS( CA*A( 2,
472      $                                    2 )-WR*D2 )+ABS( WI*D2 ) ) )*
473      $                                    MAX( ABS( X( 1,
474      $                                    1 ) )+ABS( X( 2, 1 ) ),
475      $                                    ABS( X( 1, 2 ) )+ABS( X( 2,
476      $                                    2 ) ) ) ), SMLNUM )
477                                  END IF
478                                  RES = RES / DEN
479                                  IF( ABS( X( 1, 1 ) ).LT.UNFL .AND.
480      $                               ABS( X( 2, 1 ) ).LT.UNFL .AND.
481      $                               ABS( X( 1, 2 ) ).LT.UNFL .AND.
482      $                               ABS( X( 2, 2 ) ).LT.UNFL .AND.
483      $                               ABS( B( 1, 1 ) )+
484      $                               ABS( B( 2, 1 ) ).LE.SMLNUM*
485      $                               ( ABS( CA*A( 1, 1 )-WR*D1 )+
486      $                               ABS( CA*A( 1, 2 ) )+ABS( CA*A( 2,
487      $                               1 ) )+ABS( CA*A( 2,
488      $                               2 )-WR*D2 )+ABS( WI*D2 )+ABS( WI*
489      $                               D1 ) ) )RES = ZERO
490                                  IF( SCALE.GT.ONE )
491      $                              RES = RES + ONE / EPS
492                                  RES = RES + ABS( XNORM-
493      $                                 MAX( ABS( X( 1, 1 ) )+ABS( X( 1,
494      $                                 2 ) ), ABS( X( 2,
495      $                                 1 ) )+ABS( X( 2, 2 ) ) ) ) /
496      $                                 MAX( SMLNUM, XNORM ) / EPS
497                                  IF( INFO.NE.0 .AND. INFO.NE.1 )
498      $                              RES = RES + ONE / EPS
499                                  KNT = KNT + 1
500                                  IF( RES.GT.RMAX ) THEN
501                                     LMAX = KNT
502                                     RMAX = RES
503                                  END IF
504   110                         CONTINUE
505   120                      CONTINUE
506   130                   CONTINUE
507   140                CONTINUE
508   150             CONTINUE
509   160          CONTINUE
510   170       CONTINUE
511   180    CONTINUE
512   190 CONTINUE
513 *
514       RETURN
515 *
516 *     End of DGET31
517 *
518       END