Community Aerosol and Radiation Model for Atmospheres
Version 3.0
Documentation
The following documentation is automatically generated from the comments in the
source code by f90doc. It contains a description of all the routines, but doesn't contain
the actual code.
1) Model Definition
The model is initialized by using carma_mod.F90, which contains lists of groups, elements,
solutes and gases. This is how the specific microphysical model to be implemented is
described.
2) Atmospheric State & Model Execution
The atmospheric state is captured via the state object. Once the state is entered
and initialized, then the Step method advances the atmospheric state to the next time step.
Multiple threads can be used by creating multiple state objects (one per thread) and initializing
each of them with a different column. See the test example carma_test.F90
for an example of how to use multiple threads.
3) Constants, Enumerations, Types & Precision
4) Algorithms
The algortihms look very much like the Fortran 77 code from CARMA 2.3. This was
done to make it easier to transition code to the Fortran 90 framework and so that the
Fortran 90 code would look familiar to CARMA 2.3 developers. The common block variables have
been replaced by structures; however, the file carma_globaer.h
uses macros to map the old common bloack names to the new structure elements. You must
be careful not to try to use the names defined in carma_globaer.h as locally declared variables.
5) Tests
The test cases exercise the CARMA code. The tests are located in the tests subdirectory.
Each test creates a file named carma_xxxtest.txt with the results and has a read_xxxtest.pro
IDL file that is used to analyze and plot the test results. The tests can be executed
interactively using run-carma.csh <executable name> or all can be run in batch mode
(without display) using the script run-regress.csh. Standard results for each test are
located in tests/bench.