Go to the bottom of this page. See the search engine and sub-section links.
Go to next page Go to previous page Go to top of this section Go to top page Go to table of contents

Previous Section Headers

User's Guide to NCAR CCM3.6 Search Page


4. Changing the Model


4.3 Adding New Constituents

Adding tracers to the model is achieved by modifying the parameters PCNST and/or PNATS. PCNST represents the number of advected constituents transported in the atmosphere whereas PNATS determines the number of non-advected constituents. CCM3.6 carries one advected constituent (water vapor) by default, but has the capability of transporting up to 98 additional constituents depending upon available memory. It is important to realize that any new constituents will act strictly as passive tracers since there is no feedback mechanism to allow a constituent to affect the predicted climate. However, certain physical processes within the atmosphere do affect the transport of a constituent. Currently, no physical parameterizations act upon non-advected constituents. For example, if the user desires the added non-advected constituents to be vertically diffused, the appropriate sections of the vertical diffusion code will have to be modified. Typical examples of processes that a user may include to influence a new constituent are: For each constituent added by the user, the model will: Constituents are input and output as dry mass mixing ratio, whereas within routines aphys, tphysbc, and tphysac the units are converted to wet mass mixing ratio.

The model determines index variables for user-added constituents at startup. In particular, user-advected constituents are given the indices ixuadv to ixuadv+nusr_adv-1 is an input namelist variable. Similarly, user non-advected tracers are referenced by the indices ixunad to ixunad+nusr_nad-1. Both nusr_adv and nusr_adv are input namelist variables. All references to these constituents must be made via the appropriate index into the array q3 in routines inidat, linemsbc and linemsac or into the array qm1 in routines below linemsbc and linemsac. The common block for ixadv and ixnad is contained in the header file comindx.h.

4.3.1 Initializing New Constituent Data Fields

If new constituents are added, the initial dataset (as indicated by namelist variable NCDATA) must be altered to include initial constituent data or routine inidat must be modified to initialize the constituents. New constituent field data is output to the primary history file by default (see Table 2.13).

If values for the new constituents are added to the initial dataset, the field names of the new constituents must match the field names assigned by the model and initial values must be supplied for every grid point at the given resolution. Constituent field names are assigned in routine initcom and saved in array tracnam(PCNST+PNATS). Constituent-related arrays (tendencies, fluxes, etc.) are stored in common block /comtrcnm/ in header file comtrcnm.h. Since water vapor is a transported constituent, its field name (Q) occupies the first element of tracnam. Thus, the field name of the first new constituent will occupy the second element of tracnam, and so on. A simple naming convention is used for all new constituents. It consists of two letters ("TR" for advected tracers and "NA" for non-advected tracers) followed by a two-digit number. Numbering of the tracers starts at 02 and is incremented by one for each new constituent. For example, if two advected and two non-advected constituents are added, their assigned field names would be TR02, TR03, NA04, and NA05. The field names on the initial dataset must match these names. Once the initial condition dataset has been created, the model will read the new constituent data into the proper array space (no new array space needs to be defined by the user) if the namelist variable READTRACE is set to TRUE.

Alternatively, the user may opt to initialize the new consituents by adding new code to routine inidat and setting namelist variable READTRACE to '.FALSE'. To modify inidat, the user should locate the if-then-else block located just beyond the line commented as "C Initialize tracers if not read in from input data." and change the subsequent code accordingly.

4.3.2 Surface Fluxes, Sources, and Sinks

The user may wish to add surface fluxes and atmospheric sources and sinks that influence constituent values. Such code should be added to routine typhsac immediately prior to the call to vdintr. Surface flux tendencies (Kg/m2/sec) should be stored in array cflx beginning at cflx(1,ixadv) for the first user-advected tracer, cflx(1,ixadv+1) for the second user-advected tracer, cflx(1,ixnad) for the first user non-advected tracer, cflx(1,ixnad+1) for the second user non-advected tracer, and so on. The first column of this array, cflx(1,1), is reserved for the surface flux of water vapor. Sources and sinks should be computed as tendencies (Kg/Kgair/sec) and stored in array srcsnk, beginning at srcsnk(1,1,ixadv) and/or srcsnk(1,1,ixnad). The user should not add these surface fluxes, sources, and sinks to the constituent fields since the model will do so. The surface flux and source/sink tendency fields, SFxx and SSxx, are already in the the Master Field List. The user, however, must insert calls to outfld within the code (see "Adding New Variables" ) and use the namelist variables PRIMARY and/or AUXF to obtain these fields on the history files.

4.3.3 Adjustment Processes

Code to perform adjustment physics (other than convective transport) to the constituents should be inserted within routine aphys. There is no pre-existing code to do the adjustment.

4.3.4 Global Minima

During a model run, constituent values may fall below an "expected" minimum. Array qmin(PCNST), set in initcom and stored in common block /comqmin/, contains the minimum acceptable value for each advected constituent. The first element of this array, qmin(1), holds the minimum value for water vapor. Successive elements hold minimum values for new advected constituents. qmin is set to 1x10-12 (Kg/Kgair) for water vapor and to 0.0 for each non-H2O advected constituent (except for one special case in routine vdiff where qmincg(1)=0.0 is used as the water vapor minimum). The model compares the advected constituent values with qmin values in routine qneg3. Any point whose value falls below the given minimum is reset to the minimum value and a warning message is printed.

NOTE: When this procedure is invoked, global mass is not conserved. Also, the default minima may not be appropriate for the advected constituents specified by the user. The qmin values may be reset by the user in the routine initcom. In cases where the model is carrying an advected constituent that is not positive definite (e.g. potential vorticity), qmin may be set to a large negative value.


Sub Sections

    4.3.1 Initializing New Constituent Data Fields
    4.3.2 Surface Fluxes, Sources, and Sinks
    4.3.3 Adjustment Processes
    4.3.4 Global Minima


 Go to the top of this page. See links to previous section headers.
Go to next page Go to previous page Go to top of this section Go to top page Go to table of contents

 Search for keywords in the CCM3.6 Users GuideSearch page

Questions on these pages can be sent to... erik@ucar.edu .


$Name: ccm3_6_6_latest3 $ $Revision: 1.40.2.1 $ $Date: 1999/03/25 21:37:29 $ $Author: erik $