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

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

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


Revision 1.1 - (show annotations) (download) (as text)
Wed Jan 28 19:56:21 2004 UTC (21 years, 6 months ago) by jmc
Branch: MAIN
File MIME type: application/x-tex
add package description.

1 % \documentclass[12pt]{article}
2 % \usepackage{amssymb}
3 %
4 % \usepackage{graphics}
5 %
6 %
7 % \oddsidemargin -4mm \evensidemargin 0mm
8 % \textwidth 165mm
9 % \textheight 230mm
10 % \topmargin -2mm \headsep -2mm
11 % \renewcommand{\baselinestretch}{1.5}
12 % \begin{document}
13 %
14
15 %%%--------------------------------------%%%
16 \def\deg{$^o$}
17 \section{Bulk Formula Package}
18
19 author: Stephanie Dutkiewicz\\
20
21 \noindent
22 Instead of forcing the model with heat and fresh water flux data,
23 this package calculates these fluxes using the changing sea surface
24 temperature. We need to read in some atmospheric data:
25 {\bf air temperature, air humidity, down shortwave radiation,
26 down longwave radiation, precipitation, wind speed}.
27 The current setup also reads in {\bf wind stress}, but this
28 can be changed so that the stresses are calculated from the
29 wind speed.
30
31 The current setup requires that there is the thermodynamic-seaice package
32 ({\it pkg/thsice}, also refered below as seaice)
33 is also used. It would be useful though to have it also
34 setup to run with some very simple parametrization of the sea ice.
35
36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
37
38 \vspace{1cm}
39
40 \noindent
41 The heat and fresh water fluxes are calculated in {\it bulkf\_forcing.F}
42 called from {\it forward\_step.F}. These fluxes are used over open water,
43 fluxes over seaice are recalculated in the sea-ice package.
44 Before the call to {\it bulkf\_forcing.F} we call
45 {\it bulkf\_fields\_load.F} to find the current atmospheric conditions.
46 The only other changes to the model code come from the initializing
47 and writing diagnostics of these fluxes.
48
49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 \vspace{1cm}
51 \noindent
52 {\bf \underline{subroutine BULKF\_FIELDS\_LOAD}}
53
54 \noindent
55 Here we find the atmospheric data needed for the bulk formula
56 calculations. These are read in at periodic intervals and
57 values are interpolated to the current time. The data file names
58 come from {\bf data.blk}. The values that can be read in are:
59 air temperature, air humidity, precipitation,
60 down solar radiation, down long
61 wave radiation, zonal and meridional wind speeds, total wind
62 speed, net heat flux, net freshwater forcing, cloud cover,
63 snow fall, zonal and meridional wind stresses, and SST and SSS
64 used for relaxation terms.
65 Not all these files are necessary or used. For instance cloud
66 cover and snow fall are not used in the current bulk formula
67 calculation. If total wind speed is not supplied, wind speed
68 is calculate from the zonal and meridional components. If
69 wind stresses are not read in, then the stresses are calculated
70 from the wind speed. Net heat flux and net freshwater can be
71 read in and used over open ocean instead of the bulk formula
72 calculations (but over seaice the bulkf formula is always
73 used). This is "hardwired" into {\it bulkf\_forcing} and
74 the "ch" in the variable names suggests that this is "cheating".
75 SST and SSS need to be read in if there is any relaxation used.
76
77
78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
79
80
81 \vspace{1cm}
82 \noindent
83 {\bf \underline{subroutine BULKF\_FORCING}}
84
85 \noindent
86 In {\it bulkf\_forcing.F}, we calculate heat and fresh water
87 fluxes (and wind stress, if necessary) for each grid cell.
88 First we determine if the grid cell is open water or seaice
89 and this information is carried by {\bf iceornot}. There is
90 a provision here for a different designation if there is
91 snow cover (but currently this does not make any difference).
92 We then call {\it bulkf\_formula\_lanl.F} which provides
93 values for: up long wave radiation, latent and sensible heat
94 fluxes, the derivative of these three with respect to surface
95 temperature, wind stress, evaporation.
96 Net long wave radiation is calculated from the combination
97 of the down long wave read in and the up long wave calculated.
98
99 We then find the albedo of the surface - with a call to
100 {\it sfc\_albedo} if there is sea-ice (see the seaice package
101 for information on the subroutine). If the grid cell is open
102 ocean the albedo is set as 0.1. Note that this is a parameter
103 that can be used to tune the results. The net short wave
104 radiation is then the down shortwave radiation minus the
105 amount reflected.
106
107 If the wind stress needed to be calculated in {\it bulkf\_formula\_lanl.F},
108 it was calculated to grid cell center points, so in {\it bulkf\_forcing.F}
109 we regrid to {\bf u} and {\bf v} points. We let the model know
110 if it has read in stresses or calculated stresses by the switch
111 {\bf readwindstress} which is can be set in data.blk, and defaults
112 to {\bf .TRUE.}.
113
114 We then calculate {\bf Qnet} and {\bf EmPmR} that will be used
115 as the fluxes over the open ocean. There is a provision for
116 using runoff. If we are "cheating" and using observed fluxes
117 over the open ocean, then there is a provision here to
118 use read in {\bf Qnet} and {\bf EmPmR}.
119
120 The final call is to calculate averages of the terms found
121 in this subroutine.
122
123 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124 \vspace{1cm}
125 \noindent
126 {\bf {\underline{ subroutine BULKF\_FORMULA\_LANL}}}
127
128 \noindent
129 This is the main program of the package where the
130 heat fluxes and freshwater fluxes over ice and
131 open water are calculated. Note that this subroutine
132 is also called from the seaice package during the
133 iterations to find the ice surface temperature.
134
135 Latent heat ($L$) used in this subroutine
136 depends on the state of the surface: vaporization for
137 open water, fusion and vaporization for ice surfaces.
138 Air temperature is converted from Celsius to Kelvin.
139 If there is no wind speed ($u_s$) given, then the wind speed
140 is calculated from the zonal and meridional components.
141
142 We calculate the virtual temperature:
143 \[
144 T_o = T_{air} (1+\gamma q_{air})
145 \]
146 where $T_{air}$ is the air temperature at $h_T$, $q_{air}$ is
147 humidity at $h_q$ and $\gamma$ is a constant.
148
149 The saturated vapor pressure is calculate (QQ ref):
150 \[
151 q_{sat} = \frac{a}{p_o} e^{L (b-\frac{c}{T_{srf}})}
152 \]
153 where $a,b,c$ are constants, $T_{srf}$ is surface temperature
154 and $p_o$ is the surface pressure.
155
156 The two values crucial for the bulk formula calculations are
157 the difference between air at sea surface and sea surface temperature:
158 \[
159 \Delta T = T_{air} - T_{srf} +\alpha h_T
160 \]
161 where $\alpha$ is adiabatic lapse rate and $h_T$ is the height
162 where the air temperature was taken; and the difference
163 between the air humidity and the saturated humidity
164 \[
165 \Delta q = q_{air} - q_{sat}.
166 \]
167
168 We then calculate the turbulent exchange coefficients
169 following Bryan et al (1996) and the numerical scheme
170 of Hunke and Lipscombe (1998).
171 We estimate initial values for the exchange coefficients, $c_u$,
172 $c_T$ and $c_q$ as
173 \[
174 \frac{\kappa}{ln(z_{ref}/z_{rou})}
175 \]
176 where $\kappa$ is the Von Karman constant, $z_{ref}$ is a
177 reference height and $z_{rou}$ is a roughness length scale
178 which could be a function of type of surface, but is here set
179 as a constant. Turbulent scales are:
180 \begin{eqnarray}
181 u^* & = & c_u u_s \nonumber\\
182 T^* & = & c_T \Delta T \nonumber\\
183 q^* & = & c_q \Delta q \nonumber
184 \end{eqnarray}
185
186 We find the "integrated flux profile" for momentum and stability
187 if there are stable QQ conditions ($\Upsilon>0$) :
188 \[
189 \psi_m = \psi_s = -5 \Upsilon
190 \]
191 and for unstable QQ conditions ($\Upsilon<0$):
192 \begin{eqnarray}
193 \psi_m & = & 2 ln(0.5(1+\chi)) + ln(0.5(1+\chi^2)) - 2 \tan^{-1} \chi + \pi/2
194 \nonumber \\
195 \psi_s & = & 2 ln(0.5(1+\chi^2)) \nonumber
196 \end{eqnarray}
197 where
198 \[
199 \Upsilon = \frac{\kappa g z_{ref}}{u^{*2}} (\frac{T^*}{T_o} +
200 \frac{q^*}{1/\gamma + q_a})
201 \]
202 and $\chi=(1-16\Upsilon)^{1/2}$.
203
204 The coefficients are updated through 5 iterations as:
205 \begin{eqnarray}
206 c_u & = & \frac {\hat{c_u}}{1+\hat{c_u}(\lambda - \psi_m)/\kappa} \nonumber \\
207 c_T & = & \frac {\hat{c_T}}{1+\hat{c_T}(\lambda - \psi_s)/\kappa} \nonumber \\
208 c_q & = & c'_T
209 \end{eqnarray}
210 where $\lambda =ln(h_T/z_{ref})$.
211
212 We can then find the bulk formula heat fluxes:
213
214 \vspace{.2cm}
215 \noindent
216 Sensible heat flux:
217 \[
218 Q_s=\rho_{air} c_{p_{air}} u_s c_u c_T \Delta T
219 \]
220
221 \vspace{.2cm}
222 \noindent
223 Latent heat flux:
224 \[
225 Q_l=\rho_{air} L u_s c_u c_q \Delta q
226 \]
227
228 \vspace{.2cm}
229 \noindent
230 Up long wave radiation
231 \[
232 Q_{lw}^{up}=\epsilon \sigma T_{srf}^4
233 \]
234 where $\epsilon$ is emissivity (which can be different for
235 open ocean, ice and snow), $\sigma$ is Stefan-Boltzman constant.
236
237 We calculate the derivatives of the three above functions
238 with respect to surface temperature
239 \begin{eqnarray}
240 \frac{dQ_s}{d_T} & = & \rho_{air} c_{p_{air}} u_s c_u c_T \nonumber \\
241 \frac{dQ_l}{d_T} & = & \frac{\rho_{air} L^2 u_s c_u c_q c}{T_{srf}^2} \nonumber \\
242 \frac{dQ_{]lw}^{up}}{d_T} & = & 4 \epsilon \sigma t_{srf}^3 \nonumber
243 \end{eqnarray}
244
245 And total derivative $\frac{dQ_o}{dT}= \frac{dQ_s}{dT} +
246 \frac{dQ_l}{dT} + \frac{dQ_{lw}^{up}}{dT}$.
247
248
249
250
251 If we do not read in the wind stress, it is calculated here.
252
253 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
254
255 \vspace{1cm}
256
257 \noindent
258 {\bf {\underline{Initializing subroutines}}}
259
260 \noindent
261 {\it bulkf\_init.F}:
262 Set bulkf variables to zero.
263
264 \noindent
265 {\it bulkf\_readparms.F}:
266 Reads {\bf data.blk}
267
268 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
269
270 \vspace{1cm}
271
272 \noindent
273 {\bf {\underline{Diagnostic subroutines}}}
274
275 \noindent
276 {\it bulkf\_ave.F}:
277 Keeps track of means of the bulkf variables
278
279 \noindent
280 {\it bulkf\_diags.F}:
281 Finds averages and writes out diagnostics
282
283 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
284 \vspace{1cm}
285
286 \noindent
287 {\bf {\underline{Common Blocks}}}
288
289 \noindent
290 {\it BULKF.h}: BULKF Variables, data file names, and logicals
291 {\bf readwindstress} and {\bf readsurface}
292
293 \noindent
294 {\it BULKF\_DIAGS.h}: matrices for diagnostics: averages of fields
295 from {\it bulkf\_diags.F}
296
297 \noindent
298 {\it BULKF\_ICE\_CONSTANTS.h}:
299 all the parameters need by the ice model and in the bulkf formula
300 calculations.
301
302 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
303 \vspace{1cm}
304
305 \noindent
306 {\bf {\underline{Input file DATA.ICE}}}
307
308 \noindent
309 We read in the file names of atmospheric data used in
310 the bulk formula calculations. Here we can also set
311 the logicals: {\bf readwindstress} if we read in the
312 wind stress rather than calculate it from the wind
313 speed; and {\bf readsurface} to read in the surface
314 temperature and salinity if these will be used as
315 part of a relaxing term.
316
317 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
318 \vspace{1cm}
319
320 \noindent
321 {\bf {\underline{Important Notes}}}
322
323 \noindent
324 {\bf 1)} heat fluxes have different signs in the ocean and ice
325 models.
326
327 \noindent
328 {\bf 2)} {\bf StartIceModel} must be changed in {\bf data.ice}:
329 1 (if starting from no ice), 0 (if using pickup.ic file).
330
331 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
332
333 \vspace{1cm}
334
335 \noindent
336 {\bf {\underline{References}}}
337
338
339 \vspace{.2cm}
340
341 \noindent
342 Bryan F.O., B.G Kauffman, W.G. Large, P.R. Gent, 1996:
343 The NCAR CSM flux coupler. Technical note TN-425+STR,
344 NCAR.
345
346 \vspace{.2cm}
347
348 \noindent
349 Hunke, E.C and W.H. Lipscomb, circa 2001: CICE: the Los Alamos
350 Sea Ice Model Documentation and Software User's Manual.
351 LACC-98-16v.2.\\
352 (note: this documentation is no longer available as CICE has progressed
353 to a very different version 3)
354
355
356
357
358
359 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
360 % \end{document}

  ViewVC Help
Powered by ViewVC 1.1.22