#
# Description            Octet   Code    Ksec1   Count
# -----------            -----   ----    -----   -----
#localDefinitionNumber   41      I1      37      -
#class                   42      I1      38      -
#type                    43      I1      39      -
#stream                  44      I2      40      -
#experimentVersionNumber 46      A4      41      -
#number                  50      I1      42      -
#total                   51      I1      43      -
#spareSetToZero          52      PAD     n/a     1
#
constant GRIBEXSection1Problem = 52 - section1Length ;

unsigned[1] perturbationNumber           : dump;
alias number = perturbationNumber;

unsigned[1] numberOfForecastsInEnsemble  : dump;
alias totalNumber=numberOfForecastsInEnsemble;
pad padding_local1_1(1);

# 1->2
alias grib2LocalSectionPresent=present;
constant grib2LocalSectionNumber=1;

if (stepType is "instant" ) {
    if (type is "em" || type is "es" ) {
      alias productDefinitionTemplateNumber=epsStatisticsPoint;
    } else {
  		if (numberOfForecastsInEnsemble!=0) {
			if ((perturbationNumber/2)*2 == perturbationNumber) {
				alias typeOfEnsembleForecast=two;
			} else {
				alias typeOfEnsembleForecast=three;
			}
			alias productDefinitionTemplateNumber=epsPoint;
		} else {
			alias productDefinitionTemplateNumber=zero;
		}
	}
} else {
    if (type is "em" || type is "es" ) {
      alias productDefinitionTemplateNumber=epsStatisticsContinous;
    } else {
		if (numberOfForecastsInEnsemble!=0) {
			if ((perturbationNumber/2)*2 == perturbationNumber) {
				alias typeOfEnsembleForecast=two;
			} else {
				alias typeOfEnsembleForecast=three;
			}
			alias productDefinitionTemplateNumber=epsContinuous;
		} else {
			alias productDefinitionTemplateNumber=eight;
		}
    }
}
