Back to home page

MITgcm

 
 

    


Warning, /doc/phys_pkgs/generic_advdiff.rst is written in an unsupported language. File is not indexed.

view on githubraw file Latest commit ba0b0470 on 2021-04-08 01:06:32 UTC
8679f9097b Jeff*0001 .. _sec_phys_pkg_gad:
                0002 
                0003 Generic Advection/Diffusion
                0004 ---------------------------
                0005 
                0006 
dcaaa42497 Jeff*0007 The generic_advdiff package contains high-level subroutines to solve
8679f9097b Jeff*0008 the advection-diffusion equation of any tracer, either active (potential
bf89a37abc Phob*0009 temperature, salinity or water vapor) or passive (see :ref:`pkg/ptracer <sub_phys_pkg_ptracers>`).
                0010 (see also :numref:`tracer_eqns` and
                0011 :numref:`advection_schemes`).
8679f9097b Jeff*0012 
                0013 Introduction
                0014 ++++++++++++
                0015 
dcaaa42497 Jeff*0016 Package “generic_advdiff” provides a common set of routines for
8679f9097b Jeff*0017 calculating advective/diffusive fluxes for tracers (cell centered
                0018 quantities on a C-grid).
                0019 
                0020 Many different advection schemes are available: the standard centered
                0021 second order, centered fourth order and upwind biased third order
                0022 schemes are known as linear methods and require some stable
                0023 time-stepping method such as Adams-Bashforth. Alternatives such as
                0024 flux-limited schemes are stable in the forward sense and are best
bf89a37abc Phob*0025 combined with the multi-dimensional method provided in :filelink:`gad\_advection <pkg/generic_advdiff/gad_advection.F>`.
8679f9097b Jeff*0026 
                0027 Key subroutines, parameters and files
                0028 +++++++++++++++++++++++++++++++++++++
                0029 
                0030 There are two high-level routines:
                0031 
bf89a37abc Phob*0032 -  :filelink:`GAD\_CALC\_RHS <pkg/generic_advdiff/gad_calc_rhs.F>` calculates all fluxes at time level “n” and is used
8679f9097b Jeff*0033    for the standard linear schemes. This must be used in conjuction with
                0034    Adams–Bashforth time stepping. Diffusive and parameterized fluxes are
                0035    always calculated here.
                0036 
bf89a37abc Phob*0037 -  :filelink:`GAD\_ADVECTION <pkg/generic_advdiff/gad_advection.F>` calculates just the advective fluxes using the
8679f9097b Jeff*0038    non-linear schemes and can not be used in conjuction with
                0039    Adams–Bashforth time stepping.
                0040 
dcaaa42497 Jeff*0041 
                0042 .. tabularcolumns:: |\Y{.4}|L|L|
                0043 
                0044 
                0045 +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+
                0046 | CPP Flag Name                                 | Default | Description                                                                                                          |
                0047 +===============================================+=========+======================================================================================================================+
                0048 | :varlink:`COSINEMETH_III`                     | #define | sets the implementation form of :math:`\cos{\varphi}` scaling of bi-harmonic terms for tracer diffusivity            |
                0049 |                                               |         | (note, in :filelink:`pkg/generic_advdiff` routines the definition set here overrides whether this is defined in      |
                0050 |                                               |         | :filelink:`model/inc/CPP_OPTIONS.h`, where the setting affects viscous term calculations)                            |
                0051 +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+
                0052 | :varlink:`ISOTROPIC_COS_SCALING`              | #undef  | selects isotropic scaling of harmonic and bi-harmonic terms when using the :math:`\cos{\varphi}` scaling             |
                0053 |                                               |         | (note, in :filelink:`pkg/generic_advdiff` routines the definition set here overrides whether this is defined in      |
                0054 |                                               |         | :filelink:`model/inc/CPP_OPTIONS.h`, where the setting affects viscous term calculations)                            |
                0055 +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+
                0056 | :varlink:`DISABLE_MULTIDIM_ADVECTION`         | #undef  | disables compilation of multi-dim. advection code                                                                    |
                0057 +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+
                0058 | :varlink:`GAD_MULTIDIM_COMPRESSIBLE`          | #undef  | use compressible flow method for multi-dim advection instead of older, less accurate method; note option has         |
                0059 |                                               |         | no effect on SOM advection which always uses compressible flow method                                                |
                0060 +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+
                0061 | :varlink:`GAD_ALLOW_TS_SOM_ADV`               | #undef  | enable the use of 2nd-order moment advection scheme (Prather 1986 :cite:`prather:86`)                                |
                0062 |                                               |         | for temp. and salinity                                                                                               |
                0063 +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+
                0064 | :varlink:`GAD_SMOLARKIEWICZ_HACK`             | #undef  | enables hack to get rid of negatives caused by Redi, see Smolarkiewicz (1989) :cite:`smolark:89`                     |
                0065 |                                               |         | (for ptracers, except temp and salinity)                                                                             |
                0066 +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+
                0067 
                0068 
                0069 
9ce7d74115 Jeff*0070 .. _gad_diagnostics:
                0071 
8679f9097b Jeff*0072 GAD Diagnostics
                0073 +++++++++++++++
                0074 
                0075 ::
                0076 
                0077 
                0078     ------------------------------------------------------------------------
                0079     <-Name->|Levs|<-parsing code->|<--  Units   -->|<- Tile (max=80c) 
                0080     ------------------------------------------------------------------------
                0081     ADVr_TH | 15 |WM      LR      |degC.m^3/s      |Vertical   Advective Flux of Pot.Temperature
                0082     ADVx_TH | 15 |UU   087MR      |degC.m^3/s      |Zonal      Advective Flux of Pot.Temperature
                0083     ADVy_TH | 15 |VV   086MR      |degC.m^3/s      |Meridional Advective Flux of Pot.Temperature
                0084     DFrE_TH | 15 |WM      LR      |degC.m^3/s      |Vertical Diffusive Flux of Pot.Temperature (Explicit part)
                0085     DIFx_TH | 15 |UU   090MR      |degC.m^3/s      |Zonal      Diffusive Flux of Pot.Temperature
                0086     DIFy_TH | 15 |VV   089MR      |degC.m^3/s      |Meridional Diffusive Flux of Pot.Temperature
                0087     DFrI_TH | 15 |WM      LR      |degC.m^3/s      |Vertical Diffusive Flux of Pot.Temperature (Implicit part)
ba0b047096 Mart*0088     ADVr_SLT| 15 |WM      LR      |(g/kg).m^3/s    |Vertical   Advective Flux of Salinity
                0089     ADVx_SLT| 15 |UU   094MR      |(g/kg).m^3/s    |Zonal      Advective Flux of Salinity
                0090     ADVy_SLT| 15 |VV   093MR      |(g/kg).m^3/s    |Meridional Advective Flux of Salinity
                0091     DFrE_SLT| 15 |WM      LR      |(g/kg).m^3/s    |Vertical Diffusive Flux of Salinity    (Explicit part)
                0092     DIFx_SLT| 15 |UU   097MR      |(g/kg).m^3/s    |Zonal      Diffusive Flux of Salinity
                0093     DIFy_SLT| 15 |VV   096MR      |(g/kg).m^3/s    |Meridional Diffusive Flux of Salinity
                0094     DFrI_SLT| 15 |WM      LR      |(g/kg).m^3/s    |Vertical Diffusive Flux of Salinity    (Implicit part)
8679f9097b Jeff*0095 
                0096 Experiments and tutorials that use GAD
                0097 ++++++++++++++++++++++++++++++++++++++
                0098 
bf89a37abc Phob*0099 -  Baroclinic gyre experiment, in :filelink:`tutorial\_baroclinic\_gyre <verification/tutorial_baroclinic_gyre>`
dc6b14c3ce Phob*0100    verification directory.
8679f9097b Jeff*0101 
bf89a37abc Phob*0102 -  Tracer Sensitivity tutorial, in :filelink:`tutorial\_tracer\_adjsens <verification/tutorial_tracer_adjsens>`
                0103    verification directory.
8679f9097b Jeff*0104 
                0105