// Derived forecasts based on a cluster of ensemble members over
// a rectangular area at a horizontal level or in a horizontal layer
// at a point in time
} else if (productDefinition == 3) {
//System.out.println("PDS productDefinition == 3 not done");
throw new NotSupportedException("PDS productDefinition = 3 not implemented");
// Derived forecasts based on a cluster of ensemble members
// over a circular area at a horizontal level or in a horizontal
// layer at a point in time
} else if (productDefinition == 4) {
//System.out.println("PDS productDefinition == 4 not done");
throw new NotSupportedException("PDS productDefinition = 4 not implemented");
// Probability forecasts at a horizontal level or in a horizontal
// layer at a point in time
} else if (productDefinition == 5) {
// 35
int probabilityNumber = raf.read();
// 36
numberForecasts = raf.read();
// 37
typeEnsemble = raf.read();
// 38
int scaleFactorLL = raf.read();
// 39-42
int scaleValueLL = GribNumbers.int4(raf);
lowerLimit = (float) (((scaleFactorLL == 0) || (scaleValueLL == 0))
? scaleValueLL
: scaleValueLL * Math.pow(10, -scaleFactorLL));
// 43
int scaleFactorUL = raf.read();
// 44-47
int scaleValueUL = GribNumbers.int4(raf);
upperLimit = (float) (((scaleFactorUL == 0) || (scaleValueUL == 0))
? scaleValueUL
: scaleValueUL * Math.pow(10, -scaleFactorUL));
// if (typeGenProcess == 5) { // Probability var
// typeGenProcess = 50000 + (1000 * typeEnsemble) + totalProbabilities;
// }
//System.out.print("PDS productDefinition == 5 PN="+probabilityNumber +" TP="+totalProbabilities +" PT="+probabilityType);
//System.out.println( " LL="+lowerLimit +" UL="+upperLimit);
//System.out.println( " typeGenProcess ="+ typeGenProcess );
// Percentile forecasts at a horizontal level or in a horizontal layer
// at a point in time
} else if (productDefinition == 6) {
//System.out.println("PDS productDefinition == 6 not done");
throw new NotSupportedException("PDS productDefinition = 6 not implemented");
// Analysis or forecast error at a horizontal level or in a horizontal
// layer at a point in time
} else if (productDefinition == 7) {
//System.out.println("PDS productDefinition == 7 not done");
throw new NotSupportedException("PDS productDefinition = 7 not implemented");
// Average, accumulation, and/or extreme values at a horizontal
// level or in a horizontal layer in a continuous or non-continuous
// time interval
} else if (productDefinition == 8) {