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.
par_oce.F90 in trunk/NEMO/OFF_SRC – NEMO

source: trunk/NEMO/OFF_SRC/par_oce.F90 @ 325

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

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 10.2 KB
Line 
1MODULE par_oce
2   !!======================================================================
3   !!                        ***  par_oce  ***
4   !! Ocean :   set the ocean parameters
5   !!======================================================================
6   !! History :
7   !!   4.0  !  91     (Imbard, Levy, Madec)  Original code
8   !!   9.0  !  04-01  (G. Madec, J.-M. Molines)  Free form and module
9   !!----------------------------------------------------------------------
10   !!  OPA 9.0 , LOCEAN-IPSL (2005)
11   !! $Header$
12   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
13   !!----------------------------------------------------------------------
14   !! * Modules used
15   USE par_kind          ! kind parameters
16
17   IMPLICIT NONE
18   PUBLIC
19
20   !!----------------------------------------------------------------------
21   !!   Domain decomposition
22   !!----------------------------------------------------------------------
23   !! * if we dont use massively parallel computer (parameters jpni=jpnj=1)
24   !!      so jpiglo=jpi and jpjglo=jpj
25
26   INTEGER, PUBLIC, PARAMETER ::    &  !:
27      jpni   = 1,                   &  !: number of processors following i
28      jpnj   = 1,                   &  !: number of processors following j
29      jpnij  = 1,                   &  !: nb of local domain = nb of processors
30      !                                !  ( <= jpni x jpnj )
31      jpr2di = 0,                   &  !: number of columns for extra outer halo
32      jpr2dj = 0,                   &  !: number of rows    for extra outer halo
33      jpreci = 1,                   &  !: number of columns for overlap
34      jprecj = 1                       !: number of rows    for overlap
35
36   !! Ocean Domain sizes
37   !! ------------------
38   !!   data           domain   (jpidta,jpjdta)
39   !!   global or zoom domain   (jpiglo,jpjglo)
40   !!   local          domain   ( jpi  , jpj  )
41   
42#if   defined key_orca_r4
43   !!---------------------------------------------------------------------
44   !!   'key_orca_r4'   :                           global ocean : ORCA R4
45   !!---------------------------------------------------------------------
46#             include "par_ORCA_R4.h90"
47#elif defined key_orca_r2
48   !!---------------------------------------------------------------------
49   !!   'key_orca_r2'   :                           global ocean : ORCA R4
50   !!---------------------------------------------------------------------
51#             include "par_ORCA_R2.h90"
52#elif defined key_orca_r05
53   !!---------------------------------------------------------------------
54   !!   'key_orca_r05'  :                          global ocean : ORCA R05
55   !!---------------------------------------------------------------------
56#             include "par_ORCA_R05.h90"
57#elif defined key_orca_r025
58   !!---------------------------------------------------------------------
59   !!   'key_orca_r025' :                         global ocean : ORCA R025
60   !!---------------------------------------------------------------------
61#             include "par_ORCA_R025.h90"
62#elif defined key_eel_r2
63   !!---------------------------------------------------------------------
64   !!   'key_eel_r2'    :                                 channel : EEL R2
65   !!---------------------------------------------------------------------
66#             include "par_EEL_R2.h90"
67#elif defined key_eel_r5
68   !!---------------------------------------------------------------------
69   !!   'key_eel_r5'    :                                 channel : EEL R5
70   !!---------------------------------------------------------------------
71#             include "par_EEL_R5.h90"
72#elif defined key_eel_r6
73   !!---------------------------------------------------------------------
74   !!   'key_eel_r6'    :                                 channel : EEL R6
75   !!---------------------------------------------------------------------
76#             include "par_EEL_R6.h90"
77#elif defined key_gyre
78   !!---------------------------------------------------------------------
79   !!   'key_gyre'      :                        mid-latitude basin : GYRE
80   !!---------------------------------------------------------------------
81#             include "par_GYRE.h90"
82#else
83   !!---------------------------------------------------------------------
84   !!   default option  :                               small closed basin
85   !!---------------------------------------------------------------------
86   CHARACTER(len=16), PUBLIC, PARAMETER ::   &  !:
87      cp_cfg = "default"               !: name of the configuration
88   INTEGER, PARAMETER ::            &  !:
89      jp_cfg = 0  ,                 &  !: resolution of the configuration
90
91      ! data size                     !!! * size of all input files *
92      jpidta  = 10,                 &  !: 1st lateral dimension ( >= jpi )
93      jpjdta  = 12,                 &  !: 2nd    "         "    ( >= jpj )
94      jpkdta  = 31,                 &  !: number of levels      ( >= jpk )
95
96      ! global or zoom domain size    !!! * computational domain *
97      jpiglo  = jpidta,             &  !: 1st dimension of global domain --> i
98      jpjglo  = jpjdta,             &  !: 2nd    "                  "    --> j
99      jpk     = jpkdta,             &  !: number of vertical levels
100      ! zoom starting position
101      jpizoom =   1   ,             &  !: left bottom (i,j) indices of the zoom
102      jpjzoom =   1   ,             &  !: in data domain indices
103
104      ! Domain characteristics
105      jperio  =  0,                 &  !: lateral cond. type (between 0 and 6)
106         !                             !  = 0 closed
107         !                             !  = 1 cyclic East-West
108         !                             !  = 2 equatorial symmetric
109         !                             !  = 3 North fold T-point pivot
110         !                             !  = 4 cyclic East-West AND North fold T-point pivot
111         !                             !  = 5 North fold F-point pivot
112         !                             !  = 6 cyclic East-West AND North fold F-point pivot
113      jpisl   =  0,                 &  !: number of islands (rigid-lid only)
114      jpnisl  =  0                     !: maximum number of points per island
115
116      !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
117      !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
118      REAL(wp), PARAMETER ::   &  !:
119         pp_not_used       = 999999._wp , &  !:
120         pp_to_be_computed = 999999._wp      !:
121
122
123   !! Horizontal grid parameters for domhgr
124   !! =====================================
125
126   INTEGER, PUBLIC, PARAMETER   ::   &  !:
127      jphgr_msh = 0            !: type of horizontal mesh
128      !                        !  = 0 curvilinear coordinate on the sphere
129      !                        !      read in coordinate.nc file
130      !                        !  = 1 geographical mesh on the sphere
131      !                        !      with regular grid-spacing
132      !                        !  = 2 f-plane with regular grid-spacing
133      !                        !  = 3 beta-plane with regular grid-spacing
134      !                        !  = 4 Mercator grid with T/U point at the equator  with
135      !                        !      isotropic resolution (e1_deg)
136
137   REAL(wp) , PUBLIC, PARAMETER ::   &   !:
138      ppglam0  =    0.0_wp,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
139      ppgphi0  =  -35.0_wp,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
140      !                          !  latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
141      ppe1_deg =    1.0_wp,   &  !: zonal      grid-spacing (degrees)
142      ppe2_deg =    0.5_wp,   &  !: meridional grid-spacing (degrees)
143      ppe1_m   = 5000.0_wp,   &  !: zonal      grid-spacing (degrees)
144      ppe2_m   = 5000.0_wp       !: meridional grid-spacing (degrees)
145
146   !! Vertical grid parameter for domzgr
147   !! ==================================
148
149   REAL(wp), PUBLIC, PARAMETER  ::   &  !:
150      &     ppsur = -4762.96143546300_wp ,  &  !: ORCA r4, r2 and r05 coefficients
151      &     ppa0  =   255.58049070440_wp ,  &  !: (default coefficients)
152      &     ppa1  =   245.58132232490_wp ,  &  !:
153      &     ppkth =    21.43336197938_wp ,  &  !:
154      &     ppacr =     3.00000000000_wp       !:
155
156   !!  If both ppa0 ppa1 and ppsur are specified to 0, then
157   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
158
159   REAL(wp), PUBLIC, PARAMETER ::   &  !:
160      &     ppdzmin = 10._wp             ,  &  !: Minimum vertical spacing
161      &     pphmax  = 5000._wp                 !: Maximum depth
162
163   !!---------------------------------------------------------------------
164#endif
165
166   !!---------------------------------------------------------------------
167   !! Domain Matrix size
168   !!---------------------------------------------------------------------
169   INTEGER, PUBLIC, PARAMETER ::   &  !:
170      jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci ,   &  !: first  dimension
171      jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ,   &  !: second dimension
172      jpim1 = jpi-1,                                             &  !: inner domain indices
173      jpjm1 = jpj-1,                                             &  !:   "            "
174      jpkm1 = jpk-1,                                             &  !:   "            "
175      jpij  = jpi*jpj                                               !:  jpi x jpj
176
177   !!---------------------------------------------------------------------
178   !! Optimization/control flags
179   !!---------------------------------------------------------------------
180#if defined key_esopa
181   LOGICAL, PUBLIC, PARAMETER ::   lk_esopa     = .TRUE.   !: flag to activate the all options
182#else
183   LOGICAL, PUBLIC, PARAMETER ::   lk_esopa     = .FALSE.  !: flag to activate the all options
184#endif
185
186#if defined key_vectopt_memory
187   LOGICAL, PUBLIC, PARAMETER ::   lk_vopt_mem  = .TRUE.   !: vector optimization flag
188#else
189   LOGICAL, PUBLIC, PARAMETER ::   lk_vopt_mem  = .FALSE.  !: vector optimization flag
190#endif
191
192#if defined key_vectopt_loop
193   LOGICAL, PUBLIC, PARAMETER ::   lk_vopt_loop = .TRUE.   !: vector optimization flag
194#else
195   LOGICAL, PUBLIC, PARAMETER ::   lk_vopt_loop = .FALSE.  !: vector optimization flag
196#endif
197
198   !!======================================================================
199END MODULE par_oce
Note: See TracBrowser for help on using the repository browser.