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.
dom_oce.F90 in trunk/NEMO/OPA_SRC/DOM – NEMO

source: trunk/NEMO/OPA_SRC/DOM/dom_oce.F90 @ 247

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

CL : Add CVS Header and CeCILL licence information

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 9.5 KB
Line 
1MODULE dom_oce
2   !!----------------------------------------------------------------------
3   !!                       ***  MODULE dom_oce  ***
4   !!       
5   !! ** Purpose :   Define in memory all the ocean space domain variables
6   !!----------------------------------------------------------------------
7   !!  OPA 9.0 , LOCEAN-IPSL (2005)
8   !! $Header$
9   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
10   !!----------------------------------------------------------------------
11   !! * Modules used
12   USE par_oce      ! ocean parameters
13
14   IMPLICIT NONE
15   PUBLIC           ! allows the acces to par_oce when dom_oce is used
16   !                ! exception to coding rules... to be suppressed ???
17
18   !!----------------------------------------------------------------------
19   !! space domain parameters
20   !! -----------------------
21   LOGICAL, PUBLIC ::   &   !:
22      lclosea    =  .FALSE. ,   &  !: closed sea flag
23      lzoom      =  .FALSE. ,   &  !: zoom flag
24      lzoom_e    =  .FALSE. ,   &  !: East  zoom type flag
25      lzoom_w    =  .FALSE. ,   &  !: West  zoom type flag
26      lzoom_s    =  .FALSE. ,   &  !: South zoom type flag
27      lzoom_n    =  .FALSE. ,   &  !: North zoom type flag
28      lzoom_arct =  .FALSE. ,   &  !: ORCA    arctic zoom flag
29      lzoom_anta =  .FALSE.        !: ORCA antarctic zoom flag
30
31   INTEGER, PUBLIC ::           & !!: namdom : space domain (bathymetry, mesh)
32      ntopo   =  0 ,            &  !: = 0/1 ,compute/read the bathymetry file
33      ngrid   =  0 ,            &  !: = 0/1, compute/read the horizontal mesh file
34      nmsh    =  0                 !: = 1 create a mesh-mask file
35
36   INTEGER, PUBLIC ::         &   !:
37      ! domain parameters linked to mpp
38      nperio,          &  !: type of lateral boundary condition
39      nimpp, njmpp,    &  !: i- & j-indexes for mpp-subdomain left bottom
40      nreci, nrecj,    &  !: overlap region in i and j
41      nproc,           &  !: number for local processor
42      narea,           &  !: number for local area
43      nbondi, nbondj,  &  !: mark of i- and j-direction local boundaries
44      npolj,           &  !: north fold mark (0, 3 or 4)
45      nlci, nlcj,      &  !: i- & j-dimensions of the local subdomain
46      nldi, nlei,      &  !: first and last indoor i- and j-indexes
47      nldj, nlej,      &  !:
48      noea, nowe,      &  !: index of the local neighboring processors in
49      noso, nono,      &  !: east, west, south and north directions
50      npne, npnw,      &  !: index of north east and north west processor
51      npse, npsw,      &  !: index of south east and south west processor
52      nbne, nbnw,      &  !: logical of north east & north west processor
53      nbse, nbsw          !: logical of south east & south west processor
54
55   INTEGER, PUBLIC, DIMENSION(jpi) ::   &   !:
56      mig                 !: local  ==> global  domain i-indice
57   INTEGER, PUBLIC, DIMENSION(jpj) ::   &   !:
58      mjg                 !: local  ==> global  domain j-indice
59   INTEGER, PUBLIC, DIMENSION( jpidta ) ::   &  !:  !!bug ==> other solution?
60      mi0, mi1            !: global ==> local domain i-indice
61      !                   !  (mi0=1 and mi1=0 if the global indice is not in the local domain)
62   INTEGER, PUBLIC, DIMENSION( jpjdta ) ::   &  !:
63      mj0, mj1            !: global ==> local domain j-indice
64      !                   ! (mi0=1 and mi1=0 if the global indice is not in the local domain)
65
66   INTEGER, PUBLIC, DIMENSION(jpnij) ::   &  !:
67      nimppt, njmppt,  &  !: i-, j-indexes for each processor
68      nlcit, nlcjt,    &  !: dimensions of every subdomain
69      nldit, nldjt,    &  !: first, last indoor index for each i-domain
70      nleit, nlejt        !: first, last indoor index for each j-domain
71
72   !!----------------------------------------------------------------------
73   !! horizontal curvilinear coordinate and scale factors
74   !! ---------------------------------------------------------------------
75
76   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   &  !:
77      glamt, glamu,    &  !: longitude of t-, u-, v- and f-points (degre)
78      glamv, glamf,    &  !:
79      gphit, gphiu,    &  !: latitude  of t-, u-, v- and f-points (degre)
80      gphiv, gphif,    &  !:
81      e1t, e2t,        &  !: horizontal scale factors at t-point (m)
82      e1u, e2u,        &  !: horizontal scale factors at u-point (m)
83      e1v, e2v,        &  !: horizontal scale factors at v-point (m)
84      e1f, e2f,        &  !: horizontal scale factors at f-point (m)
85      ff                  !: coriolis factor (2.*omega*sin(yphi) ) (s-1)
86
87   !!----------------------------------------------------------------------
88   !! vertical coordinate and scale factors
89   !! --------------------------------------
90
91   REAL(wp), PUBLIC ::   & !!: * namelist namdom *
92      e3zps_min = 5.0,   &  !: miminum thickness for partial steps (meters)
93      e3zps_rat = 0.1       !: minimum thickness ration for partial steps
94
95   !! z-coordinate (default option) (also used in the other cases
96   !! -----------------------------  as reference z-coordinate)
97   REAL(wp), PUBLIC, DIMENSION(jpk) ::   &  !:
98      gdept, gdepw,    &  !: reference depth of t- and w-points (m)
99      e3t, e3w            !: reference vertical scale factors at T- and W-pts (m)
100
101#if defined key_partial_steps
102   !! Partial steps ('key_partial_steps')
103   !! -----------------------------------
104   LOGICAL, PUBLIC, PARAMETER ::   lk_zps = .TRUE.   !: partial steps flag
105   LOGICAL, PUBLIC, PARAMETER ::   lk_sco = .FALSE.  !: s-coordinate flag
106   LOGICAL, PUBLIC, PARAMETER ::   lk_zco = .FALSE.  !: z-coordinate flag
107   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   &  !:
108      gdep3w,                 &  !: ???
109      gdept_ps, gdepw_ps,     &  !: depth of t- and w-points (m)
110      e3t_ps, e3u_ps, e3v_ps, &  !: vertical scale factors at t-, u-, w-,
111      e3w_ps, e3f_ps,         &  !: w- and f- points (m)
112      e3uw_ps, e3vw_ps           !: uw- and vw- points (m)
113
114   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   &  !:
115      hdept, hdepw, e3tp, e3wp   !: ???
116
117#elif defined key_s_coord
118   !! s-coordinate ('key_s_coord')
119   !! ----------------------------
120   LOGICAL, PUBLIC, PARAMETER ::   lk_zps = .FALSE.   !: partial steps flag
121   LOGICAL, PUBLIC, PARAMETER ::   lk_sco = .TRUE.    !: s-coordinate flag
122   LOGICAL, PUBLIC, PARAMETER ::   lk_zco = .FALSE.   !: z-coordinate flag
123   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   &   !:
124      hbatt, hbatu,    &  !: ocean depth at the vertical of  t-, u-, v-
125      hbatv, hbatf        !: and f-point (m)
126
127   REAL(wp), PUBLIC, DIMENSION(jpk) ::   &   !:
128      gsigt, gsigw ,   &  !: model level depth coefficient at t-, w-levels
129      gsi3w,           &  !: model level depth coefficient at w-level
130                          !  defined as the sum of e3w scale factors
131      esigt, esigw        !: vertical scale factor coef. at t-, w-levels
132
133#else
134   !! z-coordinate (Default option)
135   !! -----------------------------
136   LOGICAL, PUBLIC, PARAMETER ::   lk_zps = .FALSE.   !: partial steps flag
137   LOGICAL, PUBLIC, PARAMETER ::   lk_sco = .FALSE.   !: s-coordinate flag
138   LOGICAL, PUBLIC, PARAMETER ::   lk_zco = .TRUE.    !: s-coordinate flag
139#endif
140   !!----------------------------------------------------------------------
141   !! masks, bathymetry
142   !! -----------------
143
144   INTEGER , PUBLIC, DIMENSION(jpi,jpj) ::   &   !:
145      mbathy     !: number of ocean level (=0, 1, ... , jpk-1)
146
147   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   &   !:
148      bathy  ,         &  !: ocean depth (meters)
149      tmask_i             !: interior domain T-point mask
150
151   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   &   !:
152      tmask, umask,    &  !: land/ocean mask at T-, U-, V- and F-points
153      vmask, fmask        !:
154
155   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   &   !:
156      bmask               !: land/ocean mask of barotropic stream function
157
158   REAL(wp), PUBLIC, DIMENSION(jpiglo) ::   &   !:
159      tpol, fpol          !: north fold mask (nperio= 3 or 4)
160
161#if defined key_noslip_accurate
162   INTEGER, PUBLIC, DIMENSION(4,jpk) ::   &   !:
163      npcoa               !: ???
164   INTEGER, PUBLIC, DIMENSION(2*(jpi+jpj),4,jpk) ::   &   !:
165      nicoa,           &  !: ???
166      njcoa               !: ???
167
168#endif
169
170   !!----------------------------------------------------------------------
171   !! time domain
172   !!----------------------------------------------------------------------
173   INTEGER, PUBLIC ::    & !!: * Namelist * ???
174      nacc   = 0 ,       &  !: = 0/1 use of the acceleration of convergence technique
175      neuler                !: restart euler forward option (0=Euler)
176
177
178   REAL(wp), PUBLIC ::       & !!: * Namelist ??? *
179      rdt    = 3600._wp ,    &  !: time step for the dynamics (and tracer if nacc=0)
180      rdtmin = 3600._wp ,    &  !: minimum time step on tracers
181      rdtmax = 3600._wp ,    &  !: maximum time step on tracers
182      rdth   =  800._wp ,    &  !: depth variation of tracer step
183      atfp   = 0.1_wp   ,    &  !: asselin time filter parameter
184      atfp1                     !: asselin time filter coeff. (atfp1= 1-2*atfp)
185
186   REAL(wp), PUBLIC, DIMENSION(jpk) ::   &  !:
187      rdttra                    !: vertical profile of tracer time step
188
189   !!----------------------------------------------------------------------
190   !! cross land advection
191   !!----------------------------------------------------------------------
192
193   INTEGER, PUBLIC ::       & !!: namelist ???
194      n_cla                    !: flag (0/1) for cross land advection to
195      !                        ! parameterize exchanges through straits
196
197   !!----------------------------------------------------------------------
198END MODULE dom_oce
Note: See TracBrowser for help on using the repository browser.