Fortran programs and routines
Unless stated otherwise, all source here conforms to the Fortran-77 standard.
Simulating the electromagnetic wave propagation in stratified and periodic media possessing optical parametric amplification
The MOPAGRAS computer program calculates magneto-optically parametrically amplified field envelopes of forward and backward travelling wave components inside a Bragg grating of sinusoidal spatial distribution of the refractive index.
The program essentially wraps the calculating core provided by the mopagrat() Fortran-77 routine into a stand-alone executable program, in which command-line parsing for parameters and output files is supported, as well as including for the possibility of specifying different scan parameters, that is to say, specifying different variables to be varied in investigating for example optimization or phase matching properties of the parametric process.
The MOPAGRAS program was the engine behind the graphs published in Journal of Nonlinear Optical Physics and Materials 15, 113-139 (2006)..
The zgaussj(a,n,np,b,m,mp) routine solves linear systems of equations Ax = B by Gauss-Jordan elimination, using an algorithm similar to Numerical Recipes in Fortran 77, but modified to handle complex-valued systems.
Solving the cubic polynomial equation z3 + c2 z2 + c1 z + c0 = 0 for general complex coefficients ck.
The ccubsolv(a,z) routine solves the cubic and algebraic polynomial equation z3 + c2 z2 + c1 z + c0 = 0, for general complex coefficients ck, and returns the three complex-valued roots for z.