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

source: trunk/NEMO/TOP_SRC/oce_trc.F90 @ 910

Last change on this file since 910 was 910, checked in by ctlod, 16 years ago

adapt few modules to the surface module interface, see ticket: #113

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 13.6 KB
Line 
1MODULE oce_trc
2   !!======================================================================
3   !!                      ***  MODULE  oce_trc  ***
4   !! Ocean passive tracer  :  share ocean-passive tracers variables
5   !!======================================================================
6   !! History :
7   !!   9.0  !  04-03  (C. Ethe)  F90: Free form and module
8   !!----------------------------------------------------------------------
9   !!  TOP 1.0,  LOCEAN-IPSL (2005)
10   !! $Header: /home/opalod/NEMOCVSROOT/NEMO/TOP_SRC/oce_trc.F90,v 1.17 2007/05/28 02:55:05 opalod Exp $
11   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
12   !!----------------------------------------------------------------------
13   !! * Modules used
14   !! Domain characteristics
15   USE par_oce , ONLY :       &
16      cp_cfg   =>   cp_cfg,  & !: name of the configuration
17      jp_cfg   =>   jp_cfg,  & !: resolution of the configuration
18      jpiglo   =>   jpiglo,  & !: first  dimension of global domain --> i
19      jpjglo   =>   jpjglo,  & !: second dimension of global domain --> j
20      jpi      =>   jpi   ,  & !: first  dimension of grid --> i
21      jpj      =>   jpj   ,  & !: second dimension of grid --> j 
22      jpk      =>   jpk   ,  & !: number of levels 
23      jpim1    =>   jpim1 ,  & !: jpi - 1
24      jpjm1    =>   jpjm1 ,  & !: jpj - 1
25      jpkm1    =>   jpkm1 ,  & !: jpk - 1 
26      jpij     =>   jpij  ,  & !: jpi x jpj
27      jpidta   =>   jpidta,  & !: first horizontal dimension  > or = jpi
28      jpjdta   =>   jpjdta,  & !: second horizontal dimension > or = jpj
29      jpkdta   =>   jpkdta,  & !: number of levels            > or = jpk
30      lk_esopa =>   lk_esopa   !: flag to activate the all option
31
32
33   !! run controm   
34
35   USE in_out_manager
36     
37   USE dom_oce , ONLY :           &           
38      lzoom      => lzoom     ,  & !: zoom flag
39      lzoom_e    => lzoom_e   ,  & !: East  zoom type flag
40      lzoom_w    => lzoom_w   ,  & !: West  zoom type flag
41      lzoom_s    => lzoom_s   ,  & !: South zoom type flag
42      lzoom_n    => lzoom_n   ,  & !: North zoom type flag
43      lzoom_arct => lzoom_arct,  & !: ORCA    arctic zoom flag
44      lzoom_anta => lzoom_anta     !: ORCA antarctic zoom flag
45
46
47
48   USE dom_oce , ONLY :       & 
49      nperio   =>   nperio,  & !: type of lateral boundary condition       
50      nimpp    =>   nimpp ,  & !: i index for mpp-subdomain left bottom
51      njmpp    =>   njmpp ,  & !: j index for mpp-subdomain left bottom
52      nproc    =>   nproc ,  & !: number for local processor
53      narea    =>   narea ,  & !: number for local area
54      mig      =>   mig   ,  & !: local  ==> global  domain i-indice
55      mjg      =>   mjg   ,  & !: local  ==> global  domain i-indice
56      mi0      =>   mi0   ,  & !: global ==> local domain i-indice
57      mi1      =>   mi1   ,  & !: (mi0=1 and mi1=0 if the global indice is not in the local domain)
58      mj0      =>   mj0   ,  & !: global ==> local domain j-indice
59      mj1      =>   mj1   ,  & !: (mj0=1 and mj1=0 if the global indice is not in the local domain)
60      nidom    =>   nidom
61 
62   USE dom_oce , ONLY :       & 
63      nimppt   => nimppt  ,  & !:i-indexes for each processor
64      njmppt   => njmppt  ,  & !:j-indexes for each processor
65      ibonit   => ibonit  ,  & !:i-processor neighbour existence
66      ibonjt   => ibonjt  ,  & !:j- processor neighbour existence
67      nlci     => nlci    ,  & !:i- & j-dimensions of the local subdomain
68      nlcj     => nlcj    ,  & !:
69      nldi     => nldi    ,  & !:first and last indoor i- and j-indexes
70      nlei     => nlei    ,  & !:
71      nldj     => nldj    ,  & !:
72      nlej     => nlej    ,  & !:
73      nlcit    => nlcit   ,  & !:dimensions of every i-subdomain
74      nlcjt    => nlcjt   ,  & !:dimensions of every j-subdomain
75      nldit    => nldit   ,  & !:first indoor index for each i-domain
76      nleit    => nleit   ,  & !:last indoor index for each i-domain
77      nldjt    => nldjt   ,  & !:first indoor index for each j-domain
78      nlejt    => nlejt        !:last indoor index for each j-domain
79
80   
81      !! horizontal curvilinear coordinate and scale factors
82   USE dom_oce , ONLY :            &   
83      glamt    =>   glamt ,  & !: longitude of t-point (degre) 
84      glamu    =>   glamu ,  & !: longitude of t-point (degre) 
85      glamv    =>   glamv ,  & !: longitude of t-point (degre) 
86      glamf    =>   glamf ,  & !: longitude of t-point (degre) 
87      gphit    =>   gphit ,  & !: latitude  of t-point (degre)   
88      gphiu    =>   gphiu ,  & !: latitude  of t-point (degre)   
89      gphiv    =>   gphiv ,  & !: latitude  of t-point (degre)   
90      gphif    =>   gphif ,  & !: latitude  of t-point (degre)   
91      e1t      =>   e1t   ,  & !: horizontal scale factors at t-point (m) 
92      e2t      =>   e2t   ,  & !: horizontal scale factors at t-point (m)   
93      e1u      =>   e1u   ,  & !: horizontal scale factors at u-point (m)
94      e2u      =>   e2u   ,  & !: horizontal scale factors at u-point (m)
95      e1v      =>   e1v   ,  & !: horizontal scale factors at v-point (m)
96      e2v      =>   e2v        !: horizontal scale factors at v-point (m) 
97
98   !! vertical coordinate and scale factors
99   USE dom_oce , ONLY :              &   
100      gdept_0    =>   gdept_0 ,  & !: reference depth of t-points (m)
101      e3t_0      =>   e3t_0   ,  & !: reference depth of t-points (m) 
102      e3w_0      =>   e3w_0   ,  & !: reference depth of w-points (m)
103      gdepw_0    =>   gdepw_0      !: reference depth of w-points (m)
104
105#if ! defined key_zco
106   USE dom_oce , ONLY :                &
107      gdep3w   =>  gdep3w  ,  & !: ???
108      gdept =>  gdept,  & !: depth of t-points (m)
109      gdepw =>  gdepw,  & !: depth of t-points (m)
110      e3t   =>  e3t  ,  & !: vertical scale factors at t-
111      e3u   =>  e3u  ,  & !: vertical scale factors at u-
112      e3v   =>  e3v  ,  & !: vertical scale factors v-
113      e3w   =>  e3w  ,  & !: w-points (m)
114      e3f   =>  e3f  ,  & !: f-points (m)
115      e3uw  =>  e3uw ,  & !: uw-points (m)
116      e3vw  =>  e3vw      !: vw-points (m)
117#endif
118
119   USE dom_oce ,   ONLY :            &     
120      ln_zps   =>  ln_zps ,  & !: partial steps flag
121      ln_sco   =>  ln_sco ,  & !: s-coordinate flag
122      ln_zco   =>  ln_zco ,  & !: z-coordinate flag
123      lk_zco   =>  lk_zco      !: z-coordinate flag (1D or 3D arrays)
124
125   USE lib_mpp ,   ONLY :            &     
126      lk_mpp   =>  lk_mpp      !: Mpp flag
127
128   USE dynspg_oce ,   ONLY :            &     
129      lk_dynspg_rl   =>  lk_dynspg_rl      !: rigid lid flag
130
131
132   USE dom_oce , ONLY :              &   
133      hbatt   =>   hbatt  ,  & !: ocean depth at the vertical of  t-point (m)
134      hbatu   =>   hbatu  ,  & !: ocean depth at the vertical of  u-point (m)
135      hbatv   =>   hbatv  ,  & !: ocean depth at the vertical of w-point (m)
136      gsigt   =>   gsigt  ,  & !: model level depth coefficient at t-,  & w-levelsvertical scale factors at u-
137      gsigw   =>   gsigw  ,  & !: model level depth coefficient at t-,  & w-levelsvertical scale factors v-
138      gsi3w   =>   gsi3w  ,  & !: model level depth coef at w-levels (defined as the sum of e3w)
139      esigt   =>   esigt  ,  & !: vertical scale factor coef. at t-levels
140      esigw   =>   esigw       !: vertical scale factor coef. at w-levels
141
142   !! masks, bathymetry
143   USE dom_oce , ONLY :             &   
144      mbathy   =>   mbathy,  & !: number of ocean level (=0,  & 1, ... , jpk-1)
145      tmask_i  =>   tmask_i, & !: Interior mask at t-points
146      tmask    =>   tmask ,  & !: land/ocean mask at t-points
147      umask    =>   umask ,  & !: land/ocean mask at u-points   
148      vmask    =>   vmask ,  & !: land/ocean mask at v-points
149      fmask    =>   fmask      !: land/ocean mask at f-points
150
151#if defined key_off_degrad
152   USE dom_oce , ONLY :                 &
153      facvol   =>   facvol     !: volume factor for degradation
154#endif
155
156   USE dom_oce , ONLY :         &
157      n_cla   =>   n_cla       !: flag (0/1) for cross land advection
158
159   !! time domain
160   USE dom_oce , ONLY :                 &
161      neuler   =>   neuler,  & !: restart euler forward option (0=Euler)
162      rdt      =>   rdt   ,  & !: time step for the dynamics
163      atfp     =>   atfp  ,  & !: asselin time filter parameter
164      atfp1    =>   atfp1 ,  & !: asselin time filter coeff. (atfp1= 1-2*atfp)
165      rdttra   =>   rdttra     !: vertical profile of tracer time step
166
167   USE daymod , ONLY :                 &
168      ndastp    =>   ndastp,  &    !: time step date in year/month/day aammjj
169      nday_year =>   nday_year, &  !: curent day counted from jan 1st of the current year
170      nyear     =>   nyear,   &  !: Current year
171      nmonth    =>   nmonth,  &  !: Current month
172      nday      =>   nday        !: Current day
173
174   !! physical constants
175   USE phycst ,   ONLY :                & 
176      ra       =>   ra    ,  & !: earth radius
177      rpi      =>   rpi   ,  & !: pi
178      rday     =>   rday  ,  & !: day
179      rauw     =>   rauw  ,  & !: density of pure water kg/m3
180      ro0cpr   =>   ro0cpr,  & !: = 1. / ( rau0 * rcp )
181      rad      =>   rad   ,  & !: conversion coeff. from degre into radian
182      raass    =>   raass ,  & !: number of seconds in one year
183      rmoss    =>   rmoss ,  & !: number of seconds in one month
184      rjjss    =>   rjjss      !: number of seconds in one day
185
186   !! present fields (now)
187   USE oce , ONLY :            &     
188      ua      =>    ua    ,  & !: i-horizontal velocity (m s-1)
189      va      =>    va    ,  & !: j-horizontal velocity (m s-1)
190      un      =>    un    ,  & !: i-horizontal velocity (m s-1)
191      vn      =>    vn    ,  & !: j-horizontal velocity (m s-1)
192      wn      =>    wn    ,  & !: vertical velocity (m s-1) 
193      tn      =>    tn    ,  & !: pot. temperature (celsius)
194      sn      =>    sn    ,  & !: salinity (psu)
195      rhop    =>    rhop  ,  & !: potential volumic mass (kg m-3)
196      rhd     =>    rhd        !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
197
198#if defined key_trc_diatrd
199   USE oce , ONLY :          &
200      hdivn   =>    hdivn      !: horizontal divergence (1/s)
201#endif
202
203#if defined key_flx_bulk_monthly || defined key_flx_bulk_daily || defined key_flx_core
204   !! wind speed
205   USE blk_oce , ONLY :        &     
206      vatm    =>    vatm       !: wind speed at sea surface (m s-1)
207#endif
208
209   !! wind speed
210   USE sbc_oce , ONLY :     &     
211      taux    =>    utau ,  &  !: i-surface stress component
212      tauy    =>    vtau ,  &  !: j-surface stress component
213      qsr     =>    qsr  ,  &  !: penetrative solar radiation (w m-2) 
214      emp     =>    emp  ,  &  !: evaporation minus precipitation (kg m-2 s-2)
215      emps    =>    emps       !: evaporation minus precipitation (kg m-2 s-2)
216
217
218#if   defined key_trabbl_dif   ||   defined key_trabbl_adv
219   USE trabbl , ONLY :           &     
220      atrbbl   =>   atrbbl     !: lateral coeff. for bottom boundary layer scheme (m2/s)
221#  if defined key_off_tra
222   USE trabbl, ONLY :            &
223      bblx   => bblx,       &
224      bbly   => bbly
225#  endif
226#endif
227
228   !! lateral diffusivity (tracers)
229   USE ldftra_oce ,   ONLY :             &   
230      aht0    =>   aht0  ,  &  !: horizontal eddy diffusivity for tracers (m2/s)
231      ahtb0   =>   ahtb0 ,  &  !: background eddy diffusivity for isopycnal diff. (m2/s)
232      ahtu    =>   ahtu  ,  &  !: lateral diffusivity coef. at u-points
233      ahtv    =>   ahtv  ,  &  !: lateral diffusivity coef. at v-points
234      ahtw    =>   ahtw  ,  &  !: lateral diffusivity coef. at w-points
235      ahtt    =>   ahtt  ,  &  !: lateral diffusivity coef. at t-points
236      aeiv0   =>   aeiv0 ,  &  !: eddy induced velocity coefficient (m2/s)
237      aeiu    =>   aeiu  ,  &  !: eddy induced velocity coef. at u-points (m2/s)   
238      aeiv    =>   aeiv  ,  &  !: eddy induced velocity coef. at v-points (m2/s)
239      aeiw    =>   aeiw        !: eddy induced velocity coef. at w-points (m2/s)
240
241   !! vertical diffusion
242   USE zdf_oce , ONLY :      &   
243      avt            =>   avt          ,  & !: vert. diffusivity coef. at w-point for temp 
244      avt0           =>   avt0         ,  & !: vertical eddy diffusivity for tracers (m2/s)
245      ln_zdfnpc      =>   ln_zdfnpc         !: convection: non-penetrative convection flag
246
247
248#if defined key_zdfddm
249   USE zdfddm , ONLY :             &     
250      avs     =>    avs        !: salinity vertical diffusivity coeff. at w-point
251#endif
252
253   !! penetrative solar radiation
254   USE traqsr , ONLY :            &
255      xsi1        =>   xsi1    ,  & !: first depth of extinction
256      ln_qsr_sms  =>  ln_qsr_sms    !: flag to use or not the biological fluxes for light
257
258   !! freezing area
259   USE ocfzpt , ONLY :            &     
260      freeze  =>    freeze,  & !: ice mask (0 or 1) 
261      fzptn   =>    fzptn      !: now freezing temperature at ocean surface 
262
263
264   !! mixing layer depth (turbocline)
265   USE zdfmxl , ONLY :             &   
266      hmld    =>   hmld   ,  & !: mixing layer depth (turbocline)
267      hmlp    =>   hmlp   ,  & !: mixed layer depth  (rho=rho0+zdcrit) (m)
268      hmlpt   =>   hmlpt       !: mixed layer depth at t-points (m)
269
270   USE ldfslp , ONLY :              & 
271      lk_ldfslp  =>  lk_ldfslp     !: slopes flag
272#if   defined key_ldfslp
273   !! direction of lateral diffusion (momentum  tracers)
274   USE ldfslp , ONLY :              & 
275      uslp       =>   uslp    ,  & !: i-direction slope at u-, w-points
276      vslp       =>   vslp    ,  & !: j-direction slope at v-, w-points
277      wslpi      =>   wslpi   ,  & !: i-direction slope at u-, w-points
278      wslpj      =>   wslpj        !: j-direction slope at v-, w-points
279#endif
280
281   !! ocean forcings runoff
282   USE sbcrnf , ONLY :         &   
283      upsrnfh => rnfmsk     ,  & !: mixed adv scheme in runoffs vicinity (hori.)
284      upsrnfz => rnfmsk_z        !: mixed adv scheme in runoffs vicinity (vert.)
285
286END MODULE oce_trc
Note: See TracBrowser for help on using the repository browser.