1 /*  -- translated by f2c (version 20100827).
2    You must link the resulting object file with libf2c:
3 	on Microsoft Windows system, link with libf2c.lib;
4 	on Linux or Unix systems, link with .../path/to/libf2c.a -lm
5 	or, if you install libf2c.a in a standard place, with -lf2c -lm
6 	-- in that order, at the end of the command line, as in
7 		cc *.o -lf2c -lm
8 	Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
9 
10 		http://www.netlib.org/f2c/libf2c.zip
11 */
12 
13 #include "libtinyf2c.h"
14 
15 /* Table of constant values */
16 
17 static integer c__3 = 3;
18 
19 /* ----------------------------------------------------------------------- */
20 /*     LOGICAL PARAMETER CONTROL */
21 /* ----------------------------------------------------------------------- */
22 /*     Copyright (C) 2000-2004 GFD Dennou Club. All rights reserved. */
23 /* ----------------------------------------------------------------------- */
gllqnp_0_(int n__,integer * ncp,char * cp,integer * idx,logical * lpara,integer * in,ftnlen cp_len)24 /* Subroutine */ int gllqnp_0_(int n__, integer *ncp, char *cp, integer *idx,
25 	logical *lpara, integer *in, ftnlen cp_len)
26 {
27     /* Initialized data */
28 
29     static char cparas[8*3] = "LMISS   " "LEPSL   " "LLMSG   ";
30     static logical lx[3] = { FALSE_,FALSE_,FALSE_ };
31     static char cparal[40*3] = "INTERPRET_MISSING_VALUE                 "
32 	    "INTERPRET_TRUNCATION                    " "ENABLE_LONG_MESSAGE "
33 	    "                    ";
34     static logical lw[3] = { TRUE_,TRUE_,TRUE_ };
35     static logical lfirst = TRUE_;
36 
37     /* System generated locals */
38     address a__1[3];
39     integer i__1[3];
40 
41     /* Builtin functions */
42     /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen),
43 	     s_copy(char *, char *, ftnlen, ftnlen);
44 
45     /* Local variables */
46     static integer n;
47     extern integer lenc_(char *, ftnlen);
48     static char cmsg[80];
49     extern logical lchreq_(char *, char *, ftnlen, ftnlen);
50     extern /* Subroutine */ int msgdmp_(char *, char *, char *, ftnlen,
51 	    ftnlen, ftnlen), rllget_(char *, logical *, integer *, ftnlen),
52 	    rtlget_(char *, char *, logical *, integer *, ftnlen, ftnlen);
53 
54 /*     / SHORT NAME / */
55     switch(n__) {
56 	case 1: goto L_gllqid;
57 	case 2: goto L_gllqcp;
58 	case 3: goto L_gllqcl;
59 	case 4: goto L_gllqvl;
60 	case 5: goto L_gllsvl;
61 	case 6: goto L_gllqin;
62 	}
63 
64 /*     / LONG NAME / */
65     *ncp = 3;
66     return 0;
67 /* ----------------------------------------------------------------------- */
68 
69 L_gllqid:
70     for (n = 1; n <= 3; ++n) {
71 	if (lchreq_(cp, cparas + (n - 1 << 3), cp_len, (ftnlen)8) || lchreq_(
72 		cp, cparal + (n - 1) * 40, cp_len, (ftnlen)40)) {
73 	    *idx = n;
74 	    return 0;
75 	}
76 /* L10: */
77     }
78 /* Writing concatenation */
79     i__1[0] = 11, a__1[0] = "PARAMETER '";
80     i__1[1] = lenc_(cp, cp_len), a__1[1] = cp;
81     i__1[2] = 17, a__1[2] = "' IS NOT DEFINED.";
82     s_cat(cmsg, a__1, i__1, &c__3, (ftnlen)80);
83     msgdmp_("E", "GLLQID", cmsg, (ftnlen)1, (ftnlen)6, (ftnlen)80);
84     return 0;
85 /* ----------------------------------------------------------------------- */
86 
87 L_gllqcp:
88     if (1 <= *idx && *idx <= 3) {
89 	s_copy(cp, cparas + (*idx - 1 << 3), cp_len, (ftnlen)8);
90     } else {
91 	msgdmp_("E", "GLLQCP", "IDX IS OUT OF RANGE.", (ftnlen)1, (ftnlen)6, (
92 		ftnlen)20);
93     }
94     return 0;
95 /* ----------------------------------------------------------------------- */
96 
97 L_gllqcl:
98     if (1 <= *idx && *idx <= 3) {
99 	s_copy(cp, cparal + (*idx - 1) * 40, cp_len, (ftnlen)40);
100     } else {
101 	msgdmp_("E", "GLLQCL", "IDX IS OUT OF RANGE.", (ftnlen)1, (ftnlen)6, (
102 		ftnlen)20);
103     }
104     return 0;
105 /* ----------------------------------------------------------------------- */
106 
107 L_gllqvl:
108     if (lfirst) {
109 	rtlget_("GL", cparas, lx, &c__3, (ftnlen)2, (ftnlen)8);
110 	rllget_(cparal, lx, &c__3, (ftnlen)40);
111 	lfirst = FALSE_;
112     }
113     if (1 <= *idx && *idx <= 3) {
114 	*lpara = lx[*idx - 1];
115     } else {
116 	msgdmp_("E", "GLLQVL", "IDX IS OUT OF RANGE.", (ftnlen)1, (ftnlen)6, (
117 		ftnlen)20);
118     }
119     return 0;
120 /* ----------------------------------------------------------------------- */
121 
122 L_gllsvl:
123     if (lfirst) {
124 	rtlget_("GL", cparas, lx, &c__3, (ftnlen)2, (ftnlen)8);
125 	rllget_(cparal, lx, &c__3, (ftnlen)40);
126 	lfirst = FALSE_;
127     }
128     if (1 <= *idx && *idx <= 3) {
129 	if (lw[*idx - 1]) {
130 	    lx[*idx - 1] = *lpara;
131 	    return 0;
132 	} else {
133 /* Writing concatenation */
134 	    i__1[0] = 10, a__1[0] = "PARAMETER'";
135 	    i__1[1] = 8, a__1[1] = cparas + (*idx - 1 << 3);
136 	    i__1[2] = 16, a__1[2] = "' CANNOT BE SET.";
137 	    s_cat(cmsg, a__1, i__1, &c__3, (ftnlen)80);
138 	    msgdmp_("E", "GLLQVL", cmsg, (ftnlen)1, (ftnlen)6, (ftnlen)80);
139 	}
140     } else {
141 	msgdmp_("E", "GLLQVL", "IDX IS OUT OF RANGE.", (ftnlen)1, (ftnlen)6, (
142 		ftnlen)20);
143     }
144     return 0;
145 /* ----------------------------------------------------------------------- */
146 
147 L_gllqin:
148     for (n = 1; n <= 3; ++n) {
149 	if (lchreq_(cp, cparas + (n - 1 << 3), cp_len, (ftnlen)8) || lchreq_(
150 		cp, cparal + (n - 1) * 40, cp_len, (ftnlen)40)) {
151 	    *in = n;
152 	    return 0;
153 	}
154 /* L20: */
155     }
156     *in = 0;
157     return 0;
158 } /* gllqnp_ */
159 
gllqnp_(integer * ncp)160 /* Subroutine */ int gllqnp_(integer *ncp)
161 {
162     return gllqnp_0_(0, ncp, (char *)0, (integer *)0, (logical *)0, (integer *
163 	    )0, (ftnint)0);
164     }
165 
gllqid_(char * cp,integer * idx,ftnlen cp_len)166 /* Subroutine */ int gllqid_(char *cp, integer *idx, ftnlen cp_len)
167 {
168     return gllqnp_0_(1, (integer *)0, cp, idx, (logical *)0, (integer *)0,
169 	    cp_len);
170     }
171 
gllqcp_(integer * idx,char * cp,ftnlen cp_len)172 /* Subroutine */ int gllqcp_(integer *idx, char *cp, ftnlen cp_len)
173 {
174     return gllqnp_0_(2, (integer *)0, cp, idx, (logical *)0, (integer *)0,
175 	    cp_len);
176     }
177 
gllqcl_(integer * idx,char * cp,ftnlen cp_len)178 /* Subroutine */ int gllqcl_(integer *idx, char *cp, ftnlen cp_len)
179 {
180     return gllqnp_0_(3, (integer *)0, cp, idx, (logical *)0, (integer *)0,
181 	    cp_len);
182     }
183 
gllqvl_(integer * idx,logical * lpara)184 /* Subroutine */ int gllqvl_(integer *idx, logical *lpara)
185 {
186     return gllqnp_0_(4, (integer *)0, (char *)0, idx, lpara, (integer *)0, (
187 	    ftnint)0);
188     }
189 
gllsvl_(integer * idx,logical * lpara)190 /* Subroutine */ int gllsvl_(integer *idx, logical *lpara)
191 {
192     return gllqnp_0_(5, (integer *)0, (char *)0, idx, lpara, (integer *)0, (
193 	    ftnint)0);
194     }
195 
gllqin_(char * cp,integer * in,ftnlen cp_len)196 /* Subroutine */ int gllqin_(char *cp, integer *in, ftnlen cp_len)
197 {
198     return gllqnp_0_(6, (integer *)0, cp, (integer *)0, (logical *)0, in,
199 	    cp_len);
200     }
201 
202