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.
oce_trc.F90 in branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC – NEMO

source: branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90 @ 7795

Last change on this file since 7795 was 7795, checked in by cbricaud, 7 years ago

code cleaning and correct bug for wn computing in vvl case

  • Property svn:keywords set to Id
File size: 25.6 KB
Line 
1MODULE oce_trc
2   !!======================================================================
3   !!                      ***  MODULE  oce_trc  ***
4   !! TOP :   variables shared between ocean and passive tracers
5   !!======================================================================
6   !! History :   1.0  !  2004-03  (C. Ethe)  original code
7   !!             2.0  !  2007-12 (C. Ethe, G. Madec)  rewritting
8   !!----------------------------------------------------------------------
9#if defined key_top
10   USE dom_oce    , ONLY : ndastp
11   USE dom_oce    , ONLY : nyear_len,nday,nyear,nday_year
12   USE dom_oce    , ONLY : gdepw_1d
13   USE dom_oce    , ONLY : rdttra
14   USE dom_oce    , ONLY : Agrif_Root      => Agrif_Root
15   USE sbc_oce    , ONLY : nn_ice_embd
16   USE sbc_oce    , ONLY : ln_cpl
17   USE sbc_oce    , ONLY : ln_rnf
18   USE sbc_oce    , ONLY : ncpl_qsr_freq
19
20   USE traqsr     , ONLY : ln_qsr_bio =>    ln_qsr_bio
21   USE traqsr     , ONLY : rn_si0     =>    rn_si0     !: very near surface depth of extinction
22   USE traqsr     , ONLY : rn_abs     =>    rn_abs     !: fraction absorbed in the very near surface
23
24   USE iom        , ONLY : iom_open , iom_get , iom_varid , iom_rstput , iom_close , iom_use, iom_gettime, iom_put
25   USE iom        , ONLY : lk_iomput ,jpdom_data,jpdom_autoglo
26
27   USE par_trc    , ONLY : jptra
28   USE par_cfc    , ONLY : lk_cfc   , jp_cfc0 , jp_cfc1
29   USE par_c14b   , ONLY : lk_c14b  , jp_c14b0, jp_c14b1
30   USE par_pisces , ONLY : lk_pisces, jp_pcs0 , jp_pcs1
31   USE par_my_trc , ONLY : lk_my_trc, jp_myt0 , jp_myt1
32
33   USE trc_oce    , ONLY : lk_degrad, lk_offline, facvol, r_si2, trc_oce_ext_lev
34   USE trc_oce    , ONLY : nn_dttrc
35   USE trc_oce    , ONLY : etot3
36   USE trc        , ONLY : nittrc000
37   USE trc        , ONLY : trb,trn,tra
38   USE trc        , ONLY : trc2d,trc3d
39   USE trc        , ONLY : ctrcnm
40   USE trc        , ONLY : numrtr ,numrtw
41   USE trc        , ONLY : ln_diatrc,ln_rsttr,ln_top_euler,lrst_trc,ln_trcdmp,ln_trcdmp_clo
42   USE trc        , ONLY : gtru, gtrv,gtrui,gtrvi
43   USE trc        , ONLY : rdttrc
44   USE trc        , ONLY : areatot
45   USE trc        , ONLY : cvol
46   USE trc        , ONLY : l_trcdm2dc
47   USE trc        , ONLY : nn_ice_tr
48   USE trc        , ONLY : cn_trc_o
49   USE trc        , ONLY : trc_ice_ratio
50   USE trc        , ONLY : nn_ice_tr
51   USE trc        , ONLY : trc_ice_prescr
52   USE trc        , ONLY : qsr_mean ! in case of coarsening no no need to coarsene it because qsr_mean is already in crs space
53
54#if defined key_crs
55
56  !* Domain size *
57   USE par_oce , ONLY :   jpi      =>   jpi        !: first  dimension of grid --> i
58   USE par_oce , ONLY :   jpj      =>   jpj        !: second dimension of grid --> j 
59   USE par_oce , ONLY :   jpk      =>   jpk        !: number of levels 
60   USE par_oce , ONLY :   jpim1    =>   jpim1      !: jpi - 1
61   USE par_oce , ONLY :   jpjm1    =>   jpjm1      !: jpj - 1
62   USE par_oce , ONLY :   jpkm1    =>   jpkm1      !: jpk - 1 
63   USE par_oce , ONLY :   jpij     =>   jpij       !: jpi x jpj
64   USE par_oce , ONLY :   lk_esopa =>   lk_esopa   !: flag to activate the all option
65   USE par_oce , ONLY :   jp_tem   =>   jp_tem     !: indice for temperature
66   USE par_oce , ONLY :   jp_sal   =>   jp_sal     !: indice for salinity
67
68   !* IO manager *
69   USE in_out_manager
70
71   !* Memory Allocation *
72   USE wrk_nemo
73
74   !* Timing *
75   USE timing, ONLY : timing_start , timing_stop
76
77   !* MPP library                         
78   USE lib_mpp
79
80   !* Fortran utilities                         
81   USE lib_fortran_crs , ONLY : glob_sum => glob_sum_crs
82
83   !* Lateral boundary conditions                         
84   USE lbclnk
85
86   !* physical constants *
87   USE phycst
88
89   !* 1D configuration
90   USE c1d
91
92   !* model domain *
93   USE dom_oce , ONLY : narea => narea
94   USE dom_oce , ONLY : nproc => nproc
95   USE dom_oce , ONLY : nimpp => nimpp
96   USE dom_oce , ONLY : njmpp => njmpp
97   USE dom_oce , ONLY : nreci => nreci
98   USE dom_oce , ONLY : nrecj => nrecj
99   USE dom_oce , ONLY : nlci  => nlci
100   USE dom_oce , ONLY : nldi  => nldi
101   USE dom_oce , ONLY : nlei  => nlei
102   USE dom_oce , ONLY : nlcj  => nlcj
103   USE dom_oce , ONLY : nldj  => nldj
104   USE dom_oce , ONLY : nlej  => nlej
105   USE dom_oce , ONLY : nlcit  => nlcit
106   USE dom_oce , ONLY : nldit  => nldit
107   USE dom_oce , ONLY : nleit  => nleit
108   USE dom_oce , ONLY : nlcjt  => nlcjt
109   USE dom_oce , ONLY : nldjt  => nldjt
110   USE dom_oce , ONLY : nlejt  => nlejt
111   USE dom_oce , ONLY : nimppt => nimppt
112   USE dom_oce , ONLY : njmppt => njmppt
113   USE dom_oce , ONLY : ibonit => ibonit
114   USE dom_oce , ONLY : ibonjt => ibonjt
115   USE dom_oce , ONLY : lk_vvl => lk_vvl
116   USE dom_oce , ONLY : rdt => rdt
117   USE dom_oce , ONLY : ln_zco => ln_zco
118   USE dom_oce , ONLY : ln_zps => ln_zps
119   USE dom_oce , ONLY : ln_sco => ln_sco
120   USE dom_oce , ONLY : neuler => neuler
121   USE dom_oce , ONLY : mikt      => mikt          !: f-points (m)
122
123   USE crs,  ONLY : mi0 => mi0 
124   USE crs,  ONLY : mi1 => mi1 
125   USE crs,  ONLY : mj0 => mj0 
126   USE crs,  ONLY : mj1 => mj1 
127
128   USE dom_oce , ONLY :  lzoom => lzoom 
129   !USE dom_oce , ONLY :  =>
130
131   !* horizontal mesh *
132   USE crs , ONLY :   glamt      =>   glamt_crs      !: longitude of t-point (degre) 
133   USE crs , ONLY :   glamu      =>   glamu_crs      !: longitude of t-point (degre) 
134   USE crs , ONLY :   glamv      =>   glamv_crs      !: longitude of t-point (degre) 
135   USE crs , ONLY :   glamf      =>   glamf_crs      !: longitude of t-point (degre) 
136   USE crs , ONLY :   gphit      =>   gphit_crs      !: latitude  of t-point (degre)   
137   USE crs , ONLY :   gphiu      =>   gphiu_crs      !: latitude  of t-point (degre)   
138   USE crs , ONLY :   gphiv      =>   gphiv_crs      !: latitude  of t-point (degre)   
139   USE crs , ONLY :   gphif      =>   gphif_crs      !: latitude  of t-point (degre)   
140   USE crs , ONLY :   e1t        =>   e1t_crs        !: horizontal scale factors at t-point (m) 
141   USE crs , ONLY :   e2t        =>   e2t_crs        !: horizontal scale factors at t-point (m)   
142   USE crs , ONLY :   e1e2t      =>   e1e2t_crs      !: cell surface at t-point (m2)
143   USE crs , ONLY :   e1u        =>   e1u_crs        !: horizontal scale factors at u-point (m)
144   USE crs , ONLY :   e2u        =>   e2u_crs        !: horizontal scale factors at u-point (m)
145   USE crs , ONLY :   e1v        =>   e1v_crs        !: horizontal scale factors at v-point (m)
146   USE crs , ONLY :   e2v        =>   e2v_crs        !: horizontal scale factors at v-point (m) 
147
148#if defined key_vvl 
149   USE crs , ONLY :   e3t_b      =>  e3t_b_crs         !: vertical scale factors at t-
150   USE crs , ONLY :   e3t_n      =>  e3t_n_crs         !: vertical scale factors at t-
151   USE crs , ONLY :   e3u_n      =>  e3u_n_crs         !: vertical scale factors at u-
152   USE crs , ONLY :   e3v_n      =>  e3v_n_crs         !: vertical scale factors v-
153   USE crs , ONLY :   e3w_n      =>  e3w_n_crs         !: w-points (m)
154   USE crs , ONLY :   e3t_a      =>  e3t_a_crs         !: vertical scale factors at t-
155   USE crs , ONLY :   gdept_n    =>  gdept_n_crs       !: depth of t-points (m)
156#else
157   USE crs , ONLY :   e3t        =>  e3t_0_crs         !: vertical scale factors at t-
158   USE crs , ONLY :   e3u        =>  e3u_0_crs         !: vertical scale factors at u-
159   USE crs , ONLY :   e3v        =>  e3v_0_crs         !: vertical scale factors v-
160   USE crs , ONLY :   e3w        =>  e3w_0_crs         !: w-points (m)
161   USE crs , ONLY :   e3t_b      =>  e3t_0_crs         !: vertical scale factors at t-
162   USE crs , ONLY :   e3u_b      =>  e3u_0_crs         !: vertical scale factors at u-
163   USE crs , ONLY :   e3v_b      =>  e3v_0_crs         !: vertical scale factors v-
164   USE crs , ONLY :   e3w_b      =>  e3w_0_crs         !: w-points (m)
165   USE crs , ONLY :   e3t_n      =>  e3t_0_crs         !: vertical scale factors at t-
166   USE crs , ONLY :   e3u_n      =>  e3u_0_crs         !: vertical scale factors at u-
167   USE crs , ONLY :   e3v_n      =>  e3v_0_crs         !: vertical scale factors v-
168   USE crs , ONLY :   e3w_n      =>  e3w_0_crs         !: w-points (m)
169   USE crs , ONLY :   e3t_a      =>  e3t_0_crs         !: vertical scale factors at t-
170   USE crs , ONLY :   e3u_a      =>  e3u_0_crs         !: vertical scale factors at u-
171   USE crs , ONLY :   e3v_a      =>  e3v_0_crs         !: vertical scale factors v-
172   USE crs , ONLY :   e3w_a      =>  e3w_0_crs         !: w-points (m)
173   USE crs , ONLY :   gdept      =>  gdept_0_crs       !: depth of t-points (m)
174   USE crs , ONLY :   gdepw      =>  gdepw_0_crs       !: depth of t-points (m)
175   USE crs , ONLY :   gdept_crs  =>  gdept_0_crs       !: depth of t-points (m)
176   USE crs , ONLY :   gdepw_crs  =>  gdepw_0_crs       !: depth of t-points (m)
177   USE crs , ONLY :   gdept_n    =>  gdept_0_crs       !: depth of t-points (m)
178   USE crs , ONLY :   gdepw_n    =>  gdepw_0_crs       !: depth of t-points (m)
179   USE crs , ONLY :   e3t_max_crs => e3t_max_0_crs
180   USE crs , ONLY :   e3u_max_crs => e3u_max_0_crs
181   USE crs , ONLY :   e3v_max_crs => e3v_max_0_crs
182   USE crs , ONLY :   e3w_max_crs => e3w_max_0_crs
183#endif
184   USE dom_oce , ONLY :   gdept_1d   =>  gdept_1d      !: depth of t-points (m)
185  !* masks, bathymetry *
186   USE crs , ONLY :   mbkt       =>   mbkt_crs       !: vertical index of the bottom last T- ocean level
187   USE crs , ONLY :   tmask_i    =>   tmask_i_crs    !: Interior mask at t-points
188   USE crs , ONLY :   tmask      =>   tmask_crs      !: land/ocean mask at t-points
189
190 !* ocean fields: here now and after fields *
191   USE crs , ONLY :   un      =>    un_crs      !: i-horizontal velocity (m s-1)
192   USE crs , ONLY :   vn      =>    vn_crs      !: j-horizontal velocity (m s-1)
193   USE crs , ONLY :   wn      =>    wn_crs      !: vertical velocity (m s-1) 
194   USE crs , ONLY :   tsn     =>    tsn_crs     !: 4D array contaning ( tn, sn )
195   USE crs , ONLY :   rhop    =>    rhop_crs    !: potential volumic mass (kg m-3)
196   USE crs , ONLY :   hdivn   =>    hdivn_crs   !: horizontal divergence (1/s)
197   USE crs , ONLY :   sshb    =>    sshb_crs    !: sea surface height at t-point [m]   
198   USE crs , ONLY :   sshn    =>    sshn_crs    !: sea surface height at t-point [m]   
199   USE crs , ONLY :   ssha    =>    ssha_crs    !: sea surface height at t-point [m]   
200
201   !* surface fluxes *
202   USE crs , ONLY :   qsr        =>    qsr_crs        !: penetrative solar radiation (w m-2) 
203   USE crs , ONLY :   emp        =>    emp_crs        !: freshwater budget: volume flux               [Kg/m2/s]
204   USE crs , ONLY :   emp_b      =>    emp_b_crs      !: freshwater budget: volume flux               [Kg/m2/s]
205   USE crs , ONLY :   fmmflx     =>    fmmflx_crs     !: freshwater budget: volume flux               [Kg/m2/s]
206   USE crs , ONLY :   rnf        =>    rnf_crs        !: river runoff   [Kg/m2/s]
207   USE crs , ONLY :   h_rnf      =>    h_rnf_crs      !: river runoff   [Kg/m2/s]
208   USE crs , ONLY :   nk_rnf     =>    nk_rnf_crs     !: depth of runoff in model level
209   USE crs , ONLY :   fr_i       =>    fr_i_crs       !: ice fraction (between 0 to 1)
210
211   USE trcnam_trp , ONLY :  aht0     =>   rn_ahtrc_0        !: horizontal eddy diffusivity for tracers (m2/s)
212   USE crs , ONLY :  ahtu     =>   ahtu_crs        !: lateral diffusivity coef. at u-points
213   USE crs , ONLY :  ahtv     =>   ahtv_crs        !: lateral diffusivity coef. at v-points
214   USE crs , ONLY :  ahtw     =>   ahtw_crs        !: lateral diffusivity coef. at w-points
215   USE crs , ONLY :  ahtt     =>   ahtt_crs        !: lateral diffusivity coef. at t-points
216   USE crs , ONLY :  r_fact_lap     =>  r_fact_lap_crs        !: enhanced zonal diffusivity coefficient
217   USE ldftra_oce , ONLY :  rldf     =>   rldf
218
219   USE crs , ONLY :  trc_i => trc_i_crs
220   USE crs , ONLY :  trc_o => trc_o_crs
221
222   USE crs , ONLY :   avt        =>   avt_crs         !: vert. diffusivity coef. at w-point for temp 
223   USE crs , ONLY :   hmld        =>   hmld_crs        !: mixing layer depth (turbocline)
224   USE crs , ONLY :   hmlp        =>   hmlp_crs        !: mixed layer depth  (rho=rho0+zdcrit) (m)
225
226  !* direction of lateral diffusion *
227#if   defined key_ldfslp
228   USE crs , ONLY :   uslp       =>   uslp_crs         !: i-direction slope at u-, w-points
229   USE crs , ONLY :   vslp       =>   vslp_crs         !: j-direction slope at v-, w-points
230   USE crs , ONLY :   wslpi      =>   wslpi_crs        !: i-direction slope at u-, w-points
231   USE crs , ONLY :   wslpj      =>   wslpj_crs        !: j-direction slope at v-, w-points
232#endif
233
234#else
235
236   !!----------------------------------------------------------------------
237   !!   'key_top'                                                TOP models
238   !!----------------------------------------------------------------------
239
240   !* Domain size *
241   USE par_oce , ONLY :   jpi      =>   jpi        !: first  dimension of grid --> i
242   USE par_oce , ONLY :   jpj      =>   jpj        !: second dimension of grid --> j 
243   USE par_oce , ONLY :   jpk      =>   jpk        !: number of levels 
244   USE par_oce , ONLY :   jpim1    =>   jpim1      !: jpi - 1
245   USE par_oce , ONLY :   jpjm1    =>   jpjm1      !: jpj - 1
246   USE par_oce , ONLY :   jpkm1    =>   jpkm1      !: jpk - 1 
247   USE par_oce , ONLY :   jpij     =>   jpij       !: jpi x jpj
248   USE par_oce , ONLY :   lk_esopa =>   lk_esopa   !: flag to activate the all option
249   USE par_oce , ONLY :   jp_tem   =>   jp_tem     !: indice for temperature
250   USE par_oce , ONLY :   jp_sal   =>   jp_sal     !: indice for salinity
251
252  !* model domain *
253   USE dom_oce , ONLY : narea => narea
254   USE dom_oce , ONLY : nproc => nproc
255   USE dom_oce , ONLY : nimpp => nimpp
256   USE dom_oce , ONLY : njmpp => njmpp
257   USE dom_oce , ONLY : nreci => nreci
258   USE dom_oce , ONLY : nrecj => nrecj
259   USE dom_oce , ONLY : nlci  => nlci
260   USE dom_oce , ONLY : nldi  => nldi
261   USE dom_oce , ONLY : nlei  => nlei
262   USE dom_oce , ONLY : nlcj  => nlcj
263   USE dom_oce , ONLY : nldj  => nldj
264   USE dom_oce , ONLY : nlej  => nlej
265   USE dom_oce , ONLY : nlcit  => nlcit
266   USE dom_oce , ONLY : nldit  => nldit
267   USE dom_oce , ONLY : nleit  => nleit
268   USE dom_oce , ONLY : nlcjt  => nlcjt
269   USE dom_oce , ONLY : nldjt  => nldjt
270   USE dom_oce , ONLY : nlejt  => nlejt
271   USE dom_oce , ONLY : nimppt => nimppt
272   USE dom_oce , ONLY : njmppt => njmppt
273   USE dom_oce , ONLY : ibonit => ibonit
274   USE dom_oce , ONLY : ibonjt => ibonjt
275   USE dom_oce , ONLY : lk_vvl => lk_vvl
276   USE dom_oce , ONLY : rdt => rdt
277   USE dom_oce , ONLY : ln_zco => ln_zco
278   USE dom_oce , ONLY : ln_zps => ln_zps
279   USE dom_oce , ONLY : ln_sco => ln_sco
280   USE dom_oce , ONLY : neuler => neuler
281
282   USE dom_oce,  ONLY : mi0 => mi0
283   USE dom_oce,  ONLY : mi1 => mi1
284   USE dom_oce,  ONLY : mj0 => mj0
285   USE dom_oce,  ONLY : mj1 => mj1
286
287   USE dom_oce , ONLY :   glamt      =>   glamt      !: longitude of t-point (degre) 
288   USE dom_oce , ONLY :   glamu      =>   glamu      !: longitude of t-point (degre) 
289   USE dom_oce , ONLY :   glamv      =>   glamv      !: longitude of t-point (degre) 
290   USE dom_oce , ONLY :   glamf      =>   glamf      !: longitude of t-point (degre) 
291   USE dom_oce , ONLY :   gphit      =>   gphit      !: latitude  of t-point (degre)   
292   USE dom_oce , ONLY :   gphiu      =>   gphiu      !: latitude  of t-point (degre)   
293   USE dom_oce , ONLY :   gphiv      =>   gphiv      !: latitude  of t-point (degre)   
294   USE dom_oce , ONLY :   gphif      =>   gphif     !: latitude  of t-point (degre)   
295   USE dom_oce , ONLY :   e1t        =>   e1t        !: horizontal scale factors at t-point (m) 
296   USE dom_oce , ONLY :   e2t        =>   e2t        !: horizontal scale factors at t-point (m)   
297   USE dom_oce , ONLY :   e1e2t      =>   e1e2t      !: cell surface at t-point (m2)
298   USE dom_oce , ONLY :   e1u        =>   e1u        !: horizontal scale factors at u-point (m)
299   USE dom_oce , ONLY :   e2u        =>   e2u        !: horizontal scale factors at u-point (m)
300   USE dom_oce , ONLY :   e1v        =>   e1v        !: horizontal scale factors at v-point (m)
301   USE dom_oce , ONLY :   e2v        =>   e2v        !: horizontal scale factors at v-point (m) 
302#if defined key_vvl 
303   USE dom_oce , ONLY :     e3t_b    =>  e3t_b
304   USE dom_oce , ONLY :     e3t_n    =>  e3t_n
305   USE dom_oce , ONLY :     e3t_a    =>  e3t_a
306   USE dom_oce , ONLY :     e3u_n    =>  e3u_n
307   USE dom_oce , ONLY :     e3v_n    =>  e3v_n
308   USE dom_oce , ONLY :   e3u        =>  e3u_n         !: vertical scale factors at u-
309   USE dom_oce , ONLY :   e3v        =>  e3v_n         !: vertical scale factors v-
310   USE dom_oce , ONLY :   e3w_n      =>  e3w_n         !: w-points (m)
311   USE dom_oce , ONLY :   e3w        =>  e3w_n         !: w-points (m)
312   USE dom_oce , ONLY :   e3f        =>  e3f_n         !: f-points (m)
313   USE dom_oce , ONLY :   gdept_n    =>  gdept_n         !: f-points (m)
314   USE dom_oce , ONLY :   gdepw_n    =>  gdepw_n         !: f-points (m)
315#else
316   USE dom_oce , ONLY :   fse3t_n    =>  e3t_0
317   USE dom_oce , ONLY :   fse3t      =>  e3t_0
318   USE dom_oce , ONLY :   fse3u      =>  e3u_0
319   USE dom_oce , ONLY :   fse3v      =>  e3v_0
320   USE dom_oce , ONLY :   fse3w      =>  e3w_0
321   USE dom_oce , ONLY :   fse3t_b    =>  e3t_0
322   USE dom_oce , ONLY :   fse3t_a    =>  e3t_0
323   USE dom_oce , ONLY :     e3t_a    =>  e3t_0
324   USE dom_oce , ONLY :   e3t        =>  e3t_0         !: vertical scale factors at t-
325   USE dom_oce , ONLY :   e3u        =>  e3u_0         !: vertical scale factors at u-
326   USE dom_oce , ONLY :   e3v        =>  e3v_0         !: vertical scale factors v-
327   USE dom_oce , ONLY :   e3w        =>  e3w_0         !: w-points (m)
328   USE dom_oce , ONLY :   e3f        =>  e3f_0         !: f-points (m)
329#endif
330   USE dom_oce , ONLY :   ff         =>  ff         !: f-points (m)
331   USE dom_oce , ONLY :   e3t_0      =>  e3t_0         !: vertical scale factors at t-
332   USE dom_oce , ONLY :   e3u_0      =>  e3u_0         !: vertical scale factors at u-
333   USE dom_oce , ONLY :   e3v_0      =>  e3v_0         !: vertical scale factors v-
334   USE dom_oce , ONLY :   e3w_0      =>  e3w_0         !: w-points (m)
335   USE dom_oce , ONLY :   gdept_0    =>  gdept_0         !: f-points (m)
336   USE dom_oce , ONLY :   gdepw_0    =>  gdepw_0         !: f-points (m)
337   USE dom_oce , ONLY :   gdept_1d   => gdept_1d          !: f-points (m)
338   USE dom_oce , ONLY :   tmask      => tmask          !: f-points (m)
339   USE dom_oce , ONLY :   umask      => umask          !: f-points (m)
340   USE dom_oce , ONLY :   vmask      => vmask          !: f-points (m)
341   USE dom_oce , ONLY :   tmask_i      => tmask_i          !: f-points (m)
342   USE dom_oce , ONLY :   mbkt      => mbkt          !: f-points (m)
343   USE dom_oce , ONLY :   mbku      => mbku          !: f-points (m)
344   USE dom_oce , ONLY :   mbkv      => mbkv          !: f-points (m)
345   USE dom_oce , ONLY :   mikt      => mikt          !: f-points (m)
346
347   !* IO manager *
348   USE in_out_manager   
349 
350   !* Memory Allocation *
351   USE wrk_nemo     
352 
353   !* Timing *
354   USE timing   
355 
356   !* MPP library                         
357   USE lib_mpp 
358
359   !* Fortran utilities                         
360   USE lib_fortran , ONLY : glob_sum => glob_sum
361
362   !* Lateral boundary conditions                         
363   USE lbclnk
364
365   !* physical constants *
366   USE phycst           
367
368   !* 1D configuration
369   USE c1d                                         
370
371   !* model domain *
372   USE dom_oce , ONLY :  lzoom => lzoom 
373
374   USE domvvl, ONLY : un_td, vn_td          !: thickness diffusion transport
375   USE domvvl, ONLY : ln_vvl_ztilde         !: ztilde vertical coordinate
376   USE domvvl, ONLY : ln_vvl_layer          !: level  vertical coordinate
377
378   !* ocean fields: here now and after fields *
379   USE oce , ONLY :   ua      =>    ua      !: i-horizontal velocity (m s-1)
380   USE oce , ONLY :   va      =>    va      !: j-horizontal velocity (m s-1)
381   USE oce , ONLY :   un      =>    un      !: i-horizontal velocity (m s-1)
382   USE oce , ONLY :   vn      =>    vn      !: j-horizontal velocity (m s-1)
383   USE oce , ONLY :   wn      =>    wn      !: vertical velocity (m s-1) 
384   USE oce , ONLY :   tsn     =>    tsn     !: 4D array contaning ( tn, sn )
385   USE oce , ONLY :   tsb     =>    tsb     !: 4D array contaning ( tb, sb )
386   USE oce , ONLY :   tsa     =>    tsa     !: 4D array contaning ( ta, sa )
387   USE oce , ONLY :   rhop    =>    rhop    !: potential volumic mass (kg m-3)
388   USE oce , ONLY :   rhd     =>    rhd     !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
389   USE oce , ONLY :   rab_n     =>    rab_n   !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
390   USE oce , ONLY :   rn2b    =>    rn2b    !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
391   USE oce , ONLY :   hdivn   =>    hdivn   !: horizontal divergence (1/s)
392   USE oce , ONLY :   rotn    =>    rotn    !: relative vorticity    [s-1]
393   USE oce , ONLY :   hdivb   =>    hdivb   !: horizontal divergence (1/s)
394   USE oce , ONLY :   rotb    =>    rotb    !: relative vorticity    [s-1]
395   USE oce , ONLY :   sshn    =>    sshn    !: sea surface height at t-point [m]   
396   USE oce , ONLY :   sshb    =>    sshb    !: sea surface height at t-point [m]   
397   USE oce , ONLY :   ssha    =>    ssha    !: sea surface height at t-point [m]   
398   USE oce , ONLY :   l_traldf_rot => l_traldf_rot  !: rotated laplacian operator for lateral diffusion
399
400   !* surface fluxes *
401   USE sbc_oce , ONLY :   utau       =>    utau       !: i-surface stress component
402   USE sbc_oce , ONLY :   vtau       =>    vtau       !: j-surface stress component
403   USE sbc_oce , ONLY :   wndm       =>    wndm       !: 10m wind speed
404   USE sbc_oce , ONLY :   qsr        =>    qsr        !: penetrative solar radiation (w m-2)
405   USE sbc_oce , ONLY :   emp        =>    emp        !: freshwater budget: volume flux               [Kg/m2/s]
406   USE sbc_oce , ONLY :   emp_b      =>    emp_b      !: freshwater budget: volume flux               [Kg/m2/s]
407   USE sbc_oce , ONLY :   fmmflx     =>    fmmflx     !: freshwater budget: volume flux               [Kg/m2/s]
408   USE sbc_oce , ONLY :   rnf        =>    rnf        !: river runoff   [Kg/m2/s]
409   USE sbc_oce , ONLY :   ln_dm2dc   =>    ln_dm2dc   !: Diurnal Cycle
410   USE sbc_oce , ONLY :   fr_i       =>    fr_i       !: ice fraction (between 0 to 1)
411   USE sbcrnf  , ONLY :   rnfmsk     =>    rnfmsk     !: mixed adv scheme in runoffs vicinity (hori.)
412   USE sbcrnf  , ONLY :   rnfmsk_z   =>    rnfmsk_z   !: mixed adv scheme in runoffs vicinity (vert.)
413   USE sbcrnf  , ONLY :   h_rnf      =>    h_rnf      !: river runoff   [Kg/m2/s]
414   USE sbcrnf  , ONLY :   nk_rnf     =>    nk_rnf     !: depth of runoff in model level
415   USE trc , ONLY :  trc_i => trc_i
416   USE trc , ONLY :  trc_o => trc_o
417
418   !* lateral diffusivity (tracers) *
419   USE ldftra_oce , ONLY :  rldf     =>   rldf        !: multiplicative coef. for lateral diffusivity
420   USE ldftra_oce , ONLY :  rn_aht_0 =>   rn_aht_0    !: horizontal eddy diffusivity for tracers (m2/s)
421   USE ldftra_oce , ONLY :  aht0     =>   aht0        !: horizontal eddy diffusivity for tracers (m2/s)
422   USE ldftra_oce , ONLY :  ahtb0    =>   ahtb0       !: background eddy diffusivity for isopycnal diff. (m2/s)
423   USE ldftra_oce , ONLY :  ahtu     =>   ahtu        !: lateral diffusivity coef. at u-points
424   USE ldftra_oce , ONLY :  ahtv     =>   ahtv        !: lateral diffusivity coef. at v-points
425   USE ldftra_oce , ONLY :  ahtw     =>   ahtw        !: lateral diffusivity coef. at w-points
426   USE ldftra_oce , ONLY :  ahtt     =>   ahtt        !: lateral diffusivity coef. at t-points
427   USE ldftra_oce , ONLY :  aeiv0    =>   aeiv0       !: eddy induced velocity coefficient (m2/s)
428   USE ldftra_oce , ONLY :  aeiu     =>   aeiu        !: eddy induced velocity coef. at u-points (m2/s)   
429   USE ldftra_oce , ONLY :  aeiv     =>   aeiv        !: eddy induced velocity coef. at v-points (m2/s)
430   USE ldftra_oce , ONLY :  aeiw     =>   aeiw        !: eddy induced velocity coef. at w-points (m2/s)
431   USE ldftra_oce , ONLY :  lk_traldf_eiv  =>  lk_traldf_eiv     !: eddy induced velocity flag
432   USE ldftra_oce , ONLY :  r_fact_lap     =>  r_fact_lap        !: enhanced zonal diffusivity coefficient
433
434   !* vertical diffusion *
435   USE zdf_oce , ONLY :   avt        =>   avt         !: vert. diffusivity coef. at w-point for temp 
436# if defined key_zdfddm
437   USE zdfddm  , ONLY :   avs        =>   avs         !: salinity vertical diffusivity coeff. at w-point
438# endif
439
440   !* mixing & mixed layer depth *
441   USE zdfmxl , ONLY :   nmln        =>   nmln        !: number of level in the mixed layer
442   USE zdfmxl , ONLY :   hmld        =>   hmld        !: mixing layer depth (turbocline)
443   USE zdfmxl , ONLY :   hmlp        =>   hmlp        !: mixed layer depth  (rho=rho0+zdcrit) (m)
444   USE zdfmxl , ONLY :   hmlpt       =>   hmlpt       !: mixed layer depth at t-points (m)
445
446   !* direction of lateral diffusion *
447   USE ldfslp , ONLY :   lk_ldfslp  =>  lk_ldfslp     !: slopes flag
448# if   defined key_ldfslp
449   USE ldfslp , ONLY :   uslp       =>   uslp         !: i-direction slope at u-, w-points
450   USE ldfslp , ONLY :   vslp       =>   vslp         !: j-direction slope at v-, w-points
451   USE ldfslp , ONLY :   wslpi      =>   wslpi        !: i-direction slope at u-, w-points
452   USE ldfslp , ONLY :   wslpj      =>   wslpj        !: j-direction slope at v-, w-points
453# endif
454
455   USE diaar5 , ONLY :   lk_diaar5  =>   lk_diaar5
456
457#endif
458
459
460   USE dom_oce , ONLY : ndastp
461   USE sbc_oce , ONLY : nn_ice_embd
462   USE sbc_oce , ONLY : ln_cpl
463   USE sbc_oce , ONLY : ln_rnf
464   USE sbc_oce , ONLY : ncpl_qsr_freq
465
466#else
467   !!----------------------------------------------------------------------
468   !!  Empty module :                                     No passive tracer
469   !!----------------------------------------------------------------------
470#endif
471
472   !!----------------------------------------------------------------------
473   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
474   !! $Id$
475   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
476   !!======================================================================
477END MODULE oce_trc
Note: See TracBrowser for help on using the repository browser.