@brucelee,
I think you are conflating the outputs of IPR with the actual advective flux calculations used to update the mass in a grid cell at each time step.
As @cgnolte said, IPR only gives the the difference in values before and after a process call. When looking at advection (transfer of matter from one grid cell to another), to me it doesn’t make much sense to look at just advection in one direction. Remember advection in CMAQ is a 3-D process happening as the sum of all three directions:
\Large \frac{\partial \rho}{\partial t} + \frac{\partial \rho u}{\partial x} + \frac{\partial \rho v}{\partial y} + \frac{\partial \rho w}{\partial z} = 0
So to get a sense of how much matter was transferred into or out of the cell via the bulk flow, you would add the three terms (in other words this would tell you how mass changed due to 3D advection within a cell over that timestep).
In this case, its not possible to recreate the actual advective flux at each step because you don’t have the output at each sync step since presumably you have the output at the hourly marks only, making it very hard to recover the exact output from IPR.
The basic equation that our code is following is shown above, with the solution of the equation being achieved using time-splitting (Yanenko, 1971) into 1-D dimensional equations.
Essentially each 1-D component will solve the following equation (consider x-direction for example):
\Large c_i^{n+1} = c_i^{n} - \frac{\Delta t}{\Delta x}(F_{i+1/2}^{n} - F_{i-1/2}^{n})
Where \Large c_i^{n+1} represents the mass of cell i, at time n+1, and \Large F_{i+1/2}^{n} is the flux (mass times velocity) at one grid face (in this case since considering the X direction – this would be the right cell face).
What you have in the output is the cell averaged value at the middle of a grid cell, however, what’s needed is the flux at the grid face. There are several ways of approximating the flux – the method that CMAQ chooses is the Piecewise Parabolic Method (PPM; Colella and Woodward, 1984).
Hopefully this helps!