New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
trd_oce.F90 in NEMO/branches/UKMO/NEMO_4.0.4_momentum_trends/src/OCE/TRD – NEMO

source: NEMO/branches/UKMO/NEMO_4.0.4_momentum_trends/src/OCE/TRD/trd_oce.F90 @ 15168

Last change on this file since 15168 was 15168, checked in by davestorkey, 3 years ago

UKMO/NEMO_4.0.4_momentum_trends: Introduce top friction trends (ice shelf cavities
and implicit ice-ocean drag) and reorganise bottom friction trend diagnostic.
In this version there are tfr2d, bfr2d diagnostics which are the accelerations of
the barotropic flow due to top and bottom friction, and tfr, bfr diagnostics which
are the acceleration of the baroclinic flow due to top and bottom friction (implicit
or explicit).

File size: 7.2 KB
Line 
1MODULE trd_oce
2   !!======================================================================
3   !!                   ***  MODULE trd_oce  ***
4   !! Ocean trends :   set tracer and momentum trend variables
5   !!======================================================================
6   !! History :  1.0  !  2004-08  (C. Talandier) Original code
7   !!----------------------------------------------------------------------
8   USE par_oce                 ! ocean parameters
9   USE trdmxl_oce              ! ocean active mixed layer tracers trends variables
10   USE trdvor_oce              ! ocean vorticity trends variables
11
12   IMPLICIT NONE
13   PUBLIC
14
15   !                                                   !!* Namelist namtrd:  diagnostics on dynamics/tracer trends *
16   LOGICAL , PUBLIC  ::   ln_dyn_trd   = .FALSE.        !: (T) 3D momentum             trends or (F) not
17   LOGICAL , PUBLIC  ::   ln_tra_trd   = .FALSE.        !: (T) 3D tracer               trends or (F) not
18   LOGICAL , PUBLIC  ::   ln_KE_trd    = .FALSE.        !: (T) 3D Kinetic   Energy     trends or (F) not
19   LOGICAL , PUBLIC  ::   ln_PE_trd    = .FALSE.        !: (T) 3D Potential Energy     trends or (F) not
20   LOGICAL , PUBLIC  ::   ln_vor_trd   = .FALSE.        !: (T) 3D barotropic vorticity trends or (F) not
21   LOGICAL , PUBLIC  ::   ln_glo_trd   = .FALSE.        !: (T) global domain averaged diag for T, T^2, KE, and PE
22   LOGICAL , PUBLIC  ::   ln_dyn_mxl   = .FALSE.        !: (T) 2D tracer   trends averaged over the mixed layer
23   LOGICAL , PUBLIC  ::   ln_tra_mxl   = .FALSE.        !: (T) 2D momentum trends averaged over the mixed layer
24   INTEGER , PUBLIC  ::   nn_trd       = 10             !: time step frequency for ln_glo_trd=T only
25
26   LOGICAL , PUBLIC ::   l_trdtra        !: tracers  trend flag (set from namelist in trdini)
27   LOGICAL , PUBLIC ::   l_trddyn        !: momentum trend flag (set from namelist in trdini)
28   
29# if ( defined key_trdtrc && defined key_iomput )  ||  defined key_trdmxl_trc
30   LOGICAL , PUBLIC ::   l_trdtrc = .TRUE.        !: tracers  trend flag
31# else
32   LOGICAL , PUBLIC ::   l_trdtrc = .FALSE.       !: tracers  trend flag
33# endif
34   !                                                  !!!* Active tracers trends indexes
35   INTEGER, PUBLIC, PARAMETER ::   jptot_tra  = 20     !: Total trend nb: change it when adding/removing one indice below
36   !                               ===============     ! 
37   INTEGER, PUBLIC, PARAMETER ::   jptra_xad  =  1     !: x- horizontal advection
38   INTEGER, PUBLIC, PARAMETER ::   jptra_yad  =  2     !: y- horizontal advection
39   INTEGER, PUBLIC, PARAMETER ::   jptra_zad  =  3     !: z- vertical   advection
40   INTEGER, PUBLIC, PARAMETER ::   jptra_sad  =  4     !: z- vertical   advection
41   INTEGER, PUBLIC, PARAMETER ::   jptra_totad  =  5   !: total         advection
42   INTEGER, PUBLIC, PARAMETER ::   jptra_ldf  =  6     !: lateral       diffusion
43   INTEGER, PUBLIC, PARAMETER ::   jptra_zdf  =  7     !: vertical      diffusion
44   INTEGER, PUBLIC, PARAMETER ::   jptra_zdfp =  8     !: "PURE" vert.  diffusion (ln_traldf_iso=T)
45   INTEGER, PUBLIC, PARAMETER ::   jptra_evd  =  9     !: EVD term (convection)
46   INTEGER, PUBLIC, PARAMETER ::   jptra_bbc  = 10     !: Bottom Boundary Condition (geoth. heating)
47   INTEGER, PUBLIC, PARAMETER ::   jptra_bbl  = 11     !: Bottom Boundary Layer (diffusive and/or advective)
48   INTEGER, PUBLIC, PARAMETER ::   jptra_npc  = 12     !: non-penetrative convection treatment
49   INTEGER, PUBLIC, PARAMETER ::   jptra_dmp  = 13     !: internal restoring (damping)
50   INTEGER, PUBLIC, PARAMETER ::   jptra_qsr  = 14     !: penetrative solar radiation
51   INTEGER, PUBLIC, PARAMETER ::   jptra_nsr  = 15     !: non solar radiation / C/D on salinity  (+runoff if ln_rnf=T)
52   INTEGER, PUBLIC, PARAMETER ::   jptra_atf  = 16     !: Asselin time filter
53   INTEGER, PUBLIC, PARAMETER ::   jptra_tot  = 17     !: Model total trend
54   !
55   !                                                  !!!* Passive tracers trends indices (use if "key_top" defined)
56   INTEGER, PUBLIC, PARAMETER ::   jptra_sms  = 18     !: sources m. sinks
57   INTEGER, PUBLIC, PARAMETER ::   jptra_radn = 19     !: corr. trn<0 in trcrad
58   INTEGER, PUBLIC, PARAMETER ::   jptra_radb = 20     !: corr. trb<0 in trcrad (like atf)
59   !
60   !                                                  !!!* Momentum trends indices
61   INTEGER, PUBLIC, PARAMETER ::   jptot_dyn  = 24     !: Total trend nb: change it when adding/removing one indice below
62   !                               ===============     ! 
63   INTEGER, PUBLIC, PARAMETER ::   jpdyn_hpg   =  1     !: hydrostatic pressure gradient
64   INTEGER, PUBLIC, PARAMETER ::   jpdyn_hpg_save =  2  !: hydrostatic pressure gradient (saved value)
65   INTEGER, PUBLIC, PARAMETER ::   jpdyn_hpg_corr =  3  !: hydrostatic pressure gradient (initial correction)
66   INTEGER, PUBLIC, PARAMETER ::   jpdyn_spg   =  4     !: surface     pressure gradient
67   INTEGER, PUBLIC, PARAMETER ::   jpdyn_keg   =  5     !: kinetic energy gradient  or horizontal advection
68   INTEGER, PUBLIC, PARAMETER ::   jpdyn_rvo   =  6     !: relative  vorticity      or metric term
69   INTEGER, PUBLIC, PARAMETER ::   jpdyn_pvo   =  7     !: planetary vorticity
70   INTEGER, PUBLIC, PARAMETER ::   jpdyn_pvo_save =  8  !: planetary vorticity (saved value)
71   INTEGER, PUBLIC, PARAMETER ::   jpdyn_pvo_corr =  9  !: planetary vorticity (initial correction)
72   INTEGER, PUBLIC, PARAMETER ::   jpdyn_zad   = 10     !: vertical advection
73   INTEGER, PUBLIC, PARAMETER ::   jpdyn_ldf   = 11     !: horizontal diffusion   
74   INTEGER, PUBLIC, PARAMETER ::   jpdyn_zdf   = 12     !: vertical   diffusion
75   INTEGER, PUBLIC, PARAMETER ::   jpdyn_tau   = 13     !: wind stress (= ice-ocean drag under ice if ln_drgice_imp=F)
76   INTEGER, PUBLIC, PARAMETER ::   jpdyn_tfr   = 14     !: top friction (cavities and ice-ocean drag if ln_drgice_imp=T)
77   INTEGER, PUBLIC, PARAMETER ::   jpdyn_bfr   = 15     !: bottom friction
78   INTEGER, PUBLIC, PARAMETER ::   jpdyn_tfre  = 16     !: explicit top friction for baroclinic trend (ln_drgimp=.FALSE.)
79   INTEGER, PUBLIC, PARAMETER ::   jpdyn_tfre_bt  = 17  !: top friction due to barotropic currents for baroclinic trend (ln_dynspg_ts=.TRUE.)
80   INTEGER, PUBLIC, PARAMETER ::   jpdyn_tfri  = 18     !: implicit top friction for baroclinic trend
81   INTEGER, PUBLIC, PARAMETER ::   jpdyn_bfre  = 19     !: explicit bottom friction for baroclinic trend (ln_drgimp=.FALSE.)
82   INTEGER, PUBLIC, PARAMETER ::   jpdyn_bfre_bt  = 20  !: bottom friction due to barotropic currents for baroclinic trend (ln_dynspg_ts=.TRUE.)
83   INTEGER, PUBLIC, PARAMETER ::   jpdyn_bfri  = 21     !: implicit bottom friction for baroclinic trend (ln_drgimp=.TRUE.)
84   INTEGER, PUBLIC, PARAMETER ::   jpdyn_tot   = 22     !: Total trend excluding Asselin time filter
85   INTEGER, PUBLIC, PARAMETER ::   jpdyn_atf   = 23     !: Asselin time filter
86   INTEGER, PUBLIC, PARAMETER ::   jpdyn_ken   = 24     !: use for calculation of KE
87   !
88   !!----------------------------------------------------------------------
89   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
90   !! $Id$
91   !! Software governed by the CeCILL license (see ./LICENSE)
92   !!======================================================================
93END MODULE trd_oce
Note: See TracBrowser for help on using the repository browser.