264 const integer mallow = 1073741825;
274 static integer ired, kinc, mina, maxa, minb, maxb, minc, maxc, ibxx2[31];
275 static char cfeed[1];
276 static integer nenda, nendb, ibita, ibitb, minak, minbk, maxak, maxbk,
277 minck, maxck, nouta, lmiss, itest, nount;
281 static integer ibitbs, mislla, misllb, misllc, iersav, lminpk, ktotal,
282 kounta, kountb, kstart, mstart, mintst, maxtst,
283 kounts, mintstk, maxtstk;
309 *(
unsigned char *)cfeed = (
char) ifeed;
329 kinc = (*inc > 1) ? *inc : 1;
338 for (j = 1; j <= 30; ++j) {
339 ibxx2[j] = ibxx2[j - 1] << 1;
385 i__1 = kstart + lminpk - 1;
387 nenda = (i__1 < *nxy) ? i__1 : *nxy;
388 if (*nxy - nenda <= lminpk / 2) {
405 if (nenda != *nxy && ic[kstart] == ic[kstart + 1]) {
412 for (k = kstart + 1; k <= i__1; ++k) {
414 if (ic[k] != ic[kstart]) {
416 i__2 = nenda, i__3 = k - 1;
418 nenda = (i__2 > i__3) ? i__2 : i__3;
428 }
else if (*is523 == 1) {
432 for (k = kstart + 1; k <= i__1; ++k) {
434 if (ic[k] != *missp) {
436 if (ic[k] != ic[kstart]) {
438 i__2 = nenda, i__3 = k - 1;
440 nenda = (i__2 > i__3) ? i__2 : i__3;
456 for (k = kstart + 1; k <= i__1; ++k) {
458 if (ic[k] != *missp && ic[k] != *misss) {
460 if (ic[k] != ic[kstart]) {
462 i__2 = nenda, i__3 = k - 1;
464 nenda = (i__2 > i__3) ? i__2 : i__3;
483 for (k = kstart; k <= i__1; ++k) {
495 }
else if (*is523 == 1) {
498 for (k = kstart; k <= i__1; ++k) {
499 if (ic[k] == *missp) {
517 for (k = kstart; k <= i__1; ++k) {
518 if (ic[k] == *missp || ic[k] == *misss) {
535 kounta = nenda - kstart + 1;
541 if (mina != mallow) {
557 itest = maxa - mina + lmiss;
559 for (ibita = 0; ibita <= 30; ++ibita) {
560 if (itest < ibxx2[ibita]) {
581 if (ktotal >= *nxy) {
611 for (k = mstart + 1; k <= i__1; ++k) {
613 if (ic[k] != ic[mstart]) {
631 i__3 = ktotal + lminpk;
633 i__1 = nendb, i__2 = (i__3 < *nxy) ? i__3 : *nxy;
635 nendb = (i__1 > i__2) ? i__1 : i__2;
638 if (*nxy - nendb <= lminpk / 2) {
652 for (k = mstart; k <= i__1; ++k) {
668 }
else if (*is523 == 1) {
671 for (k = mstart; k <= i__1; ++k) {
672 if (ic[k] == *missp) {
690 for (k = mstart; k <= i__1; ++k) {
691 if (ic[k] == *missp || ic[k] == *misss) {
708 kountb = nendb - ktotal;
710 if (minb != mallow) {
727 for (ibitb = ibitbs; ibitb <= 30; ++ibitb) {
728 if (maxb - minb < ibxx2[ibitb] - lmiss) {
753 if (ibitb >= ibita) {
781 for (k = ktotal; k >= i__1; --k) {
786 }
else if (ic[k] > maxb) {
790 if (maxtst - mintst >= ibxx2[ibitb]) {
803 }
else if (*is523 == 1) {
806 for (k = ktotal; k >= i__1; --k) {
808 if (ic[k] == *missp) {
814 }
else if (ic[k] > maxb) {
818 if (maxtst - mintst >= ibxx2[ibitb] - lmiss) {
837 for (k = ktotal; k >= i__1; --k) {
839 if (ic[k] == *missp || ic[k] == *misss) {
845 }
else if (ic[k] > maxb) {
849 if (maxtst - mintst >= ibxx2[ibitb] - lmiss) {
875 if (kounta == kounts) {
886 nouta = kounts - kounta;
889 if (nenda - nouta > minak && nenda - nouta > maxak) {
905 i__1 = nenda - nouta;
906 for (k = kstart; k <= i__1; ++k) {
916 }
else if (*is523 == 1) {
918 i__1 = nenda - nouta;
919 for (k = kstart; k <= i__1; ++k) {
920 if (ic[k] == *missp) {
935 i__1 = nenda - nouta;
936 for (k = kstart; k <= i__1; ++k) {
937 if (ic[k] == *missp || ic[k] == *misss) {
953 if (mina != mallow) {
968 itest = maxa - mina + lmiss;
970 for (ibita = 0; ibita <= 30; ++ibita) {
971 if (itest < ibxx2[ibita]) {
1010 if (*nxy - (ktotal + kinc) <= lminpk / 2) {
1011 kinc = *nxy - ktotal;
1025 i__2 = ktotal + kinc;
1027 i__1 = (i__2 < *nxy) ? i__2 : *nxy;
1028 for (k = ktotal + 1; k <= i__1; ++k) {
1041 }
else if (*is523 == 1) {
1044 i__2 = ktotal + kinc;
1046 i__1 = (i__2 < *nxy) ? i__2 : *nxy;
1047 for (k = ktotal + 1; k <= i__1; ++k) {
1048 if (ic[k] == *missp) {
1067 i__2 = ktotal + kinc;
1069 i__1 = (i__2 < *nxy) ? i__2 : *nxy;
1070 for (k = ktotal + 1; k <= i__1; ++k) {
1071 if (ic[k] == *missp || ic[k] == *misss) {
1099 if (minc == mallow) {
1113 if (maxc - minc >= ibxx2[ibita] - lmiss) {
1131 if (ktotal >= *nxy) {
1135 if (minbk > ktotal && maxbk > ktotal) {
1160 lminpk += lminpk / 2;
1173 kstart = ktotal + 1;
1176 misslx[*lx - 1] = mallow;
1178 misslx[*lx - 1] = ic[ktotal];
1189 if (ktotal >= *nxy) {
1218 for (l = 1; l <= i__1; ++l) {
1220 if (jmin[l] < ibxx2[*ibit]) {
1236 for (l = 1; l <= i__1; ++l) {
1240 if (misslx[l - 1] == *missp) {
1241 jmin[l] = ibxx2[*ibit] - 1;
1269 for (k = 1; k <= i__1; ++k) {
1270 if (lbit[k] < *lbitref) {
1276 if (*lbitref != 0) {
1279 for (k = 1; k <= i__1; ++k) {
1280 lbit[k] -= *lbitref;
1297 for (k = 1; k <= i__1; ++k) {
1299 if (lbit[k] < ibxx2[*jbit]) {
1326 for (k = 1; k <= i__1; ++k) {
1327 if (nov[k] < *novref) {
1336 for (k = 1; k <= i__1; ++k) {
1359 for (k = 1; k <= i__1; ++k) {
1361 if (nov[k] < ibxx2[*kbit]) {
1374 reduce(kfildo, &jmin[1], &jmax[1], &lbit[1], &nov[1], lx, ndg, ibit,
1375 jbit, kbit, novref, ibxx2, ier);
1377 if (*ier == 714 || *ier == 715) {
1388 if ( misslx != 0 ) {
1401 if ( misslx != 0 ) free(misslx);
Header file for NCEPLIBS-g2c library.
int64_t g2int
Long integer type.
int pack_gp(integer *kfildo, integer *ic, integer *nxy, integer *is523, integer *minpk, integer *inc, integer *missp, integer *misss, integer *jmin, integer *jmax, integer *lbit, integer *nov, integer *ndg, integer *lx, integer *ibit, integer *jbit, integer *kbit, integer *novref, integer *lbitref, integer *ier)
Determines groups of variable size, but at least of size minpk, the associated max (jmax( )) and min ...
g2int integer
Integer type.
g2int logical
Logical type.
int reduce(integer *kfildo, integer *jmin, integer *jmax, integer *lbit, integer *nov, integer *lx, integer *ndg, integer *ibit, integer *jbit, integer *kbit, integer *novref, integer *ibxx2, integer *ier)
Determines whether the number of groups should be increased in order to reduce the size of the large ...