00001
00002
00003
00004
00005
00006 #include "f2c.h"
00007
00008 integer ilaenv_(ispec, name, opts, n1, n2, n3, n4, name_len, opts_len)
00009 integer *ispec;
00010 char *name, *opts;
00011 integer *n1, *n2, *n3, *n4;
00012 ftnlen name_len;
00013 ftnlen opts_len;
00014 {
00015
00016 integer ret_val;
00017
00018
00019 int s_copy();
00020 integer s_cmp();
00021
00022
00023 static integer i;
00024 static logical cname, sname;
00025 static integer nbmin;
00026 static char c1[1], c2[2], c3[3], c4[2];
00027 static integer ic, nb, iz, nx;
00028 static char subnam[6];
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146 switch ((int)*ispec) {
00147 case 1: goto L100;
00148 case 2: goto L100;
00149 case 3: goto L100;
00150 case 4: goto L400;
00151 case 5: goto L500;
00152 case 6: goto L600;
00153 case 7: goto L700;
00154 case 8: goto L800;
00155 }
00156
00157
00158
00159 ret_val = -1;
00160 return ret_val;
00161
00162 L100:
00163
00164
00165
00166 ret_val = 1;
00167 s_copy(subnam, name, 6L, name_len);
00168 ic = *(unsigned char *)subnam;
00169 iz = 'Z';
00170 if (iz == 90 || iz == 122) {
00171
00172
00173
00174 if (ic >= 97 && ic <= 122) {
00175 *(unsigned char *)subnam = (char) (ic - 32);
00176 for (i = 2; i <= 6; ++i) {
00177 ic = *(unsigned char *)&subnam[i - 1];
00178 if (ic >= 97 && ic <= 122) {
00179 *(unsigned char *)&subnam[i - 1] = (char) (ic - 32);
00180 }
00181
00182 }
00183 }
00184
00185 } else if (iz == 233 || iz == 169) {
00186
00187
00188
00189 if (ic >= 129 && ic <= 137 || ic >= 145 && ic <= 153 || ic >= 162 &&
00190 ic <= 169) {
00191 *(unsigned char *)subnam = (char) (ic + 64);
00192 for (i = 2; i <= 6; ++i) {
00193 ic = *(unsigned char *)&subnam[i - 1];
00194 if (ic >= 129 && ic <= 137 || ic >= 145 && ic <= 153 || ic >=
00195 162 && ic <= 169) {
00196 *(unsigned char *)&subnam[i - 1] = (char) (ic + 64);
00197 }
00198
00199 }
00200 }
00201
00202 } else if (iz == 218 || iz == 250) {
00203
00204
00205
00206 if (ic >= 225 && ic <= 250) {
00207 *(unsigned char *)subnam = (char) (ic - 32);
00208 for (i = 2; i <= 6; ++i) {
00209 ic = *(unsigned char *)&subnam[i - 1];
00210 if (ic >= 225 && ic <= 250) {
00211 *(unsigned char *)&subnam[i - 1] = (char) (ic - 32);
00212 }
00213
00214 }
00215 }
00216 }
00217
00218 *(unsigned char *)c1 = *(unsigned char *)subnam;
00219 sname = *(unsigned char *)c1 == 'S' || *(unsigned char *)c1 == 'D';
00220 cname = *(unsigned char *)c1 == 'C' || *(unsigned char *)c1 == 'Z';
00221 if (! (cname || sname)) {
00222 return ret_val;
00223 }
00224 s_copy(c2, subnam + 1, 2L, 2L);
00225 s_copy(c3, subnam + 3, 3L, 3L);
00226 s_copy(c4, c3 + 1, 2L, 2L);
00227
00228 switch ((int)*ispec) {
00229 case 1: goto L110;
00230 case 2: goto L200;
00231 case 3: goto L300;
00232 }
00233
00234 L110:
00235
00236
00237
00238
00239
00240
00241
00242 nb = 1;
00243
00244 if (s_cmp(c2, "GE", 2L, 2L) == 0) {
00245 if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00246 if (sname) {
00247 nb = 64;
00248 } else {
00249 nb = 64;
00250 }
00251 } else if (s_cmp(c3, "QRF", 3L, 3L) == 0 || s_cmp(c3, "RQF", 3L, 3L)
00252 == 0 || s_cmp(c3, "LQF", 3L, 3L) == 0 || s_cmp(c3, "QLF", 3L,
00253 3L) == 0) {
00254 if (sname) {
00255 nb = 32;
00256 } else {
00257 nb = 32;
00258 }
00259 } else if (s_cmp(c3, "HRD", 3L, 3L) == 0) {
00260 if (sname) {
00261 nb = 32;
00262 } else {
00263 nb = 32;
00264 }
00265 } else if (s_cmp(c3, "BRD", 3L, 3L) == 0) {
00266 if (sname) {
00267 nb = 32;
00268 } else {
00269 nb = 32;
00270 }
00271 } else if (s_cmp(c3, "TRI", 3L, 3L) == 0) {
00272 if (sname) {
00273 nb = 64;
00274 } else {
00275 nb = 64;
00276 }
00277 }
00278 } else if (s_cmp(c2, "PO", 2L, 2L) == 0) {
00279 if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00280 if (sname) {
00281 nb = 64;
00282 } else {
00283 nb = 64;
00284 }
00285 }
00286 } else if (s_cmp(c2, "SY", 2L, 2L) == 0) {
00287 if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00288 if (sname) {
00289 nb = 64;
00290 } else {
00291 nb = 64;
00292 }
00293 } else if (sname && s_cmp(c3, "TRD", 3L, 3L) == 0) {
00294 nb = 1;
00295 } else if (sname && s_cmp(c3, "GST", 3L, 3L) == 0) {
00296 nb = 64;
00297 }
00298 } else if (cname && s_cmp(c2, "HE", 2L, 2L) == 0) {
00299 if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00300 nb = 64;
00301 } else if (s_cmp(c3, "TRD", 3L, 3L) == 0) {
00302 nb = 1;
00303 } else if (s_cmp(c3, "GST", 3L, 3L) == 0) {
00304 nb = 64;
00305 }
00306 } else if (sname && s_cmp(c2, "OR", 2L, 2L) == 0) {
00307 if (*(unsigned char *)c3 == 'G') {
00308 if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0
00309 || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00310 == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR",
00311 2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00312 nb = 32;
00313 }
00314 } else if (*(unsigned char *)c3 == 'M') {
00315 if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0
00316 || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00317 == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR",
00318 2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00319 nb = 32;
00320 }
00321 }
00322 } else if (cname && s_cmp(c2, "UN", 2L, 2L) == 0) {
00323 if (*(unsigned char *)c3 == 'G') {
00324 if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0
00325 || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00326 == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR",
00327 2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00328 nb = 32;
00329 }
00330 } else if (*(unsigned char *)c3 == 'M') {
00331 if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0
00332 || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00333 == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR",
00334 2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00335 nb = 32;
00336 }
00337 }
00338 } else if (s_cmp(c2, "GB", 2L, 2L) == 0) {
00339 if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00340 if (sname) {
00341 if (*n4 <= 64) {
00342 nb = 1;
00343 } else {
00344 nb = 32;
00345 }
00346 } else {
00347 if (*n4 <= 64) {
00348 nb = 1;
00349 } else {
00350 nb = 32;
00351 }
00352 }
00353 }
00354 } else if (s_cmp(c2, "PB", 2L, 2L) == 0) {
00355 if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00356 if (sname) {
00357 if (*n2 <= 64) {
00358 nb = 1;
00359 } else {
00360 nb = 32;
00361 }
00362 } else {
00363 if (*n2 <= 64) {
00364 nb = 1;
00365 } else {
00366 nb = 32;
00367 }
00368 }
00369 }
00370 } else if (s_cmp(c2, "TR", 2L, 2L) == 0) {
00371 if (s_cmp(c3, "TRI", 3L, 3L) == 0) {
00372 if (sname) {
00373 nb = 64;
00374 } else {
00375 nb = 64;
00376 }
00377 }
00378 } else if (s_cmp(c2, "LA", 2L, 2L) == 0) {
00379 if (s_cmp(c3, "UUM", 3L, 3L) == 0) {
00380 if (sname) {
00381 nb = 64;
00382 } else {
00383 nb = 64;
00384 }
00385 }
00386 } else if (sname && s_cmp(c2, "ST", 2L, 2L) == 0) {
00387 if (s_cmp(c3, "EBZ", 3L, 3L) == 0) {
00388 nb = 1;
00389 }
00390 }
00391 ret_val = nb;
00392 return ret_val;
00393
00394 L200:
00395
00396
00397
00398 nbmin = 2;
00399 if (s_cmp(c2, "GE", 2L, 2L) == 0) {
00400 if (s_cmp(c3, "QRF", 3L, 3L) == 0 || s_cmp(c3, "RQF", 3L, 3L) == 0 ||
00401 s_cmp(c3, "LQF", 3L, 3L) == 0 || s_cmp(c3, "QLF", 3L, 3L) ==
00402 0) {
00403 if (sname) {
00404 nbmin = 2;
00405 } else {
00406 nbmin = 2;
00407 }
00408 } else if (s_cmp(c3, "HRD", 3L, 3L) == 0) {
00409 if (sname) {
00410 nbmin = 2;
00411 } else {
00412 nbmin = 2;
00413 }
00414 } else if (s_cmp(c3, "BRD", 3L, 3L) == 0) {
00415 if (sname) {
00416 nbmin = 2;
00417 } else {
00418 nbmin = 2;
00419 }
00420 } else if (s_cmp(c3, "TRI", 3L, 3L) == 0) {
00421 if (sname) {
00422 nbmin = 2;
00423 } else {
00424 nbmin = 2;
00425 }
00426 }
00427 } else if (s_cmp(c2, "SY", 2L, 2L) == 0) {
00428 if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00429 if (sname) {
00430 nbmin = 2;
00431 } else {
00432 nbmin = 2;
00433 }
00434 } else if (sname && s_cmp(c3, "TRD", 3L, 3L) == 0) {
00435 nbmin = 2;
00436 }
00437 } else if (cname && s_cmp(c2, "HE", 2L, 2L) == 0) {
00438 if (s_cmp(c3, "TRD", 3L, 3L) == 0) {
00439 nbmin = 2;
00440 }
00441 } else if (sname && s_cmp(c2, "OR", 2L, 2L) == 0) {
00442 if (*(unsigned char *)c3 == 'G') {
00443 if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0
00444 || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00445 == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR",
00446 2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00447 nbmin = 2;
00448 }
00449 } else if (*(unsigned char *)c3 == 'M') {
00450 if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0
00451 || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00452 == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR",
00453 2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00454 nbmin = 2;
00455 }
00456 }
00457 } else if (cname && s_cmp(c2, "UN", 2L, 2L) == 0) {
00458 if (*(unsigned char *)c3 == 'G') {
00459 if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0
00460 || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00461 == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR",
00462 2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00463 nbmin = 2;
00464 }
00465 } else if (*(unsigned char *)c3 == 'M') {
00466 if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0
00467 || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00468 == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR",
00469 2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00470 nbmin = 2;
00471 }
00472 }
00473 }
00474 ret_val = nbmin;
00475 return ret_val;
00476
00477 L300:
00478
00479
00480
00481 nx = 0;
00482 if (s_cmp(c2, "GE", 2L, 2L) == 0) {
00483 if (s_cmp(c3, "QRF", 3L, 3L) == 0 || s_cmp(c3, "RQF", 3L, 3L) == 0 ||
00484 s_cmp(c3, "LQF", 3L, 3L) == 0 || s_cmp(c3, "QLF", 3L, 3L) ==
00485 0) {
00486 if (sname) {
00487 nx = 128;
00488 } else {
00489 nx = 128;
00490 }
00491 } else if (s_cmp(c3, "HRD", 3L, 3L) == 0) {
00492 if (sname) {
00493 nx = 128;
00494 } else {
00495 nx = 128;
00496 }
00497 } else if (s_cmp(c3, "BRD", 3L, 3L) == 0) {
00498 if (sname) {
00499 nx = 128;
00500 } else {
00501 nx = 128;
00502 }
00503 }
00504 } else if (s_cmp(c2, "SY", 2L, 2L) == 0) {
00505 if (sname && s_cmp(c3, "TRD", 3L, 3L) == 0) {
00506 nx = 1;
00507 }
00508 } else if (cname && s_cmp(c2, "HE", 2L, 2L) == 0) {
00509 if (s_cmp(c3, "TRD", 3L, 3L) == 0) {
00510 nx = 1;
00511 }
00512 } else if (sname && s_cmp(c2, "OR", 2L, 2L) == 0) {
00513 if (*(unsigned char *)c3 == 'G') {
00514 if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0
00515 || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00516 == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR",
00517 2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00518 nx = 128;
00519 }
00520 }
00521 } else if (cname && s_cmp(c2, "UN", 2L, 2L) == 0) {
00522 if (*(unsigned char *)c3 == 'G') {
00523 if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0
00524 || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00525 == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR",
00526 2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00527 nx = 128;
00528 }
00529 }
00530 }
00531 ret_val = nx;
00532 return ret_val;
00533
00534 L400:
00535
00536
00537
00538 ret_val = 6;
00539 return ret_val;
00540
00541 L500:
00542
00543
00544
00545 ret_val = 2;
00546 return ret_val;
00547
00548 L600:
00549
00550
00551
00552 ret_val = (integer) ((real) min(*n1,*n2) * (float)1.6);
00553 return ret_val;
00554
00555 L700:
00556
00557
00558
00559 ret_val = 1;
00560 return ret_val;
00561
00562 L800:
00563
00564
00565
00566 ret_val = 50;
00567 return ret_val;
00568
00569
00570
00571 }
00572