MODAPS PCR 09-006

PCR Number 09-006
Date 2009-11-17
Initiator James Kuyper
Abstract Fix bug in PGE01 when the scan line is not 1354.
Problem Statement In MOD_PR03, GEO_locate_one_granule() always tells GEO_interp_ECR() to process 1354 frames of data, even if the actual number of frames in a scan are fewer than 1354. If they are fewer, GEO_interp_ECR() processes uninitialized elements of the "offsets" array. If those uninitialized values happened to be valid, this would merely be a waste of time, because GEO_interp_ECR() doesn't require actual frames to exist; it would simply produce unnecessary output data. Even if the those values were random, it would merely result in spurious warning messages, but no defect in the product files. However, if the uninitialized value happens to be a NaN, it causes PGS_EPH_GetEphemRecords() to get very confused, and return a fatal error code spuriously claiming that an ephemeris file is missing.

Note that under both Irix and Mandrake Linux, the entire offsets array is zero-initialized, even though no such initialization was required. This had the effect of hiding this bug, which dates back to version 4.0.0. However, in Mandriva the uninitialized values are arbitrary, which made it much easier to detect this bug.
Description of Change Correct GEO_locate_one_granule() to ask GEO_interp_ECR() to process only the number of frames actually needed. Note that no change is needed to theCollection 6 code; this bug was accidentally fixed as a side-effect of otherchanges that were made for C6. Only the Collection 5 code needs updating.
Products Affected  
Software Affected PGE01
Processing String to Receive the Change  
Downstream Product Effects Because the program fails whenever this bug manifests, no downstream PGE has processed any data produced by this bug. Since short scans can fail to trigger this bug, all downstream PGEs have already been exposed to datacontaining short scans; this bug has not had the effect of hiding bugs indownstream PGEs that can't handle short scans. Therefore, downstream product effects should be essentially non-existent.
Data Granules to be Used for Science Testing  
Justification To produce valid PGE01 products (and therefore, all downstream products) onMandriva Linux minions even if the first scan of a granule has fewer than 1354 scans, something that happens normally about 1/3 of the time after anydata gap of more than 5 minutes in length.
Effective Date for Implementation of Change  
Status