...
namelist parameter: raytay0 = 5.0 (default starting with v1). This appears to be in units of 1/days (so a damping timescale of 5 days)
Algorithm?
Laplacian smoothing:
namelist parameter: nu_top
Laplacian smoothing applied at the model top with coefficient nu_top*nu_top_scale(k)
preqx dycore (EAM v0,v1). Sponge layer modeled after that used by CAM-EUL
nu_top=2.5e5
nu_top_scale(1:nlev)=4,2,1,0,0,0….. (applied in top 3 model layers)
Laplacian term added to RHS of hyperviscosity operator
Theta dycore (EAM v2, v3, SCREAM). Sponge layer modeled after CAM-FV ( Lauritzen et al., https://doi.org/10.1177/1094342011410088 )
nu_top = Resolution dependent. See https://acme-climate.atlassian.net/wiki/spaces/DOC/pages/1044644202/EAM+s+HOMME+dycore
Laplacian term applied independently from hyperviscosity, and with it’s own timestep controlled by hypervis_subcycle_tom. Default 1.
nu_top_scale(:) uses reference pressure based formula
Formula in terms of reference pressure computed from “eta” coordinate:
p_ratio = eta(1)/eta(k)
nu_top_scale = 16*( 1 ./ ( 1 + (p_ratio)^-2)).
(mathematically equivalent to the 8*(1+ tanh(log(p_ratio))) formula used in CAM-FV)where (nu_top_scale>8) nu_top_scale=8
where (nu_top_scale<0.15) nu_top_scale=0
This formula creates a sponge layer that is active from [ptop/10,ptop]. For EAM’s 72L and 80L configuration, ptop=0.1 mb (~60 km), meaning that the sponge layer starts at 1mb which might be too high. For SCREAM’s L128 configuration, ptop=2mb, so the sponge layer starts an 20mb, which might be too low. At NE256 and 72L, the model is unstable in the sponge layer.
Simplified New simplified option with namelist control over sponge layer thickness:
To address the instabilities seen at high resolution, we propose to add EAM v3 includes a new sponge layer option controlled by namelist variable
tom_sponge_start
, specified in mbtom_sponge_start>0
will replace the default with a simplified version of the above formula that makes it easy to control the sponge layer thickness:p_ratio = (tom_sponge_start/100) / eta(k)
nu_top_scale = .15 * p_ratio^2
tom_sponge_start=1.0 reproduces the E3SMv2 72L sponger layer. tom_sponge_start=20 reproduces the SCREAM 128L
Plots of the CAM-FV / EAMv2 sponge layer profile:
...
Some aqua planet experiments looking at zonal wind and EKE at model top: /wiki/spaces/NGDNA/pages/1060077843
At NE256 (and probably higher) with EAM’s 72L configuration, the model is unstable and the sponge layer needs to be larger (but not stronger):
atm.log.* output:
...
EAM V3 80L configuration, Reference pressure for the first 12 levels:
1st column: interface pressure (mb)
2nd column: midpoint pressure (mb)
columns 3-6: A and B hybrid coordinate info
Code Block |
---|
Layer Locations (*1000)
1 0.1000 0.0000 0.1000
0.1236 0.0000 0.1236
2 0.1472 0.0000 0.1472
0.1819 0.0000 0.1819
3 0.2166 0.0000 0.2166
0.2674 0.0000 0.2674
4 0.3183 0.0000 0.3183
0.3924 0.0000 0.3924
5 0.4665 0.0000 0.4665
0.5740 0.0000 0.5740
6 0.6814 0.0000 0.6814
0.8358 0.0000 0.8358
7 0.9902 0.0000 0.9902
1.2093 0.0000 1.2093
8 1.4284 0.0000 1.4284
1.7344 0.0000 1.7344
9 2.0405 0.0000 2.0405
2.4590 0.0000 2.4590
10 2.8776 0.0000 2.8776
3.4356 0.0000 3.4356
11 3.9936 0.0000 3.9936
4.7150 0.0000 4.7150
12 5.4364 0.0000 5.4364
6.3372 0.0000 6.3372 |
V3 default sponge layer with EAM’s 80L configuration, as a function of model level k
Code Block |
---|
sponge layer nu_top viscosity scaling factor nu_scale_top 1 6.3159394096349332916693361379 nu_scale_top 2 3.6843839525888571290112422668 nu_scale_top 3 1.9306793559248596275667155077 nu_scale_top 4 0.947489176847158975836740648787 nu_scale_top 5 0.449005601189953 471377418464948 nu_scale_top 6 0.225813746829097 |
EAM’s 72L configuration, Reference pressure for the first 6 levels:
1st column: interface pressure (Pa)
2nd column: midpoint pressure (Pa)
3rd column: layer thickness:
Code Block |
---|
1 10.0000
12.3825 4.7651
2 14.7651
18.2829 7.0357
3 21.8008
26.9949 10.3882
4 32.1890
39.8582 15.3383
5 47.5273
58.8509 22.6472
6 70.1745
86.8939 33.4387
|
V2 sponge layer with EAM’s 72L configuration, as a function of model level k
Code Block |
---|
nu_scale_top 1 6.31593940963493 0.209135512288980 nu_scale_top 2 3.68438395258885 nu_scale_top 3 1.93067935592485 nu_scale_top 4 0.947489176847158 nu_scale_top 5 0.449005601189953 nlevnu_scale_tomtop 6 0.209135512288980 |
72L, tom_sponge_start=1
Code Block |
---|
nu_scale_top 1 8.00000000000000 nu_scale_top 2 4.48745361513254 nu_scale_top 3 2.05839281223852 nu_scale_top 4 0.944183791713705 nu_scale_top 5 0.433096650568544 nu_scale_top 6 0.198661225049463 |
...
Code Block |
---|
nu_scale_top 1 8.00000000000000 nu_scale_top 2 8.00000000000000 nu_scale_top 3 8.00000000000000 nu_scale_top 4 8.00000000000000 nu_scale_top 5 8.00000000000000 nu_scale_top 6 4.96653062623658 nu_scale_top 7 2.27814520652286 nu_scale_top 8 1.04498410914579 nu_scale_top 9 0.479333707632238 nu_scale_top 10 0.21987014085820321987014085820 |
SCREAM's 128L configuration:
V2 sponge layer with SCREAM’s 128L configuration, as a function of model level k
...