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 coefficients 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 evaluated as

ν|| max(c|||D|ds2),u||ds)
ν max(c|D|ds2),uds)     (3.3)

where ds = min(dx,dy), |D| = √2|E| is the deformation rate, |E| is the norm of the strain tensor, c|| and c are dimensionless coefficients of order 1, and u|| and u are velocities associated with the grid Reynolds number which determine minimum background viscosities in regions where the nonlinear viscosities are too small to control grid-point noise. Typically u|| and u are order 1 cm/s. Perpendicular Smagorinsky coefficients can be reduced using a latitudinally-dependent Gaussian function. The form of this function is governed by the three smag_lat parameters.

Table: Anisotropic viscosity namelist
&hmix_aniso_nml LANL default CESM1 gx3 dipole-grid default CESM1 gx1 dipole-grid default CESM1 tx0.1v2 dipole-grid default Valid values 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_para0.01.050.0 x 10750.0 x 107parallel viscosity component (cm2/s)
visc_perp0.01.050.0 x 10750.0 x 107perpendicular viscosity component (cm2/s)
c_para0.00.08.08.0dimensionless parallel Smagorinsky coeff
c_perp0.00.08.08.0dimensionless perpendicular Smagorinsky coeff
u_para0.00.05.05.0velocity (cm/s) for grid Reynolds no. viscous limit in parallel direction
u_perp0.00.05.05.0velocity (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 charactersname 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 charactersoutput file for writing internally-generated variable viscosity
var_viscosity_outfile_fmt'bin''nc''nc''nc''bin', 'nc'viscosity output file format
vconst_11.e71.0e70.6e70.6e7CESM1 variable viscosity parameter (cm2/sec)
vconst_224.524.50.50.5CESM1 variable viscosity parameter
vconst_30.20.20.160.16CESM1 variable viscosity parameter
vconst_41.e-81.e-82.e-82.e-8CESM1 variable viscosity parameter (1/cm)
vconst_53333CESM1 variable viscosity parameter (dimensionless)
vconst_61.e71.e70.6e70.6e7CESM1 variable viscosity parameter (cm2/sec)
vconst_7N/A90.045.045.0CESM1 variable viscosity parameter (degrees latitude)
smag_lat20.020.020.020.0latitude (degrees) for starting variation in Smagorinsky viscosity
smag_lat_fact0.980.980.980.98amplitude of Gaussian function for reducing Smagorinsky coefficients
smag_lat_gauss98.098.098.098.0width (degrees squared) of Gaussian function for reducing Smagorinsky coefficients