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 @ 331

Last change on this file since 331 was 281, checked in by opalod, 19 years ago

nemo_v1_compil_001 : CT : passive tracers compilation error correction

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 13.9 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$
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   !! namelist parameters     
34   USE in_out_manager , ONLY :  &   
35      cexper   =>   cexper,  & !: experience name for vairmer format
36      no       =>   no    ,  & !: job number
37      nrstdt   =>   nrstdt,  & !: control of the time step (0,  & 1 or 2)
38      nit000   =>   nit000,  & !: number of the first time step
39      nitend   =>   nitend,  & !: number of the last time step
40      nleapy   =>   nleapy,  & !: Leap year calendar (0/1)
41      nwrite   =>   nwrite,  & !: frequency of OUTPUT file
42      nstock   =>   nstock,  & !: frequency of restart file
43      lwp      =>   lwp   ,  & !: boolean term for mpp output
44      ln_ctl   =>   ln_ctl ,  & !: = ln_ctl.AND.lwp (print control on the 1st proc)
45      nictle   =>   nictle ,  & !: = max i indice to make the control SUM
46      njctle   =>   njctle ,  & !: = max j indice to make the control SUM
47      numout   =>   numout     !: logical unit for output print
48
49   !! run controm   
50   USE in_out_manager , ONLY :  & 
51      nstop     =>   nstop    ,  &  !: e r r o r  flag (=number of reason for a
52      !                             !                   prematurely stop the run)
53      nwarn     =>   nwarn    ,  &  !: w a r n i n g  flag (=number of warning
54      !                             !                   found during the run)
55      cform_err =>   cform_err,  &  !:
56      cform_war =>   cform_war      !: 
57     
58   USE dom_oce , ONLY :           &           
59      lzoom      => lzoom     ,  & !: zoom flag
60      lzoom_e    => lzoom_e   ,  & !: East  zoom type flag
61      lzoom_w    => lzoom_w   ,  & !: West  zoom type flag
62      lzoom_s    => lzoom_s   ,  & !: South zoom type flag
63      lzoom_n    => lzoom_n   ,  & !: North zoom type flag
64      lzoom_arct => lzoom_arct,  & !: ORCA    arctic zoom flag
65      lzoom_anta => lzoom_anta     !: ORCA antarctic zoom flag
66
67
68
69   USE dom_oce , ONLY :       & 
70      nperio   =>   nperio,  & !: type of lateral boundary condition       
71      nlci     =>   nlci  ,  & !: index i for the sub domain left bottom
72      nlcj     =>   nlcj  ,  & !: index j for the sub domain left bottom
73      nimpp    =>   nimpp ,  & !: i index for mpp-subdomain left bottom
74      njmpp    =>   njmpp ,  & !: j index for mpp-subdomain left bottom
75      mig      =>   mig   ,  & !: local  ==> global  domain i-indice
76      mjg      =>   mjg   ,  & !: local  ==> global  domain i-indice
77      mi0      =>   mi0   ,  & !: global ==> local domain i-indice
78      mi1      =>   mi1   ,  & !: (mi0=1 and mi1=0 if the global indice is not in the local domain)
79      mj0      =>   mj0   ,  & !: global ==> local domain j-indice
80      mj1      =>   mj1        !: (mj0=1 and mj1=0 if the global indice is not in the local domain)
81     
82      !! horizontal curvilinear coordinate and scale factors
83   USE dom_oce , ONLY :            &   
84      glamt    =>   glamt ,  & !: longitude of t-point (degre) 
85      glamu    =>   glamu ,  & !: longitude of t-point (degre) 
86      glamv    =>   glamv ,  & !: longitude of t-point (degre) 
87      glamf    =>   glamf ,  & !: longitude of t-point (degre) 
88      gphit    =>   gphit ,  & !: latitude  of t-point (degre)   
89      gphiu    =>   gphiu ,  & !: latitude  of t-point (degre)   
90      gphiv    =>   gphiv ,  & !: latitude  of t-point (degre)   
91      gphif    =>   gphif ,  & !: latitude  of t-point (degre)   
92      e1t      =>   e1t   ,  & !: horizontal scale factors at t-point (m) 
93      e2t      =>   e2t   ,  & !: horizontal scale factors at t-point (m)   
94      e1u      =>   e1u   ,  & !: horizontal scale factors at u-point (m)
95      e2u      =>   e2u   ,  & !: horizontal scale factors at u-point (m)
96      e1v      =>   e1v   ,  & !: horizontal scale factors at v-point (m)
97      e2v      =>   e2v        !: horizontal scale factors at v-point (m) 
98
99   !! vertical coordinate and scale factors
100   USE dom_oce , ONLY :              &   
101      gdept    =>   gdept ,  & !: reference depth of t-points (m)
102      e3t      =>   e3t   ,  & !: reference depth of t-points (m) 
103      e3w      =>   e3w   ,  & !: reference depth of w-points (m)
104      gdepw    =>   gdepw      !: reference depth of w-points (m)
105
106   USE dom_oce ,   ONLY :            &     
107      lk_zps   =>  lk_zps ,  & !: partial steps flag
108      lk_sco   =>  lk_sco ,  & !: s-coordinate flag
109      lk_zco   =>  lk_zco      !: z-coordinate flag
110
111   USE lib_mpp ,   ONLY :            &     
112      lk_mpp   =>  lk_mpp      !: Mpp flag
113
114   USE dynspg_fsc ,   ONLY :            &     
115      lk_dynspg_fsc   =>  lk_dynspg_fsc      !: free surface constant volume flag
116
117   USE dynspg_fsc_atsk ,   ONLY :            &     
118      lk_dynspg_fsc_tsk   =>  lk_dynspg_fsc_tsk      !: free surface constant volume flag
119
120#if defined key_partial_steps
121   !! Partial steps ('key_partial_steps')
122   !! -----------------------------------
123   USE dom_oce , ONLY :                & 
124      gdep3w   =>  gdep3w  ,  & !: ???
125      gdept_ps =>  gdept_ps,  & !: depth of t-points (m)
126      gdepw_ps =>  gdepw_ps,  & !: depth of t-points (m)
127      e3t_ps   =>  e3t_ps  ,  & !: vertical scale factors at t-
128      e3u_ps   =>  e3u_ps  ,  & !: vertical scale factors at u-
129      e3v_ps   =>  e3v_ps  ,  & !: vertical scale factors v-
130      e3w_ps   =>  e3w_ps  ,  & !: w-points (m)
131      e3f_ps   =>  e3f_ps  ,  & !: f-points (m)
132      e3uw_ps  =>  e3uw_ps ,  & !: uw-points (m)
133      e3vw_ps  =>  e3vw_ps      !: vw-points (m)
134
135   USE oce , ONLY :                &
136      gtu   =>  gtu  ,  & !: t- horizontal gradient at u-
137      gtv   =>  gtv       !: and v-points at bottom ocean level
138#endif
139
140#if defined key_s_coord
141   USE dom_oce , ONLY :              &   
142      hbatt   =>   hbatt  ,  & !: ocean depth at the vertical of  t-point (m)
143      hbatu   =>   hbatu  ,  & !: ocean depth at the vertical of  u-point (m)
144      hbatv   =>   hbatv  ,  & !: ocean depth at the vertical of w-point (m)
145      gsigt   =>   gsigt  ,  & !: model level depth coefficient at t-,  & w-levelsvertical scale factors at u-
146      gsigw   =>   gsigw  ,  & !: model level depth coefficient at t-,  & w-levelsvertical scale factors v-
147      gsi3w   =>   gsi3w  ,  & !: model level depth coef at w-levels (defined as the sum of e3w)
148      esigt   =>   esigt  ,  & !: vertical scale factor coef. at t-levels
149      esigw   =>   esigw       !: vertical scale factor coef. at w-levels
150#endif
151
152   !! masks, bathymetry
153   USE dom_oce , ONLY :             &   
154      mbathy   =>   mbathy,  & !: number of ocean level (=0,  & 1, ... , jpk-1)
155      tmask_i  =>   tmask_i, & !: Interior mask at t-points
156      tmask    =>   tmask ,  & !: land/ocean mask at t-points
157      umask    =>   umask ,  & !: land/ocean mask at u-points   
158      vmask    =>   vmask ,  & !: land/ocean mask at v-points
159      fmask    =>   fmask      !: land/ocean mask at f-points
160
161   USE dom_oce , ONLY :         &
162      n_cla   =>   n_cla       !: flag (0/1) for cross land advection
163
164   !! time domain
165   USE dom_oce , ONLY :                 &
166      neuler   =>   neuler,  & !: restart euler forward option (0=Euler)
167      rdt      =>   rdt   ,  & !: time step for the dynamics
168      atfp     =>   atfp  ,  & !: asselin time filter parameter
169      atfp1    =>   atfp1 ,  & !: asselin time filter coeff. (atfp1= 1-2*atfp)
170      rdttra   =>   rdttra     !: vertical profile of tracer time step
171
172   USE daymod , ONLY :                 &
173      ndastp    =>   ndastp,  &    !: time step date in year/month/day aammjj
174      nday_year =>   nday_year, &  !: curent day counted from jan 1st of the current year
175      nyear     =>   nyear,   &  !: Current year
176      nmonth    =>   nmonth,  &  !: Current month
177      nday      =>   nday        !: Current day
178
179   !! physical constants
180   USE phycst ,   ONLY :                & 
181      ra       =>   ra    ,  & !: earth radius
182      rpi      =>   rpi   ,  & !: pi
183      rday     =>   rday  ,  & !: day
184      rauw     =>   rauw  ,  & !: density of pure water kg/m3
185      ro0cpr   =>   ro0cpr,  & !: = 1. / ( rau0 * rcp )
186      rad      =>   rad   ,  & !: conversion coeff. from degre into radian
187      raass    =>   raass ,  & !: number of seconds in one year
188      rmoss    =>   rmoss ,  & !: number of seconds in one month
189      rjjss    =>   rjjss      !: number of seconds in one day
190
191   !! present fields (now)
192   USE oce , ONLY :            &     
193      ua      =>    ua    ,  & !: i-horizontal velocity (m s-1)
194      va      =>    va    ,  & !: j-horizontal velocity (m s-1)
195      un      =>    un    ,  & !: i-horizontal velocity (m s-1)
196      vn      =>    vn    ,  & !: j-horizontal velocity (m s-1)
197      wn      =>    wn    ,  & !: vertical velocity (m s-1) 
198      tn      =>    tn    ,  & !: pot. temperature (celsius)
199      sn      =>    sn    ,  & !: salinity (psu)
200      rhop    =>    rhop       !: potential volumic mass (kg m-3)
201
202#if defined key_flx_bulk_monthly || defined key_flx_bulk_daily
203   !! wind speed
204   USE blk_oce , ONLY :        &     
205      vatm    =>    vatm       !: wind speed at sea surface (m s-1)
206#endif
207
208   !! wind speed
209   USE taumod , ONLY :        &     
210      taux    =>    taux ,  &  !: i-surface stress component
211      tauy    =>    tauy       !: j-surface stress component
212
213#if   defined key_trabbl_dif   ||   defined key_trabbl_adv
214   USE trabbl , ONLY :           &     
215      atrbbl   =>   atrbbl     !: lateral coeff. for bottom boundary layer scheme (m2/s)
216#endif
217
218   !! lateral diffusivity (tracers)
219   USE ldftra_oce ,   ONLY :             &   
220      aht0    =>   aht0  ,  &  !: horizontal eddy diffusivity for tracers (m2/s)
221      ahtb0   =>   ahtb0 ,  &  !: background eddy diffusivity for isopycnal diff. (m2/s)
222      ahtu    =>   ahtu  ,  &  !: lateral diffusivity coef. at u-points
223      ahtv    =>   ahtv  ,  &  !: lateral diffusivity coef. at v-points
224      ahtw    =>   ahtw  ,  &  !: lateral diffusivity coef. at w-points
225      ahtt    =>   ahtt  ,  &  !: lateral diffusivity coef. at t-points
226      aeiv0   =>   aeiv0 ,  &  !: eddy induced velocity coefficient (m2/s)
227      aeiu    =>   aeiu  ,  &  !: eddy induced velocity coef. at u-points (m2/s)   
228      aeiv    =>   aeiv  ,  &  !: eddy induced velocity coef. at v-points (m2/s)
229      aeiw    =>   aeiw        !: eddy induced velocity coef. at w-points (m2/s)
230
231   !! vertical diffusion
232   USE zdf_oce , ONLY :      &   
233      avt            =>   avt          ,  & !: vert. diffusivity coef. at w-point for temp 
234      avt0           =>   avt0         ,  & !: vertical eddy diffusivity for tracers (m2/s)
235      ln_zdfnpc      =>   ln_zdfnpc    ,  & !: convection: non-penetrative convection flag
236      l_trazdf_exp   =>   l_trazdf_exp      !: explicit vertical diffusion scheme flag
237
238
239#if defined key_zdfddm
240   USE zdfddm , ONLY :             &     
241      avs     =>    avs        !: salinity vertical diffusivity coeff. at w-point
242#endif
243
244   !! penetrative solar radiation
245   USE traqsr , ONLY :            &     
246      xsi1   =>   xsi1         !: first depth of extinction
247
248   !! surface fluxes
249   USE ocesbc , ONLY :             &   
250      qt      =>    qt    ,  & !: total surface heat flux (w m-2)   
251      qsr     =>    qsr   ,  & !: penetrative solar radiation (w m-2) 
252      emp     =>    emp   ,  & !: evaporation minus precipitation (kg m-2 s-2)
253      emps    =>    emps       !: evaporation minus precipitation (kg m-2 s-2)
254
255   !! freezing area
256   USE ocfzpt , ONLY :            &     
257      freeze  =>    freeze,  & !: ice mask (0 or 1) 
258      fzptn   =>    fzptn      !: now freezing temperature at ocean surface 
259
260
261   !! mixing layer depth (turbocline)
262   USE zdfmxl , ONLY :             &   
263      hmld    =>   hmld   ,  & !: mixing layer depth (turbocline)
264      hmlp    =>   hmlp        !: mixed layer depth  (rho=rho0+zdcrit) (m)
265
266   USE ldfslp , ONLY :              & 
267      lk_ldfslp  =>  lk_ldfslp     !: slopes flag
268#if   defined key_ldfslp
269   !! direction of lateral diffusion (momentum  tracers)
270   USE ldfslp , ONLY :              & 
271      uslp       =>   uslp    ,  & !: i-direction slope at u-, w-points
272      vslp       =>   vslp    ,  & !: j-direction slope at v-, w-points
273      wslpi      =>   wslpi   ,  & !: i-direction slope at u-, w-points
274      wslpj      =>   wslpj        !: j-direction slope at v-, w-points
275#endif
276
277   !! ocean forcings runoff
278   USE flxrnf , ONLY :              &   
279      upsrnfh =>   upsrnfh ,  & !: mixed adv scheme in runoffs vicinity (hori.)
280      upsrnfz =>   upsrnfz ,  & !: mixed adv scheme in runoffs vicinity (vert.)
281      upsadv  =>   upsadv       !: mixed adv scheme in straits vicinity (hori.)
282
283END MODULE oce_trc
Note: See TracBrowser for help on using the repository browser.