Skip to content

Commit ce138f9

Browse files
committed
add more content regarding UFS_case_gen forcing methods
1 parent c874ad7 commit ce138f9

File tree

1 file changed

+40
-3
lines changed

1 file changed

+40
-3
lines changed

scm/doc/TechGuide/chap_cases.rst

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,8 @@ Notes Regarding Implemented Forcing Methods
369369
The ``--forcing_method`` option hides some complexity that should be understood when running this script since
370370
each method has a particular use case and produces potentially very different forcing terms. Forcing method 1 is
371371
designed to be used in concert with the three-dimensional UFS. I.e., the UFS must be run with diagnostic tendencies
372-
activated so that the `nophysics` term is calculated and output for all grid points. This diagnostic term
372+
activated so that the `nophysics` term is calculated and output for all grid points
373+
(see https://ccpp-techdoc.readthedocs.io/en/latest/ParamSpecificOutput.html#tendencies). This diagnostic term
373374
represents the tendency produced for each state variable by the UFS between calls to the "slow" physics. This
374375
includes the tendency due to advection, but also any tendencies due to other non-physics processes, e.g. "fast"
375376
physics, coupling to external components, data assimilation, etc. Within the SCM, this diagnostic is used as the
@@ -382,8 +383,44 @@ UFS_case_gen.py script due to the UFS initial conditions and history files using
382383
can only be used when the UFS has been configured and run with the anticipation of running the SCM using this
383384
forcing method afterward because it requires considerable extra disk space for the additional output.
384385

385-
386-
386+
The `--forcing_method` 2 option is the most general in the sense that the same method could apply to any three-dimensional
387+
model output. For a given column, it uses a configurable number of neighboring grid points to calculate the horizontal
388+
advective tendencies using the horizontal components of the three-dimensional wind and horizontal derivatives of the
389+
state variables. Note that the script performs some smoothing in the vertical profiles used to calculate the advective
390+
terms in order to eliminate small-scale noise in the forcing terms and the derivatives are calculated using a second- or
391+
fourth-order centered difference scheme, depending on the number of neighboring points used. Vertical advective terms
392+
are calculated based on the specification of `--vertical_method` (-vm). For vertical_method 1, the vertical advective
393+
terms are calculated from the history files using UFS vertical velocities and the same modeled smoothed vertical profiles
394+
of the state variables using the upstream scheme. Note that while the horizontal terms use neighboring points, the vertical
395+
advective terms only use the central, chosen column. This method is sometimes referred to as "total advective forcing" and
396+
tends to be less "responsive" to the SCM-modeled state. I.e., a SCM run using vertical method 2 has a greater chance of
397+
deviating from the UFS column state and not being able to "recover". For this reason, vertical method 2 is often used
398+
in the literature, whereby the vertical velocity profile from the three-dimensional model is provided as forcing to the SCM
399+
and the vertical advective terms are calculated during the SCM integration using the SCM-modeled state variable profiles.
400+
401+
The final forcing method, 3, uses the three-dimensional history files to calculate profiles of the total time-rate of change
402+
of the state variables to use as forcing for the SCM. Note that this is tantamount to strongly nudging the SCM state to the
403+
UFS state and already intrinsically includes both the physics and dynamics tendencies. While a simulation using this forcing
404+
is more-or-less guaranteed to produce a SCM simulation that closely matches the three-dimensional output of the state variables,
405+
it strongly minimizes the contribution of physics in the SCM simulation. Indeed, an SCM simulation without running a physics suite
406+
at all would still be expected to closely track the mean state of the three-dimensional column, so this method will likely be of
407+
limited use for physics studies.
408+
409+
Forcing the horizontal components of the wind can be notoriously difficult in SCMs, and the most straightforward method is to
410+
simply nudge them to the three-dimensional modeled state. This method is achieved by using the `--wind_nudge` (-wn) option and uses a nudging
411+
timescale of one hour. It should be possible to calculate a nudging timescale based on the magnitude of the wind in the neighboring
412+
grid cells, although this is not implemented yet.
413+
414+
The second method to force the horizontal wind components is to calculate the geostrophic wind using the "large scale" pressure
415+
gradient from the three-dimensional model. This is achieved by using the `--geostrophic` (-geos) option. What qualifies as large
416+
enough of a horizontal gridscale to achieve geostrophic balance is when the Rossby number is much less than one. The script uses a
417+
configurable Rossby number (around 0.1) to expand the number of neighboring grid points such that geostrophic balance can be assumed
418+
given the particular UFS history file grid. The geostrophic winds are calculated using the horizontal geopotential gradient and the
419+
local latitude-dependent Coriolis parameter. From the PBL top downward, the geostrophic winds are assumed to go to zero. In testing
420+
with this method, if the initial horizontal winds have a significant ageostrophic component (the initial condition winds are
421+
appreciably different than the calculated geostrophic winds), this often leads to spurious clockwise turning of the mean modeled winds
422+
with time. An option exists within the script to assume that the mean three-dimensional winds are, in fact, identical to the
423+
geostrophic winds as well. Using this option eliminates any spurious turning.
387424

388425
.. _`ufsforcingensemblegenerator`:
389426

0 commit comments

Comments
 (0)