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