152 SUBROUTINE pack_gp(KFILDO,IC,NXY,IS523,MINPK,INC,MISSP,MISSS,
153 1 JMIN,JMAX,LBIT,NOV,NDG,LX,IBIT,JBIT,KBIT,
154 2 NOVREF,LBITREF,IER)
156 parameter(mallow=2**30+1)
162 dimension jmin(ndg),jmax(ndg),lbit(ndg),nov(ndg)
163 dimension misslx(ndg)
165 INTEGER,
PARAMETER :: IBXX2(0:30) = (/ 1, 2, 4, 8, 16, 32, 64, &
166 & 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, &
167 & 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608,
168 & 16777216, 33554432, 67108864, 134217728, 268435456,
169 & 536870912, 1073741824 /)
206 IF(is523.EQ.1)lmiss=1
207 IF(is523.EQ.2)lmiss=2
232 nenda=min(kstart+lminpk-1,nxy)
233 IF(nxy-nenda.LE.lminpk/2)nenda=nxy
248 IF(nenda.NE.nxy.AND.ic(kstart).EQ.ic(kstart+1))
THEN
254 DO 111 k=kstart+1,nxy
256 IF(ic(k).NE.ic(kstart))
THEN
266 ELSEIF(is523.EQ.1)
THEN
269 DO 112 k=kstart+1,nxy
271 IF(ic(k).NE.missp)
THEN
273 IF(ic(k).NE.ic(kstart))
THEN
288 DO 113 k=kstart+1,nxy
290 IF(ic(k).NE.missp.AND.ic(k).NE.misss)
THEN
292 IF(ic(k).NE.ic(kstart))
THEN
307 114
IF(is523.EQ.0)
THEN
309 DO 115 k=kstart,nenda
310 IF(ic(k).LT.mina)
THEN
314 IF(ic(k).GT.maxa)
THEN
320 ELSEIF(is523.EQ.1)
THEN
322 DO 117 k=kstart,nenda
323 IF(ic(k).EQ.missp)
GO TO 117
324 IF(ic(k).LT.mina)
THEN
328 IF(ic(k).GT.maxa)
THEN
336 DO 120 k=kstart,nenda
337 IF(ic(k).EQ.missp.OR.ic(k).EQ.misss)
GO TO 120
338 IF(ic(k).LT.mina)
THEN
342 IF(ic(k).GT.maxa)
THEN
350 kounta=nenda-kstart+1
356 IF(mina.NE.mallow)
GO TO 125
362 IF(is523.NE.2)
GO TO 130
367 125 itest=maxa-mina+lmiss
370 IF(itest.LT.ibxx2(ibita))
GO TO 130
387 133
IF(ktotal.GE.nxy)
GO TO 200
408 IF(mstart.LT.nxy)
THEN
413 DO 145 k=mstart+1,nxy
415 IF(ic(k).NE.ic(mstart))
THEN
429 150 nendb=max(nendb,min(ktotal+lminpk,nxy))
432 IF(nxy-nendb.LE.lminpk/2)nendb=nxy
443 DO 155 k=mstart,nendb
444 IF(ic(k).LE.minb)
THEN
452 IF(ic(k).GE.maxb)
THEN
458 ELSEIF(is523.EQ.1)
THEN
460 DO 157 k=mstart,nendb
461 IF(ic(k).EQ.missp)
GO TO 157
462 IF(ic(k).LE.minb)
THEN
466 IF(ic(k).GE.maxb)
THEN
474 DO 160 k=mstart,nendb
475 IF(ic(k).EQ.missp.OR.ic(k).EQ.misss)
GO TO 160
476 IF(ic(k).LE.minb)
THEN
480 IF(ic(k).GE.maxb)
THEN
490 IF(minb.NE.mallow)
GO TO 165
497 IF(is523.NE.2)
GO TO 170
502 165
DO 166 ibitb=ibitbs,30
503 IF(maxb-minb.LT.ibxx2(ibitb)-lmiss)
GO TO 170
525 IF(ibitb.GE.ibita)
GO TO 180
548 DO 1715 k=ktotal,kstart,-1
550 IF(ic(k).LT.minb)
THEN
553 ELSEIF(ic(k).GT.maxb)
THEN
557 IF(maxtst-mintst.GE.ibxx2(ibitb))
GO TO 174
567 ELSEIF(is523.EQ.1)
THEN
569 DO 1719 k=ktotal,kstart,-1
571 IF(ic(k).EQ.missp)
GO TO 1718
572 IF(ic(k).LT.minb)
THEN
575 ELSEIF(ic(k).GT.maxb)
THEN
579 IF(maxtst-mintst.GE.ibxx2(ibitb)-lmiss)
GO TO 174
593 DO 173 k=ktotal,kstart,-1
595 IF(ic(k).EQ.missp.OR.ic(k).EQ.misss)
GO TO 1729
596 IF(ic(k).LT.minb)
THEN
599 ELSEIF(ic(k).GT.maxb)
THEN
603 IF(maxtst-mintst.GE.ibxx2(ibitb)-lmiss)
GO TO 174
624 174
IF(kounta.EQ.kounts)
GO TO 200
636 IF(nenda-nouta.GT.minak.AND.nenda-nouta.GT.maxak)
GO TO 200
650 DO 1742 k=kstart,nenda-nouta
651 IF(ic(k).LT.mina)
THEN
654 IF(ic(k).GT.maxa)
THEN
659 ELSEIF(is523.EQ.1)
THEN
661 DO 1744 k=kstart,nenda-nouta
662 IF(ic(k).EQ.missp)
GO TO 1744
663 IF(ic(k).LT.mina)
THEN
666 IF(ic(k).GT.maxa)
THEN
673 DO 175 k=kstart,nenda-nouta
674 IF(ic(k).EQ.missp.OR.ic(k).EQ.misss)
GO TO 175
675 IF(ic(k).LT.mina)
THEN
678 IF(ic(k).GT.maxa)
THEN
686 IF(mina.NE.mallow)
GO TO 1750
691 IF(is523.NE.2)
GO TO 177
696 1750 itest=maxa-mina+lmiss
699 IF(itest.LT.ibxx2(ibita))
GO TO 177
721 180
IF(mislla.EQ.1)
THEN
734 IF(nxy-(ktotal+kinc).LE.lminpk/2)kinc=nxy-ktotal
746 DO 185 k=ktotal+1,min(ktotal+kinc,nxy)
747 IF(ic(k).LT.minc)
THEN
751 IF(ic(k).GT.maxc)
THEN
758 ELSEIF(is523.EQ.1)
THEN
760 DO 187 k=ktotal+1,min(ktotal+kinc,nxy)
761 IF(ic(k).EQ.missp)
GO TO 186
762 IF(ic(k).LT.minc)
THEN
766 IF(ic(k).GT.maxc)
THEN
775 DO 190 k=ktotal+1,min(ktotal+kinc,nxy)
776 IF(ic(k).EQ.missp.OR.ic(k).EQ.misss)
GO TO 189
777 IF(ic(k).LT.minc)
THEN
781 IF(ic(k).GT.maxc)
THEN
800 IF(minc.EQ.mallow)
THEN
814 IF(maxc-minc.GE.ibxx2(ibita)-lmiss)
GO TO 200
821 195 ktotal=ktotal+nount
829 IF(ktotal.GE.nxy)
GO TO 200
831 IF(minbk.GT.ktotal.AND.maxbk.GT.ktotal)
THEN
852 IF(lx.LE.ndg)
GO TO 205
853 lminpk=lminpk+lminpk/2
870 misslx(lx)=ic(ktotal)
881 IF(ktotal.GE.nxy)
GO TO 209
907 210
IF(jmin(l).LT.ibxx2(ibit))
GO TO 220
922 IF(misslx(l).EQ.missp)
THEN
923 jmin(l)=ibxx2(ibit)-1
950 IF(lbit(k).LT.lbitref)lbitref=lbit(k)
956 lbit(k)=lbit(k)-lbitref
972 310
IF(lbit(k).LT.ibxx2(jbit))
GO TO 320
995 IF(nov(k).LT.novref)novref=nov(k)
1001 nov(k)=nov(k)-novref
1022 410
IF(nov(k).LT.ibxx2(kbit))
GO TO 420
1031 CALL reduce(kfildo,jmin,jmax,lbit,nov,lx,ndg,ibit,jbit,kbit,
1034 IF(ier.EQ.714.OR.ier.EQ.715)
THEN