;+ ; @file_comments ; ; ; @categories ; ; ; @param NUM ; ; ; @param RECSTART ; ; ; @returns ; ; ; @restrictions ; ; ; @examples ; ; ; @history ; ; ; @version ; $Id$ ;- FUNCTION read_grib_pds, num, recstart ; ; compile_opt idl2, strictarrsubs ; offset = recstart+8 a = assoc(num, bytarr(1, /nozero), offset-1) ; sizepds = bit2int([binary(a[1]), binary(a[2]), binary(a[3])]) ; paramtableversion = (a[4])[0] ; centerid = (a[5])[0] ; procid = (a[6])[0] ; gridid = (a[7])[0] ; flag = binary(a[8]) gdsnotomitted = flag[0] bmsnotomitted = flag[1] ; paramunitid = (a[9])[0] ; levtype = (a[10])[0] levalue1 = (a[11])[0] levalue2 = (a[12])[0] ; year = (a[13])[0] month = (a[14])[0] day = (a[15])[0] hour = (a[16])[0] minute = (a[17])[0] timeunit = (a[18])[0] p1 = (a[19])[0] p2 = (a[20])[0] timerange = (a[21])[0] n1 = (a[22])[0] n2 = (a[23])[0] nbmiss = (a[24])[0] century = (a[25])[0] ; subcenterid = (a[26])[0] ; d = bit2int([binary(a[27]), binary(a[28])], /checkneg) ;......... RETURN, {size:sizepds, gdsnotomitted:gdsnotomitted, bmsnotomitted:bmsnotomitted, d:d} END