Note: gross checks potentially can use ensemble spread information.
AOD from bufr (setupaod.f90)
AOD bufr created from HDF files, different HDF formats for MODIS, VIIRS. Also ABI GOES-R possible to implement
- assign which channels to use based on a list in aeroinfo.txt,
- initialize CRTM for a given satellite and type of observation (e.g. obstype='modis_aod', call init_crtm(...)),
- read AODs at different wavelengths (channels) for a chosen satellite (MODIS Aqua+ Terra, VIIRS, namelist, only high quality data in bufr files),
- check if within window,
- calculate error based on surface type/retrieval algorithm,
- calculate layer model AODs and Jacobians using CRTM (call call_crtm(...), horizontal interpolation in call_crtm),
- reject if crtm returns error(?), select channels for processing (only 550nm now),
- accept/reject AODs depending on quality data from Deep Blue algorithm (MODIS),
- calculate innovations,
- save innovations, Jacobians, errors etc. in my_head list,
- save accepted and rejected in my_diag list,
- write diagnostics to a file (e.g. for EnKF),
- quality control largely done before creating bufr files.