How Does AQUATOX Work?
AQUATOX represents the aquatic ecosystem by simulating the changing concentrations (in mg/L or g/m3) of organisms, nutrients, chemicals, and sediments in a unit volume of water. As such, it differs from population models, which represent the changes in numbers of individuals. As O'Neill et al. (1986) stated, ecosystem models and population models are complementary; one cannot take the place of the other. Population models excel at modeling individual species at risk and modeling fishing pressure and other age/size-specific aspects; but recycling of nutrients, the combined fate and effects of toxic chemicals, and other interdependencies in the aquatic ecosystem are important aspects that AQUATOX represents and that cannot be addressed by a population model.
AQUATOX is written in object-oriented Pascal. This enables the code to represent different aspects of the ecology as distinct Pascal objects. Each of these coded objects has similar characteristics as the object that it is representing in the aquatic ecosystem does. Objects also include equations as to how they interact with each other in each timestep. Each timestep these equations are fed into a differential equations solver that calculates their values in the next timestep. AQUATOX uses a very efficient fourth- and fifth-order Runge-Kutta integration routine with adaptive stepsize to solve the differential equations. The routine uses the fifth-order solution to determine the error associated with the fourth-order solution; it decreases the stepsize when rapid changes occur and increases the stepsize when there are slow changes, such as in winter. If the stepsize is greater than one day, the model interpolates and reports the results with a daily reporting step.