;+ ; @file_comments ; ; ; @categories ; ; ; @param NUM ; ; ; @param RECSTART ; ; ; @returns ; ; ; @restrictions ; ; ; @examples ; ; ; @history ; ; ; @version ; $Id$ ;- FUNCTION scan_grib_nbits, num, recstart ; compile_opt idl2, strictarrsubs ; ; nrec = n_elements(recstart) nbits = bytarr(nrec) ; FOR i = 0L, nrec-1 DO BEGIN offset = recstart[i]+8 a = assoc(num, bytarr(1, /nozero), offset-1) sizepds = bit2int([binary(a[1]), binary(a[2]), binary(a[3])]) flag = binary(a[8]) gdsnotomitted = flag[0] bmsnotomitted = flag[1] ddd = bit2int([binary(a[27]), binary(a[28])], /checkneg) ; offset = offset+sizepds ; IF gdsnotomitted THEN BEGIN a = assoc(num, bytarr(1, /nozero), offset-1) sizedds = bit2int([binary(a[1]), binary(a[2]), binary(a[3])]) offset = offset+sizedds ENDIF ; IF bmsnotomitted THEN BEGIN a = assoc(num, bytarr(1, /nozero), offset-1) sizebms = bit2int([binary(a[1]), binary(a[2]), binary(a[3])]) offset = offset+sizebms ENDIF a = assoc(num, bytarr(1, /nozero), offset-1) nbits[i] = a[11] ENDFOR ; RETURN, nbits END