The module FLATAP (“FlatField Apply”) takes the results from REMOVSTRAYCROSS or DROOPRES and divides by the flat-field. The flat-field image (a 2-plane cube containing the flat-field itself in layer 1 and the uncertainty plane in layer 2) is divided into the input image to correct for spatial and spectral responsivity variations, thus "flattening" the data. The areas in the input image that are flattened are only those specified in the associated flat-field cmask.fits. This is a slightly enlarged area covering the regions defined by the wavsamp.tbl file. (For SL, the peak-up arrays are also flattened and have their own valid region within the flat-field cmask.) Regions that are not flat-fielded are left in the output data unchanged; their corresponding pixels in bmask.fits have bit # 8 set. Regions that are flat-fielded, but where the flat-field is of questionable quality (e.g. portions of the edges of the orders), have bit # 7 set in their corresponding pixels in bmask.fits. Currently FLATAP operates on both the stray light- or cross-talk-corrected and uncorrected images, producing two output files (bcd.fits and f2ap.fits respectively). Input uncertainty files are combined (in quadrature) with the flat-field uncertainty and propagated. However, the flatfield uncertainty has been set to zero. The output uncertainties are func.fits and f2unc.fits, respectively. If the observer chooses to make his/her own correction, or to skip it, instead of using SLREMOV or CROSSTALK, the uncorrected versions of the image and its uncertainty are droop.fits and drunc.fits.