Next: 19.2.1 Bulk parameterizations
Up: 19. Generalized Surface Boundary
Previous: 19.1.2.1 Interpolations to ocean
19.2 Coupling to datasets
In Section 19.1, the general case of two way coupling to
an atmospheric GCM was considered. It is also useful to drive mom
with atmospheric datasets representing simpler idealized atmospheres.
One problem with doing this is that datasets act as infinite reservoirs
of heat capable of masking shortcomings in parameterizations which
only become apparent when two way coupling is allowed. Nevertheless,
driving ocean models with derived from datasets is useful.
These datasets can be thought of as simple atmospheres prepared a
priori such that data is defined at grid locations expected
by mom for surface boundary conditions. All spatial
interpolations are done beforehand, as described in
Section 3.2. In this case, subroutines gasbc
and goabc are bypassed because spatial interpolation to
the mom grid is not needed. Also, the length of a time segment
reduces to the length of one ocean time step. In general, the datasets
contain either time mean conditions or time varying conditions and
there are three options which configure these types of
for mom:
- simple_sbc allows for the simplest of atmospheric
datasets. All are a function only of latitude. No time dependence
here although it could easily be incorporated. The test case prototype
is described in Sections 3.2 and 3.3 as
CASE=0. In this case, there is no dataset on disk and is not
needed since all are generated internally. This is an appropriate
option for building forcing functions for idealized .
- time_mean_sbc_data uses an atmosphere dataset defined in
SBC/TIME_MEAN. The test case prototype is described in Sections
3.2 and 3.3 as CASE=1. The dataset resides
on disk and each surface boundary condition is a function of latitude
and longitude. The dataset should be prepared for the grid in MOM
using scripts in PREP_DATA as described in Section 3.2.
The surface boundary condition data is read into the surface boundary
condition array once in atmos for all latitude rows
where m gives the ordering of the boundary conditions as described in
Section 19.3. On every time step, data from
is loaded into the surface tracer flux array stfi,j,n
and the
surface momentum flux array smfi,j,n. This is done in
subroutine setvbc for rows j=2,jmw-1 in the memory
window19.22.
- time_varying_sbc_data uses an atmosphere dataset defined
in SBC/MONTHLY. The test case prototype is described in Sections
3.2 and 3.3 as CASE=2. The dataset resides
on disk as a series of records. Each record is a climatological monthly
mean surface boundary condition as a function of latitude and
longitude. This dataset should be prepared for the grid in mom
using scripts in PREP_DATA as described in Section 3.2.
The complication is one of interpolating the monthly values to the
model time in mom for each time step. Basically, the model time
must be mapped into the dataset to find which two months (data records)
straddle the current model time19.23. For the purpose of interpolation, months are defined
at the center of their averaging periods. Both months are read into
additional boundary condition arrays in atmos and used to
interpolate to array for the current model time. When the
model time crosses the midpoint of a month, the next month is read into
a boundary condition array19.24
and the process continues indefinitely assuming the dataset is
specified as periodic. If it is not, mom will stop when the ocean
integration time reaches the end of the dataset. Although data is read
into the additional boundary condition arrays only when ocean model
time crosses the mid month boundary, data is interpolated into
on every timestep. There are four allowable methods for interpolating
these datasets in time:
-
- Method=0 is for no interpolation; the average value is used for
all times within the averaging period. This is the simplest
interpolation. It preserves the integral over averaging periods, but is
discontinuous at period boundaries.
-
- Method=1 is for linear interpolation between the middles of two
adjacent averaging periods. It is continuous but does not preserve
integrals for unequal averaging periods.
-
- Method=2 is for equal linear interpolation. It assumes that the
value on the boundary between two adjacent averaging periods is the
unweighted average of the two average values. Linearly interpolates
between the midperiod and period boundary. It is continuous but does
not preserve integral for unequal periods.
-
- Method=3 is for equal area (midperiod to midperiod)
interpolation. It chooses a value for the boundary between two
adjacent periods such that linear interpolation between the two
midperiods and this value will preserve the integral midperiod to
midperiod.
To explore how time interpolation works in a very simple environment,
one can execute script run_timeinterp which
exercises timeinterp19.25 as a stand alone
program.
As mentioned above, two additional boundary condition arrays are needed
for each surface boundary condition. The memory increase may get
excessive with large resolution models. In that case,
option minimize_sbc_memory reduces these arrays from being
dimensioned as (imt,jmt) to being dimensioned as (imt,jmw). The trade
off is increased disk access which may be prohibitive if using rotating
disk. If efficiency is an issue, asynchronous reads with look ahead
capability would be worth trying. This look ahead feature has not been
implemented.
Next: 19.2.1 Bulk parameterizations
Up: 19. Generalized Surface Boundary
Previous: 19.1.2.1 Interpolations to ocean
RC Pacanowski and SM Griffies, GFDL, Jan 2000