1acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* drotmg.f -- translated by f2c (version 20100827).
2acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray   You must link the resulting object file with libf2c:
3acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	on Microsoft Windows system, link with libf2c.lib;
4acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	on Linux or Unix systems, link with .../path/to/libf2c.a -lm
5acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	or, if you install libf2c.a in a standard place, with -lf2c -lm
6acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	-- in that order, at the end of the command line, as in
7acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		cc *.o -lf2c -lm
8acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
9acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
10acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		http://www.netlib.org/f2c/libf2c.zip
11acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray*/
12acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
13acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray#include "datatypes.h"
14acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
15acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Subroutine */ int drotmg_(doublereal *dd1, doublereal *dd2, doublereal *
16acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	dx1, doublereal *dy1, doublereal *dparam)
17acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray{
18acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* Initialized data */
19acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
20acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static doublereal zero = 0.;
21acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static doublereal one = 1.;
22acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static doublereal two = 2.;
23acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static doublereal gam = 4096.;
24acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static doublereal gamsq = 16777216.;
25acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static doublereal rgamsq = 5.9604645e-8;
26acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
27acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* Format strings */
28acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static char fmt_120[] = "";
29acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static char fmt_150[] = "";
30acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static char fmt_180[] = "";
31acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static char fmt_210[] = "";
32acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
33acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* System generated locals */
34acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    doublereal d__1;
35acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
36acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* Local variables */
37acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    doublereal du, dp1, dp2, dq1, dq2, dh11, dh12, dh21, dh22;
38acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    integer igo;
39acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    doublereal dflag, dtemp;
40acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
41acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* Assigned format variables */
42acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    static char *igo_fmt;
43acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
44acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Scalar Arguments .. */
45acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
46acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Array Arguments .. */
47acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
48acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
49acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  Purpose */
50acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  ======= */
51acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
52acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     CONSTRUCT THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS */
53acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     THE SECOND COMPONENT OF THE 2-VECTOR  (DSQRT(DD1)*DX1,DSQRT(DD2)* */
54acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     DY2)**T. */
55acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS.. */
56acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
57acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     DFLAG=-1.D0     DFLAG=0.D0        DFLAG=1.D0     DFLAG=-2.D0 */
58acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
59acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*       (DH11  DH12)    (1.D0  DH12)    (DH11  1.D0)    (1.D0  0.D0) */
60acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     H=(          )    (          )    (          )    (          ) */
61acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*       (DH21  DH22),   (DH21  1.D0),   (-1.D0 DH22),   (0.D0  1.D0). */
62acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     LOCATIONS 2-4 OF DPARAM CONTAIN DH11, DH21, DH12, AND DH22 */
63acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     RESPECTIVELY. (VALUES OF 1.D0, -1.D0, OR 0.D0 IMPLIED BY THE */
64acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     VALUE OF DPARAM(1) ARE NOT STORED IN DPARAM.) */
65acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
66acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE */
67acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     INEXACT.  THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE */
68acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     OF DD1 AND DD2.  ALL ACTUAL SCALING OF DATA IS DONE USING GAM. */
69acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
70acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
71acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  Arguments */
72acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  ========= */
73acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
74acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  DD1    (input/output) DOUBLE PRECISION */
75acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
76acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  DD2    (input/output) DOUBLE PRECISION */
77acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
78acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  DX1    (input/output) DOUBLE PRECISION */
79acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
80acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  DY1    (input) DOUBLE PRECISION */
81acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
82acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  DPARAM (input/output)  DOUBLE PRECISION array, dimension 5 */
83acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     DPARAM(1)=DFLAG */
84acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     DPARAM(2)=DH11 */
85acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     DPARAM(3)=DH21 */
86acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     DPARAM(4)=DH12 */
87acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     DPARAM(5)=DH22 */
88acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
89acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  ===================================================================== */
90acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
91acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Local Scalars .. */
92acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
93acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Intrinsic Functions .. */
94acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
95acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Data statements .. */
96acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
97acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* Parameter adjustments */
98acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    --dparam;
99acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
100acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* Function Body */
101acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
102acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (*dd1 < zero)) {
103acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L10;
104acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
105acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*       GO ZERO-H-D-AND-DX1.. */
106acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L60;
107acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL10:
108acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     CASE-DD1-NONNEGATIVE */
109acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dp2 = *dd2 * *dy1;
110acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (dp2 == zero)) {
111acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L20;
112acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
113acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dflag = -two;
114acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L260;
115acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     REGULAR-CASE.. */
116acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL20:
117acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dp1 = *dd1 * *dx1;
118acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dq2 = dp2 * *dy1;
119acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dq1 = dp1 * *dx1;
120acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
121acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (abs(dq1) > abs(dq2))) {
122acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L40;
123acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
124acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh21 = -(*dy1) / *dx1;
125acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh12 = dp2 / dp1;
126acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
127acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    du = one - dh12 * dh21;
128acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
129acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (du <= zero)) {
130acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L30;
131acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
132acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*         GO ZERO-H-D-AND-DX1.. */
133acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L60;
134acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL30:
135acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dflag = zero;
136acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dd1 /= du;
137acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dd2 /= du;
138acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dx1 *= du;
139acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*         GO SCALE-CHECK.. */
140acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L100;
141acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL40:
142acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (dq2 < zero)) {
143acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L50;
144acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
145acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*         GO ZERO-H-D-AND-DX1.. */
146acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L60;
147acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL50:
148acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dflag = one;
149acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh11 = dp1 / dp2;
150acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh22 = *dx1 / *dy1;
151acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    du = one + dh11 * dh22;
152acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dtemp = *dd2 / du;
153acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dd2 = *dd1 / du;
154acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dd1 = dtemp;
155acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dx1 = *dy1 * du;
156acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*         GO SCALE-CHECK */
157acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L100;
158acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     PROCEDURE..ZERO-H-D-AND-DX1.. */
159acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL60:
160acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dflag = -one;
161acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh11 = zero;
162acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh12 = zero;
163acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh21 = zero;
164acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh22 = zero;
165acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
166acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dd1 = zero;
167acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dd2 = zero;
168acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dx1 = zero;
169acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*         RETURN.. */
170acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L220;
171acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     PROCEDURE..FIX-H.. */
172acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL70:
173acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (dflag >= zero)) {
174acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L90;
175acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
176acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
177acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (dflag == zero)) {
178acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L80;
179acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
180acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh11 = one;
181acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh22 = one;
182acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dflag = -one;
183acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L90;
184acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL80:
185acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh21 = -one;
186acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh12 = one;
187acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dflag = -one;
188acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL90:
189acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    switch (igo) {
190acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	case 0: goto L120;
191acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	case 1: goto L150;
192acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	case 2: goto L180;
193acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	case 3: goto L210;
194acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
195acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     PROCEDURE..SCALE-CHECK */
196acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL100:
197acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL110:
198acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (*dd1 <= rgamsq)) {
199acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L130;
200acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
201acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (*dd1 == zero) {
202acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L160;
203acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
204acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    igo = 0;
205acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    igo_fmt = fmt_120;
206acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              FIX-H.. */
207acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L70;
208acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL120:
209acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing 2nd power */
210acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    d__1 = gam;
211acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dd1 *= d__1 * d__1;
212acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dx1 /= gam;
213acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh11 /= gam;
214acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh12 /= gam;
215acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L110;
216acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL130:
217acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL140:
218acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (*dd1 >= gamsq)) {
219acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L160;
220acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
221acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    igo = 1;
222acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    igo_fmt = fmt_150;
223acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              FIX-H.. */
224acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L70;
225acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL150:
226acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing 2nd power */
227acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    d__1 = gam;
228acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dd1 /= d__1 * d__1;
229acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dx1 *= gam;
230acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh11 *= gam;
231acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh12 *= gam;
232acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L140;
233acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL160:
234acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL170:
235acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (abs(*dd2) <= rgamsq)) {
236acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L190;
237acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
238acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (*dd2 == zero) {
239acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L220;
240acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
241acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    igo = 2;
242acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    igo_fmt = fmt_180;
243acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              FIX-H.. */
244acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L70;
245acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL180:
246acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing 2nd power */
247acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    d__1 = gam;
248acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dd2 *= d__1 * d__1;
249acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh21 /= gam;
250acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh22 /= gam;
251acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L170;
252acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL190:
253acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL200:
254acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! (abs(*dd2) >= gamsq)) {
255acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L220;
256acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
257acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    igo = 3;
258acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    igo_fmt = fmt_210;
259acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              FIX-H.. */
260acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L70;
261acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL210:
262acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing 2nd power */
263acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    d__1 = gam;
264acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    *dd2 /= d__1 * d__1;
265acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh21 *= gam;
266acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dh22 *= gam;
267acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L200;
268acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL220:
269acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (dflag < 0.) {
270acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L250;
271acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else if (dflag == 0) {
272acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L230;
273acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else {
274acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	goto L240;
275acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
276acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL230:
277acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dparam[3] = dh21;
278acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dparam[4] = dh12;
279acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L260;
280acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL240:
281acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dparam[2] = dh11;
282acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dparam[5] = dh22;
283acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    goto L260;
284acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL250:
285acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dparam[2] = dh11;
286acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dparam[3] = dh21;
287acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dparam[4] = dh12;
288acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dparam[5] = dh22;
289acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim MurrayL260:
290acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    dparam[1] = dflag;
291acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    return 0;
292acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray} /* drotmg_ */
293acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
294