File indexing completed on 2018-03-02 18:37:38 UTC
view on githubraw file Latest commit 672ec4d5 on 2016-12-01 17:05:48 UTC
672ec4d5cf Jean*0001 <HTML>
0002 <TITLE>module vert_turb_driver_mod</TITLE>
0003 <BODY BGCOLOR="#AABBCC" TEXT="#332211" >
0004
0005 <DIV ALIGN="CENTER"> <FONT SIZE=1>
0006 <A HREF="#INTERFACE">PUBLIC INTERFACE</A> /
0007 <A HREF="#ROUTINES">ROUTINES</A> /
0008 <A HREF="#NAMELIST">NAMELIST</A> /
0009 <A HREF="#DIAGNOSTICS">DIAGNOSTICS</A> /
0010 <A HREF="#ERRORS">ERRORS</A>
0011 </FONT>
0012 <BR><BR></DIV><HR>
0013
0014
0015 <H2>Module vert_turb_driver_mod</H2>
0016 <A NAME="HEADER">
0017 <PRE>
0018 <B>Contact:</B> Bruce Wyman, Steve Klein
0019 <B>Reviewers:</B>
0020
0021 </PRE>
0022 </A>
0023
0024 <A NAME="OVERVIEW">
0025 <HR>
0026 <H4>OVERVIEW</H4>
0027
0028 <PRE>
0029
0030 Controls the selection of schemes to determine diffusion
0031 coefficents in the free atmosphere and outputs related
0032 diagnostic quantities.
0033
0034 </PRE>
0035 </A>
0036
0037 <A NAME="DESCRIPTION">
0038
0039 <PRE>
0040
0041 The follow processes are controlled by this module:
0042
0043 1) Mellor-Yamada 2.5 turbulence closure scheme
0044 2) Generalized diffusivity scheme
0045 3) Shallow convection scheme
0046 4) Calculation of gustiness
0047
0048 </PRE>
0049 </A>
0050
0051 <A NAME="MODULES_USED">
0052 <HR>
0053 <H4>OTHER MODULES USED</H4>
0054
0055 <PRE>
0056
0057 my25_turb_mod
0058 diffusivity_mod
0059 shallow_conv_mod
0060 diag_manager_mod
0061 time_manager_mod
0062 constants_mod
0063 utilities_mod
0064
0065 </PRE>
0066 </A>
0067
0068 <A NAME="INTERFACE">
0069 <HR>
0070 <H4>PUBLIC INTERFACE</H4>
0071
0072 <PRE>
0073
0074 use vert_turb_driver_mod [,only: vert_turb_driver_init,
0075 vert_turb_driver, vert_turb_driver_end]
0076
0077 vert_turb_driver_init - Must be called once before vert_turb_driver to
0078 initialize the module (reads namelist input)
0079 and other modules used.
0080
0081 vert_turb_driver - Called every time step to compute diffusion
0082 coefficients.
0083
0084 vert_turb_driver_end - Called at the end of the model run to terminate
0085 the vert_turb_driver module and other modules used.
0086
0087 Notes:
0088 1) A namelist interface controls runtime options and selects fields
0089 for diagnostics output.
0090
0091 </PRE>
0092 </A>
0093
0094 <A NAME="ROUTINES">
0095 <HR>
0096 <H4>PUBLIC ROUTINES</H4>
0097
0098 <PRE>
0099
0100 <b>call vert_turb_driver_init</b> (id, jd, kd, axes, Time)
0101
0102 input
0103
0104 id, jd number of horizontal grid points in the global
0105 fields along the i and j axis, repectively.
0106 [integer]
0107
0108 kd number of vertical points in a column of the atmosphere
0109 [integer]
0110
0111 axes The axis indices that are returned by previous calls to
0112 diag_axis_init. The values of this array correspond to the
0113 x, y, full (p)level, and half (p)level axes. These are the
0114 axes that diagnostic fields are output on.
0115 [integer, dimension(4)]
0116
0117 Time The current time. [time_type]
0118
0119 ---------------------------------------------------------------------
0120
0121 <b>call vert_turb_driver</b> (is, js, Time, Time_next, dt, frac_land,
0122 p_half, p_full, z_half, z_full,
0123 u_star, b_star, rough, u, v, t, q,
0124 um, vm, tm, qm, udt, vdt, tdt, qdt,
0125 diff_t, diff_m, gust [, mask, kbot] )
0126
0127 input
0128
0129 is starting i index for current window [integer]
0130
0131 js starting j index for current window [integer]
0132
0133 Time time at the current time level (tau) [time_type]
0134
0135 Time_next time at the next time level (tau+1) [time_type]
0136
0137 dt time step in seconds (from tau-1 to tau+1 if leapfrog)
0138 [real]
0139
0140 frac_land fraction (0. to 1.) of surface which covered by land
0141 [real, dimension(:,:)]
0142
0143 p_half pressure at half model levels [real, dimension(:,:,nlev+1)]
0144
0145 p_full pressure at full model levels [real, dimension(:,:,nlev)]
0146
0147 z_half height (in meters) at half model levels
0148 [real, dimension(:,:,nlev+1)]
0149
0150 z_full height (in meters) at full model levels
0151 [real, dimension(:,:,nlev)]
0152
0153 u_star friction velocity (m/s) for the surface layer
0154 [real, dimension(:,:)]
0155
0156 b_star bouyancy scale (deg K/m ???) for the surface layer
0157 [real, dimension(:,:)]
0158
0159 rough surface roughness length scale (m) [real, dimension(:,:)]
0160
0161 u zonal wind component (m/s) at full model levels at the current time level
0162 [real, dimension(:,:,nlev)]
0163
0164 v meridional wind component (m/s) at full model levels at the current time level
0165 [real, dimension(:,:,nlev)]
0166
0167 t temperature (deg K) at full model levels at the current time level
0168 [real, dimension(:,:,nlev)]
0169
0170 q specific humidity (kg/kg) at full model levels at the current time level
0171 [real, dimension(:,:,nlev)]
0172
0173 um zonal wind component (m/s) at the previous time level
0174 [real, dimension(:,:,nlev)]
0175
0176 vm meridional wind component (m/s) at the previous time level
0177 [real, dimension(:,:,nlev)]
0178
0179 tm temperature (deg K) at the previous time level
0180 [real, dimension(:,:,nlev)]
0181
0182 qm specific humidity (kg/kg) at the previous time level
0183 [real, dimension(:,:,nlev)]
0184
0185 udt zonal wind tendency in m/s2
0186 [real, dimension(:,:,nlev)]
0187
0188 vdt meridional wind tendency in m/s2
0189 [real, dimension(:,:,nlev)]
0190
0191 tdt temperature tendency in deg k per sec
0192 [real, dimension(:,:,nlev)]
0193
0194 qdt specific humidity tendency in kg vapor/kg air/sec
0195 [real, dimension(:,:,nlev)]
0196
0197 output
0198
0199 diff_t diffusion coefficients (m2/s) for heat/moisture/tracers at
0200 half model levels, note that there is no surface value
0201 [real, dimension(:,:,nlev)]
0202
0203 diff_m diffusion coefficients (m2/s) for momentum at
0204 half model levels, note that there is no surface value
0205 [real, dimension(:,:,nlev)]
0206
0207 gust surface layer gustiness (m/s), currently this returns a
0208 constant value (1 m/s) everywhere
0209 [real, dimension(:,:)]
0210
0211 input (optional), for the step-mountain (eta) coordinate option
0212
0213 mask mask (1. or 0.) for grid boxes above or below
0214 the ground, usually only necessary for the step-mountain
0215 (eta) vertical coordinate [real, dimension(:,:,nlev)]
0216
0217 kbot index of the lowest model level, usually only necessary
0218 for the step-mountain (eta) vertical coordinate
0219 [integer, dimension(:,:)]
0220
0221 ---------------------------------------------------------------------
0222
0223 <b>call vert_turb_driver_end</b>
0224
0225 There are no arguments to this routine.
0226
0227 </PRE>
0228 </A>
0229
0230 <A NAME="NAMELIST">
0231 <HR>
0232 <H4>NAMELIST</H4>
0233
0234 <PRE>
0235
0236 <b>&vert_turb_driver_nml</b>
0237
0238 do_mellor_yamada Switch to to determine when Mellor-Yamada or
0239 the generalized diffusivity scheme is used.
0240 [logical, default: do_mellor_yamada=.true.]
0241
0242 do_shallow_conv Switch to turn on/off shallow convection scheme.
0243 [logical, default: do_shallow_conv=.false.]
0244
0245 gust_scheme Sets the scheme used for the gustiness calculation.
0246 Valid schemes (case sensitive) are:
0247 = 'constant' --> use namelist value CONSTANT_GUST
0248 = 'beljaars' --> use Beljaars(1994) scheme
0249 [character, default: gust_scheme = 'constant']
0250
0251 constant_gust Value used for gustiness (in m/s) when
0252 gust_scheme = 'constant'.
0253 [real, default: constant_gust = 1.]
0254
0255 use_tau Switch to determine whether the input data (momentum, temp, sphum)
0256 used to computed the diffusion coefficients and/or update TKE should
0257 be for the current time level (tau) or next time level (tau+1)
0258 if use_tau = true then data at tau is used (e.g., u,v,t,q)
0259 if use_tau = false then data at tau+1 is used by explicitly
0260 adding the tendency to the data at tau-1
0261 (e.g., tt=t+dt*tdt)
0262 [logical, default: use_tau=true ]
0263
0264 do_molecular_diffusion ??????
0265 [logical, default: do_molecular_diffusion = .false.]
0266
0267 </PRE>
0268 </A><!-- END NAMELIST -->
0269 <!--------------------------------------------------------------------->
0270 <A NAME="DIAGNOSTICS">
0271 <HR>
0272 <H4>DIAGNOSTIC FIELDS</H4>
0273 <PRE>
0274 Diagnostic fields may be output to a netcdf file by specifying the
0275 module name <b>vert_turb</b> and the desired field names (given below)
0276 in file <b>diag_table</b>. See the documentation for diag_manager.
0277 </PRE>
0278 <!-- BEGIN DIAGNOSTICS -->
0279 <PRE>
0280
0281 Diagnostic fields for module name: <b>vert_turb</b>
0282
0283 field name field description
0284 ---------- -----------------
0285
0286 tke turbulent kinetic energy (m2/s2)
0287 lscale turbulent length scale (m)
0288 lscale_0 master length scale (m)
0289 z_pbl depth of planetary boundary layer (m)
0290 gust gustiness (m/s)
0291 diff_t vert diff coeff for temp (m2/s)
0292 diff_m vert diff coeff for momentum (m2/s)
0293 diff_sc vert diff coeff for shallow conv (m2/s)
0294
0295 Notes:
0296
0297 1) tke, lscale, and lscale_0 can only be output when the Mellor-Yamada
0298 scheme is used.
0299
0300 </PRE>
0301 </A><!-- END DIAGNOSTICS -->
0302 <!--------------------------------------------------------------------->
0303 <A NAME="CHANGES">
0304 <HR>
0305 <H4>CHANGE HISTORY</H4>
0306 <!-- BEGIN CHANGES -->
0307 <PRE>
0308
0309 <B>Changes prior to CVS version control</B>
0310
0311 <b>changes</b> (1/24/2000)
0312
0313 * Minor change.
0314
0315 When the Mellor-Yamada scheme is NOT selected the Mellor-Yamada
0316 initialization and end routines are no longer called.
0317
0318 <b>changes</b> (10/4/1999)
0319
0320 * Major changes.
0321
0322 * MPP version created. Minor changes for open_file, error_mesg,
0323 and Fortran write statements. Answers should reproduce the
0324 previous version.
0325
0326 * Implementation of the new MPP diagnostics package.
0327 This required major changes to the diagnostic interface and
0328 the manner in which diagnostics quantities are selected.
0329 There are additional arguments to several interfaces.
0330
0331 <b>changes</b> (8/31/1999)
0332
0333 Diagnostic field z_pbl, the depth of planetary boundary layer,
0334 may now be output for either the generalized diffusivity scheme
0335 or the Mellor-Yamada scheme. (In an earlier revision PBL depth
0336 could only be output for the diffusivity scheme.)
0337
0338 </PRE>
0339 </A><!-- END CHANGES -->
0340 <!--------------------------------------------------------------------->
0341 <A NAME="ERRORS">
0342 <HR>
0343 <H4>ERROR MESSAGES</H4>
0344 <!-- BEGIN ERRORS -->
0345 <PRE>
0346
0347 <b>Fatal errors in vert_turb_driver_init:</b>
0348
0349 <b>attempting to call initialization twice</b>
0350 You can not call vert_turb_driver_init more than once.
0351
0352 <b>invalid value for namelist variable GUST_SCHEME</b>
0353 The gustiness scheme you have selected is not valid.
0354 Check the <a href="vert_turb_driver.doc.html#NAMELIST">namelist options</a> for variable GUST_SCHEME.
0355
0356 <b>Fatal errors in vert_turb_driver:</b>
0357
0358 <b>initialization has not been called</b>
0359 You have not called vert_turb_driver_init before calling
0360 vert_turb_driver.
0361
0362 </PRE>
0363 </A><!-- END ERRORS -->
0364 <!--------------------------------------------------------------------->
0365 <A NAME="BUGS">
0366 <HR>
0367 <H4>KNOWN BUGS</H4>
0368 <!-- BEGIN BUGS -->
0369 <PRE>
0370
0371 There are no known bugs.
0372
0373 </PRE>
0374 </A><!-- END BUGS -->
0375 <!--------------------------------------------------------------------->
0376 <A NAME="PLANS">
0377 <HR>
0378 <H4>FUTURE PLANS</H4>
0379 <!-- BEGIN PLANS -->
0380 <PRE>
0381
0382 None.
0383
0384 </PRE>
0385 </A><!-- END PLANS -->
0386 <!--------------------------------------------------------------------->
0387
0388 <HR>
0389 </BODY>
0390 </HTML>