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_r2006_merge_TRA_TRC/NEMO/TOP_SRC – NEMO

source: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trc.F90 @ 2038

Last change on this file since 2038 was 2038, checked in by cetlod, 14 years ago

Apply the merge to passive tracers, see ticket:693

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.2 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   LOGICAL, PUBLIC, DIMENSION(jptra) ::   lutsav   !:  save the tracer or not
37
38   !! passive tracers fields (before,now,after)
39   !! --------------------------------------------------
40   REAL(wp), PUBLIC ::   trai                         !: initial total tracer
41   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk) :: cvol  !: masked grid volume
42   REAL(wp), PUBLIC ::   areatot                      !: total volume
43
44   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   trn   !: traceur concentration for actual time step
45   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   tra   !: traceur concentration for next time step
46   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   trb   !: traceur concentration for before time step
47
48   !! isopycnal scheme for passive tracers
49   !! ------------------------------------ 
50   REAL(wp), PUBLIC ::   ahtrb0     !: background diffusivity coefficient for passive tracer (m2/s)
51
52#if ! defined key_zco
53   !! interpolated gradient
54   !!-------------------------------------------------- 
55   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jptra) ::   gtru   !: horizontal gradient at u-points at bottom ocean level
56   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jptra) ::   gtrv   !: horizontal gradient at v-points at bottom ocean level
57#endif
58   
59   !! passive tracers restart (input and output)
60   !! ------------------------------------------ 
61   INTEGER , PUBLIC  ::  nn_dttrc      !: frequency of step on passive tracers
62   INTEGER , PUBLIC  ::  nittrc000     !: first time step of passive tracers model
63   LOGICAL , PUBLIC  ::  ln_rsttr      !: boolean term for restart i/o for passive tracers (namelist)
64   LOGICAL , PUBLIC  ::  lrst_trc      !: logical to control the trc restart write
65   INTEGER , PUBLIC  ::  nutwrs        !: output FILE for passive tracers restart
66   INTEGER , PUBLIC  ::  nutrst        !: logical unit for restart FILE for passive tracers
67   INTEGER , PUBLIC  ::  nn_rsttr      !: control of the time step ( 0 or 1 ) for pass. tr.
68   CHARACTER(len=50) ::  cn_trcrst_in  !: suffix of pass. tracer restart name (input)
69   CHARACTER(len=50) ::  cn_trcrst_out !: suffix of pass. tracer restart name (output)
70   
71   !! information for outputs
72   !! --------------------------------------------------
73   INTEGER , PUBLIC ::   nn_writetrc   !: time step frequency for concentration outputs (namelist)
74   
75# if defined key_diatrc && ! defined key_iomput
76   !! additional 2D/3D outputs namelist
77   !! --------------------------------------------------
78   CHARACTER(len= 8), PUBLIC, DIMENSION (jpdia2d) ::   ctrc2d   !: 2d output field name
79   CHARACTER(len= 8), PUBLIC, DIMENSION (jpdia2d) ::   ctrc2u   !: 2d output field unit   
80   CHARACTER(len= 8), PUBLIC, DIMENSION (jpdia3d) ::   ctrc3d   !: 3d output field name
81   CHARACTER(len= 8), PUBLIC, DIMENSION (jpdia3d) ::   ctrc3u   !: 3d output field unit
82   CHARACTER(len=80), PUBLIC, DIMENSION (jpdia2d) ::   ctrc2l   !: 2d output field long name
83   CHARACTER(len=80), PUBLIC, DIMENSION (jpdia3d) ::   ctrc3l   !: 3d output field long name
84
85   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,    jpdia2d) ::   trc2d   !:  additional 2d outputs 
86   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jpdia3d) ::   trc3d   !:  additional 3d outputs 
87   
88   INTEGER , PUBLIC ::   nwritedia     !: frequency of additional arrays outputs(namelist)
89# endif
90
91#if defined key_diabio || defined key_trdmld_trc
92   CHARACTER(len=8),  DIMENSION(jpdiabio) ::   ctrbio   !: biological trends name      (NAMELIST)
93   CHARACTER(len=20), DIMENSION(jpdiabio) ::   ctrbiu   !: biological trends unit      (NAMELIST)
94   CHARACTER(len=80), DIMENSION(jpdiabio) ::   ctrbil   !: biological trends long name (NAMELIST)
95   INTEGER ::   nwritebio   !: time step frequency for biological outputs (NAMELIST)
96#endif
97# if defined key_diabio
98   !! Biological trends
99   !! -----------------
100   REAL(wp), DIMENSION(jpi,jpj,jpk,jpdiabio) :: trbio   !: biological trends
101# endif
102
103   
104   !! passive tracers data read and at given time_step
105   !! --------------------------------------------------
106# if defined key_dtatrc
107   INTEGER , PUBLIC, DIMENSION(jptra) ::   numtr   !: logical unit for passive tracers data
108# endif
109
110#else
111   !!----------------------------------------------------------------------
112   !!  Empty module :                                     No passive tracer
113   !!----------------------------------------------------------------------
114#endif
115
116   !!======================================================================
117END MODULE trc
Note: See TracBrowser for help on using the repository browser.