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

Last change on this file since 7521 was 7521, checked in by cbricaud, 4 years ago

correc bugs in crs branch

  • Property svn:keywords set to Id
File size: 29.2 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        =>  e3t_n_crs         !: vertical scale factors at t-
150   USE crs , ONLY :   e3u        =>  e3u_n_crs         !: vertical scale factors at u-
151   USE crs , ONLY :   e3v        =>  e3v_n_crs         !: vertical scale factors v-
152   USE crs , ONLY :   e3w        =>  e3w_n_crs         !: w-points (m)
153   USE crs , ONLY :   e3t_b      =>  e3t_b_crs         !: vertical scale factors at t-
154   USE crs , ONLY :   e3u_b      =>  e3u_b_crs         !: vertical scale factors at u-
155   USE crs , ONLY :   e3v_b      =>  e3v_b_crs         !: vertical scale factors v-
156   USE crs , ONLY :   e3w_b      =>  e3w_b_crs         !: w-points (m)
157   USE crs , ONLY :   e3t_n      =>  e3t_n_crs         !: vertical scale factors at t-
158   USE crs , ONLY :   e3u_n      =>  e3u_n_crs         !: vertical scale factors at u-
159   USE crs , ONLY :   e3v_n      =>  e3v_n_crs         !: vertical scale factors v-
160   USE crs , ONLY :   e3w_n      =>  e3w_n_crs         !: w-points (m)
161   USE crs , ONLY :   e3t_a      =>  e3t_a_crs         !: vertical scale factors at t-
162   USE crs , ONLY :   e3u_a      =>  e3u_a_crs         !: vertical scale factors at u-
163   USE crs , ONLY :   e3v_a      =>  e3v_a_crs         !: vertical scale factors v-
164   USE crs , ONLY :   e3w_a      =>  e3w_a_crs         !: w-points (m)
165   USE crs , ONLY :   gdept      =>  gdept_n_crs       !: depth of t-points (m)
166   USE crs , ONLY :   gdept_crs  =>  gdept_n_crs       !: depth of t-points (m)
167   USE crs , ONLY :   gdept_n    =>  gdept_n_crs       !: depth of t-points (m)
168   USE crs , ONLY :   gdepw_n    =>  gdepw_n_crs       !: depth of t-points (m)
169   USE crs , ONLY :   e3t_max_crs => e3t_max_n_crs
170   USE crs , ONLY :   e3u_max_crs => e3u_max_n_crs
171   USE crs , ONLY :   e3v_max_crs => e3v_max_n_crs
172   USE crs , ONLY :   e3w_max_crs => e3w_max_n_crs
173#else
174   USE crs , ONLY :   e3t        =>  e3t_0_crs         !: vertical scale factors at t-
175   USE crs , ONLY :   e3u        =>  e3u_0_crs         !: vertical scale factors at u-
176   USE crs , ONLY :   e3v        =>  e3v_0_crs         !: vertical scale factors v-
177   USE crs , ONLY :   e3w        =>  e3w_0_crs         !: w-points (m)
178   USE crs , ONLY :   e3t_b      =>  e3t_0_crs         !: vertical scale factors at t-
179   USE crs , ONLY :   e3u_b      =>  e3u_0_crs         !: vertical scale factors at u-
180   USE crs , ONLY :   e3v_b      =>  e3v_0_crs         !: vertical scale factors v-
181   USE crs , ONLY :   e3w_b      =>  e3w_0_crs         !: w-points (m)
182   USE crs , ONLY :   e3t_n      =>  e3t_0_crs         !: vertical scale factors at t-
183   USE crs , ONLY :   e3u_n      =>  e3u_0_crs         !: vertical scale factors at u-
184   USE crs , ONLY :   e3v_n      =>  e3v_0_crs         !: vertical scale factors v-
185   USE crs , ONLY :   e3w_n      =>  e3w_0_crs         !: w-points (m)
186   USE crs , ONLY :   e3t_a      =>  e3t_0_crs         !: vertical scale factors at t-
187   USE crs , ONLY :   e3u_a      =>  e3u_0_crs         !: vertical scale factors at u-
188   USE crs , ONLY :   e3v_a      =>  e3v_0_crs         !: vertical scale factors v-
189   USE crs , ONLY :   e3w_a      =>  e3w_0_crs         !: w-points (m)
190   USE crs , ONLY :   gdept      =>  gdept_0_crs       !: depth of t-points (m)
191   USE crs , ONLY :   gdepw      =>  gdepw_0_crs       !: depth of t-points (m)
192   USE crs , ONLY :   gdept_crs  =>  gdept_0_crs       !: depth of t-points (m)
193   USE crs , ONLY :   gdepw_crs  =>  gdepw_0_crs       !: depth of t-points (m)
194   USE crs , ONLY :   gdept_n    =>  gdept_0_crs       !: depth of t-points (m)
195   USE crs , ONLY :   gdepw_n    =>  gdepw_0_crs       !: depth of t-points (m)
196   USE crs , ONLY :   e3t_max_crs => e3t_max_0_crs
197   USE crs , ONLY :   e3u_max_crs => e3u_max_0_crs
198   USE crs , ONLY :   e3v_max_crs => e3v_max_0_crs
199   USE crs , ONLY :   e3w_max_crs => e3w_max_0_crs
200#endif
201   USE crs , ONLY :   e3t_0        =>  e3t_0_crs         !: vertical scale factors at t-
202   USE crs , ONLY :   e3u_0        =>  e3u_0_crs         !: vertical scale factors at t-
203   USE crs , ONLY :   e3v_0        =>  e3v_0_crs         !: vertical scale factors at t-
204   USE crs , ONLY :   e3w_0        =>  e3w_0_crs         !: vertical scale factors at t-
205
206   USE crs , ONLY     :   ff         =>  ff_crs         !: f-points (m)
207   USE crs , ONLY     :   gdept_0    =>  gdept_0_crs       !: depth of t-points (m)
208   USE dom_oce , ONLY :   gdept_1d   =>  gdept_1d      !: depth of t-points (m)
209#if defined key_zco
210   USE crs , ONLY :   gdept      =>  gdept_0_crs       !: depth of t-points (m)
211   USE crs , ONLY :   gdepw      =>  gdepw_crs       !: depth of t-points (m)
212#endif
213  !* masks, bathymetry *
214   USE crs , ONLY :   mbkt       =>   mbkt_crs       !: vertical index of the bottom last T- ocean level
215   USE crs , ONLY :   mbku       =>   mbku_crs       !: vertical index of the bottom last U- ocean level
216   USE crs , ONLY :   mbkv       =>   mbkv_crs       !: vertical index of the bottom last V- ocean level
217   USE crs , ONLY :   tmask_i    =>   tmask_i_crs    !: Interior mask at t-points
218   USE crs , ONLY :   tmask      =>   tmask_crs      !: land/ocean mask at t-points
219   USE crs , ONLY :   umask      =>   umask_crs      !: land/ocean mask at u-points   
220   USE crs , ONLY :   vmask      =>   vmask_crs      !: land/ocean mask at v-points
221   USE crs , ONLY :   fmask      =>   fmask_crs      !: land/ocean mask at f-points
222
223 !* ocean fields: here now and after fields *
224   USE crs , ONLY :   un      =>    un_crs      !: i-horizontal velocity (m s-1)
225   USE crs , ONLY :   vn      =>    vn_crs      !: j-horizontal velocity (m s-1)
226   USE crs , ONLY :   wn      =>    wn_crs      !: vertical velocity (m s-1) 
227   USE crs , ONLY :   tsn     =>    tsn_crs     !: 4D array contaning ( tn, sn )
228   USE crs , ONLY :   tsb     =>    tsb_crs     !: 4D array contaning ( tb, sb )
229   USE crs , ONLY :   tsa     =>    tsa_crs     !: 4D array contaning ( ta, sa )
230   USE crs , ONLY :   rhop    =>    rhop_crs    !: potential volumic mass (kg m-3)
231   USE crs , ONLY :   rhd     =>    rhd_crs    !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
232   USE crs , ONLY :   rn2b    =>    rb2_crs     !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
233   USE crs , ONLY :   rab_n   =>    rab_crs_n     !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
234   USE crs , ONLY :   hdivn   =>    hdivn_crs   !: horizontal divergence (1/s)
235   USE crs , ONLY :   hdivb   =>    hdivb_crs   !: horizontal divergence (1/s)
236   USE crs , ONLY :   sshb    =>    sshb_crs    !: sea surface height at t-point [m]   
237   USE crs , ONLY :   sshn    =>    sshn_crs    !: sea surface height at t-point [m]   
238   USE crs , ONLY :   ssha    =>    ssha_crs    !: sea surface height at t-point [m]   
239
240   !* surface fluxes *
241   USE crs , ONLY :   utau       =>    utau_crs       !: i-surface stress component
242   USE crs , ONLY :   vtau       =>    vtau_crs       !: j-surface stress component
243   USE crs , ONLY :   wndm       =>    wndm_crs       !: 10m wind speed
244   USE crs , ONLY :   qsr        =>    qsr_crs        !: penetrative solar radiation (w m-2) 
245   USE crs , ONLY :   emp        =>    emp_crs        !: freshwater budget: volume flux               [Kg/m2/s]
246   USE crs , ONLY :   emp_b      =>    emp_b_crs      !: freshwater budget: volume flux               [Kg/m2/s]
247   USE crs , ONLY :   sfx        =>    sfx_crs        !: freshwater budget: concentration/dillution   [Kg/m2/s]
248   USE crs , ONLY :   fmmflx     =>    fmmflx_crs     !: freshwater budget: volume flux               [Kg/m2/s]
249   USE crs , ONLY :   rnf        =>    rnf_crs        !: river runoff   [Kg/m2/s]
250   USE crs , ONLY :   h_rnf      =>    h_rnf_crs      !: river runoff   [Kg/m2/s]
251   USE crs , ONLY :   nk_rnf     =>    nk_rnf_crs     !: depth of runoff in model level
252   USE crs , ONLY :   fr_i       =>    fr_i_crs       !: ice fraction (between 0 to 1)
253   USE trcnam_trp , ONLY :  aht0     =>   rn_ahtrc_0        !: horizontal eddy diffusivity for tracers (m2/s)
254   USE crs , ONLY :  ahtu     =>   ahtu_crs        !: lateral diffusivity coef. at u-points
255   USE crs , ONLY :  ahtv     =>   ahtv_crs        !: lateral diffusivity coef. at v-points
256   USE crs , ONLY :  ahtw     =>   ahtw_crs        !: lateral diffusivity coef. at w-points
257   USE crs , ONLY :  ahtt     =>   ahtt_crs        !: lateral diffusivity coef. at t-points
258   USE crs , ONLY :  r_fact_lap     =>  r_fact_lap_crs        !: enhanced zonal diffusivity coefficient
259   USE ldftra_oce , ONLY :  rldf     =>   rldf
260   USE crs , ONLY :  trc_i => trc_i_crs
261   USE crs , ONLY :  trc_o => trc_o_crs
262   USE crs , ONLY :   avt        =>   avt_crs         !: vert. diffusivity coef. at w-point for temp 
263#if defined key_zdfddm
264   USE crs , ONLY :   avs        =>   avs_crs         !: salinity vertical diffusivity coeff. at w-point
265#endif
266
267   USE trc_oce, ONLY : nn_dttrc
268
269   USE crs , ONLY :   nmln        =>   nmln_crs        !: number of level in the mixed layer
270   USE crs , ONLY :   hmld        =>   hmld_crs        !: mixing layer depth (turbocline)
271   USE crs , ONLY :   hmlp        =>   hmlp_crs        !: mixed layer depth  (rho=rho0+zdcrit) (m)
272   USE crs , ONLY :   hmlpt       =>   hmlpt_crs       !: mixed layer depth at t-points (m)
273
274  !* direction of lateral diffusion *
275#if   defined key_ldfslp
276   USE crs , ONLY :   uslp       =>   uslp_crs         !: i-direction slope at u-, w-points
277   USE crs , ONLY :   vslp       =>   vslp_crs         !: j-direction slope at v-, w-points
278   USE crs , ONLY :   wslpi      =>   wslpi_crs        !: i-direction slope at u-, w-points
279   USE crs , ONLY :   wslpj      =>   wslpj_crs        !: j-direction slope at v-, w-points
280#endif
281
282#else
283
284   !!----------------------------------------------------------------------
285   !!   'key_top'                                                TOP models
286   !!----------------------------------------------------------------------
287
288   !* Domain size *
289   USE par_oce , ONLY :   jpi      =>   jpi        !: first  dimension of grid --> i
290   USE par_oce , ONLY :   jpj      =>   jpj        !: second dimension of grid --> j 
291   USE par_oce , ONLY :   jpk      =>   jpk        !: number of levels 
292   USE par_oce , ONLY :   jpim1    =>   jpim1      !: jpi - 1
293   USE par_oce , ONLY :   jpjm1    =>   jpjm1      !: jpj - 1
294   USE par_oce , ONLY :   jpkm1    =>   jpkm1      !: jpk - 1 
295   USE par_oce , ONLY :   jpij     =>   jpij       !: jpi x jpj
296   USE par_oce , ONLY :   lk_esopa =>   lk_esopa   !: flag to activate the all option
297   USE par_oce , ONLY :   jp_tem   =>   jp_tem     !: indice for temperature
298   USE par_oce , ONLY :   jp_sal   =>   jp_sal     !: indice for salinity
299
300  !* model domain *
301   USE dom_oce , ONLY : narea => narea
302   USE dom_oce , ONLY : nproc => nproc
303   USE dom_oce , ONLY : nimpp => nimpp
304   USE dom_oce , ONLY : njmpp => njmpp
305   USE dom_oce , ONLY : nreci => nreci
306   USE dom_oce , ONLY : nrecj => nrecj
307   USE dom_oce , ONLY : nlci  => nlci
308   USE dom_oce , ONLY : nldi  => nldi
309   USE dom_oce , ONLY : nlei  => nlei
310   USE dom_oce , ONLY : nlcj  => nlcj
311   USE dom_oce , ONLY : nldj  => nldj
312   USE dom_oce , ONLY : nlej  => nlej
313   USE dom_oce , ONLY : nlcit  => nlcit
314   USE dom_oce , ONLY : nldit  => nldit
315   USE dom_oce , ONLY : nleit  => nleit
316   USE dom_oce , ONLY : nlcjt  => nlcjt
317   USE dom_oce , ONLY : nldjt  => nldjt
318   USE dom_oce , ONLY : nlejt  => nlejt
319   USE dom_oce , ONLY : nimppt => nimppt
320   USE dom_oce , ONLY : njmppt => njmppt
321   USE dom_oce , ONLY : ibonit => ibonit
322   USE dom_oce , ONLY : ibonjt => ibonjt
323   USE dom_oce , ONLY : lk_vvl => lk_vvl
324   USE dom_oce , ONLY : rdt => rdt
325   USE dom_oce , ONLY : ln_zco => ln_zco
326   USE dom_oce , ONLY : ln_zps => ln_zps
327   USE dom_oce , ONLY : ln_sco => ln_sco
328   USE dom_oce , ONLY : neuler => neuler
329
330   USE dom_oce,  ONLY : mi0 => mi0
331   USE dom_oce,  ONLY : mi1 => mi1
332   USE dom_oce,  ONLY : mj0 => mj0
333   USE dom_oce,  ONLY : mj1 => mj1
334
335   USE dom_oce , ONLY :   glamt      =>   glamt      !: longitude of t-point (degre) 
336   USE dom_oce , ONLY :   glamu      =>   glamu      !: longitude of t-point (degre) 
337   USE dom_oce , ONLY :   glamv      =>   glamv      !: longitude of t-point (degre) 
338   USE dom_oce , ONLY :   glamf      =>   glamf      !: longitude of t-point (degre) 
339   USE dom_oce , ONLY :   gphit      =>   gphit      !: latitude  of t-point (degre)   
340   USE dom_oce , ONLY :   gphiu      =>   gphiu      !: latitude  of t-point (degre)   
341   USE dom_oce , ONLY :   gphiv      =>   gphiv      !: latitude  of t-point (degre)   
342   USE dom_oce , ONLY :   gphif      =>   gphif     !: latitude  of t-point (degre)   
343   USE dom_oce , ONLY :   e1t        =>   e1t        !: horizontal scale factors at t-point (m) 
344   USE dom_oce , ONLY :   e2t        =>   e2t        !: horizontal scale factors at t-point (m)   
345   USE dom_oce , ONLY :   e1e2t      =>   e1e2t      !: cell surface at t-point (m2)
346   USE dom_oce , ONLY :   e1u        =>   e1u        !: horizontal scale factors at u-point (m)
347   USE dom_oce , ONLY :   e2u        =>   e2u        !: horizontal scale factors at u-point (m)
348   USE dom_oce , ONLY :   e1v        =>   e1v        !: horizontal scale factors at v-point (m)
349   USE dom_oce , ONLY :   e2v        =>   e2v        !: horizontal scale factors at v-point (m) 
350#if defined key_vvl 
351   USE dom_oce , ONLY :     e3t_b    =>  e3t_b
352   USE dom_oce , ONLY :     e3t_n    =>  e3t_n
353   USE dom_oce , ONLY :     e3t_a    =>  e3t_a
354   USE dom_oce , ONLY :     e3u_n    =>  e3u_n
355   USE dom_oce , ONLY :     e3v_n    =>  e3v_n
356   USE dom_oce , ONLY :   e3u        =>  e3u_n         !: vertical scale factors at u-
357   USE dom_oce , ONLY :   e3v        =>  e3v_n         !: vertical scale factors v-
358   USE dom_oce , ONLY :   e3w_n      =>  e3w_n         !: w-points (m)
359   USE dom_oce , ONLY :   e3w        =>  e3w_n         !: w-points (m)
360   USE dom_oce , ONLY :   e3f        =>  e3f_n         !: f-points (m)
361   USE dom_oce , ONLY :   gdept_n    =>  gdept_n         !: f-points (m)
362   USE dom_oce , ONLY :   gdepw_n    =>  gdepw_n         !: f-points (m)
363#else
364   USE dom_oce , ONLY :   fse3t_n    =>  e3t_0
365   USE dom_oce , ONLY :   fse3t      =>  e3t_0
366   USE dom_oce , ONLY :   fse3u      =>  e3u_0
367   USE dom_oce , ONLY :   fse3v      =>  e3v_0
368   USE dom_oce , ONLY :   fse3w      =>  e3w_0
369   USE dom_oce , ONLY :   fse3t_b    =>  e3t_0
370   USE dom_oce , ONLY :   fse3t_a    =>  e3t_0
371   USE dom_oce , ONLY :     e3t_a    =>  e3t_0
372   USE dom_oce , ONLY :   e3t        =>  e3t_0         !: vertical scale factors at t-
373   USE dom_oce , ONLY :   e3u        =>  e3u_0         !: vertical scale factors at u-
374   USE dom_oce , ONLY :   e3v        =>  e3v_0         !: vertical scale factors v-
375   USE dom_oce , ONLY :   e3w        =>  e3w_0         !: w-points (m)
376   USE dom_oce , ONLY :   e3f        =>  e3f_0         !: f-points (m)
377#endif
378   USE dom_oce , ONLY :   ff         =>  ff         !: f-points (m)
379   USE dom_oce , ONLY :   e3t_0      =>  e3t_0         !: vertical scale factors at t-
380   USE dom_oce , ONLY :   e3u_0      =>  e3u_0         !: vertical scale factors at u-
381   USE dom_oce , ONLY :   e3v_0      =>  e3v_0         !: vertical scale factors v-
382   USE dom_oce , ONLY :   e3w_0      =>  e3w_0         !: w-points (m)
383   USE dom_oce , ONLY :   gdept_0    =>  gdept_0         !: f-points (m)
384   USE dom_oce , ONLY :   gdepw_0    =>  gdepw_0         !: f-points (m)
385   USE dom_oce , ONLY :   gdept_1d   => gdept_1d          !: f-points (m)
386   USE dom_oce , ONLY :   tmask      => tmask          !: f-points (m)
387   USE dom_oce , ONLY :   umask      => umask          !: f-points (m)
388   USE dom_oce , ONLY :   vmask      => vmask          !: f-points (m)
389   USE dom_oce , ONLY :   tmask_i      => tmask_i          !: f-points (m)
390   USE dom_oce , ONLY :   mbkt      => mbkt          !: f-points (m)
391   USE dom_oce , ONLY :   mbku      => mbku          !: f-points (m)
392   USE dom_oce , ONLY :   mbkv      => mbkv          !: f-points (m)
393   USE dom_oce , ONLY :   mikt      => mikt          !: f-points (m)
394
395   !* IO manager *
396   USE in_out_manager   
397 
398   !* Memory Allocation *
399   USE wrk_nemo     
400 
401   !* Timing *
402   USE timing   
403 
404   !* MPP library                         
405   USE lib_mpp 
406
407   !* Fortran utilities                         
408   USE lib_fortran , ONLY : glob_sum => glob_sum
409
410   !* Lateral boundary conditions                         
411   USE lbclnk
412
413   !* physical constants *
414   USE phycst           
415
416   !* 1D configuration
417   USE c1d                                         
418
419   !* model domain *
420   USE dom_oce , ONLY :  lzoom => lzoom 
421
422   USE domvvl, ONLY : un_td, vn_td          !: thickness diffusion transport
423   USE domvvl, ONLY : ln_vvl_ztilde         !: ztilde vertical coordinate
424   USE domvvl, ONLY : ln_vvl_layer          !: level  vertical coordinate
425
426   !* ocean fields: here now and after fields *
427   USE oce , ONLY :   ua      =>    ua      !: i-horizontal velocity (m s-1)
428   USE oce , ONLY :   va      =>    va      !: j-horizontal velocity (m s-1)
429   USE oce , ONLY :   un      =>    un      !: i-horizontal velocity (m s-1)
430   USE oce , ONLY :   vn      =>    vn      !: j-horizontal velocity (m s-1)
431   USE oce , ONLY :   wn      =>    wn      !: vertical velocity (m s-1) 
432   USE oce , ONLY :   tsn     =>    tsn     !: 4D array contaning ( tn, sn )
433   USE oce , ONLY :   tsb     =>    tsb     !: 4D array contaning ( tb, sb )
434   USE oce , ONLY :   tsa     =>    tsa     !: 4D array contaning ( ta, sa )
435   USE oce , ONLY :   rhop    =>    rhop    !: potential volumic mass (kg m-3)
436   USE oce , ONLY :   rhd     =>    rhd     !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
437   USE oce , ONLY :   rab_n     =>    rab_n   !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
438   USE oce , ONLY :   rn2b    =>    rn2b    !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
439   USE oce , ONLY :   hdivn   =>    hdivn   !: horizontal divergence (1/s)
440   USE oce , ONLY :   rotn    =>    rotn    !: relative vorticity    [s-1]
441   USE oce , ONLY :   hdivb   =>    hdivb   !: horizontal divergence (1/s)
442   USE oce , ONLY :   rotb    =>    rotb    !: relative vorticity    [s-1]
443   USE oce , ONLY :   sshn    =>    sshn    !: sea surface height at t-point [m]   
444   USE oce , ONLY :   sshb    =>    sshb    !: sea surface height at t-point [m]   
445   USE oce , ONLY :   ssha    =>    ssha    !: sea surface height at t-point [m]   
446   USE oce , ONLY :   l_traldf_rot => l_traldf_rot  !: rotated laplacian operator for lateral diffusion
447
448   !* surface fluxes *
449   USE sbc_oce , ONLY :   utau       =>    utau       !: i-surface stress component
450   USE sbc_oce , ONLY :   vtau       =>    vtau       !: j-surface stress component
451   USE sbc_oce , ONLY :   wndm       =>    wndm       !: 10m wind speed
452   USE sbc_oce , ONLY :   qsr        =>    qsr        !: penetrative solar radiation (w m-2)
453   USE sbc_oce , ONLY :   emp        =>    emp        !: freshwater budget: volume flux               [Kg/m2/s]
454   USE sbc_oce , ONLY :   emp_b      =>    emp_b      !: freshwater budget: volume flux               [Kg/m2/s]
455   USE sbc_oce , ONLY :   fmmflx     =>    fmmflx     !: freshwater budget: volume flux               [Kg/m2/s]
456   USE sbc_oce , ONLY :   rnf        =>    rnf        !: river runoff   [Kg/m2/s]
457   USE sbc_oce , ONLY :   ln_dm2dc   =>    ln_dm2dc   !: Diurnal Cycle
458   USE sbc_oce , ONLY :   fr_i       =>    fr_i       !: ice fraction (between 0 to 1)
459   USE sbcrnf  , ONLY :   rnfmsk     =>    rnfmsk     !: mixed adv scheme in runoffs vicinity (hori.)
460   USE sbcrnf  , ONLY :   rnfmsk_z   =>    rnfmsk_z   !: mixed adv scheme in runoffs vicinity (vert.)
461   USE sbcrnf  , ONLY :   h_rnf      =>    h_rnf      !: river runoff   [Kg/m2/s]
462   USE sbcrnf  , ONLY :   nk_rnf     =>    nk_rnf     !: depth of runoff in model level
463   USE trc , ONLY :  trc_i => trc_i
464   USE trc , ONLY :  trc_o => trc_o
465
466   !* lateral diffusivity (tracers) *
467   USE ldftra_oce , ONLY :  rldf     =>   rldf        !: multiplicative coef. for lateral diffusivity
468   USE ldftra_oce , ONLY :  rn_aht_0 =>   rn_aht_0    !: horizontal eddy diffusivity for tracers (m2/s)
469   USE ldftra_oce , ONLY :  aht0     =>   aht0        !: horizontal eddy diffusivity for tracers (m2/s)
470   USE ldftra_oce , ONLY :  ahtb0    =>   ahtb0       !: background eddy diffusivity for isopycnal diff. (m2/s)
471   USE ldftra_oce , ONLY :  ahtu     =>   ahtu        !: lateral diffusivity coef. at u-points
472   USE ldftra_oce , ONLY :  ahtv     =>   ahtv        !: lateral diffusivity coef. at v-points
473   USE ldftra_oce , ONLY :  ahtw     =>   ahtw        !: lateral diffusivity coef. at w-points
474   USE ldftra_oce , ONLY :  ahtt     =>   ahtt        !: lateral diffusivity coef. at t-points
475   USE ldftra_oce , ONLY :  aeiv0    =>   aeiv0       !: eddy induced velocity coefficient (m2/s)
476   USE ldftra_oce , ONLY :  aeiu     =>   aeiu        !: eddy induced velocity coef. at u-points (m2/s)   
477   USE ldftra_oce , ONLY :  aeiv     =>   aeiv        !: eddy induced velocity coef. at v-points (m2/s)
478   USE ldftra_oce , ONLY :  aeiw     =>   aeiw        !: eddy induced velocity coef. at w-points (m2/s)
479   USE ldftra_oce , ONLY :  lk_traldf_eiv  =>  lk_traldf_eiv     !: eddy induced velocity flag
480   USE ldftra_oce , ONLY :  r_fact_lap     =>  r_fact_lap        !: enhanced zonal diffusivity coefficient
481
482   !* vertical diffusion *
483   USE zdf_oce , ONLY :   avt        =>   avt         !: vert. diffusivity coef. at w-point for temp 
484# if defined key_zdfddm
485   USE zdfddm  , ONLY :   avs        =>   avs         !: salinity vertical diffusivity coeff. at w-point
486# endif
487
488   !* mixing & mixed layer depth *
489   USE zdfmxl , ONLY :   nmln        =>   nmln        !: number of level in the mixed layer
490   USE zdfmxl , ONLY :   hmld        =>   hmld        !: mixing layer depth (turbocline)
491   USE zdfmxl , ONLY :   hmlp        =>   hmlp        !: mixed layer depth  (rho=rho0+zdcrit) (m)
492   USE zdfmxl , ONLY :   hmlpt       =>   hmlpt       !: mixed layer depth at t-points (m)
493
494   !* direction of lateral diffusion *
495   USE ldfslp , ONLY :   lk_ldfslp  =>  lk_ldfslp     !: slopes flag
496# if   defined key_ldfslp
497   USE ldfslp , ONLY :   uslp       =>   uslp         !: i-direction slope at u-, w-points
498   USE ldfslp , ONLY :   vslp       =>   vslp         !: j-direction slope at v-, w-points
499   USE ldfslp , ONLY :   wslpi      =>   wslpi        !: i-direction slope at u-, w-points
500   USE ldfslp , ONLY :   wslpj      =>   wslpj        !: j-direction slope at v-, w-points
501# endif
502
503   USE diaar5 , ONLY :   lk_diaar5  =>   lk_diaar5
504
505#endif
506
507
508   USE dom_oce , ONLY : ndastp
509   USE sbc_oce , ONLY : nn_ice_embd
510   USE sbc_oce , ONLY : ln_cpl
511   USE sbc_oce , ONLY : ln_rnf
512   USE sbc_oce , ONLY : ncpl_qsr_freq
513
514#else
515   !!----------------------------------------------------------------------
516   !!  Empty module :                                     No passive tracer
517   !!----------------------------------------------------------------------
518#endif
519
520   !!----------------------------------------------------------------------
521   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
522   !! $Id$
523   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
524   !!======================================================================
525END MODULE oce_trc
Note: See TracBrowser for help on using the repository browser.