The anisotropic viscosity routine computes the viscous terms in the momentum equation as the divergence of a stress tensor, which is linearly related to the rate-of-strain tensor with viscous coefficents visc_para and visc_perp . These coefficients represent energy dissipation in directions parallel and perpendicular to a specified alignment direction which breaks the isotropy of the dissipation. There are three options for choosing the alignment direction: 1) along the local instantaneous flow direction, 2) along the east direction, and 3) along the coordinate directions (note: the viscous operator is invariant under a rotation of the alignment direction by 90 degrees, so for example, choosing the alignment direction as north, south, east or west are all equivalent.). A functional approach is used to derived the discrete operator, which ensures positive-definite energy dissipation, provided visc_para > visc_perp.
Parallel and perpendicular viscosities can vary in space by setting the flag lvariable_hmix_aniso to .true. The spatially-varying viscosities in the parallel and perpendicular directions are read from a file (var_viscosity_infile). A specific form of the viscosities useful for CESM1 coupled simulations can be internally computed if the input filename is 'ccsm-internal'. In such a case, the six viscosity parameters for the form must also be supplied.
The viscosities may optionally (lsmag_aniso = .true.)
be evaluated with Smagorinsky-like non-linear dependence
on the deformation rate, which is proportional to the
norm of the strain tensor. With the Smagorinsky option,
the viscosities are evalutated as
ν|| → max(c|||D|ds2),u||ds) | |||
ν⊥ → max(c⊥|D|ds2),u⊥ds) | (3.3) |
&hmix_aniso_nml | LANL default | CESM1 gx3 dipole-grid default | CESM1 gx1 dipole-grid default | CESM1 tx0.1v2 dipole-grid default | Anisotropic viscosity | |
hmix_alignment_choice | 'flow' | 'grid' | 'east' | 'east' | 'flow', 'grid', 'east' | choice for alignment of parallel viscosity component (aligned with local flow, grid lines or east-west direction) |
lvariable_hmix_aniso | .false. | .true. | .true. | .true. | .true., .false. | use spatially-varying viscosity |
lsmag_aniso | .false. | .false. | .false. | .false. | .true., .false. | compute viscosities using a Smagorinsky formulation |
visc_para | 0.0 | 1.0 | 50.0 x 107 | 50.0 x 107 | parallel viscosity component (cm2/s) | |
visc_perp | 0.0 | 1.0 | 50.0 x 107 | 50.0 x 107 | perpendicular viscosity component (cm2/s) | |
c_para | 0.0 | 0.0 | 8.0 | 8.0 | dimensionless parallel Smagorinsky coeff | |
c_perp | 0.0 | 0.0 | 8.0 | 8.0 | dimensionless perpendicular Smagorinsky coeff | |
u_para | 0.0 | 0.0 | 5.0 | 5.0 | velocity (cm/s) for grid Reynolds no. viscous limit in parallel direction | |
u_perp | 0.0 | 0.0 | 5.0 | 5.0 | velocity (cm/s) for grid Reynolds no. viscous limit in perpendicular direction | |
var_viscosity_infile | 'unknown_var_viscosity_infile' | 'ccsm-internal' | 'ccsm-internal' | 'ccsm-internal' | string ≤ 256 characters | name of file containing variable viscosity factors or internal generation of a ccsm-specific form |
var_viscosity_infile_fmt | 'bin' | 'bin' | 'bin' | 'bin' | 'bin', 'nc' | viscosity input file format |
var_viscosity_outfile | 'unknown_var_viscosity_outfile' | auto-filled by CESM1 scripts (*pop.v.*) | auto-filled by CESM1 scripts (*pop.v.*) | auto-filled by CESM1 scripts (*pop.v.*) | string ≤ 256 characters | output file for writing internally-generated variable viscosity |
var_viscosity_outfile_fmt | 'bin' | 'nc' | 'nc' | 'nc' | 'bin', 'nc' | viscosity output file format |
vconst_1 | 1.e7 | 1.0e7 | 0.6e7 | 0.6e7 | CESM1 variable viscosity parameter (cm2/sec) | |
vconst_2 | 24.5 | 24.5 | 0.5 | 0.5 | CESM1 variable viscosity parameter | |
vconst_3 | 0.2 | 0.2 | 0.16 | 0.16 | CESM1 variable viscosity parameter | |
vconst_4 | 1.e-8 | 1.e-8 | 2.e-8 | 2.e-8 | CESM1 variable viscosity parameter (1/cm) | |
vconst_5 | 3 | 3 | 3 | 3 | CESM1 variable viscosity parameter (dimensionless) | |
vconst_6 | 1.e7 | 1.e7 | 0.6e7 | 0.6e7 | CESM1 variable viscosity parameter (cm2/sec) | |
vconst_7 | N/A | 90.0 | 45.0 | 45.0 | CESM1 variable viscosity parameter (degrees latitude) | |
smag_lat | 20.0 | 20.0 | 20.0 | 20.0 | latitude (degrees) for starting variation in Smagorinsky viscosity | |
smag_lat_fact | 0.98 | 0.98 | 0.98 | 0.98 | amplitude of Gaussian function for reducing Smagorinsky coefficients | |
smag_lat_gauss | 98.0 | 98.0 | 98.0 | 98.0 | width (degrees squared) of Gaussian function for reducing Smagorinsky coefficients |
2010-03-31