MIP_NL__2P version 4

MIP_NL__2P_v4

root type

binary record
idfield namedefinition
0mph
ascii record "MPH"size: 1247
1sph
ascii record "MIP_NL__2P_SPH_v2"size: 848
2dsd
ascii array[dim_0]
dim_0: $num_dsd
ascii record "DSD"size: 280
3summary_quality_ads
binary array[dim_0]
Summary Quality ADS

dim_0: $num_dsr[0]
binary record "MIP_NL__2P_ADSR_summary_quality"

available: $ds_available[0] != 0

bit offset: $ds_offset[0]
4scan_geolocation_ads
binary array[dim_0]
Scan Geolocation ADS

dim_0: $num_dsr[1]
binary record "MIP_NL__2P_ADSR_geolocation_v1"size: 100

available: $ds_available[1] != 0

bit offset: $ds_offset[1]
5dataset_structure_ads
binary array[dim_0]
Structure ADS

dim_0: $num_dsr[2]
binary record "MIP_NL__2P_ADSR_structure_v3"size: 1020

available: $ds_available[2] != 0

bit offset: $ds_offset[2]
6scan_information_mds
binary array[dim_0]
Scan Information MDS

dim_0: $num_dsr[3]
binary record "MIP_NL__2P_MDSR_info_v2"

available: $ds_available[3] != 0

bit offset: $ds_offset[3]
7pt_retrieval_mds
binary array[dim_0]
p,T and Height Correction Profiles MDS

dim_0: $num_dsr[4]
binary record "MIP_NL__2P_MDSR_corr_v2"

available: $ds_available[4] != 0

bit offset: $ds_offset[4]
8h2o_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[5]
binary record "MIP_NL__2P_MDSR_vmr1_v2"

available: $ds_available[5] != 0

bit offset: $ds_offset[5]
9o3_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[6]
binary record "MIP_NL__2P_MDSR_vmr2_v2"

available: $ds_available[6] != 0

bit offset: $ds_offset[6]
10hno3_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[7]
binary record "MIP_NL__2P_MDSR_vmr3_v2"

available: $ds_available[7] != 0

bit offset: $ds_offset[7]
11ch4_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[8]
binary record "MIP_NL__2P_MDSR_vmr4_v2"

available: $ds_available[8] != 0

bit offset: $ds_offset[8]
12n2o_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[9]
binary record "MIP_NL__2P_MDSR_vmr5_v2"

available: $ds_available[9] != 0

bit offset: $ds_offset[9]
13no2_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[10]
binary record "MIP_NL__2P_MDSR_vmr6_v2"

available: $ds_available[10] != 0

bit offset: $ds_offset[10]
14f11_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[11]
binary record "MIP_NL__2P_MDSR_vmr7_v2"

available: $ds_available[11] != 0

bit offset: $ds_offset[11]
15clno_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[12]
binary record "MIP_NL__2P_MDSR_vmr8_v2"

available: $ds_available[12] != 0

bit offset: $ds_offset[12]
16n2o5_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[13]
binary record "MIP_NL__2P_MDSR_vmr9_v2"

available: $ds_available[13] != 0

bit offset: $ds_offset[13]
17f12_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[14]
binary record "MIP_NL__2P_MDSR_vmr10_v2"

available: $ds_available[14] != 0

bit offset: $ds_offset[14]
18cof2_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[15]
binary record "MIP_NL__2P_MDSR_vmr11_v2"

available: $ds_available[15] != 0

bit offset: $ds_offset[15]
19ccl4_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[16]
binary record "MIP_NL__2P_MDSR_vmr12_v2"

available: $ds_available[16] != 0

bit offset: $ds_offset[16]
20hcn_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[17]
binary record "MIP_NL__2P_MDSR_vmr13_v2"

available: $ds_available[17] != 0

bit offset: $ds_offset[17]
21f14_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[18]
binary record "MIP_NL__2P_MDSR_vmr14_v2"

available: $ds_available[18] != 0

bit offset: $ds_offset[18]
22f22_retrieval_mds
binary array[dim_0]
dim_0: $num_dsr[19]
binary record "MIP_NL__2P_MDSR_vmr15_v2"

available: $ds_available[19] != 0

bit offset: $ds_offset[19]
23continuum_and_offset_mds
binary array[dim_0]
Continuum Contribution and Radiance Offset MDS

dim_0: $num_dsr[20]
binary record "MIP_NL__2P_MDSR_cont"

available: $ds_available[20] != 0

bit offset: $ds_offset[20]
24pcd_information_ads
binary array[dim_0]
PCD Information of Individual Scans ADS

dim_0: $num_dsr[21]
binary record "MIP_NL__2P_ADSR_pcd"

available: $ds_available[21] != 0

bit offset: $ds_offset[21]
25microwindow_occupation_ads
binary array[dim_0]
Microwindows Occupation Matrices ADS

dim_0: $num_dsr[22]
binary record "MIP_NL__2P_ADSR_mw_v1"

available: $ds_available[22] != 0

bit offset: $ds_offset[22]
26residual_spectra_ads
binary array[dim_0]
Residual Spectra (mean values and standard deviation data) ADS

dim_0: $num_dsr[23]
binary record "MIP_NL__2P_ADSR_res"

available: $ds_available[23] != 0

bit offset: $ds_offset[23]
27processing_parameters_ads
binary array[dim_0]
Instrument and Processing Parameters ADS

dim_0: $num_dsr[24]
binary record "MIP_NL__2P_ADSR_params"

available: $ds_available[24] != 0

bit offset: $ds_offset[24]

detection rule

This product definition is applicable if a product matches the following rule:

bytes(/,0,8) == "PRODUCT=" and
bytes(/,9,10) == "MIP_NL__2P" and
bytes(/,95,23) == "PO-RS-MDA-GS-2009_5/B  "

product variables

namesizeinitialisation
num_dsd$num_dsd = int(/mph/num_dsd)
num_ds$num_ds = 25
ds_to_dsd_index[$num_ds]$ds_to_dsd_index[0] = index(/dsd, str(./ds_name) == "SUMMARY QUALITY ADS         ");
$ds_to_dsd_index[1] = index(/dsd, str(./ds_name) == "SCAN GEOLOCATION ADS        ");
$ds_to_dsd_index[2] = index(/dsd, str(./ds_name) == "DATASET STRUCTURE ADS       ");
$ds_to_dsd_index[3] = index(/dsd, str(./ds_name) == "SCAN INFORMATION MDS        ");
$ds_to_dsd_index[4] = index(/dsd, str(./ds_name) == "PT RETRIEVAL MDS            ");
$ds_to_dsd_index[5] = index(/dsd, str(./ds_name) == "H2O RETRIEVAL MDS           ");
$ds_to_dsd_index[6] = index(/dsd, str(./ds_name) == "O3 RETRIEVAL MDS            ");
$ds_to_dsd_index[7] = index(/dsd, str(./ds_name) == "HNO3 RETRIEVAL MDS          ");
$ds_to_dsd_index[8] = index(/dsd, str(./ds_name) == "CH4 RETRIEVAL MDS           ");
$ds_to_dsd_index[9] = index(/dsd, str(./ds_name) == "N2O RETRIEVAL MDS           ");
$ds_to_dsd_index[10] = index(/dsd, str(./ds_name) == "NO2 RETRIEVAL MDS           ");
$ds_to_dsd_index[11] = index(/dsd, str(./ds_name) == "F11 RETRIEVAL MDS           ");
$ds_to_dsd_index[12] = index(/dsd, str(./ds_name) == "CLNO RETRIEVAL MDS          ");
$ds_to_dsd_index[13] = index(/dsd, str(./ds_name) == "N2O5 RETRIEVAL MDS          ");
$ds_to_dsd_index[14] = index(/dsd, str(./ds_name) == "F12 RETRIEVAL MDS           ");
$ds_to_dsd_index[15] = index(/dsd, str(./ds_name) == "COF2 RETRIEVAL MDS          ");
$ds_to_dsd_index[16] = index(/dsd, str(./ds_name) == "CCL4 RETRIEVAL MDS          ");
$ds_to_dsd_index[17] = index(/dsd, str(./ds_name) == "HCN RETRIEVAL MDS           ");
$ds_to_dsd_index[18] = index(/dsd, str(./ds_name) == "F14 RETRIEVAL MDS           ");
$ds_to_dsd_index[19] = index(/dsd, str(./ds_name) == "F22 RETRIEVAL MDS           ");
$ds_to_dsd_index[20] = index(/dsd, str(./ds_name) == "CONTINUUM AND OFFSET MDS    ");
$ds_to_dsd_index[21] = index(/dsd, str(./ds_name) == "PCD INFORMATION ADS         ");
$ds_to_dsd_index[22] = index(/dsd, str(./ds_name) == "MICROWINDOW OCCUPATION ADS  ");
$ds_to_dsd_index[23] = index(/dsd, str(./ds_name) == "RESIDUAL SPECTRA ADS        ");
$ds_to_dsd_index[24] = index(/dsd, str(./ds_name) == "PROCESSING PARAMETERS ADS   ")
ds_available[$num_ds]for i = 0 to $num_ds - 1 do
$ds_available[i] = if($ds_to_dsd_index[i] != -1 and !(bytes(/dsd[$ds_to_dsd_index[i]]/filename,8) == "NOT USED"), 1, 0)
ds_offset[$num_ds]for i = 0 to $num_ds - 1 do
$ds_offset[i] = 8 * int(/dsd[$ds_to_dsd_index[i]]/ds_offset)
num_dsr[$num_ds]for i = 0 to $num_ds - 1 do
$num_dsr[i] = int(/dsd[$ds_to_dsd_index[i]]/num_dsr)
species_count$species_count = 30
structure_info_next_index[$num_dsr[2]]$structure_info_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_info_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[0]/dsr_offset) != -1, i + 1, $structure_info_next_index[i + 1])
structure_info_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_info_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[0]/dsr_offset) == -1, if(i > 0, $structure_info_cum_num_dsr[i - 1], 0), if($structure_info_next_index[i] == -1, $num_dsr[3], if(i > 0, $structure_info_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_info_next_index[i]]/ds_pointer[0]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[0]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[0]/dsr_length)))
info_structure_index[$num_dsr[3]]for i = 0 to $num_dsr[3] - 1 do
$info_structure_index[i] = index($structure_info_cum_num_dsr, $structure_info_cum_num_dsr > i)
structure_pt_next_index[$num_dsr[2]]$structure_pt_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_pt_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[1]/dsr_offset) != -1, i + 1, $structure_pt_next_index[i + 1])
structure_pt_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_pt_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[1]/dsr_offset) == -1, if(i > 0, $structure_pt_cum_num_dsr[i - 1], 0), if($structure_pt_next_index[i] == -1, $num_dsr[4], if(i > 0, $structure_pt_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_pt_next_index[i]]/ds_pointer[1]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[1]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[1]/dsr_length)))
pt_structure_index[$num_dsr[4]]for i = 0 to $num_dsr[4] - 1 do
$pt_structure_index[i] = index($structure_pt_cum_num_dsr, $structure_pt_cum_num_dsr > i)
structure_vmr1_next_index[$num_dsr[2]]$structure_vmr1_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr1_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[2]/dsr_offset) != -1, i + 1, $structure_vmr1_next_index[i + 1])
structure_vmr1_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr1_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[2]/dsr_offset) == -1, if(i > 0, $structure_vmr1_cum_num_dsr[i - 1], 0), if($structure_vmr1_next_index[i] == -1, $num_dsr[5], if(i > 0, $structure_vmr1_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr1_next_index[i]]/ds_pointer[2]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[2]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[2]/dsr_length)))
vmr1_structure_index[$num_dsr[5]]for i = 0 to $num_dsr[5] - 1 do
$vmr1_structure_index[i] = index($structure_vmr1_cum_num_dsr, $structure_vmr1_cum_num_dsr > i)
structure_vmr2_next_index[$num_dsr[2]]$structure_vmr2_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr2_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[3]/dsr_offset) != -1, i + 1, $structure_vmr2_next_index[i + 1])
structure_vmr2_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr2_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[3]/dsr_offset) == -1, if(i > 0, $structure_vmr2_cum_num_dsr[i - 1], 0), if($structure_vmr2_next_index[i] == -1, $num_dsr[6], if(i > 0, $structure_vmr2_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr2_next_index[i]]/ds_pointer[3]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[3]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[3]/dsr_length)))
vmr2_structure_index[$num_dsr[6]]for i = 0 to $num_dsr[6] - 1 do
$vmr2_structure_index[i] = index($structure_vmr2_cum_num_dsr, $structure_vmr2_cum_num_dsr > i)
structure_vmr3_next_index[$num_dsr[2]]$structure_vmr3_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr3_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[4]/dsr_offset) != -1, i + 1, $structure_vmr3_next_index[i + 1])
structure_vmr3_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr3_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[4]/dsr_offset) == -1, if(i > 0, $structure_vmr3_cum_num_dsr[i - 1], 0), if($structure_vmr3_next_index[i] == -1, $num_dsr[7], if(i > 0, $structure_vmr3_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr3_next_index[i]]/ds_pointer[4]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[4]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[4]/dsr_length)))
vmr3_structure_index[$num_dsr[7]]for i = 0 to $num_dsr[7] - 1 do
$vmr3_structure_index[i] = index($structure_vmr3_cum_num_dsr, $structure_vmr3_cum_num_dsr > i)
structure_vmr4_next_index[$num_dsr[2]]$structure_vmr4_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr4_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[5]/dsr_offset) != -1, i + 1, $structure_vmr4_next_index[i + 1])
structure_vmr4_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr4_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[5]/dsr_offset) == -1, if(i > 0, $structure_vmr4_cum_num_dsr[i - 1], 0), if($structure_vmr4_next_index[i] == -1, $num_dsr[8], if(i > 0, $structure_vmr4_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr4_next_index[i]]/ds_pointer[5]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[5]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[5]/dsr_length)))
vmr4_structure_index[$num_dsr[8]]for i = 0 to $num_dsr[8] - 1 do
$vmr4_structure_index[i] = index($structure_vmr4_cum_num_dsr, $structure_vmr4_cum_num_dsr > i)
structure_vmr5_next_index[$num_dsr[2]]$structure_vmr5_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr5_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[6]/dsr_offset) != -1, i + 1, $structure_vmr5_next_index[i + 1])
structure_vmr5_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr5_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[6]/dsr_offset) == -1, if(i > 0, $structure_vmr5_cum_num_dsr[i - 1], 0), if($structure_vmr5_next_index[i] == -1, $num_dsr[9], if(i > 0, $structure_vmr5_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr5_next_index[i]]/ds_pointer[6]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[6]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[6]/dsr_length)))
vmr5_structure_index[$num_dsr[9]]for i = 0 to $num_dsr[9] - 1 do
$vmr5_structure_index[i] = index($structure_vmr5_cum_num_dsr, $structure_vmr5_cum_num_dsr > i)
structure_vmr6_next_index[$num_dsr[2]]$structure_vmr6_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr6_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[7]/dsr_offset) != -1, i + 1, $structure_vmr6_next_index[i + 1])
structure_vmr6_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr6_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[7]/dsr_offset) == -1, if(i > 0, $structure_vmr6_cum_num_dsr[i - 1], 0), if($structure_vmr6_next_index[i] == -1, $num_dsr[10], if(i > 0, $structure_vmr6_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr6_next_index[i]]/ds_pointer[7]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[7]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[7]/dsr_length)))
vmr6_structure_index[$num_dsr[10]]for i = 0 to $num_dsr[10] - 1 do
$vmr6_structure_index[i] = index($structure_vmr6_cum_num_dsr, $structure_vmr6_cum_num_dsr > i)
structure_vmr7_next_index[$num_dsr[2]]$structure_vmr7_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr7_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[8]/dsr_offset) != -1, i + 1, $structure_vmr7_next_index[i + 1])
structure_vmr7_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr7_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[8]/dsr_offset) == -1, if(i > 0, $structure_vmr7_cum_num_dsr[i - 1], 0), if($structure_vmr7_next_index[i] == -1, $num_dsr[11], if(i > 0, $structure_vmr7_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr7_next_index[i]]/ds_pointer[8]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[8]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[8]/dsr_length)))
vmr7_structure_index[$num_dsr[11]]for i = 0 to $num_dsr[11] - 1 do
$vmr7_structure_index[i] = index($structure_vmr7_cum_num_dsr, $structure_vmr7_cum_num_dsr > i)
structure_vmr8_next_index[$num_dsr[2]]$structure_vmr8_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr8_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[9]/dsr_offset) != -1, i + 1, $structure_vmr8_next_index[i + 1])
structure_vmr8_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr8_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[9]/dsr_offset) == -1, if(i > 0, $structure_vmr8_cum_num_dsr[i - 1], 0), if($structure_vmr8_next_index[i] == -1, $num_dsr[12], if(i > 0, $structure_vmr8_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr8_next_index[i]]/ds_pointer[9]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[9]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[9]/dsr_length)))
vmr8_structure_index[$num_dsr[12]]for i = 0 to $num_dsr[12] - 1 do
$vmr8_structure_index[i] = index($structure_vmr8_cum_num_dsr, $structure_vmr8_cum_num_dsr > i)
structure_vmr9_next_index[$num_dsr[2]]$structure_vmr9_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr9_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[10]/dsr_offset) != -1, i + 1, $structure_vmr9_next_index[i + 1])
structure_vmr9_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr9_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[10]/dsr_offset) == -1, if(i > 0, $structure_vmr9_cum_num_dsr[i - 1], 0), if($structure_vmr9_next_index[i] == -1, $num_dsr[13], if(i > 0, $structure_vmr9_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr9_next_index[i]]/ds_pointer[10]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[10]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[10]/dsr_length)))
vmr9_structure_index[$num_dsr[13]]for i = 0 to $num_dsr[13] - 1 do
$vmr9_structure_index[i] = index($structure_vmr9_cum_num_dsr, $structure_vmr9_cum_num_dsr > i)
structure_vmr10_next_index[$num_dsr[2]]$structure_vmr10_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr10_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[11]/dsr_offset) != -1, i + 1, $structure_vmr10_next_index[i + 1])
structure_vmr10_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr10_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[11]/dsr_offset) == -1, if(i > 0, $structure_vmr10_cum_num_dsr[i - 1], 0), if($structure_vmr10_next_index[i] == -1, $num_dsr[14], if(i > 0, $structure_vmr10_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr10_next_index[i]]/ds_pointer[11]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[11]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[11]/dsr_length)))
vmr10_structure_index[$num_dsr[14]]for i = 0 to $num_dsr[14] - 1 do
$vmr10_structure_index[i] = index($structure_vmr10_cum_num_dsr, $structure_vmr10_cum_num_dsr > i)
structure_vmr11_next_index[$num_dsr[2]]$structure_vmr11_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr11_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[12]/dsr_offset) != -1, i + 1, $structure_vmr11_next_index[i + 1])
structure_vmr11_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr11_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[12]/dsr_offset) == -1, if(i > 0, $structure_vmr11_cum_num_dsr[i - 1], 0), if($structure_vmr11_next_index[i] == -1, $num_dsr[15], if(i > 0, $structure_vmr11_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr11_next_index[i]]/ds_pointer[12]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[12]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[12]/dsr_length)))
vmr11_structure_index[$num_dsr[15]]for i = 0 to $num_dsr[15] - 1 do
$vmr11_structure_index[i] = index($structure_vmr11_cum_num_dsr, $structure_vmr11_cum_num_dsr > i)
structure_vmr12_next_index[$num_dsr[2]]$structure_vmr12_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr12_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[13]/dsr_offset) != -1, i + 1, $structure_vmr12_next_index[i + 1])
structure_vmr12_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr12_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[13]/dsr_offset) == -1, if(i > 0, $structure_vmr12_cum_num_dsr[i - 1], 0), if($structure_vmr12_next_index[i] == -1, $num_dsr[16], if(i > 0, $structure_vmr12_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr12_next_index[i]]/ds_pointer[13]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[13]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[13]/dsr_length)))
vmr12_structure_index[$num_dsr[16]]for i = 0 to $num_dsr[16] - 1 do
$vmr12_structure_index[i] = index($structure_vmr12_cum_num_dsr, $structure_vmr12_cum_num_dsr > i)
structure_vmr13_next_index[$num_dsr[2]]$structure_vmr13_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr13_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[14]/dsr_offset) != -1, i + 1, $structure_vmr13_next_index[i + 1])
structure_vmr13_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr13_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[14]/dsr_offset) == -1, if(i > 0, $structure_vmr13_cum_num_dsr[i - 1], 0), if($structure_vmr13_next_index[i] == -1, $num_dsr[17], if(i > 0, $structure_vmr13_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr13_next_index[i]]/ds_pointer[14]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[14]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[14]/dsr_length)))
vmr13_structure_index[$num_dsr[17]]for i = 0 to $num_dsr[17] - 1 do
$vmr13_structure_index[i] = index($structure_vmr13_cum_num_dsr, $structure_vmr13_cum_num_dsr > i)
structure_vmr14_next_index[$num_dsr[2]]$structure_vmr14_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr14_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[15]/dsr_offset) != -1, i + 1, $structure_vmr14_next_index[i + 1])
structure_vmr14_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr14_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[15]/dsr_offset) == -1, if(i > 0, $structure_vmr14_cum_num_dsr[i - 1], 0), if($structure_vmr14_next_index[i] == -1, $num_dsr[18], if(i > 0, $structure_vmr14_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr14_next_index[i]]/ds_pointer[15]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[15]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[15]/dsr_length)))
vmr14_structure_index[$num_dsr[18]]for i = 0 to $num_dsr[18] - 1 do
$vmr14_structure_index[i] = index($structure_vmr14_cum_num_dsr, $structure_vmr14_cum_num_dsr > i)
structure_vmr15_next_index[$num_dsr[2]]$structure_vmr15_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_vmr15_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[16]/dsr_offset) != -1, i + 1, $structure_vmr15_next_index[i + 1])
structure_vmr15_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_vmr15_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[16]/dsr_offset) == -1, if(i > 0, $structure_vmr15_cum_num_dsr[i - 1], 0), if($structure_vmr15_next_index[i] == -1, $num_dsr[19], if(i > 0, $structure_vmr15_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_vmr15_next_index[i]]/ds_pointer[16]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[16]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[16]/dsr_length)))
vmr15_structure_index[$num_dsr[19]]for i = 0 to $num_dsr[19] - 1 do
$vmr15_structure_index[i] = index($structure_vmr15_cum_num_dsr, $structure_vmr15_cum_num_dsr > i)
structure_cont_next_index[$num_dsr[2]]$structure_cont_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_cont_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[32]/dsr_offset) != -1, i + 1, $structure_cont_next_index[i + 1])
structure_cont_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_cont_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[32]/dsr_offset) == -1, if(i > 0, $structure_cont_cum_num_dsr[i - 1], 0), if($structure_cont_next_index[i] == -1, $num_dsr[20], if(i > 0, $structure_cont_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_cont_next_index[i]]/ds_pointer[32]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[32]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[32]/dsr_length)))
cont_structure_index[$num_dsr[20]]for i = 0 to $num_dsr[20] - 1 do
$cont_structure_index[i] = index($structure_cont_cum_num_dsr, $structure_cont_cum_num_dsr > i)
structure_pcd_next_index[$num_dsr[2]]$structure_pcd_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_pcd_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[33]/dsr_offset) != -1, i + 1, $structure_pcd_next_index[i + 1])
structure_pcd_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_pcd_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[33]/dsr_offset) == -1, if(i > 0, $structure_pcd_cum_num_dsr[i - 1], 0), if($structure_pcd_next_index[i] == -1, $num_dsr[21], if(i > 0, $structure_pcd_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_pcd_next_index[i]]/ds_pointer[33]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[33]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[33]/dsr_length)))
pcd_structure_index[$num_dsr[21]]for i = 0 to $num_dsr[21] - 1 do
$pcd_structure_index[i] = index($structure_pcd_cum_num_dsr, $structure_pcd_cum_num_dsr > i)
structure_mw_next_index[$num_dsr[2]]$structure_mw_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_mw_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[34]/dsr_offset) != -1, i + 1, $structure_mw_next_index[i + 1])
structure_mw_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_mw_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[34]/dsr_offset) == -1, if(i > 0, $structure_mw_cum_num_dsr[i - 1], 0), if($structure_mw_next_index[i] == -1, $num_dsr[22], if(i > 0, $structure_mw_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_mw_next_index[i]]/ds_pointer[34]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[34]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[34]/dsr_length)))
mw_structure_index[$num_dsr[22]]for i = 0 to $num_dsr[22] - 1 do
$mw_structure_index[i] = index($structure_mw_cum_num_dsr, $structure_mw_cum_num_dsr > i)
structure_res_next_index[$num_dsr[2]]$structure_res_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_res_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[35]/dsr_offset) != -1, i + 1, $structure_res_next_index[i + 1])
structure_res_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_res_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[35]/dsr_offset) == -1, if(i > 0, $structure_res_cum_num_dsr[i - 1], 0), if($structure_res_next_index[i] == -1, $num_dsr[23], if(i > 0, $structure_res_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_res_next_index[i]]/ds_pointer[35]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[35]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[35]/dsr_length)))
res_structure_index[$num_dsr[23]]for i = 0 to $num_dsr[23] - 1 do
$res_structure_index[i] = index($structure_res_cum_num_dsr, $structure_res_cum_num_dsr > i)
structure_param_next_index[$num_dsr[2]]$structure_param_next_index[$num_dsr[2] - 1] = -1;
for i = $num_dsr[2] - 2 to 0 step -1 do
$structure_param_next_index[i] = if(int(/dataset_structure_ads[i + 1]/ds_pointer[36]/dsr_offset) != -1, i + 1, $structure_param_next_index[i + 1])
structure_param_cum_num_dsr[$num_dsr[2]]for i = 0 to $num_dsr[2] - 1 do
$structure_param_cum_num_dsr[i] = if(int(/dataset_structure_ads[i]/ds_pointer[36]/dsr_offset) == -1, if(i > 0, $structure_param_cum_num_dsr[i - 1], 0), if($structure_param_next_index[i] == -1, $num_dsr[24], if(i > 0, $structure_param_cum_num_dsr[i - 1], 0) + (int(/dataset_structure_ads[$structure_param_next_index[i]]/ds_pointer[36]/dsr_offset) - int(/dataset_structure_ads[i]/ds_pointer[36]/dsr_offset)) / int(/dataset_structure_ads[i]/ds_pointer[36]/dsr_length)))
param_structure_index[$num_dsr[24]]for i = 0 to $num_dsr[24] - 1 do
$param_structure_index[i] = index($structure_param_cum_num_dsr, $structure_param_cum_num_dsr > i)