1 | MODULE par_gyre |
---|
2 | !!====================================================================== |
---|
3 | !! *** par_gyre *** |
---|
4 | !! Ocean Domain parameter : rotated square bassin on a beta-plane at 1/jp_cfg |
---|
5 | !! degree resolution (GYRE configuration) and a 1D configuration case |
---|
6 | !! NB: with AGRIF, values are not set as parameters |
---|
7 | !!====================================================================== |
---|
8 | !! History : 9.0 ! 2007-11 (G. Madec) Original code from par_GYRE.h90 |
---|
9 | !!---------------------------------------------------------------------- |
---|
10 | !! NEMO/OPA 2.4 , LOCEAN-IPSL (2007) |
---|
11 | !! $Header: $ |
---|
12 | !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) |
---|
13 | !!---------------------------------------------------------------------- |
---|
14 | #if defined key_gyre |
---|
15 | !!---------------------------------------------------------------------- |
---|
16 | !! 'key_gyre' : GYRE configuration |
---|
17 | !!---------------------------------------------------------------------- |
---|
18 | USE par_kind ! kind parameters |
---|
19 | |
---|
20 | IMPLICIT NONE |
---|
21 | PUBLIC |
---|
22 | |
---|
23 | # if defined key_agrif |
---|
24 | !------!!-------------------------------------------------------------- |
---|
25 | ! !! 'key_agrif' : AGRIF |
---|
26 | !------!!-------------------------------------------------------------- |
---|
27 | |
---|
28 | ! Configuration, and domain size are not assigned to a parameter value |
---|
29 | ! as they are different in mother and children models |
---|
30 | INTEGER :: cp_cfg, jp_cfg !: configuration id (AGRIF case) |
---|
31 | INTEGER :: jpidta, jpjdta, jpkdta !: input data size (AGRIF case) |
---|
32 | INTEGER :: jpiglo, jpjglo, jpk, jpizoom, jpjzoom !: domain size and zoom (AGRIF case) |
---|
33 | INTEGER :: jperio, jpisl, jpnisl !: domain characteristics (AGRIF case) |
---|
34 | |
---|
35 | # else |
---|
36 | !------!!-------------------------------------------------------------- |
---|
37 | ! !! Default : no AGRIF: model parameters |
---|
38 | !------!!-------------------------------------------------------------- |
---|
39 | |
---|
40 | ! Configuration name and resolution !!! * GYRE * |
---|
41 | CHARACTER (len=16), PARAMETER :: cp_cfg = "gyre" !: name of the configuration |
---|
42 | INTEGER, PARAMETER :: jp_cfg = 1 !: resolution of the configuration (degrees) |
---|
43 | ! ! control the size of GYRE configurations |
---|
44 | |
---|
45 | ! input data size !!! * size of all input files * |
---|
46 | INTEGER, PARAMETER :: jpidta = 30 * jp_cfg + 2 !: 1st lateral dimension ( >= jpiglo ) |
---|
47 | INTEGER, PARAMETER :: jpjdta = 20 * jp_cfg + 2 !: 2nd " " ( >= jpjglo ) |
---|
48 | INTEGER, PARAMETER :: jpkdta = 31 !: number of levels ( >= jpk ) |
---|
49 | |
---|
50 | # if defined key_cfg_1d |
---|
51 | !------------!!-------------------------------------------------------- |
---|
52 | ! !! 'key_cfg_1d' : 1D configuration of MY_CFG |
---|
53 | !------------!!-------------------------------------------------------- |
---|
54 | ! global domain size !!! * 1D configuration * |
---|
55 | INTEGER, PARAMETER :: jpiglo = 3 !: 1st dimension of global domain --> i |
---|
56 | INTEGER, PARAMETER :: jpjglo = 3 !: 2nd " " --> j |
---|
57 | INTEGER, PARAMETER :: jpk = jpkdta !: number of vertical levels |
---|
58 | ! starting position of the zoom |
---|
59 | INTEGER, PARAMETER :: jpizoom = 16 !: left bottom (i,j) indices of the zoom |
---|
60 | INTEGER, PARAMETER :: jpjzoom = 11 !: in data domain indices |
---|
61 | ! Domain characteristics |
---|
62 | INTEGER, PARAMETER :: jperio = 0 !: lateral cond. type (between 0 and 6) |
---|
63 | INTEGER, PARAMETER :: jpisl = 0 !: number of islands |
---|
64 | INTEGER, PARAMETER :: jpnisl = 0 !: maximum number of points per island |
---|
65 | |
---|
66 | # else |
---|
67 | !------------!!-------------------------------------------------------- |
---|
68 | ! !! Default : Full global domain of GYRE |
---|
69 | !------------!!-------------------------------------------------------- |
---|
70 | ! global domain size !!! * global domain * |
---|
71 | INTEGER, PARAMETER :: jpiglo = jpidta !: 1st dimension of global domain --> i |
---|
72 | INTEGER, PARAMETER :: jpjglo = jpjdta !: 2nd " " --> j |
---|
73 | INTEGER, PARAMETER :: jpk = jpkdta !: number of vertical levels |
---|
74 | ! starting position of the zoom |
---|
75 | INTEGER, PARAMETER :: jpizoom = 1 !: left bottom (i,j) indices of the zoom |
---|
76 | INTEGER, PARAMETER :: jpjzoom = 1 !: in data domain indices |
---|
77 | ! Domain characteristics |
---|
78 | INTEGER, PARAMETER :: jperio = 0 !: lateral cond. type (between 0 and 6) |
---|
79 | INTEGER, PARAMETER :: jpisl = 1 !: number of islands |
---|
80 | INTEGER, PARAMETER :: jpnisl = 1 !: maximum number of points per island |
---|
81 | # endif |
---|
82 | |
---|
83 | # endif |
---|
84 | |
---|
85 | !!--------------------------------------------------------------------- |
---|
86 | !! grid parameters for domhgr and domzgr |
---|
87 | !!--------------------------------------------------------------------- |
---|
88 | ! Values set to pp_not_used indicates that this parameter is not used in THIS config. |
---|
89 | ! Values set to pp_to_be_computed indicates that variables will be computed in domzgr |
---|
90 | REAL(wp), PARAMETER :: pp_not_used = 999999_wp !: default value for "not used" |
---|
91 | REAL(wp), PARAMETER :: pp_to_be_computed = 0._wp !: default value for "to be computed" |
---|
92 | |
---|
93 | ! horizontal mesh (domhgr) |
---|
94 | ! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 ) |
---|
95 | INTEGER, PARAMETER :: jphgr_msh = 5 !: type of horizontal mesh |
---|
96 | ! ! = 5 beta-plane with regular grid-spacing and rotated domain |
---|
97 | |
---|
98 | ! ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid. |
---|
99 | ! The mercator grid starts only approximately at gphi0 because |
---|
100 | ! of the constraint that the equator be a T point. |
---|
101 | REAL(wp) ,PARAMETER :: ppglam0 = 0.0_wp !: longitude of first raw and column T-point (jphgr_msh=1) |
---|
102 | REAL(wp) ,PARAMETER :: ppgphi0 = 29.0_wp !: latitude of first raw and column T-point (jphgr_msh=1) |
---|
103 | ! ! latitude of the Coriolis/Beta parameter (jphgr_msh=2 or 3) |
---|
104 | REAL(wp) ,PARAMETER :: ppe1_deg = pp_not_used !: zonal grid-spacing (degrees) |
---|
105 | REAL(wp) ,PARAMETER :: ppe2_deg = pp_not_used !: meridional grid-spacing (degrees) |
---|
106 | ! |
---|
107 | REAL(wp) ,PARAMETER :: ppe1_m = pp_not_used !: zonal grid-spacing (meters ) |
---|
108 | REAL(wp) ,PARAMETER :: ppe2_m = pp_not_used !: meridional grid-spacing (meters ) |
---|
109 | |
---|
110 | ! Vertical mesh (domzgr) |
---|
111 | ! parameter used in the analytical function defining the repartition of the level and their thickness |
---|
112 | REAL(wp), PARAMETER :: ppsur = -2033.194295283385_wp !: GYRE coefficients |
---|
113 | REAL(wp), PARAMETER :: ppa0 = 155.8325369664153_wp !: |
---|
114 | REAL(wp), PARAMETER :: ppa1 = 146.3615918601890_wp !: |
---|
115 | REAL(wp), PARAMETER :: ppkth = 17.28520372419791_wp !: (non dimensional): gives the approximate |
---|
116 | ! !: layer number above which stretching will |
---|
117 | ! !: be maximum. Usually of order jpk/2. |
---|
118 | REAL(wp), PARAMETER :: ppacr = 5.00000000000_wp !: (non dimensional): stretching factor |
---|
119 | ! !: for the grid. The highest zacr, the smallest |
---|
120 | ! !: the stretching. |
---|
121 | ! If both ppa0 ppa1 and ppsur are specified to 0, then |
---|
122 | ! they are computed from ppdzmin, pphmax, ppkth, ppacr in dom_zgr |
---|
123 | REAL(wp), PARAMETER :: ppdzmin = pp_not_used !: vertical thickness of the top layer [meters] |
---|
124 | REAL(wp), PARAMETER :: pphmax = pp_not_used !: maximum depth of the ocean gdepw(jpk) [meters] |
---|
125 | |
---|
126 | #else |
---|
127 | !!--------------------------------------------------------------------- |
---|
128 | !! default option : Empty module |
---|
129 | !!--------------------------------------------------------------------- |
---|
130 | #endif |
---|
131 | |
---|
132 | !!====================================================================== |
---|
133 | END MODULE par_gyre |
---|