This is Arturo Quirantes' webpage in computer codes. Here you will find a compilation of the main programs I've used on my light scattering research. I´ve decided to make them available to the scientific community. You can freely use them for non-profit purpuses, acknowledging original source and author.

All programs are written in Fortran language, and have been tested on Windows (sometimes also Linux) platforms.

My codes are not static, and improvements are made from time to time. Check the Updates section -at the bottom of this page- to see if new versions have been made. And don´t forget to take a look at the Graphics, too.

All codes are signed with my

Feel free to send me any comments, suggestions or additions.

Fax: +34-958-243214

e-mail: aquiran at ugr dot es

Snail Mail: Departamento de Física Aplicada, Facultad de Ciencias

Campus Universitario Fuentenueva

18071 Granada (Spain)

e-mail: aquiran at ugr dot es

Snail Mail: Departamento de Física Aplicada, Facultad de Ciencias

Campus Universitario Fuentenueva

18071 Granada (Spain)

HOMER
(Fortran code
and digital signature).HOMER calculates cross-efficiencies (extinction, scattering, absorption) for homogeneous spheres under the Mie theory.
It´s adapted for a whole size range (not just one single size
parameter), and can even be used for magnetic particles. No more.
I could also
add polarization or phase function capabilities, but I decided to leave
it deliberately simple. After all, simplicity is beauty, and
HOMER is ... D' oh! |

BART (Fortran code and digital signature).Not so complex as his sister, BART is based on the Aden-Kerker
theory to calculate light-scattering properties for coated
spherical
particles. Polydispersity is included for either core,
coating or entire particle (your pick), but it can also be used for
monodisperse calculations. It´s an old code, and
I did not try hard to optimize it. You now, BART is an
underachiver ... and proud of it. |

MARGE (Fortran code
and digital signature).MARGE uses T-matrix methods plus analytical orientation
averaging to yield light-scattering data for a collection of randomly
oriented, axially-symmetric nonspherical, homogeneous particles.
It´s the
basic code LISA came from. It´s default-set to spheroids,
but
any other axisymmetrical particle shape will do. Battle-hardened,
efficient, all-terrain, reliable ... reminds me of a Canyonero. |

LISA (Fortran code
and digital signature).An extension of MARGE, this program calculates light-scattering parameters (Cross sections, Müller matrix elements) for a collection of randomly-oriented, axially-symmetric nonspherical,
coated particles using the T-matrix method. Remarks
and comments are included in the code. A remarkable offspring,
don´t
you think?NEW: Get your JQSRT paper describing the code here |

Here´s some graphics I´ve done from my computer codes. You might want to use them to compare to your own data; plus, they look cool!

1)

All figures are jpg. Please note that their sizes range from 300 to 700 kB.

LISA |
kr=1 |
kr=5 |
kr=8 |
kr=10 |

Eps=0.6 |
kr01e06.jpg |
kr05e06.jpg |
kr08e06.jpg |
kr10e06.jpg |

Eps=1.0 |
kr01e10.jpg |
kr05e10.jpg |
kr08e10.jpg |
kr10e10.jpg |

Eps=1/0.6 |
kr01e16.jpg |
kr05e16.jpg |
kr08e16.jpg |
kr10e16.jpg |

MOE (Fortran code and signature).You need a subroutine to multiply and invert matrices? MOE is your choice. You can do B * (A^-1), or (B^-1) * A, whatever you need. Pity it doesn´t come with a cold Duff... oh yeah! |
WILLIE (Fortran code
and signature). This subroutine does the same job as MOE, but the input and output matrices are specifically declared as real: AR+iAI, BR+iBI. Sipping Scotch while running it is optional. Ach! |

NED (Fortran code and signature).If you need to calculate Clebsch-Gordan coefficients, this is what you´re looking for. Just use NED in your main program, and everything will be pretty okilly-dokilly |
APU (Fortran code and signature).For a single Clebsch-Gordan coefficiente, NED will do. But if you want to do calculations for a set of am values, APU might do better. It works fine, fast, 24/7. Just like a Kwik-E-Mart |

BURNS (Fortran code and signature).This subroutine gives abscissas and weights for a Gauss quadrature. Yes, I copied it from the Barber-Hill book. So what? You don´t want to mess with me, do you? |

- September 20, 2007: Two bugs corrected. Seems like some
Fortran compilers have trouble in accepting ABS(KR) as an integer (all
right, it is not). And a note in the source code will ease those
who thinks the "db(0)" elements is unacceptable. Thanks, Xie.

- April 24, 2007: BART's output yielded not the Müller matrix
elements Sij, but their Sij/S11 ratios. Plus, there was a 0.5
factor missing. Now he delivers full matrix element values (S11,
S12, S33, S34). Thanks to Brian Barkley for the tip.

- January 8, 2007: A few minor bugs corrected in BART. They
acted only for the x=0 (no core) or x=y (no shell). Serves him
well for invading HOMER's territory. Thanks to Marcus Sherman for
spotting it.

- November 22, 2005: If the particle is large and highly
nonspherical, the calculations of Bessel and Hankel functions done with
downward recursion might contain some errors. This is noticeable
in multiple-precision calculations only. MARGE and LISA have been
updated accordingly.

- February 16, 2005: Greetings to WILLIE. It also does matrix
multiplication-invertion, like MOE, but relies on real matrices
(A=AR+iAI
and so on)

- January 11, 2005: LISA has how a JQSRT paper describing its usage. Please feel free to DL it here
- December 20, 2004: Small tinkering in LISA and MARGE

- December 14, 2004: MARGE can now be run in extended precision
(-r8)

- December 14, 2004. Small changes in APU to reduce the
chance of errors when a C-G coefficient is zero.

- December 12, 2003: Graphic data from LISA. Help
yourself!

- November 10, 2003: BURNS. When the abscissae are close to
unity, the usual procedure for weight calculation has higher absolute
errors. The new modification reduces these errors. LISA and
MARGE have also been updated with the new BURNS subroutine.
Excellent!

- June 11, 2003: APU. A few clebsch-gordan coefficientes, which are supposed to be zero, were not. Some were in fact greater than unity, by Vishnu! Corrected now.
- June 11, 2003: LISA. Fine-tuning optimization. Plus, Clebsch-Gordan coefficients are now calculated on a need-to-use basis. As a result, now LISA can do calculations for larger particles.
- June 11, 2003: MARGE. First time in this page.
- May 27, 2003: LISA. Amazing how just a small change can speed up a program. If you DL'd it before, I strongly recommend you get the update. It´s over 20+ times faster!