MODIS Ocean Color Processing Logo

 

 

CODE STATUS


summary | recent changes | future work

Revised May 25 1999

Oct 1997 Version 2 of the level 2 processing routines (MODCOL and MODSST) were delivered to the GDAAC.  Apart from possible minor modifications to the code and ancillary coefficient tables, this version is the at-launch version of these routines.
Dec 1997 Version 2 of two of the level 3 processing routines (MSBIN and  MTBIN) were delivered to the GDAAC.
Jan 1998 Version 2 of the level 3 processing routines MCLOUD, MMAP and MSPC were delivered to the GDAAC.  Revisions may be made to this code before launch.
Apr 1998 Version 2 of the level 3 processing routine MFILL was delivered to the GDAAC, along with minor revisions of the other processing routines.
Feb 1999 A revised version of the complete code was delivered to the GDAAC.
Apr 1999 A revised version of the complete code was delivered to the GDAAC.
May 1999 A revised version of the complete code was delivered to the GDAAC.

 

Recent changes (between Feb 1999 and May 1999)

The changes are ordered according to the directory of the affected files:


all files
ocean_incl | modisio | mocean | msstshr5 | io | atmcorshr | binshr
MOD_PR18 | MOD_PR28 | mtbin | msbin | mspc | mfill | mcloud | mmap
daybounds

all files:
Change copyright date to 1999.

ocean_incl:
commoninout.rat ocean_lun.f ocean_lun.h ocean_lun.rat
    Update flag bit definitions.
    Add new files (LUNs).
commoninout.h commoninout.rat
    PEB and PUB are absorption and not concentration.
    Spelling error fixed.

modisio
mod_get_l1b_attr_v2.c
    Add debugging (currently disabled).
L1B_Geo_Cld_Interface.c modisio_v2.h
    Add support for AVHRR impersonating MODIS data.
L1B_Geo_Cld_Interface.c modis_smf.h v2_meta.c
    Merge in changes from MODIS project.
v2_meta.c v2_meta.h
    Add ability to set metadata for Reynolds files.
modis_smf.h v2_meta.c
    Display generated error messages.
L1B_Geo_Cld_Interface.c
    Support both old and new calibration information organization in L1B datasets.

mocean
moceanclose.c moceandata.h moceanwrite.c
    Add cacheing of band information for multiple open files (so it only has to be looked up once per band per file).
makefile moceancal.c moceanclose.c moceancreate.c moceandata.h moceangeoloc.c moceanopen.c moceanread.c moceanutil.c moceanwrite.c
    Clean up sources.
    Remove unused variables. 
    Optimize calls to support routines to minimize file access.

msstshr5
avhrrsub5.rat
    Remove use of prohibited function: stop.
avhrrin1.rat
    Allow both AVHRR HRPT/LAC and AVHRR GAC as well as MODIS LAC.

io
evlcal.c
    Limit floating point value to always be within valid integer range.

atmcorshr
makefile
    Additional include files needed.
ascdscsub.rat readreyw.rat
    Move sources to shared library area from MODSST.
readreyw.rat
    Two-digit/four-digit year corrections.

binshr
makefile
    DEC OSF builds need cc option -DOSF1_V3.
    Add appendproclog.
bin9kmf.rat
    Remove use of prohibited function: stop.
settbinmeta.rat
    Set Range* metadata fields.
appendproclog.rat
    Initial version.
sum_structure.rat
    Increase limits on bands and files.
bindefs.rat
    Increase L3B record size from 128 to 4096.
    HDF library _very_ inefficient if large number of records in SDS.  
    Add include file for common constants.
l3in.c
    Use constants from bindefs.h.
fixuplong.c fixupshort.c
    Add functions to repair byte ordering for flags.

MOD_PR18
makefile
    DEC OSF builds need cc option -DOSF1_V3
    Add hdf-wrd.c and hdf_io_tools.c for reading hdf data fields.
    Add readndt.f to read Carder NDT reference field.
    Change from swf_chl-1.4.c to modis_chl.1.c.
gordon_o2.f
    Fix the modis prologs.
anly8dbl.rat coccolith.f ipar-1.2.f wang3.f
    Remove use of prohibited function: stop.
wang3.f
    Implement wider aerosol tables for MODIS (35 vs 26 entries).
    Add binary file support for both Rayleigh and aerosol input files.
    Select binary format for both Rayleigh and aerosol files (much faster).
    Extrapolate epsilon values when only one aerosol model.
    Add wind speed interpolation to Rayleigh tables.
    Apply out of band water vapor correction to MODIS data.
    Extend out of band correction coefficients to all 9 bands.
    Correct MODIS central wavelengths.
    Switch to SeaWiFS based on input data.
    Add limit checks to find_newton routine to suppress bad values.
    Add limit checks to extrapolated epsilons to suppress bad values.
    Read out of band correction coefficients from a file (READ_OUTOFBAND).
anly8dbl.rat
    Use additional ancillary flagging detail to separate fatal from non-fatal errors.
    Summarize these flags in group 5 messages (bits 11-20).
    Correct calculation of midpix (Use IANCHR and not ANCHOR$1).
    Correct CFE comments and use of 6.023e23 in calculation.
    Fix SST reference image file present test.
    Move neg_rrs_flag test into CARDER_IPAR subroutine.
    Correct numerous errors in CFE and FLH calculations.
    Must output both DR1FLAGS and DR1QUAL with AnlyUpO.
    Add Carder NDT reference field support.
    Compute packaging value.
    Correct pk_val for packaged state.
    Set DR2 flag bits for NDT packaged / unpackaged states.
    Pass DR2 flags to FLH/CFE/ARP section (needed for quality checks).
    More corrections and improvements to FLH/CFE code.
    Set the *Ipararp_In flag.
    Change dr1 flags and quality from 3 to 4 byte arrays (to match output file and the way it was being read).
    Use inpixsiz for the width of the scan line (Not SCNLEN, MAGX2, etc).
    More corrections to FLH/BASELINE/CFE calculations.
    Make sure unprocessed pixels are flagged.
    Make sure FLH/BASELINE/CFE unprocessed pixels are flagged.
    m6..m8 are int so sav_m6..m8 should also be int.
    Use Reynolds OI data properly.
    Restore simpler Reynolds SST indexing calculation.
    Correct Reynolds array indexing.
    Change diagnostic from humidity to precip. water.
    Fix up flag byte arrays (portability issue).
    Pass wind speed to atmospheric correction routine.
    Validate CHL value before using it as a divisor.
    Read out of band correction coefficients from a file (READ_OUTOFBAND).
modcol.mice anly8dbl.rat
    Read reference SST field for Carder NDT test.
anly8dbl.rat makefile
    Add argument required by Carder version 1.4 chlorophyll routine.
    Correct (unused) argument to AnlyUpO.
ipar-1.2.f
    Pass in neg_rrs_flag for ARP calculation.
    Don't compute ARP if neg_rrs_flag is 1 (bad rrs value).
    Disable diagnostic ARP calculations (ARP2 and ARP3).
    Add some debugging print statements.
    ARP no good if aph675 (aph/atot) inputs are bad.
    Limit magnitude of power function exponent.
hoge-v2.0.c
    Add documentation for calling arguments.
    Convert input MODIS radiances to SeaWiFS radiances.
    Don't test output values if input values failed tests.
    Increase input radiance limits.
setcolqual.rat
    Set all quals to 3 (bad) if UnProcessed bit in common flags is set.
    Change IPAR quality values.
    Separate IPAR and ARP qualities.
    Change qual=3 test syntax to make it more like qual=2 tests.
    Add missing dr2_neg_rrs test for several products.
    Don't use 'blend' or 'default' flags for quality checks per Carder request.
readndt.f hdf-wrd.c hdf_io_tools.c
    Initial version.
hdf-io1.rat
    Add DR1_QUAL flags to AnlyUpO routine.
clarkio-v1.0.c
    Remove unused variable.
hdf-io3.c
    Remove unused variables. Return a four digit year to caller in XDATE.
hdf-io1.rat
    Add two dr1 flags for Carder NDT packaging selector.
    DR1 flags and quality arrays are really x4.
    This also solves another problem.
    Minor code cleanups.
    Implement updated calibration equation [rad = slope*(count-intcp)].
modcol.mice getcolpar.rat
    Add Carder NDT threshold coefficients.
swf_chl-1.4.c
    Initial version of Carder version 1.4 delivery.
    Remove redundant calculation of aphi.
    Work around a problem with aph675 computed <= 0.
    Set lower limit of 1e-7.
    Add some debugging hooks (disabled).
    Remove unused source file.
swf_chl-1.3.c
    Replace swf_chl-1.3.c with swf_chl-1.4.c.
modcol.mice anly8dbl.rat getcolpar.rat
    Change Clark diffuse attenuation calculation to SeaWiFS version/coefficients.
modis_chl.1.c
    Initial version.
    Direct derivative of swf_chl-1.4.c tuned for MODIS.
    Limit exponent of power function.
    Limit upper values for various power function evaluations.

MOD_PR28
makefile
    DEC OSF builds need cc option -DOSF1_V3
    readreyw.rat is now in atmcorshr.
mcsstop.rat
    Use new routine AppendProcLog.
modsst.mice
    Use new routine AppendProcLog.
    Change midpix to be same as modcol usage.
    Initial changes to support AVHRR input data.
    Update SSTBANDS, NUMSST for current IR band usage.
hdf-io.c modsst.mice
    Add capability to use AVHRR as input data.
mcsstop.rat modsst.mice readreyw.rat
    readreyw.rat is not in atmcorshr.
    Use modis band 26 instead of 27.
    Write image attributes to qc file so msbin will be able to bin qc products.
    Write "Data Sensor Type" image attribute (AVHRR or MODIS).
setsstqual.rat
    Make quality values more like pathnlc.
modsst.mice setsstmeta.rat
    Fix metadata in QC file; fix mask bit info in header; use Reynolds OI the same way as in modcol.
getsstpar.rat modsst.mice modsstcoeffs.rat setsstqual.rat
    Add inputs to fake the tree test.
    Fix setting of sst4 qual.
    Split the coeffs into separate files for avhrr, sst, sst4.
mcsstcom.rat mcsstop.rat modsst.mice
    Don't read channel 6.
    Channel 26 is the first chunk of data in the input data buffer.
    Only write Verparm* PSAs for the data bands (not flags).
modsst.mice setsstqual.rat
    Fix flag handling for machine compatability.

mtbin
makefile
    DEC OSF builds need cc option -DOSF1_V3
    Add some (disabled) debugging aids.
mtbin.mice
    Change status variable name to irpcod.
    Check for valid data day inputs.
    Add ability to make month files.
    Fix Range... metadata fields.
    Fix use of BYTE variable in mice table.
    Exit with "display_nointersect" error status if none of the input files are within the specified time period.
    Allow output record size to be different from input record size (default: same).
    Include conditional compilation to build program either way.
    Resolve a few places where input size and output size variables were confused.
    Increasing record size solves a horrible HDF performance problem.

msbin
makefile
    DEC OSF builds need cc option -DOSF1_V3
binit.rat
    Minor changes to quality selection algorithm.
    Initialize unused flag bytes to zero.
binit.rat dayboundsub.rat dayboundtest.rat geo_distort.rat getqual.rat getsbinpar.rat hdf-io1.rat hdf-iom.c  makestarttime.rat msbin.mice setsbinmeta.rat setupflags.rat setuplog.rat stdtime.rat
    Fix splitting again - make it more like seawifs binner - use time of ascend/descend chunk to determine relation with dataday edges.
    AVHRR descending is night, MODIS descending is day.
binit.rat getqual.rat hdf-iom.c msbin.mice setuplog.rat
    Add ability to bin qc files.
getqual.rat
    IPAR and ARP have separate quality values.
makestarttime.rat
    Display error message if time conversion fails.
msbin.mice
    Fix up flag byte arrays (portability issue).
    Only bin band if output files were specified in pcf file.
setuplog.rat
    Only bin band if output files were specified in pcf file.
setupflags.rat
    Fix many small errors.

mspc
mspc.mice
    Fix use of BYTE variables in mice table.
sum_structure_spc.rat
    Use constants from include file.

mfill
makefile
    DEC OSF builds need cc option -DOSF1_V3
mfill.mice
    Fix Range... metadata fields.
    Fix use of BYTE variables in mice table.
    Use BANDWIDTH instead of fixed 128.

mcloud
makefile
    DEC OSF builds need cc option -DOSF1_V3
mcloud.mice
    Fix Range... metadata fields.
    Fix use of BYTE variables in mice table.
    Use BANDWIDTH instead of fixed 128.

mmap
makefile
    DEC OSF builds need cc option -DOSF1_V3
hdf-io1.rat
    Fix Range... metadata fields.
mmap.mice
    Fix use of BYTE variables in mice table.
    Use BANDWIDTH from bindefs.rat.
    Fix up flag byte arrays (portability issue).

daybounds
makefile
    DEC OSF builds need cc option -DOSF1_V3

Future work

  1. Algorithm changes are still expected to be made to MODCOL. 
  2. Reynold's weekly SST data will be input to MODCOL. 

 

See Document Revisions for updates on the documentation status.

 

back to MODIS Ocean Data Processing home page

Documented by Jasmine S. Bartlett, COAS, Oregon State University.