Reconsider the previous examples, where now there are different measured uncertainties in the pressure at each pressure level. The uncertainties are different for each day in the first 20 days and then are the same each day for the last 11 days. There are also measured uncertainties in the vertical component of the wind vector that vary over latitude, longitudes, and pressure levels, but are the same for each day.
The uncertainties in the pressures for the first 20 days are specified in an array, U1, with the dimensions of (i.e., pressure, day of month). The uncertainties in the pressures for the last 11 days are specified in an array, U2, containing 6 values (uncertainties over pressure). The uncertainties in the vertical wind field are specified in an array, U3, with the dimensions of (i.e., pressure, latitude, longitude). If the indices start numbering from 0, then we have the following auxiliary record fields:
In IDL, then, code to define the auxiliary information for this data object would look like this (using the basic structure as already given in Section 3.2.2):
; set up the relevant elements in the OBJDESC record RECTYPE = long(1) NDIM0 = long(1) NDIM1 = long(2) NDIM2 = long(2) NDIM3 = long(0) NAUX = long(3) . . . writeu,log_file_unit, RECTYPE, vartype, reserved $ , NDIM0, NDIM1, NDIM2, NDIM3, reserved, isource $ , reserved, reserved, naudit, ninfo, ncomms, comcod $ , reserved, nbads, reserved, nprocs, reserved, npacks $ , reserved, NAUX, cmpnum, reserved, reserved, reserved
; set up the dimensional information, bad data values, ; packing information, and processing information . . .
; set up the relevant elements for the first AUXSPEC ; record: pressure uncertainties for the first 20 days RECTYPE = long(80) ; first of three record groups RECSORT = long(0) ; there is only one dimension with uncertainties: ; pressure NUMREF = long(1) ; the uncertainties vary with pressure and time, ; therefore, AUXVAL.AVALS has two dimensions NUMAPP = long(2) ; this covers the entire spatial range of the data and all ; of the data components for the first 20 days START = long( [0, 0, 0, 0, 0] ) ENDIT = long( [-1, -1, -1, -1, 19] ) ; the uncertainties are floating-point numbers AUXFMT = long(67108864) ; the quantities are measured uncertainties AUXTYPE = long(262144) ; the units are in millibars UNITS = long(1081593921) ; there are no supplemental values NUMSUP = long(0)
write,log_file_unit, RECTYPE, RECSORT, NUMREF, NUMAPP $ , START, ENDIT, AUXFMT, AUXTYPE, UNITS, NUMSUP $ , reserved, reserved
; set up the indices in the AUXRANGE record RECTYPE = long(81) ; first of three record groups RECSORT = long(0) ; the uncertainties refer to pressure (the third index ; in the Level 1 dimensions REFLEV = long(1) REFNDEX = long(2) ; the uncertainties vary over pressure (the third index ; in the Level 1 dimensions) and time (the first index ; in the Level 2 dimensions) APPLEV = long( [1, 2] ) APPNDEX = long( [2, 0] )
write,log_file_unit, RECTYPE, RECSORT, REFLEV, REFNDEX $ , APPLEV, APPNDEX, reserved, reserved
; set up the auxiliary information in the AUXVAL record RECTYPE = long(82) ; first of three record groups RECSORT = long(0) AVALS = U1
write,log_file_unit, RECTYPE, RECSORT, AVALS
; set up the relevant elements for the second AUXSPEC ; record: pressure uncertainties for the last 11 days RECTYPE = long(80) ; second of three record groups RECSORT = long(10) ; there is only one dimension with uncertainties: ; pressure NUMREF = long(1) ; the uncertainties vary only with pressure, therefore, ; AUXVAL.AVALS has one dimension NUMAPP = long(1) ; this covers the entire spatial range of the data and all ; of the data components for the last 11 days START = long( [0, 0, 0, 0, 20] ) ENDIT = long( [-1, -1, -1, -1, -1] ) ; the uncertainties are floating-point numbers AUXFMT = long(67108864) ; the quantities are measured uncertainties AUXTYPE = long(262144) ; the units are in millibars UNITS = long(1081593921) ; there are no supplemental values NUMSUP = long(0)
write,log_file_unit, RECTYPE, RECSORT, NUMREF, NUMAPP $ , START, ENDIT, AUXFMT, AUXTYPE, UNITS, NUMSUP $ , reserved, reserved
; set up the indices in the AUXRANGE record RECTYPE = long(81) ; second of three record groups RECSORT = long(10) ; the uncertainties refer to pressure (the third ; the third index in the Level 1 dimensions REFLEV = long(1) REFNDEX = long(2) ; the uncertainties vary over pressure (the third index ; in the Level 1 dimensions) APPLEV = long(1) APPNDEX = long(2)
write,log_file_unit, RECTYPE, RECSORT, REFLEV, REFNDEX $ , APPLEV, APPNDEX, reserved, reserved
; set up the auxiliary information in the AUXVAL record RECTYPE = long(82) ; second of three record groups RECSORT = long(10) AVALS = U2
write,log_file_unit, RECTYPE, RECSORT, AVALS
; set up the relevant elements for the third AUXSPEC ; record: vertical wind uncertainties RECTYPE = long(80) ; third of three record groups RECSORT = long(20) ; there is only one dimension with uncertainties: ; vertical wind component NUMREF = long(1) ; the uncertainties vary with pressure, latitude, and ; longitude, therefore, AUXVAL.AVALS has three dimensions NUMAPP = long(3) ; this covers the entire spatial range of the data and all ; days for the vertical wind component START = long( [2, 0, 0, 0, 0] ) ENDIT = long( [2, -1, -1, -1, -1] ) ; the uncertainties are floating-point numbers AUXFMT = long(67108864) ; the quantities are measured uncertainties AUXTYPE = long(262144) ; the units are in cm/s UNITS = long(1616347137) ; there are no supplemental values NUMSUP = long(0)
write,log_file_unit, RECTYPE, RECSORT, NUMREF, NUMAPP $ , START, ENDIT, AUXFMT, AUXTYPE, UNITS, NUMSUP $ , reserved, reserved
; set up the indices in the AUXRANGE record RECTYPE = long(81) ; third of three record groups RECSORT = long(20) ; the uncertainties refer to vertical wind, which is ; the third index in the Level 0 dimensions REFLEV = long(0) REFNDEX = long(2) ; the uncertainties vary over pressure (the third index ; in the Level 1 dimensions), latitude (the second index ; in the Level 1 dimensions), and longitude (the first ; index in the Level 1 dimensions) APPLEV = long( [1, 1, 1] ) APPNDEX = long( [2, 1, 0] )
write,log_file_unit, RECTYPE, RECSORT, REFLEV, REFNDEX $ , APPLEV, APPNDEX, reserved, reserved
; set up the auxiliary information in the AUXVAL record RECTYPE = long(82) ; third of three record groups RECSORT = long(20) AVALS = U3
write,log_file_unit, RECTYPE, RECSORT, AVALS