Warning, /pkg/bbl/README.md is written in an unsupported language. File is not indexed.
view on githubraw file Latest commit 12381654 on 2022-08-11 21:44:30 UTC
1238165489 Mart*0001 Package `BBL` is a simple bottom boundary layer scheme. The initial
53b68b7823 Dimi*0002 motivation is to allow dense water that forms on the continental shelf around
0003 Antarctica (High Salinity Shelf Water) in the CS510 configuration to sink to
0004 the bottom of the model domain and to become a source of Antarctic Bottom
5f5cc705f4 Dimi*0005 Water. The bbl package aims to address the following two limitations of
53b68b7823 Dimi*0006 package down_slope:
0007
1238165489 Mart*0008 (i) In `pkg/down_slope`, dense water cannot flow down-slope unless there is a
53b68b7823 Dimi*0009 step, i.e., a change of vertical level in the bathymetry. In pkg/bbl, dense
5f5cc705f4 Dimi*0010 water can flow even on a slight incline or flat bottom.
53b68b7823 Dimi*0011
1238165489 Mart*0012 (ii) In `pkg/down_slope`, dense water is diluted as it flows into grid cells
5f5cc705f4 Dimi*0013 whose thickness depends on model configuration, typically much thicker than a
0014 bottom boundary layer. In pkg/bbl, dense water is contained in a thin
0015 sub-layer and hence able to preserve its tracer properties.
53b68b7823 Dimi*0016
0017 Specifically, the bottommost wet grid cell of thickness
0018
5f5cc705f4 Dimi*0019 thk = hFacC(kBot) * drF(kBot),
53b68b7823 Dimi*0020
1238165489 Mart*0021 with properties `tracer`, and density `rho` is divided in two sub-levels:
53b68b7823 Dimi*0022
1238165489 Mart*0023 1. A bottom boundary layer with T/S tracer properties `bbl_tracer`,
0024 density `bbl_rho`, and thickness `bbl_eta`.
53b68b7823 Dimi*0025
1238165489 Mart*0026 2. A residual thickness `resThk = thk - bbl_eta` with tracer properties
53b68b7823 Dimi*0027
5f5cc705f4 Dimi*0028 resTracer = ( tracer * thk - bbl_tracer * bbl_eta ) / resThk
53b68b7823 Dimi*0029
1238165489 Mart*0030 such that the volume integral of `bbl_tracer` and `resTracer` is consistent with
53b68b7823 Dimi*0031 the Tracer properties of bottommost wet grid cell.
0032
1238165489 Mart*0033 The bottom boundary layer properties `bbl_tracer` evolve as follows:
53b68b7823 Dimi*0034
1238165489 Mart*0035 I. Vertical detrainment between BBL and residual volume of bottommost wet cell:
53b68b7823 Dimi*0036
1238165489 Mart*0037 (i) If `bbl_rho > rho` , the T/S properties of the BBL are detrained into
0038 the residual volume with a vertical velocity `bbl_wvel` such that:
53b68b7823 Dimi*0039
5f5cc705f4 Dimi*0040 bbl_eta(T+deltaT) = max( 0, bbl_eta(T) - bbl_wvel * deltaT )
53b68b7823 Dimi*0041
1238165489 Mart*0042 (ii) If `rho >= bbl_rho` or `bbl_eta(T) = 0` then set `bbl_tracer = Tracer`
53b68b7823 Dimi*0043
5f5cc705f4 Dimi*0044 Above operations do not change tracer properties of bottommost wet cell.
53b68b7823 Dimi*0045
5f5cc705f4 Dimi*0046 II. Horizontal exchange between adjacent bottom boundary layer cells when
0047 heavy BBL water is above or at the same level as lighter BBL water. The
1238165489 Mart*0048 strength of horizontal exchange is controlled by velocity parameter `bbl_hvel`.
53b68b7823 Dimi*0049
1238165489 Mart*0050 (i) Replenish thickness of donor cell, `bbl_eta(d)`, if needed:
53b68b7823 Dimi*0051
5f5cc705f4 Dimi*0052 IF bbl_tracer(d) .EQ. Tracer(d) .AND. bbl_eta(d) .LT. bbl_initEta THEN
0053 bbl_eta(d) = min ( bbl_initEta, Thk(d) )
0054 ENDIF
53b68b7823 Dimi*0055
1238165489 Mart*0056 (ii) Heavy water flowing out of a cell lowers `bbl_eta(d)` in donor cell and
0057 increases `bbl_eta(r)` in receiving cell. The volume transport `dVol` out
5f5cc705f4 Dimi*0058 of the donor cell is:
53b68b7823 Dimi*0059
5f5cc705f4 Dimi*0060 dVol = min( bbl_eta(d) * rA(d) / 2,
0061 (thk(r) - bbl_eta(r)) * rA(r) / 2,
0062 d(x/y)G * bbl_eta(d) * bbl_hvel * deltaT )
53b68b7823 Dimi*0063
5f5cc705f4 Dimi*0064 (iii) Compute and accumulate tracer tendencies for donor and receiving cell.
1238165489 Mart*0065 These will be applied to the model's tracer quantities by `bbl_tendency_apply`.
53b68b7823 Dimi*0066
5f5cc705f4 Dimi*0067 bbl_tend = dVol * (bbl_tracer(d) - resTracer(r)) / deltaT
53b68b7823 Dimi*0068
5f5cc705f4 Dimi*0069 bbl_tendTracer(d) = bbl_tendTracer(d) - bbl_tend / rA(d) / thk(d)
53b68b7823 Dimi*0070
5f5cc705f4 Dimi*0071 bbl_tendTracer(r) = bbl_tendTracer(r) + bbl_tend / rA(r) / thk(r)
0072
1238165489 Mart*0073 (iv) Adjust bbl thickness and tracer properties.
0074
5f5cc705f4 Dimi*0075 bbl_eta(d,T+deltaT) = bbl_eta(d,T) - dVol / rA(d)
0076 IF bbl_eta(d) .LT. 0.0001 THEN
0077 bbl_eta(d) = 0.0
0078 bbl_tracer(d) = tracer(d)
0079 ENDIF
0080
0081 bbl_eta(r,T+deltaT) = bbl_eta(r,T) + dVol / rA(r)
0082
0083 bbl_tracer(r,T+deltaT) = ( dVol * bbl_tracer(d,T) +
1238165489 Mart*0084 bbl_eta(r,T) * rA(r) * bbl_tracer(r,T) ) /
0085 ( bbl_eta(r,T+deltaT) * rA(r) )
5f5cc705f4 Dimi*0086
0087 Note that horizontal exchange is carried out in following order:
1238165489 Mart*0088
5f5cc705f4 Dimi*0089 1. Meridional bbl exchange at northern edge.
0090 2. Meridional bbl exchange inside tile.
0091 3. Zonal bbl exchange at eastern edge.
0092 4. Zonal bbl exchange inside tile.
1238165489 Mart*0093
5f5cc705f4 Dimi*0094 The northern and eastern edge computations need to be done before
0095 computations inside the tile in order to avoid edge artifacts.
0096 Note that different tiling will produce slightly different results
0097 as order of computations does matters.
1238165489 Mart*0098
0099 Some key limitations of package as it stands:
0100
0101 - Detrainment and horizontal transport velocities (`bbl_wvel` and `bbl_hvvel`) are
0102 prescribed rather than computed.
0103 - There is no provision for entrainment (negative `bbl_wvel`).
0104 - bbl depth (`bbl_eta`) cannot be thicker than thickness of bottommost wet grid cell.