Module ocean_riverspread_mod
OVERVIEW
Spread runoff or calving horizontally over a region determined
by a table.
At some coastal ocean gridpoints, the runoff or calving flux contribution to
(p-e+r) may be very large because of local insertion to ocean. Therefore,
we may choose to spread the large river runoff over neighboring pairs
of gridpoints. Annual mean river runoff greater than 0.05 m/day is
considered to be very large.
OTHER MODULES USED
field_manager_mod
fms_mod
mpp_domains_mod
mpp_mod
ocean_domains_mod
ocean_types_mod
PUBLIC INTERFACE
PUBLIC DATA
None.
PUBLIC ROUTINES
-
ocean_riverspread_init
-
DESCRIPTION
- Initial set up for spreading of tracers
(i,j) locations of points to be spread are set in data
statements.
Checks are performed to ensure that the spreading
grid locations are valid according to model configuration.
A summary of the locations of spreading points is written out.
User specified inputs in "USER INPUT" section:
ispread and jspread = user specified i,j grid locations of data for spreading.
is, ie, js, je = user specified i,j grid locations of
the corners of the spreading regions.
is and ie are the east and west coord of each region,
js and je are the south and north coord of each region.
-
spread_river_horz
-
DESCRIPTION
- Provide conservative spreading of river runoff field.
-
at_least_one_in_spread_domain
-
DESCRIPTION
- Function to see if at least one of the points in the spreading region
is within the computational domain for the processor.
-
INPUT
-
nsp | Integer labeling the particular spreading region [integer] |
-
on_comp_domain
-
DESCRIPTION
- Determine if the point is in comp-domain for the processor
-
on_data_domain
-
DESCRIPTION
- Determine if the point is in data-domain for the processor
NAMELIST
&ocean_riverspread_nml
-
use_this_module
Must be true to enable this module. Default=.false.
[logical]
-
debug_this_module
For debugging. Default=.false.
[logical]
DATA SETS
None.
ERROR MESSAGES
None.
REFERENCES
None.
COMPILER SPECIFICS
None.
PRECOMPILER OPTIONS
None.
LOADER OPTIONS
None.
TEST PROGRAM
None.
KNOWN BUGS
None.
NOTES
Spreading in a 2D lat-long field is implemented in the following manner:
If the spreading region lives within the halo region
(i.e., within same local_domain),
then no added mpp communication required. However, more generally
the spreading region can extend beyond the existing halo region.
In this case, spread_domain
is defined so that its halos incorporate the maximum separation
of spreading points. New tracer and grid arrays
are defined over this extended spread_domain. This added domain
size will come at some computational cost, so it is advantageous
to choose the spreading region carefully.
The current implementation of spreading has not been tested
for a spreading region that is separated by either
a zonal cyclic condition or across the tripolar fold.
FUTURE PLANS
None.