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.
trc.F90 in branches/dev_001_GM/NEMO/TOP_SRC – NEMO

source: branches/dev_001_GM/NEMO/TOP_SRC/trc.F90 @ 772

Last change on this file since 772 was 772, checked in by gm, 16 years ago

dev_001_GM - change the name of cpp key to key_top, key_lobster, key_pisces, key_kriest and the corresponding lk_

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.3 KB
Line 
1MODULE trc
2   !!======================================================================
3   !!                      ***  MODULE  trc  ***
4   !! Passive tracers   :  module for tracers defined
5   !!======================================================================
6   !! History :    -   !  1996-01  (M. Levy)  Original code
7   !!              -   !  1999-07  (M. Levy)  for LOBSTER1 or NPZD model
8   !!              -   !  2000-04  (O. Aumont, M.A. Foujols)  HAMOCC3 and P3ZD
9   !!             1.0  !  2004-03  (C. Ethe)  Free form and module
10   !!----------------------------------------------------------------------
11   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)
12   !! $Id$
13   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
14   !!----------------------------------------------------------------------
15#if defined key_top
16   !!----------------------------------------------------------------------
17   !!   'key_top'                                                TOP models
18   !!----------------------------------------------------------------------
19   USE par_oce
20   USE par_trc
21   
22   IMPLICIT NONE
23   PUBLIC
24
25   !! passive tracers names and units (read in namelist)
26   !! --------------------------------------------------
27   CHARACTER(len=12), PUBLIC, DIMENSION(jptra) ::   ctrcnm     !: tracer name
28   CHARACTER(len=12), PUBLIC, DIMENSION(jptra) ::   ctrcun     !: tracer unit
29   CHARACTER(len=80), PUBLIC, DIMENSION(jptra) ::   ctrcnl     !: tracer long name
30   
31   
32   !! parameters for the control of passive tracers
33   !! --------------------------------------------------
34   INTEGER, PUBLIC                   ::   numnat   !: the number of the passive tracer NAMELIST
35   LOGICAL, PUBLIC, DIMENSION(jptra) ::   lutini   !:  initialisation from FILE or not (NAMELIST)
36   INTEGER, PUBLIC, DIMENSION(jptra) ::   nutini   !: FORTRAN LOGICAL UNIT for initialisation file
37
38   !! passive tracers fields (before,now,after)
39   !! --------------------------------------------------
40   REAL(wp), PUBLIC ::   trai       !: initial total tracer
41   REAL(wp), PUBLIC ::   areatot    !: total volume
42
43   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   trn   !: traceur concentration for actual time step
44   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   tra   !: traceur concentration for next time step
45   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   trb   !: traceur concentration for before time step
46
47
48   !! numerical parameter (NAMELIST)
49   !! --------------------------------------------------
50   REAL(wp), PUBLIC ::   rsc    !: tuning coefficient for anti-diffusion
51   REAL(wp), PUBLIC ::   rtrn   !: value for truncation
52
53   !! namelist parameters
54   !! --------------------------------------------------
55   INTEGER , PUBLIC ::   ncortrc     !: number of corrective phases
56   INTEGER , PUBLIC ::   ndttrc      !: frequency of step on passive tracers
57   INTEGER , PUBLIC ::   nittrc000   !: first time step of passive tracers model 
58   LOGICAL , PUBLIC ::   crosster    !: logical if true computes crossterms
59
60
61   !! isopycnal scheme for passive tracers
62   !! ------------------------------------ 
63   REAL(wp), PUBLIC ::   ahtrb0     !: background diffusivity coefficient for passive tracer (m2/s)
64   REAL(wp), PUBLIC ::   trcrat     !: ratio between passive and active tracer coeff for diffusion
65   REAL(wp), PUBLIC ::   ahtrc0     !: horizontal eddy diffusivity for passive tracers (m2/s)
66   REAL(wp), PUBLIC ::   aeivtr0    !: eddy induced velocity coefficient (m2/s)
67   
68   
69   !! passive tracers restart (input and output)
70   !! ------------------------------------------ 
71   LOGICAL , PUBLIC ::   lrsttr     !: boolean term for restart i/o for passive tracers (namelist)
72   INTEGER , PUBLIC ::   nutwrs     !: output FILE for passive tracers restart
73   INTEGER , PUBLIC ::   nutrst     !: logical unit for restart FILE for passive tracers
74   INTEGER , PUBLIC ::   nrsttr     !: control of the time step ( 0 or 1 ) for pass. tr.
75   
76   
77   !! interpolated gradient
78   !!-------------------------------------------------- 
79   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jptra) ::   gtru   !: horizontal gradient at u-points at bottom ocean level
80   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jptra) ::   gtrv   !: horizontal gradient at v-points at bottom ocean level
81
82   
83# if defined key_trcldf_eiv && defined key_diaeiv
84   !! The three component of the eddy induced velocity
85   !! --------------------------------------------------
86   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk) ::   u_trc_eiv   !: u-eiv (m/s)
87   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk) ::   v_trc_eiv   !: v-eiv (m/s)
88   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk) ::   w_trc_eiv   !: w-eiv (m/s)
89# endif
90   
91   
92   !! information for outputs
93   !! --------------------------------------------------
94   INTEGER , PUBLIC ::   nwritetrc   !: time step frequency for concentration outputs (namelist)
95   
96# if defined key_trc_diaadd
97   !! additional 2D/3D outputs namelist
98   !! --------------------------------------------------
99   CHARACTER(len= 8), PUBLIC, DIMENSION (jpdia2d) ::   ctrc2d   !: 2d output field name
100   CHARACTER(len= 8), PUBLIC, DIMENSION (jpdia2d) ::   ctrc2u   !: 2d output field unit   
101   CHARACTER(len= 8), PUBLIC, DIMENSION (jpdia3d) ::   ctrc3d   !: 3d output field name
102   CHARACTER(len= 8), PUBLIC, DIMENSION (jpdia3d) ::   ctrc3u   !: 3d output field unit
103   CHARACTER(len=80), PUBLIC, DIMENSION (jpdia2d) ::   ctrc2l   !: 2d output field long name
104   CHARACTER(len=80), PUBLIC, DIMENSION (jpdia3d) ::   ctrc3l   !: 3d output field long name
105   
106   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,    jpdia2d) ::   trc2d   !:  additional 2d outputs 
107   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jpdia3d) ::   trc3d   !:  additional 3d outputs 
108   
109   
110   !! netcdf files and index common
111   !! --------------------------------------------------
112   INTEGER , PUBLIC ::   nwriteadd     !: frequency of additional arrays outputs(namelist)
113# endif
114   
115# if defined key_trc_diatrd
116   
117   !!  non conservative trends (biological, ...)
118   !! --------------------------------------------------
119   LOGICAL, PUBLIC, DIMENSION (jptra) ::   luttrd   !: large trends diagnostic to write or not (namelist)
120   
121   !!  Advection-diffusion trends
122   !! --------------------------------------------------
123   REAL(wp), PUBLIC, DIMENSION(:,:,:,:,:), ALLOCATABLE ::   trtrd   !: trends of the tracer equations
124   
125   INTEGER, PUBLIC, DIMENSION(jptra) :: ikeep ! indice of tracer for which dyn trends are stored
126   INTEGER, PUBLIC                   :: nkeep ! number of tracers for which dyn trends are stored
127   !                                          ! (used to allocate trtrd buffer)
128
129   !! netcdf files and index common
130   !! --------------------------------------------------
131   INTEGER , PUBLIC ::   nwritetrd   !: frequency of additional arrays outputs(namelist)
132   
133# endif 
134   
135   !! passive tracers data read and at given time_step
136   !! --------------------------------------------------
137# if defined key_dtatrc
138   INTEGER , PUBLIC, DIMENSION(jptra) ::   numtr   !: logical unit for passive tracers data
139# endif
140
141#else
142   !!----------------------------------------------------------------------
143   !!  Empty module :                                     No passive tracer
144   !!----------------------------------------------------------------------
145#endif
146
147   !!======================================================================
148END MODULE trc
Note: See TracBrowser for help on using the repository browser.