Electromagnetic Scattering by Particles and Surfaces

FORTRAN Codes for the Computation of (Polarized) Bidirectional Reflectance of Flat Particulate Layers and Rough Surfaces

This webpage provides access to three collections of FORTRAN codes.

The first one can be used to compute the scalar bidirectional reflectance of a semi-infinite homogeneous slab composed of arbitrarily shaped, randomly oriented particles based on a rigorous numerical solution of the radiative transfer equation.

The second one can be used to compute the polarized bidirectional reflectance of a semi-infinite homogeneous slab composed of arbitrarily shaped, randomly oriented particles based on a rigorous numerical solution of the vector radiative transfer equation.

The third one can be used to compute the Stokes reflection matrix of a rough interface separating two homogeneous half-spaces with different refractive indices (e.g., a rough ocean surface).


PARTICULATE SEMI-INFINITE LAYERS: SCALAR CASE

The code brf.f solves the Ambartsumian's nonlinear integral equation for the reflection function using a simple iterative method. Since this technique bypasses the computation of the internal field, it is by far the fastest and most accurate numerical approach available.

The codes are ideally suitable to computing the BRF for flat snow, soil, and powder surfaces and optically thick clouds and may find applications in geophysics, physics, biophysics, and industrial research.

A detailed user manual to the codes has been published: M. I. Mishchenko, J. M. Dlugach, E. G. Yanovitskij, and N. T. Zakharova, Bidirectional reflectance of flat, optically thick particulate layers: An efficient radiative transfer solution and applications to snow and soil surfaces, J. Quant. Spectrosc. Radiat. Transfer, 63, 409-432 (1999).

The users of the code are encouraged to visit this page on a regular basis for information on latests developments, warnings, and/or errors found. We would highly appreciate informing us of any problems and errors encountered with these codes. Please e-mail your questions and comments to michael.i.mishchenko@nasa.gov.

FORTRAN codes

To retrieve a code, click on the code name and use the "Save As..." option from the "File" menu.

  • refl.f - This code computes Fourier components of the reflection function
  • interp.f - This code computes the bidirectional reflection function for a given set of scattering geometries
  • spher.f - This code computes the Legendre expansion coefficients for polydisperse spherical particles using the standard Lorenz-Mie theory

The codes must be run in the following sequence: spher.f -> refl.f -> interp.f.

Note that the Legendre expansion coefficients for polydisperse, randomly oriented nonspherical particles and sphere aggregates can be computed using T-matrix codes. The expansion coefficients for the standard and double-peaked Henyey-Greenstein phase functions are computed using Eqs. (15) and (19) of the manual. Below we also provide the Legendre expansion coefficients for two nonspherical ice particle models described in the manual.

Benchmark results

The following output files were computed by the codes in their current settings and may provide a useful test of the performance of the codes on different computers:

The file refl.write is not given here because of its large size.

Legendre coefficients for two ice particle models


PARTICULATE SEMI-INFINITE LAYERS: FULL VECTOR CASE

The FORTRAN program pbrf.f solves the vector Ambartsumian's nonlinear integral equation for the Stokes reflection matrix using a simple iterative method. Since this technique bypasses the computation of the internal field, it is by far the fastest and most accurate numerical approach available.

A detailed user manual to the code is available here.

The users of the program are encouraged to visit this page on a regular basis for information on latests developments, warnings, and/or errors found. We would highly appreciate informing us of any problems and errors encountered with this program. Please e-mail your questions and comments to michael.i.mishchenko@nasa.gov.

FORTRAN codes

To retrieve a code, click on the code name and use the "Save As..." option from the "File" menu.

  • pbrf.f - This code computes Fourier components of the reflection matrix
  • pbrf.par.f - This code must be stored in the same directory as pbrf.f
  • spher.pbrf.f - This code computes the expansion of the Stokes scattering matrix in generalized spherical functions for polydisperse spherical particles using the standard Lorenz-Mie theory

The codes must be run in the following sequence: spher.f -> pbrf.f

Note that the expansion coefficients for polydisperse, randomly oriented nonspherical particles and sphere aggregates can be computed using T-matrix codes.

Benchmark results

The following output files were computed by the codes in their current settings and may provide a useful test of the performance of the codes on different computers:

The file pbrf.write is not given here because of its large size.


ROUGH SURFACES

The code ocean.shadow.f calculates the Stokes reflection matrix for illumination from above for a statistically rough surface separating two half-spaces with different refractive indices. The effect of shadowing is included.

The code ocean.phase.f calculates Fourier components of the Stokes reflection matrix for illumination from above for a statistically rough surface separating two half-spaces with different refractive indices. The effect of shadowing is included.

A detailed user manual to the codes has been published: M. I. Mishchenko and L. D. Travis, Satellite retrieval of aerosol properties over the ocean using polarization as well as intensity of reflected sunlight, J. Geophys. Res., 102, 16989-17013. A hardcopy reprint of this paper is available from Michael Mishchenko upon request. Please leave a message at michael.i.mishchenko@nasa.gov indicating your name and mailing address.

The users of the codes are encouraged to visit this page on a regular basis for information on latests developments, warnings, and/or errors found. We would highly appreciate informing us of any problems and errors encountered with these codes. Please e-mail your questions and comments to michael.i.mishchenko@nasa.gov.

FORTRAN codes

To retrieve a code, click on the code name and use the "Save As..." option from the "File" menu.

Contact

Please address all inquires about this research to Dr. Michael Mishchenko.

Scattering Home
Books | Publications On-Line
Electromagnetics Community Directory
Codes: T-Matrix | Bidirectional Reflectance | Lorenz-Mie
Related Codes and Databases