Gaussian source can be programmed with following code. Does this apply to your needs?(Taken from 2D FDTD prog by Doug Neubauer)
pi = (acos(-1.0));
cc = 2.99792458e8; //speed of light in free space (meters/second)
muz = 4.0 * pi * 1.0e-7; //permeability of free space
epsz = 1.0 / (cc * cc * muz); //permittivity of free space
freq = 5.0e+9; //center frequency of source excitation (Hz)
lambda = cc / freq; //center wavelength of source excitation
omega = 2.0 * pi * freq; //center frequency in radians
dx = 3.0e-3; //space increment of square lattice (meters)
dt = dx / (2.0 * cc); //time step, seconds, courant limit, Taflove1995 page 177
rtau = 160.0e-12;
tau = rtau / dt;
delay = 3 * tau;
for (i = 0; i < nmax; i++) {
source = 0.0;
} /* iForLoop */
for (n = 0; n < (int )(7.0 * tau); n++) {
temporary = (double )n - delay;
source[n] = sin( omega * (temporary) * dt) * exp(-( (temporary * temporary)/(tau * tau) ) );
} /* forLoop */