Geological examples of binary diffusion are numerous. They are potential indicators of the duration and rates of geological processes. Analytical solutions to the diffusion equations generally do not allow for variable diffusion coefficients, changing boundary conditions, and impingement of diffusion fields. The three programs presented here are based on Crank-Nicholson finite-difference approximations, which can take into account these complicating factors. Program 1 describes the diffusion of a component into an initially homogeneous phase that has a constant surface composition. Specifically it is written for Fe-Mg exchange in olivine at oxygen fugacities appropriate for the lunar crust, but other components, phases, or fugacities may be substituted by changing the values of the diffusion coefficient. Program 2 simulates the growth of exsolution lamellae. Program 3 describes the growth of reaction rims. These two programs are written for pseudobinary Ca-(Mg, Fe) exchange in pyroxenes. In all three programs, the diffusion coefficients and boundary conditions can be varied systematically with time. To enable users to employ widely different numerical values for diffusion coefficients and diffusion distance, the grid spacing in the space dimension and the increment by which the grid spacing in the time dimension is increased at each time step are input constants that can be varied each time the programs are run to yield a solution of the desired accuracy. ?? 1982.