The various parameterizations that comprise the the model physics are hooked to the control code using a standard form of initialization and calling interface. Each parameterization contains an initialization routine called on start-up. In most cases, these routines are named "xxinti," where "xx'' is the standard prefix for the particular parameterization (e.g. vdinti is the initializer for the vertical diffusion package). Most of these routines are called from subroutine inti, before the time integration procedure begins. These routines set constants in the parameterization-specific common blocks and do other initialization tasks that are not dependent upon time or latitude. Some data initialization is done within various block data subprograms.
Figure 3.5. Spectral storage arrangement when
running on a parallel vector processor.
Certain constants may appear in more than one common block, as needed by various parameterizations. For instance, constant cpair, the specific heat of dry air, appears in /comadj/, /comvd/, /comcon/, and other common blocks. Variables in /comcon/ are set in subroutine initcom. Then subroutine inti passes the required /comcon/ constants into each ''xxinti'' routine, which sets the individual common block constants from the passed values. At this point unit conversions or other manipulations as required by the individual parameterization are performed.
Other common blocks (i.e. those not directly related to physics code) are defined by function and exist either to give their variables global scope or to avoid the necessity of passing certain variables through many argument lists.
Figure 3.6. Spectral storage arrangement when not running on a parallel vector processor.
Each parameterization includes an interface routine that passes data
between the high-level driving routines and the parameterization itself.
This approach allows the parameterization to access each required array
using a mnemonically named multidimensional array, rather than via the
common block itself This is shown in the section "Grid-point Data Structures",
"Model Buffers" .
Questions on these pages can be sent to... erik@ucar.edu .