242 SUBROUTINE w3fi63(MSGA,KPDS,KGDS,KBMS,DATA,KPTR,KRET)
264 INTEGER JSGN,JEXP,IFR,NPTS
265 REAL REALKK,FVAL1,FDIFF1
287 CALL fi631(msga,kptr,kpds,kret)
295 CALL fi632(msga,kptr,kpds,kret)
303 IF (iand(kpds(4),128).NE.0)
THEN
304 CALL fi633(msga,kptr,kgds,kret)
313 CALL fi634(msga,kptr,kpds,kgds,kbms,kret)
324 IF (kpds(18).EQ.1)
THEN
325 CALL fi635(msga,kptr,kpds,kgds,kbms,
DATA,kret)
326 IF (kptr(3).EQ.50)
THEN
360 call gbytec(msga,jsgn,kptr(9)+384,1)
361 call gbytec(msga,jexp,kptr(9)+385,7)
362 call gbytec(msga,ifr,kptr(9)+392,24)
366 ELSE IF (jexp.EQ.0.AND.ifr.EQ.0)
THEN
369 realkk = float(ifr) * 16.0 ** (jexp - 64 - 6)
370 IF (jsgn.NE.0) realkk = -realkk
380 call gbytec(msga,jsgn,kptr(9)+416,1)
381 call gbytec(msga,jexp,kptr(9)+417,7)
382 call gbytec(msga,ifr,kptr(9)+424,24)
386 ELSE IF (jexp.EQ.0.AND.ifr.EQ.0)
THEN
389 realkk = float(ifr) * 16.0 ** (jexp - 64 - 6)
390 IF (jsgn.NE.0) realkk = -realkk
394 CALL gbytec (msga,isign,kptr(9)+448,1)
395 CALL gbytec (msga,iscal2,kptr(9)+449,15)
406 CALL w3fi83 (
DATA,npts,fval1,fdiff1,
407 & iscal2,kpds(22),kpds,kgds)
477 SUBROUTINE fi631(MSGA,KPTR,KPDS,KRET)
492 CALL gbytec (msga,mgrib,i,32)
493 IF (mgrib.EQ.1196575042)
THEN
504 kptr(8) = kptr(9) + 32
505 CALL gbytec (msga,itotal,kptr(8),24)
507 ipoint = kptr(9) + itotal * 8 - 32
508 CALL gbytec (msga,i7777,ipoint,32)
509 IF (i7777.EQ.926365495)
THEN
513 kptr(8) = kptr(8) + 24
516 CALL gbytec (msga,kpds(18),kptr(8),8)
517 kptr(8) = kptr(8) + 8
526 CALL gbytec (msga,kptr(3),kptr(8),24)
529 CALL gbytec (msga,kpds(4),look,8)
530 kptr(8) = kptr(8) + kptr(3) * 8
532 IF (iand(kpds(4),128).NE.0)
THEN
534 CALL gbytec (msga,kptr(4),kptr(8),24)
535 kptr(8) = kptr(8) + kptr(4) * 8
540 IF (iand(kpds(4),64).NE.0)
THEN
542 CALL gbytec (msga,kptr(5),kptr(8),24)
546 kptr(8) = kptr(8) + kptr(5) * 8
549 CALL gbytec (msga,kptr(6),kptr(8),24)
552 kptr(8) = kptr(8) + kptr(6) * 8
555 CALL gbytec (msga,k7777,kptr(8),32)
556 match = kptr(2) + kptr(3) + kptr(4) + kptr(5) + kptr(6) + 4
557 IF (k7777.NE.926365495.OR.match.NE.kptr(1))
THEN
561 IF (kpds(18).EQ.0)
THEN
562 kptr(1) = kptr(2) + kptr(3) + kptr(4) + kptr(5) +
634 SUBROUTINE fi632(MSGA,KPTR,KPDS,KRET)
648 kptr(8) = kptr(9) + kptr(2) * 8 + 24
651 CALL gbytec (msga,kpds(19),kptr(8),8)
652 kptr(8) = kptr(8) + 8
654 CALL gbytec (msga,kpds(1),kptr(8),8)
655 kptr(8) = kptr(8) + 8
658 CALL gbytec (msga,kpds(2),kptr(8),8)
659 kptr(8) = kptr(8) + 8
662 CALL gbytec (msga,kpds(3),kptr(8),8)
663 kptr(8) = kptr(8) + 8
667 kptr(8) = kptr(8) + 8
670 CALL gbytec (msga,kpds(5),kptr(8),8)
671 kptr(8) = kptr(8) + 8
674 CALL gbytec (msga,kpds(6),kptr(8),8)
675 kptr(8) = kptr(8) + 8
678 CALL gbytec (msga,kpds(7),kptr(8),16)
679 kptr(8) = kptr(8) + 16
682 CALL gbytec (msga,kpds(8),kptr(8),8)
683 kptr(8) = kptr(8) + 8
686 CALL gbytec (msga,kpds(9),kptr(8),8)
687 kptr(8) = kptr(8) + 8
690 CALL gbytec (msga,kpds(10),kptr(8),8)
691 kptr(8) = kptr(8) + 8
694 CALL gbytec (msga,kpds(11),kptr(8),8)
695 kptr(8) = kptr(8) + 8
698 CALL gbytec (msga,kpds(12),kptr(8),8)
699 kptr(8) = kptr(8) + 8
702 CALL gbytec (msga,kpds(13),kptr(8),8)
703 kptr(8) = kptr(8) + 8
706 CALL gbytec (msga,kpds(14),kptr(8),8)
707 kptr(8) = kptr(8) + 8
710 CALL gbytec (msga,kpds(15),kptr(8),8)
711 kptr(8) = kptr(8) + 8
714 CALL gbytec (msga,kpds(16),kptr(8),8)
715 kptr(8) = kptr(8) + 8
720 IF (kpds(16).EQ.10)
THEN
721 kpds(14) = kpds(14) * 256 + kpds(15)
726 CALL gbytec (msga,kpds(17),kptr(8),16)
727 kptr(8) = kptr(8) + 16
730 CALL gbytec (msga,kpds(20),kptr(8),8)
731 kptr(8) = kptr(8) + 8
734 CALL gbytec (msga,kpds(21),kptr(8),8)
735 kptr(8) = kptr(8) + 8
736 IF (kptr(3).GT.25)
THEN
738 CALL gbytec (msga,kpds(23),kptr(8),8)
739 kptr(8) = kptr(8) + 8
740 IF (kptr(3).GE.28)
THEN
743 CALL gbytec (msga,isign,kptr(8),1)
744 kptr(8) = kptr(8) + 1
745 CALL gbytec (msga,idec,kptr(8),15)
746 kptr(8) = kptr(8) + 15
755 CALL gbytec (msga,kpds(24),kptr(8)+8,8)
757 CALL gbytec (msga,kpds(25),kptr(8)+16,8)
759 kptr(8) = kptr(8) + isiz * 8
762 CALL gbytec (msga,kpds(24),kptr(8)+8,8)
764 CALL gbytec (msga,kpds(25),kptr(8)+16,8)
766 kptr(8) = kptr(8) + 12 * 8
770 mwdbit = bit_size(kpds)
773 IF (mod(isiz,lw).NE.0) iter = iter + 1
774 CALL gbytesc (msga,kpds(36),kptr(8),mwdbit,0,iter)
775 kptr(8) = kptr(8) + isiz * 8
780 IF (iand(kpds(4),128).NE.0)
THEN
781 IF (iand(kpds(4),64).NE.0)
THEN
782 IF (kpds(3).NE.255)
THEN
783 IF (kpds(3).GE.21.AND.kpds(3).LE.26)
THEN
785 ELSE IF (kpds(3).GE.37.AND.kpds(3).LE.44)
THEN
787 ELSE IF (kpds(3).GE.61.AND.kpds(3).LE.64)
THEN
790 IF (kpds(1).EQ.7)
THEN
791 IF (kpds(3).GE.2.AND.kpds(3).LE.3)
THEN
792 ELSE IF (kpds(3).GE.5.AND.kpds(3).LE.6)
THEN
793 ELSE IF (kpds(3).EQ.8)
THEN
794 ELSE IF (kpds(3).EQ.10)
THEN
795 ELSE IF (kpds(3).GE.27.AND.kpds(3).LE.34)
THEN
796 ELSE IF (kpds(3).EQ.50)
THEN
797 ELSE IF (kpds(3).EQ.53)
THEN
798 ELSE IF (kpds(3).GE.70.AND.kpds(3).LE.77)
THEN
799 ELSE IF (kpds(3).EQ.98)
THEN
800 ELSE IF (kpds(3).EQ.99)
THEN
801 ELSE IF (kpds(3).GE.100.AND.kpds(3).LE.105)
THEN
802 ELSE IF (kpds(3).EQ.126)
THEN
803 ELSE IF (kpds(3).EQ.195)
THEN
804 ELSE IF (kpds(3).EQ.196)
THEN
805 ELSE IF (kpds(3).EQ.197)
THEN
806 ELSE IF (kpds(3).EQ.198)
THEN
807 ELSE IF (kpds(3).GE.200.AND.kpds(3).LE.237)
THEN
815 ELSE IF (kpds(1).EQ.98)
THEN
816 IF (kpds(3).GE.1.AND.kpds(3).LE.16)
THEN
824 ELSE IF (kpds(1).EQ.74)
THEN
825 IF (kpds(3).GE.1.AND.kpds(3).LE.12)
THEN
826 ELSE IF (kpds(3).GE.21.AND.kpds(3).LE.26)
THEN
827 ELSE IF (kpds(3).GE.61.AND.kpds(3).LE.64)
THEN
828 ELSE IF (kpds(3).GE.70.AND.kpds(3).LE.77)
THEN
837 ELSE IF (kpds(1).EQ.58)
THEN
838 IF (kpds(3).GE.1.AND.kpds(3).LE.12)
THEN
980 SUBROUTINE fi633(MSGA,KPTR,KGDS,KRET)
996 kptr(8) = kptr(9) + (kptr(2)*8) + (kptr(3)*8) + 24
1000 CALL gbytec (msga,kgds(19),kptr(8),8)
1001 kptr(8) = kptr(8) + 8
1004 CALL gbytec (msga,kgds(20),kptr(8),8)
1005 kptr(8) = kptr(8) + 8
1008 CALL gbytec (msga,kgds(1),kptr(8),8)
1009 kptr(8) = kptr(8) + 8
1012 IF (kgds(1).EQ.0)
THEN
1014 ELSE IF (kgds(1).EQ.1)
THEN
1016 ELSE IF (kgds(1).EQ.2.OR.kgds(1).EQ.5)
THEN
1018 ELSE IF (kgds(1).EQ.3)
THEN
1020 ELSE IF (kgds(1).EQ.4)
THEN
1028 ELSE IF (kgds(1).EQ.50)
THEN
1033 ELSE IF (kgds(1).EQ.201.OR.kgds(1).EQ.202.OR.
1034 & kgds(1).EQ.203.OR.kgds(1).EQ.204.OR.kgds(1).EQ.205)
THEN
1059 CALL gbytec (msga,kgds(2),kptr(8),16)
1060 kptr(8) = kptr(8) + 16
1062 CALL gbytec (msga,kgds(3),kptr(8),16)
1063 kptr(8) = kptr(8) + 16
1065 CALL gbytec (msga,kgds(4),kptr(8),24)
1066 kptr(8) = kptr(8) + 24
1067 IF (iand(kgds(4),8388608).NE.0)
THEN
1068 kgds(4) = iand(kgds(4),8388607) * (-1)
1071 CALL gbytec (msga,kgds(5),kptr(8),24)
1072 kptr(8) = kptr(8) + 24
1073 IF (iand(kgds(5),8388608).NE.0)
THEN
1074 kgds(5) = - iand(kgds(5),8388607)
1077 CALL gbytec (msga,kgds(6),kptr(8),8)
1078 kptr(8) = kptr(8) + 8
1080 CALL gbytec (msga,kgds(7),kptr(8),24)
1081 kptr(8) = kptr(8) + 24
1082 IF (iand(kgds(7),8388608).NE.0)
THEN
1083 kgds(7) = - iand(kgds(7),8388607)
1086 CALL gbytec (msga,kgds(8),kptr(8),24)
1087 kptr(8) = kptr(8) + 24
1088 IF (iand(kgds(8),8388608).NE.0)
THEN
1089 kgds(8) = - iand(kgds(8),8388607)
1092 CALL gbytec (msga,kgds(9),kptr(8),16)
1093 kptr(8) = kptr(8) + 16
1099 CALL gbytec (msga,kgds(10),kptr(8),16)
1100 kptr(8) = kptr(8) + 16
1102 CALL gbytec (msga,kgds(11),kptr(8),8)
1103 kptr(8) = kptr(8) + 8
1104 IF(kgds(1).EQ.205)
THEN
1106 CALL gbytec (msga,kgds(12),kptr(8),24)
1107 kptr(8) = kptr(8) + 24
1108 IF (iand(kgds(12),8388608).NE.0)
THEN
1109 kgds(12) = - iand(kgds(12),8388607)
1112 CALL gbytec (msga,kgds(13),kptr(8),24)
1113 kptr(8) = kptr(8) + 24
1114 IF (iand(kgds(13),8388608).NE.0)
THEN
1115 kgds(13) = - iand(kgds(13),8388607)
1121 CALL gbytec (msga,kgds(12),kptr(8),32)
1122 kptr(8) = kptr(8) + 32
1131 CALL gbytec (msga,kgds(2),kptr(8),16)
1132 kptr(8) = kptr(8) + 16
1134 CALL gbytec (msga,kgds(3),kptr(8),16)
1135 kptr(8) = kptr(8) + 16
1137 CALL gbytec (msga,kgds(4),kptr(8),24)
1138 kptr(8) = kptr(8) + 24
1139 IF (iand(kgds(4),8388608).NE.0)
THEN
1140 kgds(4) = - iand(kgds(4),8388607)
1143 CALL gbytec (msga,kgds(5),kptr(8),24)
1144 kptr(8) = kptr(8) + 24
1145 IF (iand(kgds(5),8388608).NE.0)
THEN
1146 kgds(5) = - iand(kgds(5),8388607)
1149 CALL gbytec (msga,kgds(6),kptr(8),8)
1150 kptr(8) = kptr(8) + 8
1152 CALL gbytec (msga,kgds(7),kptr(8),24)
1153 kptr(8) = kptr(8) + 24
1154 IF (iand(kgds(7),8388608).NE.0)
THEN
1155 kgds(7) = - iand(kgds(7),8388607)
1158 CALL gbytec (msga,kgds(8),kptr(8),24)
1159 kptr(8) = kptr(8) + 24
1160 IF (iand(kgds(8),8388608).NE.0)
THEN
1161 kgds(8) = - iand(kgds(8),8388607)
1164 CALL gbytec (msga,kgds(9),kptr(8),24)
1165 kptr(8) = kptr(8) + 24
1166 IF (iand(kgds(9),8388608).NE.0)
THEN
1167 kgds(9) = - iand(kgds(9),8388607)
1170 CALL gbytec (msga,kgds(10),kptr(8),8)
1171 kptr(8) = kptr(8) + 8
1173 CALL gbytec (msga,kgds(11),kptr(8),8)
1174 kptr(8) = kptr(8) + 8
1177 CALL gbytec (msga,kgds(12),kptr(8),32)
1178 kptr(8) = kptr(8) + 32
1188 CALL gbytec (msga,kgds(2),kptr(8),16)
1189 kptr(8) = kptr(8) + 16
1191 CALL gbytec (msga,kgds(3),kptr(8),16)
1192 kptr(8) = kptr(8) + 16
1194 CALL gbytec (msga,kgds(4),kptr(8),16)
1195 kptr(8) = kptr(8) + 16
1197 CALL gbytec (msga,kgds(5),kptr(8),8)
1198 kptr(8) = kptr(8) + 8
1200 CALL gbytec (msga,kgds(6),kptr(8),8)
1201 kptr(8) = kptr(8) + 8
1204 kptr(8) = kptr(8) + 18 * 8
1211 CALL gbytec (msga,kgds(2),kptr(8),16)
1212 kptr(8) = kptr(8) + 16
1214 CALL gbytec (msga,kgds(3),kptr(8),16)
1215 kptr(8) = kptr(8) + 16
1217 CALL gbytec (msga,kgds(4),kptr(8),24)
1218 kptr(8) = kptr(8) + 24
1219 IF (iand(kgds(4),8388608).NE.0)
THEN
1220 kgds(4) = - iand(kgds(4),8388607)
1223 CALL gbytec (msga,kgds(5),kptr(8),24)
1224 kptr(8) = kptr(8) + 24
1225 IF (iand(kgds(5),8388608).NE.0)
THEN
1226 kgds(5) = - iand(kgds(5),8388607)
1229 CALL gbytec (msga,kgds(6),kptr(8),8)
1230 kptr(8) = kptr(8) + 8
1232 CALL gbytec (msga,kgds(7),kptr(8),24)
1233 kptr(8) = kptr(8) + 24
1234 IF (iand(kgds(7),8388608).NE.0)
THEN
1235 kgds(7) = - iand(kgds(7),8388607)
1238 CALL gbytec (msga,kgds(8),kptr(8),24)
1239 kptr(8) = kptr(8) + 24
1240 IF (iand(kgds(8),8388608).NE.0)
THEN
1241 kgds(8) = - iand(kgds(8),8388607)
1244 CALL gbytec (msga,kgds(9),kptr(8),24)
1245 kptr(8) = kptr(8) + 24
1246 IF (iand(kgds(9),8388608).NE.0)
THEN
1247 kgds(9) = - iand(kgds(9),8388607)
1250 CALL gbytec (msga,kgds(10),kptr(8),8)
1251 kptr(8) = kptr(8) + 8
1253 CALL gbytec (msga,kgds(11),kptr(8),8)
1254 kptr(8) = kptr(8) + 8
1256 CALL gbytec (msga,kgds(12),kptr(8),24)
1257 kptr(8) = kptr(8) + 24
1258 IF (iand(kgds(12),8388608).NE.0)
THEN
1259 kgds(12) = - iand(kgds(12),8388607)
1262 CALL gbytec (msga,kgds(13),kptr(8),24)
1263 kptr(8) = kptr(8) + 24
1264 IF (iand(kgds(13),8388608).NE.0)
THEN
1265 kgds(13) = - iand(kgds(13),8388607)
1269 kptr(8) = kptr(8) + 8 * 8
1277 CALL gbytec (msga,kgds(2),kptr(8),16)
1278 kptr(8) = kptr(8) + 16
1280 CALL gbytec (msga,kgds(3),kptr(8),16)
1281 kptr(8) = kptr(8) + 16
1283 CALL gbytec (msga,kgds(4),kptr(8),24)
1284 kptr(8) = kptr(8) + 24
1285 IF (iand(kgds(4),8388608).NE.0)
THEN
1286 kgds(4) = - iand(kgds(4),8388607)
1289 CALL gbytec (msga,kgds(5),kptr(8),24)
1290 kptr(8) = kptr(8) + 24
1291 IF (iand(kgds(5),8388608).NE.0)
THEN
1292 kgds(5) = - iand(kgds(5),8388607)
1295 CALL gbytec (msga,kgds(6),kptr(8),8)
1296 kptr(8) = kptr(8) + 8
1298 CALL gbytec (msga,kgds(7),kptr(8),24)
1299 kptr(8) = kptr(8) + 24
1300 IF (iand(kgds(7),8388608).NE.0)
THEN
1301 kgds(7) = - iand(kgds(7),8388607)
1304 CALL gbytec (msga,kgds(8),kptr(8),24)
1305 kptr(8) = kptr(8) + 24
1307 CALL gbytec (msga,kgds(9),kptr(8),24)
1308 kptr(8) = kptr(8) + 24
1310 CALL gbytec (msga,kgds(10),kptr(8),8)
1311 kptr(8) = kptr(8) + 8
1313 CALL gbytec (msga,kgds(11),kptr(8),8)
1314 kptr(8) = kptr(8) + 8
1316 CALL gbytec (msga,kgds(12),kptr(8),24)
1317 kptr(8) = kptr(8) + 24
1318 IF (iand(kgds(12),8388608).NE.0)
THEN
1319 kgds(12) = - iand(kgds(12),8388607)
1322 CALL gbytec (msga,kgds(13),kptr(8),24)
1323 kptr(8) = kptr(8) + 24
1324 IF (iand(kgds(13),8388608).NE.0)
THEN
1325 kgds(13) = - iand(kgds(13),8388607)
1328 CALL gbytec (msga,kgds(14),kptr(8),24)
1329 kptr(8) = kptr(8) + 24
1330 IF (iand(kgds(14),8388608).NE.0)
THEN
1331 kgds(14) = - iand(kgds(14),8388607)
1334 CALL gbytec (msga,kgds(15),kptr(8),24)
1335 kptr(8) = kptr(8) + 24
1336 IF (iand(kgds(15),8388608).NE.0)
THEN
1337 kgds(15) = - iand(kgds(15),8388607)
1340 CALL gbytec (msga,kgds(16),kptr(8),16)
1341 kptr(8) = kptr(8) + 16
1347 IF (kgds(19).EQ.0.OR.kgds(19).EQ.255)
THEN
1348 IF (kgds(20).NE.255)
THEN
1350 kptr(8) = nsave + (kgds(20) - 1) * 8
1351 CALL gbytesc (msga,kgds(22),kptr(8),16,0,kgds(3))
1352 DO 910 j = 1, kgds(3)
1353 isum = isum + kgds(21+j)
1526 SUBROUTINE fi634(MSGA,KPTR,KPDS,KGDS,KBMS,KRET)
1544 LOGICAL*1 GRD21( 1369)
1546 LOGICAL*1 GRD23( 1369)
1547 LOGICAL*1 GRD25( 1368)
1548 LOGICAL*1 GRD26( 1368)
1552 LOGICAL*1 GRD50( 1188)
1554 LOGICAL*1 GRD61( 4186)
1556 LOGICAL*1 GRD63( 4186)
1559 DATA grd21 /1333*.true.,36*.false./
1560 DATA grd23 /.true.,36*.false.,1332*.true./
1561 DATA grd25 /1297*.true.,71*.false./
1562 DATA grd26 /.true.,71*.false.,1296*.true./
1565 & 7*.false.,22*.true.,14*.false.,22*.true.,
1566 & 14*.false.,22*.true.,14*.false.,22*.true.,7*.false.,
1568 & 6*.false.,24*.true.,12*.false.,24*.true.,
1569 & 12*.false.,24*.true.,12*.false.,24*.true.,6*.false.,
1571 & 5*.false.,26*.true.,10*.false.,26*.true.,
1572 & 10*.false.,26*.true.,10*.false.,26*.true.,5*.false.,
1574 & 4*.false.,28*.true., 8*.false.,28*.true.,
1575 & 8*.false.,28*.true., 8*.false.,28*.true.,4*.false.,
1577 & 3*.false.,30*.true., 6*.false.,30*.true.,
1578 & 6*.false.,30*.true., 6*.false.,30*.true.,3*.false.,
1580 & 2*.false.,32*.true., 4*.false.,32*.true.,
1581 & 4*.false.,32*.true., 4*.false.,32*.true.,2*.false.,
1583 & .false.,34*.true., 2*.false.,34*.true.,
1584 & 2*.false.,34*.true., 2*.false.,34*.true., .false.,
1587 DATA grd61 /4096*.true.,90*.false./
1588 DATA grd63 /.true.,90*.false.,4095*.true./
1589 DATA mask /128,64,32,16,8,4,2,1/
1592 IF (iand(kpds(4),64).EQ.64)
THEN
1596 kptr(8) = kptr(9) + (kptr(2)*8) + (kptr(3)*8) + (kptr(4)*8) + 24
1600 CALL gbytec (msga,kptr(11),kptr(8),8)
1601 kptr(8) = kptr(8) + 8
1605 CALL gbytec (msga,kptr(12),kptr(8),16)
1606 kptr(8) = kptr(8) + 16
1608 IF (kptr(12).EQ.0)
THEN
1610 ibits = (kptr(5) - 6) * 8 - kptr(11)
1612 IF (kpds(3).EQ.21.OR.kpds(3).EQ.22.OR.kpds(3).EQ.25.
1613 * or.kpds(3).EQ.61.OR.kpds(3).EQ.62)
THEN
1615 CALL fi634x(ibits,kptr(8),msga,kbms)
1616 IF (kpds(3).EQ.25)
THEN
1618 ELSE IF (kpds(3).EQ.61.OR.kpds(3).EQ.62)
THEN
1624 kbms(i+ibits) = .false.
1626 kptr(10) = kptr(10) + kadd
1628 ELSE IF (kpds(3).EQ.23.OR.kpds(3).EQ.24.OR.kpds(3).EQ.26.
1629 * or.kpds(3).EQ.63.OR.kpds(3).EQ.64)
THEN
1631 CALL fi634x(ibits,kptr(8),msga,kbms)
1632 IF (kpds(3).EQ.26)
THEN
1634 ELSE IF (kpds(3).EQ.63.OR.kpds(3).EQ.64)
THEN
1640 kbms(i+ibits) = .false.
1642 kptr(10) = kptr(10) + kadd - 1
1644 ELSE IF (kpds(3).EQ.50)
THEN
1652 kbms(kbits) = .false.
1654 CALL fi634x(kin,kptr(8),msga,kbms(kbits+1))
1659 kbms(kbits) = .false.
1666 CALL fi634x(kin,kptr(8),msga,kbms(kbits+1))
1672 CALL fi634x(ibits,kptr(8),msga,kbms)
1686 IF (kpds(3).EQ.255)
THEN
1688 j = kgds(2) * kgds(3)
1698 IF (kpds(3).EQ.21.OR.kpds(3).EQ.22)
THEN
1702 CALL fi637(j,kpds,kgds,kret)
1703 IF(kret.NE.0)
GO TO 820
1708 ELSE IF (kpds(3).EQ.23.OR.kpds(3).EQ.24)
THEN
1712 CALL fi637(j,kpds,kgds,kret)
1713 IF(kret.NE.0)
GO TO 820
1718 ELSE IF (kpds(3).EQ.25)
THEN
1722 CALL fi637(j,kpds,kgds,kret)
1723 IF(kret.NE.0)
GO TO 820
1728 ELSE IF (kpds(3).EQ.26)
THEN
1732 CALL fi637(j,kpds,kgds,kret)
1733 IF(kret.NE.0)
GO TO 820
1738 ELSE IF (kpds(3).GE.37.AND.kpds(3).LE.44)
THEN
1742 ELSE IF (kpds(1).EQ.7.AND.kpds(3).EQ.50)
THEN
1746 CALL fi637(j,kpds,kgds,kret)
1747 IF(kret.NE.0)
GO TO 890
1752 ELSE IF (kpds(3).EQ.61.OR.kpds(3).EQ.62)
THEN
1756 CALL fi637(j,kpds,kgds,kret)
1757 IF(kret.NE.0)
GO TO 820
1762 ELSE IF (kpds(3).EQ.63.OR.kpds(3).EQ.64)
THEN
1766 CALL fi637(j,kpds,kgds,kret)
1767 IF(kret.NE.0)
GO TO 820
1776 IF (kpds(1).EQ.7)
THEN
1777 IF (kpds(3).LT.100)
THEN
1778 IF (kpds(3).EQ.1)
THEN
1783 IF (kpds(3).EQ.2)
THEN
1787 ELSE IF (kpds(3).EQ.3)
THEN
1791 ELSE IF (kpds(3).EQ.4)
THEN
1795 ELSE IF (kpds(3).EQ.5)
THEN
1799 ELSE IF (kpds(3).EQ.6)
THEN
1803 ELSE IF (kpds(3).EQ.8)
THEN
1807 ELSE IF (kpds(3).EQ.10)
THEN
1811 ELSE IF (kpds(3).EQ.11)
THEN
1815 ELSE IF (kpds(3).EQ.12)
THEN
1819 ELSE IF (kpds(3).EQ.13)
THEN
1823 ELSE IF (kpds(3).EQ.14)
THEN
1827 ELSE IF (kpds(3).EQ.15)
THEN
1831 ELSE IF (kpds(3).EQ.16)
THEN
1835 ELSE IF (kpds(3).EQ.17)
THEN
1839 ELSE IF (kpds(3).EQ.18)
THEN
1843 ELSE IF (kpds(3).EQ.27.OR.kpds(3).EQ.28)
THEN
1847 ELSE IF (kpds(3).EQ.29.OR.kpds(3).EQ.30)
THEN
1851 ELSE IF (kpds(3).EQ.33.OR.kpds(3).EQ.34)
THEN
1855 ELSE IF (kpds(3).GE.37.AND.kpds(3).LE.44)
THEN
1859 ELSE IF (kpds(3).EQ.45)
THEN
1863 ELSE IF (kpds(3).EQ.53)
THEN
1867 ELSE IF (kpds(3).EQ.55.OR.kpds(3).EQ.56)
THEN
1871 ELSE IF (kpds(3).GE.67.AND.kpds(3).LE.71)
THEN
1875 ELSE IF (kpds(3).EQ.72)
THEN
1879 ELSE IF (kpds(3).EQ.73)
THEN
1883 ELSE IF (kpds(3).EQ.74)
THEN
1887 ELSE IF (kpds(3).GE.75.AND.kpds(3).LE.77)
THEN
1891 ELSE IF (kpds(3).EQ.83)
THEN
1895 ELSE IF (kpds(3).EQ.85.OR.kpds(3).EQ.86)
THEN
1899 ELSE IF (kpds(3).EQ.87)
THEN
1903 ELSE IF (kpds(3).EQ.88)
THEN
1907 ELSE IF (kpds(3).EQ.90)
THEN
1911 ELSE IF (kpds(3).EQ.91)
THEN
1915 ELSE IF (kpds(3).EQ.92)
THEN
1919 ELSE IF (kpds(3).EQ.93)
THEN
1923 ELSE IF (kpds(3).EQ.94)
THEN
1927 ELSE IF (kpds(3).EQ.95)
THEN
1931 ELSE IF (kpds(3).EQ.96)
THEN
1935 ELSE IF (kpds(3).EQ.97)
THEN
1939 ELSE IF (kpds(3).EQ.98)
THEN
1943 ELSE IF (kpds(3).EQ.99)
THEN
1948 ELSE IF (kpds(3).GE.100.AND.kpds(3).LT.200)
THEN
1949 IF (kpds(3).EQ.100)
THEN
1953 ELSE IF (kpds(3).EQ.101)
THEN
1957 ELSE IF (kpds(3).EQ.103)
THEN
1961 ELSE IF (kpds(3).EQ.104)
THEN
1965 ELSE IF (kpds(3).EQ.105)
THEN
1969 ELSE IF (kpds(3).EQ.106)
THEN
1973 ELSE IF (kpds(3).EQ.107)
THEN
1977 ELSE IF (kpds(3).EQ.110)
THEN
1981 ELSE IF (kpds(3).EQ.120)
THEN
1985 ELSE IF (kpds(3).EQ.122)
THEN
1989 ELSE IF (kpds(3).EQ.123)
THEN
1993 ELSE IF (kpds(3).EQ.124)
THEN
1997 ELSE IF (kpds(3).EQ.125)
THEN
2001 ELSE IF (kpds(3).EQ.126)
THEN
2005 ELSE IF (kpds(3).EQ.127)
THEN
2009 ELSE IF (kpds(3).EQ.128)
THEN
2013 ELSE IF (kpds(3).EQ.129)
THEN
2017 ELSE IF (kpds(3).EQ.130)
THEN
2021 ELSE IF (kpds(3).EQ.132)
THEN
2025 ELSE IF (kpds(3).EQ.138)
THEN
2029 ELSE IF (kpds(3).EQ.139)
THEN
2033 ELSE IF (kpds(3).EQ.140)
THEN
2038 ELSE IF (kpds(3).EQ.145)
THEN
2042 ELSE IF (kpds(3).EQ.146)
THEN
2046 ELSE IF (kpds(3).EQ.147)
THEN
2050 ELSE IF (kpds(3).EQ.148)
THEN
2054 ELSE IF (kpds(3).EQ.150)
THEN
2058 ELSE IF (kpds(3).EQ.151)
THEN
2062 ELSE IF (kpds(3).EQ.160)
THEN
2066 ELSE IF (kpds(3).EQ.161)
THEN
2070 ELSE IF (kpds(3).EQ.163)
THEN
2074 ELSE IF (kpds(3).EQ.170)
THEN
2078 ELSE IF (kpds(3).EQ.171)
THEN
2082 ELSE IF (kpds(3).EQ.172)
THEN
2086 ELSE IF (kpds(3).EQ.173)
THEN
2090 ELSE IF (kpds(3).EQ.174)
THEN
2094 ELSE IF (kpds(3).EQ.175)
THEN
2098 ELSE IF (kpds(3).EQ.176)
THEN
2102 ELSE IF (kpds(3).EQ.179)
THEN
2106 ELSE IF (kpds(3).EQ.180)
THEN
2110 ELSE IF (kpds(3).EQ.181)
THEN
2114 ELSE IF (kpds(3).EQ.182)
THEN
2118 ELSE IF (kpds(3).EQ.183)
THEN
2122 ELSE IF (kpds(3).EQ.184)
THEN
2126 ELSE IF (kpds(3).EQ.187)
THEN
2130 ELSE IF (kpds(3).EQ.188)
THEN
2134 ELSE IF (kpds(3).EQ.189)
THEN
2138 ELSE IF (kpds(3).EQ.190)
THEN
2142 ELSE IF (kpds(3).EQ.192)
THEN
2146 ELSE IF (kpds(3).EQ.193)
THEN
2150 ELSE IF (kpds(3).EQ.194)
THEN
2154 ELSE IF (kpds(3).EQ.195)
THEN
2158 ELSE IF (kpds(3).EQ.196)
THEN
2162 ELSE IF (kpds(3).EQ.197)
THEN
2166 ELSE IF (kpds(3).EQ.198)
THEN
2170 ELSE IF (kpds(3).EQ.199)
THEN
2174 ELSE IF (iand(kpds(4),128).EQ.128)
THEN
2178 ELSE IF (kpds(3).GE.200)
THEN
2179 IF (kpds(3).EQ.200)
THEN
2182 ELSE IF (kpds(3).EQ.201)
THEN
2185 ELSE IF (kpds(3).EQ.202)
THEN
2188 ELSE IF (kpds(3).EQ.203.OR.kpds(3).EQ.205)
THEN
2191 ELSE IF (kpds(3).EQ.204)
THEN
2194 ELSE IF (kpds(3).EQ.206)
THEN
2197 ELSE IF (kpds(3).EQ.207)
THEN
2200 ELSE IF (kpds(3).EQ.208)
THEN
2203 ELSE IF (kpds(3).EQ.209)
THEN
2206 ELSE IF (kpds(3).EQ.210)
THEN
2209 ELSE IF (kpds(3).EQ.211)
THEN
2212 ELSE IF (kpds(3).EQ.212)
THEN
2215 ELSE IF (kpds(3).EQ.213)
THEN
2218 ELSE IF (kpds(3).EQ.214)
THEN
2221 ELSE IF (kpds(3).EQ.215)
THEN
2224 ELSE IF (kpds(3).EQ.216)
THEN
2227 ELSE IF (kpds(3).EQ.217)
THEN
2230 ELSE IF (kpds(3).EQ.218)
THEN
2233 ELSE IF (kpds(3).EQ.219)
THEN
2236 ELSE IF (kpds(3).EQ.220)
THEN
2239 ELSE IF (kpds(3).EQ.221)
THEN
2242 ELSE IF (kpds(3).EQ.222)
THEN
2245 ELSE IF (kpds(3).EQ.223)
THEN
2248 ELSE IF (kpds(3).EQ.224)
THEN
2251 ELSE IF (kpds(3).EQ.225)
THEN
2254 ELSE IF (kpds(3).EQ.226)
THEN
2257 ELSE IF (kpds(3).EQ.227)
THEN
2260 ELSE IF (kpds(3).EQ.228)
THEN
2263 ELSE IF (kpds(3).EQ.229)
THEN
2266 ELSE IF (kpds(3).EQ.230)
THEN
2269 ELSE IF (kpds(3).EQ.231)
THEN
2272 ELSE IF (kpds(3).EQ.232)
THEN
2275 ELSE IF (kpds(3).EQ.233)
THEN
2278 ELSE IF (kpds(3).EQ.234)
THEN
2281 ELSE IF (kpds(3).EQ.235)
THEN
2284 ELSE IF (kpds(3).EQ.236)
THEN
2287 ELSE IF (kpds(3).EQ.237)
THEN
2290 ELSE IF (kpds(3).EQ.238)
THEN
2293 ELSE IF (kpds(3).EQ.239)
THEN
2296 ELSE IF (kpds(3).EQ.240)
THEN
2299 ELSE IF (kpds(3).EQ.241)
THEN
2302 ELSE IF (kpds(3).EQ.242)
THEN
2305 ELSE IF (kpds(3).EQ.243)
THEN
2308 ELSE IF (kpds(3).EQ.244)
THEN
2311 ELSE IF (kpds(3).EQ.245)
THEN
2314 ELSE IF (kpds(3).EQ.246)
THEN
2317 ELSE IF (kpds(3).EQ.247)
THEN
2320 ELSE IF (kpds(3).EQ.248)
THEN
2323 ELSE IF (kpds(3).EQ.249)
THEN
2326 ELSE IF (kpds(3).EQ.250)
THEN
2329 ELSE IF (kpds(3).EQ.251)
THEN
2332 ELSE IF (kpds(3).EQ.252)
THEN
2335 ELSE IF (kpds(3).EQ.253)
THEN
2338 ELSE IF (kpds(3).EQ.254)
THEN
2341 ELSE IF (iand(kpds(4),128).EQ.128)
THEN
2351 IF (kpds(1).EQ.34)
THEN
2352 IF (iand(kpds(4),128).EQ.128)
THEN
2361 IF (kpds(1).EQ.54)
THEN
2362 IF (iand(kpds(4),128).EQ.128)
THEN
2371 IF (kpds(1).EQ.58)
THEN
2372 IF (kpds(3).EQ.220.OR.kpds(3).EQ.221)
THEN
2381 IF (kpds(3).EQ.223)
THEN
2390 IF (iand(kpds(4),128).EQ.128)
THEN
2399 IF (kpds(1).EQ.74)
THEN
2400 IF (iand(kpds(4),128).EQ.128)
THEN
2407 IF (kpds(1).EQ.98)
THEN
2408 IF (kpds(3).GE.1.AND.kpds(3).LE.12)
THEN
2409 IF (kpds(3).GE.5.AND.kpds(3).LE.8)
THEN
2415 CALL fi637(j,kpds,kgds,kret)
2416 IF(kret.NE.0)
GO TO 810
2422 ELSE IF (kpds(3).GE.13.AND.kpds(3).LE.16)
THEN
2425 CALL fi637(j,kpds,kgds,kret)
2426 IF(kret.NE.0)
GO TO 810
2431 ELSE IF (iand(kpds(4),128).EQ.128)
THEN
2439 IF (iand(kpds(4),128).EQ.128)
THEN
2452 CALL fi637 (j,kpds,kgds,kret)
2453 IF(kret.NE.0)
GO TO 801
2481 j = kgds(2) * kgds(3)
2484 IF (kpds(3).EQ.211) kret = 0
2514 LOGICAL*1 KBMS(NPTS)
2517 CALL gbytesc(msga,ichk,nskp,1,0,npts)
2685 SUBROUTINE fi635(MSGA,KPTR,KPDS,KGDS,KBMS,DATA,KRET)
2697 INTEGER,
ALLOCATABLE:: KSAVE(:)
2711 kptr(8) = kptr(9) + (kptr(2)*8) + (kptr(3)*8) + (kptr(4)*8)
2712 * + (kptr(5)*8) + 24
2715 CALL gbytec(msga,kptr(14),kptr(8),4)
2716 kptr(8) = kptr(8) + 4
2718 CALL gbytec(msga,kptr(15),kptr(8),4)
2719 kptr(8) = kptr(8) + 4
2720 kend = kptr(9) + (kptr(2)*8) + (kptr(3)*8) + (kptr(4)*8)
2721 * + (kptr(5)*8) + kptr(6) * 8 - kptr(15)
2725 CALL gbytec (msga,ksign,kptr(8),1)
2726 kptr(8) = kptr(8) + 1
2728 CALL gbytec (msga,kscale,kptr(8),15)
2729 kptr(8) = kptr(8) + 15
2730 IF (ksign.GT.0)
THEN
2738 call gbytec(msga,jsgn,kptr(8),1)
2739 call gbytec(msga,jexp,kptr(8)+1,7)
2740 call gbytec(msga,ifr,kptr(8)+8,24)
2741 kptr(8) = kptr(8) + 32
2751 ELSE IF (jexp.EQ.0.AND.ifr.EQ.0)
THEN
2754 refnce = float(ifr) * 16.0 ** (jexp - 64 - 6)
2755 IF (jsgn.NE.0) refnce = - refnce
2760 CALL gbytec (msga,kbits,kptr(8),8)
2761 kptr(8) = kptr(8) + 8
2771 IF (iand(kptr(14),1).EQ.0)
THEN
2775 CALL gbytec (msga,koctet,kptr(8),16)
2776 kptr(8) = kptr(8) + 16
2779 CALL gbytec (msga,kxflag,kptr(8),8)
2781 kptr(8) = kptr(8) + 8
2782 IF (iand(kxflag,16).EQ.0)
THEN
2789 IF (iand(kxflag,32).EQ.0)
THEN
2796 IF (iand(kxflag,64).EQ.0)
THEN
2805 CALL gbytec (msga,nr,kptr(8),16)
2806 kptr(8) = kptr(8) + 16
2809 CALL gbytec (msga,nc,kptr(8),16)
2810 kptr(8) = kptr(8) + 16
2813 CALL gbytec (msga,nrv,kptr(8),8)
2814 kptr(8) = kptr(8) + 8
2817 CALL gbytec (msga,nc1,kptr(8),8)
2818 kptr(8) = kptr(8) + 8
2821 CALL gbytec (msga,ncv,kptr(8),8)
2822 kptr(8) = kptr(8) + 8
2825 CALL gbytec (msga,nc2,kptr(8),8)
2826 kptr(8) = kptr(8) + 8
2829 CALL gbytec (msga,kphys1,kptr(8),8)
2830 kptr(8) = kptr(8) + 8
2833 CALL gbytec (msga,kphys2,kptr(8),8)
2834 kptr(8) = kptr(8) + 8
2837 IF (kbits.EQ.0)
THEN
2839 scal10 = 10.0 ** kpds(22)
2840 scal10 = 1.0 / scal10
2841 refn10 = refnce * scal10
2843 DO 210 i = 1, kentry
2852 knr = (kend - kptr(8)) / kbits
2859 nrbyte = kptr(6) - 11
2861 nrbits = nrbyte * 8 - kptr(15)
2863 kentry = nrbits / kbits
2865 ALLOCATE(ksave(kentry))
2873 IF (iand(kptr(14),8).EQ.0)
THEN
2875 IF (iand(kptr(14),4).EQ.0)
THEN
2877 IF (iand(kptr(14),1).EQ.0)
THEN
2880 ELSE IF (iand(kptr(14),1).NE.0)
THEN
2882 IF (kbds(17).EQ.0)
THEN
2884 IF (kbds(14).EQ.0)
THEN
2886 IF (kbds(16).EQ.0)
THEN
2889 ELSE IF (kbds(16).NE.0)
THEN
2893 ELSE IF (kbds(14).NE.0)
THEN
2895 IF (kbds(16).EQ.0)
THEN
2898 ELSE IF (kbds(16).NE.0)
THEN
2903 ELSE IF (kbds(17).NE.0)
THEN
2905 IF (kbds(14).EQ.0)
THEN
2907 IF (kbds(16).EQ.0)
THEN
2910 ELSE IF (kbds(16).NE.0)
THEN
2914 ELSE IF (kbds(14).NE.0)
THEN
2916 IF (kbds(16).EQ.0)
THEN
2919 ELSE IF (kbds(16).NE.0)
THEN
2926 ELSE IF (iand(kptr(14),4).NE.0)
THEN
2928 IF (iand(kptr(14),1).EQ.0)
THEN
2930 ELSE IF (iand(kptr(14),1).NE.0)
THEN
2932 IF (kbds(17).EQ.0)
THEN
2934 IF (kbds(14).EQ.0)
THEN
2936 IF (kbds(16).EQ.0)
THEN
2939 ELSE IF (kbds(16).NE.0)
THEN
2944 CALL fi636 (
DATA,msga,kbms,
2945 * refnce,kptr,kpds,kgds)
2947 ELSE IF (kbds(14).NE.0)
THEN
2949 IF (kbds(16).EQ.0)
THEN
2952 ELSE IF (kbds(16).NE.0)
THEN
2956 CALL fi636 (
DATA,msga,kbms,
2957 * refnce,kptr,kpds,kgds)
2960 ELSE IF (kbds(17).NE.0)
THEN
2962 IF (kbds(14).EQ.0)
THEN
2964 IF (kbds(16).EQ.0)
THEN
2967 ELSE IF (kbds(16).NE.0)
THEN
2971 ELSE IF (kbds(14).NE.0)
THEN
2973 IF (kbds(16).EQ.0)
THEN
2976 ELSE IF (kbds(16).NE.0)
THEN
2984 ELSE IF (iand(kptr(14),8).NE.0)
THEN
2986 IF (iand(kptr(14),4).EQ.0)
THEN
2988 IF (iand(kptr(14),1).EQ.0)
THEN
2991 ELSE IF (iand(kptr(14),1).NE.0)
THEN
2993 IF (kbds(17).EQ.0)
THEN
2995 IF (kbds(14).EQ.0)
THEN
2997 IF (kbds(16).EQ.0)
THEN
3000 ELSE IF (kbds(16).NE.0)
THEN
3004 ELSE IF (kbds(14).NE.0)
THEN
3006 IF (kbds(16).EQ.0)
THEN
3009 ELSE IF (kbds(16).NE.0)
THEN
3014 ELSE IF (kbds(17).NE.0)
THEN
3016 IF (kbds(14).EQ.0)
THEN
3018 IF (kbds(16).EQ.0)
THEN
3021 ELSE IF (kbds(16).NE.0)
THEN
3025 ELSE IF (kbds(14).NE.0)
THEN
3027 IF (kbds(16).EQ.0)
THEN
3030 ELSE IF (kbds(16).NE.0)
THEN
3037 ELSE IF (iand(kptr(14),4).NE.0)
THEN
3040 IF (iand(kptr(14),1).EQ.0)
THEN
3042 ELSE IF (iand(kptr(14),1).NE.0)
THEN
3044 IF (kbds(17).EQ.0)
THEN
3046 IF (kbds(14).EQ.0)
THEN
3048 IF (kbds(16).EQ.0)
THEN
3051 ELSE IF (kbds(16).NE.0)
THEN
3055 ELSE IF (kbds(14).NE.0)
THEN
3057 IF (kbds(16).EQ.0)
THEN
3060 ELSE IF (kbds(16).NE.0)
THEN
3065 ELSE IF (kbds(17).NE.0)
THEN
3067 IF (kbds(14).EQ.0)
THEN
3069 IF (kbds(16).EQ.0)
THEN
3072 ELSE IF (kbds(16).NE.0)
THEN
3076 ELSE IF (kbds(14).NE.0)
THEN
3078 IF (kbds(16).EQ.0)
THEN
3081 ELSE IF (kbds(16).NE.0)
THEN
3090 IF(
ALLOCATED(ksave))
DEALLOCATE(ksave)
3099 scal10 = 10.0 ** kpds(22)
3100 scal10 = 1.0 / scal10
3101 IF (kpds(3).EQ.23.OR.kpds(3).EQ.24.OR.kpds(3).EQ.26.
3102 * or.kpds(3).EQ.63.OR.kpds(3).EQ.64)
THEN
3103 IF (kpds(3).EQ.26)
THEN
3105 ELSE IF (kpds(3).EQ.63.OR.kpds(3).EQ.64)
THEN
3110 CALL gbytesc (msga,ksave,kptr(8),kbits,0,knr)
3111 kptr(8) = kptr(8) + kbits * knr
3114 DO 4001 i = 1, kentry
3116 DATA(i) = (refnce+float(ksave(ii))*scale)*scal10
3125 ELSE IF (kpds(3).EQ.21.OR.kpds(3).EQ.22.OR.kpds(3).EQ.25.
3126 * or.kpds(3).EQ.61.OR.kpds(3).EQ.62)
THEN
3127 CALL gbytesc (msga,ksave,kptr(8),kbits,0,knr)
3130 DO 4011 i = 1, kentry
3132 DATA(i) = (refnce + float(ksave(ii)) * scale) * scal10
3138 IF (kpds(3).EQ.25)
THEN
3140 ELSE IF (kpds(3).EQ.61.OR.kpds(3).EQ.62)
THEN
3145 lastp = kentry - kadd
3146 DO 4012 i = lastp+1, kentry
3147 DATA(i) =
DATA(lastp)
3150 CALL gbytesc (msga,ksave,kptr(8),kbits,0,knr)
3153 DO 500 i = 1, kentry
3155 DATA(i) = (refnce + float(ksave(ii)) * scale) * scal10
3169 call gbytec(msga,jsgn,kptr(8),1)
3170 call gbytec(msga,jexp,kptr(8)+1,7)
3171 call gbytec(msga,ifr,kptr(8)+8,24)
3172 kptr(8) = kptr(8) + 32
3179 ELSE IF (jexp.EQ.0.AND.ifr.EQ.0)
THEN
3182 realkk = float(ifr) * 16.0 ** (jexp - 64 - 6)
3183 IF (jsgn.NE.0) realkk = -realkk
3186 CALL gbytesc (msga,ksave,kptr(8),kbits,0,knr)
3188 DO 6000 i = 1, kentry
3189 DATA(i+1) = refnce + float(ksave(i)) * scale
3192 IF(
ALLOCATED(ksave))
DEALLOCATE(ksave)
3330 SUBROUTINE fi636 (DATA,MSGA,KBMS,REFNCE,KPTR,KPDS,KGDS)
3338 character(len=1) BMAP2(1000000)
3340 INTEGER KBIT,IFOVAL,ISOVAL
3341 INTEGER KPDS(*),KGDS(*)
3354 ibds = kptr(2) + kptr(3) + kptr(4) + kptr(5)
3362 CALL gbytec (msga,isign,jptr+32,1)
3363 CALL gbytec (msga,kbds(11),jptr+33,15)
3364 IF (isign.GT.0)
THEN
3365 kbds(11) = - kbds(11)
3370 call gbytec(msga,jsgn,kptr(8),1)
3371 call gbytec(msga,jexp,kptr(8)+1,7)
3372 call gbytec(msga,ifr,kptr(8)+8,24)
3375 ELSE IF (jexp.EQ.0.AND.ifr.EQ.0)
THEN
3378 refnce = float(ifr) * 16.0 ** (jexp - 64 - 6)
3379 IF (jsgn.NE.0) refnce = - refnce
3383 CALL gbytec(msga,kbds(13),jptr+80,8)
3387 CALL gbytec (msga,kbds(1),jptr,16)
3391 CALL gbytec (msga,kflag,jptr,8)
3393 IF (iand(kflag,32).NE.0)
THEN
3398 IF (iand(kflag,16).NE.0)
THEN
3403 IF (iand(kflag,64).NE.0)
THEN
3410 CALL gbytec (msga,kbds(2),jptr,16)
3414 CALL gbytec (msga,kbds(3),jptr,16)
3418 CALL gbytec (msga,kbds(4),jptr,16)
3426 IF (kbds(14).NE.0)
THEN
3428 jptr = jptr + (kbds(3) * 8)
3435 kbds(7) = kbds(9) + kbds(1) * 8 - 8
3438 kbds(8) = kbds(9) + kbds(2) * 8 - 8
3461 IF (kbds(14).EQ.0)
THEN
3463 IF (kgds(2).EQ.65535)
THEN
3464 IF (kgds(20).EQ.255)
THEN
3468 lp = kptr(9) + kptr(2)*8 + kptr(3)*8 + kgds(20)*8 - 8
3471 DO 2000 jz = 1, kgds(3)
3473 CALL gbytec (msga,number,lp,16)
3477 DO 1500 jq = 1, number
3479 CALL sbytec (bmap2,1,jt,1)
3481 CALL sbytec (bmap2,0,jt,1)
3488 IF (iand(kgds(11),32).EQ.0)
THEN
3503 CALL sbytec (bmap2,1,ij,1)
3505 CALL sbytec (bmap2,0,ij,1)
3518 scale2 = 2.0**kbds(11)
3519 scal10 = 10.0**kpds(22)
3521 DO 1000 i = 1, kptr(10)
3527 IF (kbds(14).NE.0)
THEN
3528 CALL gbytec (msga,kbit,kbds(6),1)
3530 CALL gbytec (bmap2,kbit,kbds(6),1)
3533 kbds(6) = kbds(6) + 1
3537 CALL gbytec (msga,ifoval,kbds(7),kbds(13))
3538 kbds(7) = kbds(7) + kbds(13)
3541 CALL gbytec (msga,kbds(15),kbds(5),8)
3542 kbds(5) = kbds(5) + 8
3549 IF (kbds(15).EQ.0)
THEN
3555 CALL gbytec (msga,isoval,kbds(8),kbds(15))
3556 kbds(8) = kbds(8) + kbds(15)
3558 DATA(i) = (refnce + (float(ifoval + isoval) *
3608 IF (iand(kpds(4),128).EQ.0)
RETURN
3612 IF (kgds(2).EQ.65535)
THEN
3616 i = kgds(2) * kgds(3)
3620 IF (kpds(3).GE.21.AND.kpds(3).LE.26)
THEN
3624 ELSE IF (kpds(3).GE.37.AND.kpds(3).LE.44)
THEN
3628 ELSE IF (kpds(3).EQ.50)
THEN
3632 ELSE IF (kpds(3).GE.61.AND.kpds(3).LE.64)
THEN
3639 ELSE IF (kpds(1).EQ.98)
THEN
3641 IF (kpds(3).GE.1.AND.kpds(3).LE.16)
THEN
3643 IF (kpds(3) .NE. 2)
THEN
3645 ELSEIF (i .NE. 10512)
THEN
3657 ELSE IF (kpds(1).EQ.74)
THEN
3659 IF (kpds(3).GE.25.AND.kpds(3).LE.26)
THEN
3670 ELSE IF (kpds(1).EQ.54)
THEN
3676 ELSE IF (kpds(1).EQ.34)
THEN
3682 ELSE IF (kpds(1).EQ.58)
THEN
3683 IF (kpds(3).GE.37.AND.kpds(3).LE.44)
THEN
3687 ELSE IF (kpds(3).GE.220.AND.kpds(3).LE.221)
THEN
3691 ELSE IF (kpds(3).EQ.223)
THEN
3702 ELSE IF (kpds(1).EQ.7)
THEN
3704 IF (kpds(3).GE.1.AND.kpds(3).LE.6)
THEN
3708 ELSE IF (kpds(3).EQ.8)
THEN
3712 ELSE IF (kpds(3).EQ.10)
THEN
3716 ELSE IF (kpds(3).GE.11.AND.kpds(3).LE.18)
THEN
3720 ELSE IF (kpds(3).GE.27.AND.kpds(3).LE.30)
THEN
3724 ELSE IF (kpds(3).GE.33.AND.kpds(3).LE.34)
THEN
3728 ELSE IF (kpds(3).GE.37.AND.kpds(3).LE.45)
THEN
3732 ELSE IF (kpds(3).EQ.53)
THEN
3736 ELSE IF (kpds(3).GE.55.AND.kpds(3).LE.56)
THEN
3740 ELSE IF (kpds(3).GE.67.AND.kpds(3).LE.77)
THEN
3744 ELSE IF (kpds(3).GE.85.AND.kpds(3).LE.88)
THEN
3748 ELSE IF (kpds(3).GE.90.AND.kpds(3).LE.99)
THEN
3752 ELSE IF (kpds(3).EQ.100.OR.kpds(3).EQ.101)
THEN
3756 ELSE IF (kpds(3).GE.103.AND.kpds(3).LE.107)
THEN
3760 ELSE IF (kpds(3).EQ.110)
THEN
3764 ELSE IF (kpds(3).EQ.120)
THEN
3768 ELSE IF (kpds(3).GE.122.AND.kpds(3).LE.130)
THEN
3772 ELSE IF (kpds(3).EQ.132)
THEN
3776 ELSE IF (kpds(3).EQ.138)
THEN
3780 ELSE IF (kpds(3).EQ.139)
THEN
3784 ELSE IF (kpds(3).EQ.140)
THEN
3788 ELSE IF (kpds(3).GE.145.AND.kpds(3).LE.148)
THEN
3792 ELSE IF (kpds(3).EQ.150.OR.kpds(3).EQ.151)
THEN
3796 ELSE IF (kpds(3).EQ.160.OR.kpds(3).EQ.161)
THEN
3800 ELSE IF (kpds(3).EQ.163)
THEN
3804 ELSE IF (kpds(3).GE.170.AND.kpds(3).LE.176)
THEN
3808 ELSE IF (kpds(3).GE.179.AND.kpds(3).LE.184)
THEN
3812 ELSE IF (kpds(3).EQ.187)
THEN
3816 ELSE IF (kpds(3).EQ.188)
THEN
3820 ELSE IF (kpds(3).EQ.189)
THEN
3824 ELSE IF (kpds(3).EQ.190.OR.kpds(3).EQ.192)
THEN
3828 ELSE IF (kpds(3).GE.193.AND.kpds(3).LE.199)
THEN
3832 ELSE IF (kpds(3).GE.200.AND.kpds(3).LE.254)
THEN
subroutine gbytec(IN, IOUT, ISKIP, NBYTE)
Wrapper for gbytesc() limiting NSKIP and N to 0 and 1.
subroutine gbytesc(IN, IOUT, ISKIP, NBYTE, NSKIP, N)
Extract arbitrary size values from a packed bit string, right justifying each value in the unpacked a...
subroutine sbytec(OUT, IN, ISKIP, NBYTE)
This is a wrapper for sbytesc()
subroutine w3fi01(LW)
Determines the number of bytes in a full word for the particular machine (IBM or cray).
subroutine fi632(MSGA, KPTR, KPDS, KRET)
Gather info from product definition sec.
subroutine fi634(MSGA, KPTR, KPDS, KGDS, KBMS, KRET)
Extract or generate bit map for output.
subroutine fi631(MSGA, KPTR, KPDS, KRET)
Find 'grib' chars & reset pointers.
subroutine fi637(J, KPDS, KGDS, KRET)
Grib grid/size test.
subroutine fi635(MSGA, KPTR, KPDS, KGDS, KBMS, DATA, KRET)
Extract grib data elements from bds.
subroutine w3fi63(MSGA, KPDS, KGDS, KBMS, DATA, KPTR, KRET)
Unpack a GRIB (edition 1) field to the exact grid specified in the GRIB message, isolate the bit map,...
subroutine fi634x(NPTS, NSKP, MSGA, KBMS)
Extract bit map.
subroutine fi636(DATA, MSGA, KBMS, REFNCE, KPTR, KPDS, KGDS)
Process second order packing.
subroutine fi633(MSGA, KPTR, KGDS, KRET)
Extract info from grib-gds.
subroutine w3fi83(DATA, NPTS, FVAL1, FDIFF1, ISCAL2, ISC10, KPDS, KGDS)
Restore delta packed data to original values restore from boustrephedonic alignment.