/[MITgcm]/manual/s_phys_pkgs/text/gchem.tex
ViewVC logotype

Contents of /manual/s_phys_pkgs/text/gchem.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.6 - (show annotations) (download) (as text)
Thu Apr 6 17:36:07 2006 UTC (19 years, 3 months ago) by edhill
Branch: MAIN
Changes since 1.5: +1 -1 lines
File MIME type: application/x-tex
fix broken LaTeX syntax

1 \subsection {GCHEM Package}
2 \label{sec:pkg:gchem}
3 \begin{rawhtml}
4 <!-- CMIREDIR:package_gchem: -->
5 \end{rawhtml}
6
7 \subsubsection {Introduction}
8 This package has been developed as interface to the PTRACERS package.
9 The purpose is to provide a structure where various (any)
10 tracer experiments can be added to the code.
11 For instance there are placeholders for routines
12 to read in parameters needed for any tracer experiments, a routine
13 to read in extra fields required for the tracer code, routines
14 for either external forcing or internal interactions between tracers
15 and routines for additional diagnostics relating to the tracers.
16 Note that the gchem package itself is only a means to call
17 the subroutines used by specific biogeochemical experiments,
18 and does not "do" anything on its own.
19
20 There are two examples: cfc which looks at 2 tracers with a
21 simple external forcing and dic with 5 tracers whose tendency terms
22 are related to one another. We will discuss these here only as
23 how they provide examples to use this package.
24
25
26 \subsubsection {Key subroutines and parameters}
27
28 \noindent
29 {{\bf FRAMEWORK}} \\
30 {\it GCHEM\_OPTIONS.h} includes the compiler options to be used
31 in any experiment. For instance \#define ALLOW\_CFC allows
32 the CFC code to be run. An important compiler option is
33 \#define GCHEM\_SEPARATE\_FORCING which determined
34 how and when the tracer forcing is applied (see discussion
35 on Forcing below).
36 There are further runtime parameters
37 set in {\it data.gchem} and kept in common block {\it GCHEM.h}.
38 These runtime options include:\\
39 $\bullet$ {\bf tIter0} which is the integer timestep when the tracer experiment
40 is initialized. If {\bf nIter0} $=$ {\bf tIter0} then the tracers
41 are initialized to zero or from initial files. If {\bf nIter0} $>$
42 {\bf tIter0} then tracers (and previous timestep tendency terms)
43 are read in from a the ptracers pickup file. Note that tracers
44 of zeros will be carried around if {\bf nIter0} $<$ {\bf tIter0}.
45 \\
46 $\bullet$ {\bf nsubtime} is the integer number of extra timesteps
47 required by the tracer experiment. This will give a timestep
48 of {\bf deltaTtracer}$/${\bf nsubtime} for the dependencies
49 between tracers. The default is one.
50 \\
51 $\bullet$ File names - these are several filenames than can be read in
52 for external fields needed in the tracer forcing - for instance
53 wind speed is needed in both DIC and CFC packages to calculate
54 the air-sea exchange of gases. Not all file names will be used
55 for every tracer experiment.
56
57 \vspace{.5cm}
58
59 \noindent
60 {{\bf INITIALIZATION}}\\
61 The values set at runtime in data.gchem are read in
62 using {\it gchem\_readparms.F} which is called from
63 packages\_readparms.F. This will include any external
64 forcing files that will be needed by the tracer experiment.
65
66 There are two routine used to initialize parameters and fields
67 needed by the experiment packages. These are
68 {\it gchem\_init\_fixed.F} which is called from \textit{packages\_init\_fixed.F}, and
69 {\it gchem\_init\_vari.F} called from
70 packages\_init\_variable.F. The first should
71 be used to call a subroutine specific to the tracer experiment
72 which sets fixed parameters, the second should call a subroutine
73 specific to the tracer experiment
74 which sets (or initializes) time fields that will vary with time.
75
76 \vspace{.5cm}
77
78
79 \noindent
80 {{\bf LOADING FIELDS}}\\
81 External forcing fields used by the tracer experiment are read
82 in by a subroutine (specific to the tracer experiment) called from
83 {\it gchem\_fields\_load.F}. This latter is called from \textit{forward\_step.F}.
84
85 \vspace{.5cm}
86
87
88 \noindent
89 {{\bf FORCING}}\\
90 Tracer fields are advected-and-diffused by the ptracer package.
91 Additional changes (e.g. surface forcing or interactions
92 between tracers) to these fields are taken care of by the gchem
93 interface. For tracers that are essentially passive (e.g. CFC's)
94 but may have some surface boundary conditions
95 this can easily be done within the regular tracer timestep. In this case
96 {\it gchem\_calc\_tendency.F} is called from {\it forward\_step.F}, where the
97 reactive (as opposed to the advective diffusive) tendencies are computed.
98 These tendencies, stored on the 3D field \textbf{gchemTendency}, are added to
99 the passive tracer tendencies \textbf{gPtr} in {\it gchem\_add\_tendency.F},
100 which is called from {\it ptracers\_forcing.F}.
101 For tracers with more complicated dependencies on each other,
102 and especially tracers which require a smaller timestep than
103 deltaTtracer, it will be easier to use {\it gchem\_forcing\_sep.F}
104 which is called from forward\_step.F. There is a
105 compiler option set in {\it GCHEM\_OPTIONS.h} that determines
106 which method is used: \#define GCHEM\_SEPARATE\_FORCING
107 does the latter where tracers are forced separately from the
108 advection-diffusion code, and \#undef GCHEM\_SEPARATE\_FORCING
109 includes the forcing in the regular timestepping.
110
111 \vspace{.5cm}
112
113 \noindent
114 {{\bf DIAGNOSTICS}}\\
115 This package also also used the passive tracer routine {\it ptracers\_monitor.F}
116 which prints out tracer statistics
117 as often as the model dynamic statistic diagnostics (dynsys) are written (or
118 as prescribed by the runtime flag \textbf{PTRACERS\_monitorFreq}, set in {\it data.ptracers}).
119 There is also a placeholder for any tracer experiment
120 specific diagnostics to be calculated and printed to files.
121 This is done in {\it gchem\_diags.F}. For instance the time average CO2
122 air-sea fluxes, and sea surface pH (among others) are written
123 out by {\it dic\_biotic\_diags.F} which is called from {\it gchem\_diags.F}.
124
125 \subsubsection{GCHEM Diagnostics}
126 \label{sec:pkg:gchem:diagnostics}
127
128 \begin{verbatim}
129
130 ------------------------------------------------------------------------
131 <-Name->|Levs|<-parsing code->|<-- Units -->|<- Tile (max=80c)
132 ------------------------------------------------------------------------
133 DICBIOA | 15 |SM P MR |mol/m3/sec |Biological Productivity (mol/m3/s)
134 DICCARB | 15 |SM P MR |mol eq/m3/sec |Carbonate chg-biol prod and remin (mol eq/m3/s)
135 DICTFLX | 1 |SM P L1 |mol/m3/sec |Tendency of DIC due to air-sea exch (mol/m3/s)
136 DICOFLX | 1 |SM P L1 |mol/m3/sec |Tendency of O2 due to air-sea exch (mol/m3/s)
137 DICCFLX | 1 |SM P L1 |mol/m2/sec |Flux of CO2 - air-sea exch (mol/m2/s)
138 DICPCO2 | 1 |SM P M1 |atm |Partial Pressure of CO2 (atm)
139 DICPHAV | 1 |SM P M1 |dimensionless |pH (dimensionless)
140 \end{verbatim}
141
142 \subsubsection{Do's and Don'ts}
143
144 The pkg ptracer is required with use with this pkg. Also, as usual, the
145 runtime flag \textbf{useGCHEM} must be set to \textbf{.TRUE.} in \textbf{data.pkg}.
146 By itself, gchem pkg will read in \textbf{data.gchem} and will
147 write out gchem diagnostics. It requires tracer experiment
148 specific calls to do anything else (for instance the calls
149 to dic and cfc pkgs).
150
151 \subsubsection{Reference Material}
152

  ViewVC Help
Powered by ViewVC 1.1.22