KramersKronig (KK) codes:
The integral KramersKronig relations connect the real and imaginary
parts of optical constants of a material at a frequency point
with their values over the whole frequency domain
(see e.g. Bohren & Huffman, 1983)

KK toolbox
These tools developed by Volker Ossenkopf include an interactive
program that allows to check the KK consistency of
refractive index or dielectric functions
and extrapolate them. Computations are controlled by eye via
graphical plots.
The code is available
here.

KK analysis
A special part of the KK toolbox for the analysis of
transmission spectra of samples.
The code is available
here.
Effective medium theory (EMT):
The EMT presents an approximation to estimate the optical
properties of an inhomogeneous particle by its substitution
with a homogeneous particle having an effective refractive
index.

some basics of EMT
Several formula of the theory, a few words around them and
some tools for EMT calculations are on this page of Ralf Stognienko.
There is also an online
EMT calculator.

EMT calculators
Nice programs created by Volker Ossenkopf.
They allow one to find the effective refractive index for
some rules of EMT, several kinds of inclusions of different
shapes, etc. The codes (emc, nemc) are available
here.
Light scattering codes:

Thomas Wriedt's list of codes
Many links and references to different scattering codes available
are given.
An extended section on Mie theory codes includes a lot of
simple and not simple codes for homogeneous spheres as well as
codes for layered spheres, spheres with nonconcentric inclusions,
a sphere or cylinder on surface, bispheres.
Most of these codes and Tmatrix codes for
rotationally symmetric scatters are free.
In contrast, 3D codes are mainly commercial.
They are based on different approaches:
generalized multipole technique, method of moments,
finite element and other methods.
Not only Fortran codes, but some in C++, Pascal, etc.

a Java Mie code
This code allows you to calculate the optical properties
of a homogeneous sphere without leaving Internet.

a couple of other Mie codes
These codes calculate crosssections,
scattering matrix and (sometimes) the Planck averages
for homogeneous spheres (and arbitrary ellipsoids in
the quasistatic limit).
There is a program to find the crosssections for the case when
the material has the magnetic permeability different from 1.
The codes are available
here.

a Separation of Variables code
The code simulates light scattering by
homogeneous oblate and prolate spheroids with high accuracy.
It provides crosssections (and scattering matrix elements)
for oblate and prolate spheroids in a very wide range of
aspect ratio, size, and refractive index values.

a sophisticated Tmatrix code
The code computes the light scattering by rotationally symmetric particles
in fixed and random orientations.
The code is much faster than any 3D technique (see below).
It is in particular efficient
when an averaging over particle's orientations is required.

a 3D DDA code
The standard tool for calculations of light scattering by
particles of complex shape, structure, composition, etc.
It is not fast when the particle's size is larger
than the wavelength of incident radiation.