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.
trdmod_oce.F90 in branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/OPA_SRC/TRD – NEMO

source: branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/OPA_SRC/TRD/trdmod_oce.F90 @ 3317

Last change on this file since 3317 was 3317, checked in by gm, 12 years ago

Ediag branche: #927 restructuration of the trdicp computation - part I

  • Property svn:keywords set to Id
File size: 7.3 KB
Line 
1MODULE trdmod_oce
2   !!======================================================================
3   !!                   ***  MODULE trdmod_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 trdmld_oce              ! ocean active mixed layer tracers trends variables
10   USE trdvor_oce              ! ocean vorticity trends variables
11
12   IMPLICIT NONE
13   PUBLIC
14
15#if  defined key_trdtra   &&   defined key_trddyn    ||   defined key_esopa
16   LOGICAL, PARAMETER ::   lk_trdtra = .TRUE.    !: tracers  trend flag
17   LOGICAL, PARAMETER ::   lk_trddyn = .TRUE.    !: momentum trend flag
18#elif  defined key_trdtra
19   LOGICAL, PARAMETER ::   lk_trdtra = .TRUE.    !: tracers  trend flag
20   LOGICAL, PARAMETER ::   lk_trddyn = .FALSE.   !: momentum trend flag
21#elif  defined key_trddyn
22   LOGICAL, PARAMETER ::   lk_trdtra = .FALSE.   !: tracers  trend flag
23   LOGICAL, PARAMETER ::   lk_trddyn = .TRUE.    !: momentum trend flag
24#else
25   LOGICAL, PARAMETER ::   lk_trdtra = .FALSE.   !: tracers  trend flag
26   LOGICAL, PARAMETER ::   lk_trddyn = .FALSE.   !: momentum trend flag
27#endif
28
29   !                                                     !!* Namelist namtrd:  diagnostics on dynamics/tracer trends *
30   LOGICAL , PUBLIC  ::   ln_3D_trd_d   = .FALSE.         !: (T) 3D momentum              trends or (F) not
31   LOGICAL , PUBLIC  ::   ln_3D_trd_t   = .FALSE.         !: (T) 3D tracer               trends or (F) not
32   LOGICAL , PUBLIC  ::   ln_PE_trd     = .FALSE.         !: (T) 3D Potential Energy     trends or (F) not
33   LOGICAL , PUBLIC  ::   ln_KE_trd     = .FALSE.         !: (T) 3D Kinetic   Energy     trends or (F) not
34   LOGICAL , PUBLIC  ::   ln_vor_trd    = .FALSE.         !: (T) 3D barotropic vorticity trends or (F) not
35   LOGICAL , PUBLIC  ::   ln_glo_trd    = .FALSE.         !: (T) global domain averaged diag for T, T^2, KE, and PE
36   LOGICAL , PUBLIC  ::   ln_ML_trd_t   = .FALSE.         !: (T) 2D tracer   trends averaged over the mixed layer
37   LOGICAL , PUBLIC  ::   ln_ML_trd_d   = .FALSE.         !: (T) 2D momentum trends averaged over the mixed layer
38   INTEGER , PUBLIC  ::   nn_trd  = 10                    !: time step frequency for ln_glo_trd
39   INTEGER , PUBLIC  ::   nn_ctls =  0                    !: control surface type for trends vertical integration
40   REAL(wp), PUBLIC  ::   rn_ucf   = 1.                   !: unit conversion factor (for netCDF trends outputs)
41                                                          !: =1. (=86400.) for degC/s (degC/day) and psu/s (psu/day)
42   CHARACTER(len=32) ::   cn_trdrst_in  = "restart_mld"   !: suffix of ocean restart name (input)
43   CHARACTER(len=32) ::   cn_trdrst_out = "restart_mld"   !: suffix of ocean restart name (output)
44   LOGICAL , PUBLIC  ::   ln_trdmld_instant = .FALSE.     !: flag to diagnose inst./mean ML T/S trends
45   LOGICAL , PUBLIC  ::   ln_trdmld_restart = .FALSE.     !: flag to restart mixed-layer diagnostics
46
47# if defined key_trdtra   ||   defined key_trdmld
48   LOGICAL , PUBLIC ::   l_trdtra = .TRUE.                !: tracers  trend flag
49# else
50   LOGICAL , PUBLIC ::   l_trdtra = .FALSE.               !: tracers  trend flag
51# endif
52# if defined key_trddyn   ||   defined key_trdvor
53   LOGICAL , PUBLIC ::   l_trddyn = .TRUE.                !: momentum trend flag
54# else
55   LOGICAL , PUBLIC ::   l_trddyn = .FALSE.               !: momentum trend flag
56# endif
57# if ( defined key_trdtrc && defined key_iomput )  ||  defined key_trdmld_trc
58   LOGICAL , PUBLIC ::   l_trdtrc = .TRUE.                !: tracers  trend flag
59# else
60   LOGICAL , PUBLIC ::   l_trdtrc = .FALSE.               !: tracers  trend flag
61# endif
62   !                                                      !!!* Active tracers trends indexes
63   INTEGER, PUBLIC, PARAMETER ::   jptot_tra      = 14     !: Total trend nb: change it when adding/removing one indice below
64   !                               ===================     ! 
65   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_xad  =  1     !: x- horizontal advection
66   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_yad  =  2     !: y- horizontal advection
67   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_zad  =  3     !: z- vertical   advection
68   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_sad  =  4     !: z- vertical   advection
69   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_ldf  =  5     !: lateral       diffusion
70   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_zdf  =  6     !: vertical      diffusion
71   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_zdfp =  7     !: "PURE" vert.  diffusion (ln_traldf_iso=T)
72   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_bbc  =  8     !: Bottom Boundary Condition (geoth. heating)
73   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_bbl  =  9     !: Bottom Boundary Layer (diffusive and/or advective)
74   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_npc  = 10     !: non-penetrative convection treatment
75   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_dmp  = 11     !: internal restoring (damping)
76   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_qsr  = 12     !: penetrative solar radiation
77   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_nsr  = 13     !: non solar radiation / C/D on salinity  (+runoff if ln_rnf=T)
78   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_atf  = 14     !: Asselin time filter
79   !
80   !                                                      !!!* Passive tracers trends indices (use if "key_top" defined)
81   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_sms  = 13     !: sources m. sinks
82   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_radn = 14     !: corr. trn<0 in trcrad
83   INTEGER, PUBLIC, PARAMETER ::   jptra_trd_radb = 15     !: corr. trb<0 in trcrad (like atf)
84   !
85   !                                                      !!!* Momentum trends indices
86   INTEGER, PUBLIC, PARAMETER ::   jptot_dyn      = 11     !: Total trend nb: change it when adding/removing one indice below
87   !                               ===================     ! 
88   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_hpg  =  1     !: hydrostatic pressure gradient
89   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_spg  =  2     !: surface     pressure gradient
90   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_keg  =  3     !: kinetic energy gradient  or horizontal advection
91   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_rvo  =  4     !: relative  vorticity      or metric term
92   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_pvo  =  5     !: planetary vorticity
93   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_zad  =  6     !: vertical advection
94   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_ldf  =  7     !: horizontal diffusion   
95   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_zdf  =  8     !: vertical   diffusion
96   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_tau  =  9     !: surface stress
97   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_bfr  = 10     !: bottom  stress
98   INTEGER, PUBLIC, PARAMETER ::   jpdyn_trd_atf  = 11     !: Asselin time filter
99   !
100   !!----------------------------------------------------------------------
101   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
102   !! $Id$
103   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
104   !!======================================================================
105END MODULE trdmod_oce
Note: See TracBrowser for help on using the repository browser.