EcoLight-S[ubroutine] is an extremely fast radiative transfer equation (RTE) solver developed for use as the optical component of coupled physical-biological-optical ocean ecosystem models, or as the forward model in a model inversion algorithm.

Whereas HydroLight is intended for stand-alone use as a research tool, and includes a user interface for entering the inputs needed to solve the RTE, EcoLight-S is a collection of subroutines to be embedded in the user’s own code. Unlike HydroLight, EcoLight-S has no user interface or built-in bio-geo-optical models or sky radiance models, the user's code provides the input radiances and IOPs (i.e. the absorption and scattering properties). EcoLight-S is purely an software library RTE solver that emphasizes fast run times controlled by a user-selectable level of accuracy.

EcoLight-S is supplied as a software code library written in Fortran 95.


EcoLight-S has various options such as solving the RTE at only selected wavelengths and to different depths at different wavelengths (dynamically determined at run time), with unsolved wavelengths and depths being obtained by interpolation or extrapolation. Such options can greatly reduce the run time, but also reduce the accuracy of the computed irradiances and other quantities. EcoLight-S can compute PAR throughout the euphotic zone with less than 10% error in a fraction of a second on a standard computer. When optimized, EcoLight-S is typically 1000 times faster than HydroLight.

The inputs for EcoLight-S are the same as for HydroLight, namely the IOPs of the water body, the incident sky radiance, and the bottom reflectance (in finite-depth waters). All inputs needed to solve the RTE must be explicitly defined by the user before calling the EcoLight-S subroutine. There are no built-in bio-geo-optical (or sky, etc.) models within EcoLight-S, although such models can be called by the user’s own program to obtain the inputs needed by EcoLight-S. Although there is no user interface for EcoLight-S, the software comes with “fill in the blank” templates and example driver programs showing how to define the needed inputs.

EcoLight-S is entirely new code written in Fortran 95 (except for a few legacy Fortran 77 public-code routines for standard mathematical operations). All communication between the user’s code and EcoLight-S is via two Fortran 95 modules and one call to subroutine EcoLight-S. The input module contains all of the inputs that must be defined by the user before calling EcoLight-S, and the output module returns all of the outputs from EcoLight-S for use by the user. The user does not need to have any knowledge of the internal workings of the EcoLight-S code. Likewise, the EcoLight-S code is completely independent of the nature and purpose of the user’s code.


The following documents give more information on how the EcoLight-S code library can be used:

For support requests and queries about EcoLight-S, email