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