1 |
C $Header: /u/gcmpack/MITgcm/pkg/obcs/OBCS.h,v 1.22 2009/12/08 00:21:34 jmc Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#ifdef ALLOW_OBCS |
5 |
|
6 |
C-- Private logical flag to record active status of package |
7 |
c LOGICAL OBCSisON |
8 |
c COMMON /OBCS_PACKAGE/ OBCSisON |
9 |
|
10 |
C These are input arrays (of integers) that contain the *absolute* |
11 |
C computational index of an open-boundary (OB) point. |
12 |
C A zero (0) element means there is no corresponding OB in that column/row. |
13 |
C The computational coordinate refers to "tracer" cells. |
14 |
C For a northern/southern OB, the OB V point is to the south/north. |
15 |
C For an eastern/western OB, the OB U point is to the west/east. |
16 |
C eg. |
17 |
C OB_Jnorth(3)=34 means that: |
18 |
C T( 3 ,34) is a an OB point |
19 |
C U(3:4,34) is a an OB point |
20 |
C V( 4 ,34) is a an OB point |
21 |
C while |
22 |
C OB_Jsouth(3)=1 means that: |
23 |
C T( 3 ,1) is a an OB point |
24 |
C U(3:4,1) is a an OB point |
25 |
C V( 4 ,2) is a an OB point |
26 |
C |
27 |
C For convenience, negative values for Jnorth/Ieast refer to |
28 |
C points relative to the Northern/Eastern edges of the model |
29 |
C eg. OB_Jnorth(3)=-1 means that the point (3,Ny) is a northern O-B. |
30 |
C |
31 |
C OB_Jnorth(Nx) :: global index array of northern open-boundary point |
32 |
C OB_Jsouth(Nx) :: global index array of southern open-boundary point |
33 |
C OB_Ieast(Ny) :: global index array of eastern open-boundary point |
34 |
C OB_Iwest(Ny) :: global index array of western open-boundary point |
35 |
C useOrlanskiNorth/South/East/West |
36 |
C :: specify Orlanski boundary conditions for northern/ |
37 |
C southern/eastern/Western |
38 |
C useOBCSsponge :: turns on sponge layer along boundary (def=false) |
39 |
C spongeThickness :: number grid points that make up the sponge layer (def=0) |
40 |
C U/Vrelaxobcsinner/bound :: relaxation time scale (in seconds) for U/V-points |
41 |
C on the boundary (bound) and at the innermost grid point |
42 |
C of the sponge layer (inner); relaxation time scales |
43 |
C in-between are linearly interpolated from these values |
44 |
C useOBCSbalance :: balance the volume flux through boundary |
45 |
C at every time step |
46 |
C useOBCSprescribe :: read boundary conditions from a file |
47 |
C (overrides Orlanski and other boundary values) |
48 |
C OBCSprintDiags :: print boundary values to STDOUT (def=true) |
49 |
C useOBCSYearlyFields :: when reading boundary values by exf, assume yearly |
50 |
C climatology (def=false) |
51 |
C OBCSfixTopo :: check and adjust topography for problematic gradients |
52 |
C across boundaries (def=true) |
53 |
C OB[N,S,E,W][u,v,t,s,a,h,sn,sl,uice,vice]File :: Files with boundary |
54 |
C conditons, the letter combinations mean: |
55 |
C N/S/E/W :: northern/southern/eastern/western boundary |
56 |
C u/v/t/s :: ocean u/v velocities, temperature/salinity |
57 |
C a/h :: sea ice concentration/effective thickness |
58 |
C sn/sl :: effective snow thickness/sea ice salinity |
59 |
C uice/vice :: sea ice u/v drift velocities |
60 |
C |
61 |
|
62 |
COMMON /PARM_IL_OB/ |
63 |
& OB_Jnorth,OB_Jsouth,OB_Ieast,OB_Iwest, |
64 |
& spongeThickness, |
65 |
& useOrlanskiNorth,useOrlanskiSouth, |
66 |
& useOrlanskiEast,useOrlanskiWest, |
67 |
& useOBCSsponge, useOBCSbalance, useOBCSprescribe, |
68 |
& OBCSprintDiags, useOBCSYearlyFields, |
69 |
& OBCSfixTopo |
70 |
INTEGER OB_Jnorth(Nx) |
71 |
INTEGER OB_Jsouth(Nx) |
72 |
INTEGER OB_Ieast(Ny) |
73 |
INTEGER OB_Iwest(Ny) |
74 |
INTEGER spongeThickness |
75 |
LOGICAL useOrlanskiNorth |
76 |
LOGICAL useOrlanskiSouth |
77 |
LOGICAL useOrlanskiEast |
78 |
LOGICAL useOrlanskiWest |
79 |
LOGICAL useOBCSsponge |
80 |
LOGICAL useOBCSbalance |
81 |
LOGICAL useOBCSprescribe |
82 |
LOGICAL OBCSprintDiags |
83 |
LOGICAL useOBCSYearlyFields |
84 |
LOGICAL OBCSfixTopo |
85 |
|
86 |
COMMON /PARM_R_OB/ |
87 |
& Urelaxobcsinner,Urelaxobcsbound, |
88 |
& Vrelaxobcsinner,Vrelaxobcsbound |
89 |
_RS Urelaxobcsinner |
90 |
_RS Urelaxobcsbound |
91 |
_RS Vrelaxobcsinner |
92 |
_RS Vrelaxobcsbound |
93 |
|
94 |
C-- COMMON /GRID_OB/ Open boudary related stuff |
95 |
C OBNu is the U value imposed at the Northern OB |
96 |
C OBNv is the V value imposed at the Northern OB |
97 |
C OBNt is the T value imposed at the Northern OB |
98 |
C OBNs is the S value imposed at the Northern OB |
99 |
C OBNa is the ice AREA value imposed at the Northern OB |
100 |
C OBNh is the ice HEFF value imposed at the Northern OB |
101 |
C OBNsl is the ice HSALT value imposed at the Northern OB |
102 |
C OBNsn is the ice HSNOW value imposed at the Northern OB |
103 |
C OBNuice is the uice value imposed at the Northern OB |
104 |
C OBNvice is the vice value imposed at the Northern OB |
105 |
C etc |
106 |
C |
107 |
COMMON /GRID_IND_OB/ |
108 |
& OB_Jn,OB_Js,OB_Ie,OB_Iw |
109 |
INTEGER OB_Jn(1-Olx:sNx+Olx,nSx,nSy) |
110 |
INTEGER OB_Js(1-Olx:sNx+Olx,nSx,nSy) |
111 |
INTEGER OB_Ie(1-Oly:sNy+Oly,nSx,nSy) |
112 |
INTEGER OB_Iw(1-Oly:sNy+Oly,nSx,nSy) |
113 |
|
114 |
#ifdef ALLOW_OBCS_NORTH |
115 |
COMMON /GRID_N_OB/ |
116 |
& OBNu,OBNv,OBNt,OBNs |
117 |
_RL OBNu (1-Olx:sNx+Olx,Nr,nSx,nSy) |
118 |
_RL OBNv (1-Olx:sNx+Olx,Nr,nSx,nSy) |
119 |
_RL OBNt (1-Olx:sNx+Olx,Nr,nSx,nSy) |
120 |
_RL OBNs (1-Olx:sNx+Olx,Nr,nSx,nSy) |
121 |
#ifdef ALLOW_OBCS_PRESCRIBE |
122 |
COMMON /GRID_N_OB_AUX/ |
123 |
& OBNu0,OBNv0,OBNt0,OBNs0, |
124 |
& OBNu1,OBNv1,OBNt1,OBNs1 |
125 |
_RL OBNu0 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
126 |
_RL OBNv0 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
127 |
_RL OBNt0 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
128 |
_RL OBNs0 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
129 |
_RL OBNu1 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
130 |
_RL OBNv1 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
131 |
_RL OBNt1 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
132 |
_RL OBNs1 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
133 |
#endif /* ALLOW_OBCS_PRESCRIBE */ |
134 |
#ifdef ALLOW_SEAICE |
135 |
COMMON /SEAICE_N_OB/ OBNa,OBNh,OBNa0,OBNh0,OBNa1,OBNh1, |
136 |
& OBNsl,OBNsn,OBNsl0,OBNsn0,OBNsl1,OBNsn1, |
137 |
& OBNuice,OBNvice,OBNuice0,OBNvice0,OBNuice1,OBNvice1 |
138 |
_RL OBNa (1-Olx:sNx+Olx,nSx,nSy) |
139 |
_RL OBNh (1-Olx:sNx+Olx,nSx,nSy) |
140 |
_RL OBNa0 (1-Olx:sNx+Olx,nSx,nSy) |
141 |
_RL OBNh0 (1-Olx:sNx+Olx,nSx,nSy) |
142 |
_RL OBNa1 (1-Olx:sNx+Olx,nSx,nSy) |
143 |
_RL OBNh1 (1-Olx:sNx+Olx,nSx,nSy) |
144 |
_RL OBNsl (1-Olx:sNx+Olx,nSx,nSy) |
145 |
_RL OBNsn (1-Olx:sNx+Olx,nSx,nSy) |
146 |
_RL OBNsl0 (1-Olx:sNx+Olx,nSx,nSy) |
147 |
_RL OBNsn0 (1-Olx:sNx+Olx,nSx,nSy) |
148 |
_RL OBNsl1 (1-Olx:sNx+Olx,nSx,nSy) |
149 |
_RL OBNsn1 (1-Olx:sNx+Olx,nSx,nSy) |
150 |
_RL OBNuice (1-Olx:sNx+Olx,nSx,nSy) |
151 |
_RL OBNvice (1-Olx:sNx+Olx,nSx,nSy) |
152 |
_RL OBNuice0 (1-Olx:sNx+Olx,nSx,nSy) |
153 |
_RL OBNvice0 (1-Olx:sNx+Olx,nSx,nSy) |
154 |
_RL OBNuice1 (1-Olx:sNx+Olx,nSx,nSy) |
155 |
_RL OBNvice1 (1-Olx:sNx+Olx,nSx,nSy) |
156 |
#endif /* ALLOW_SEAICE */ |
157 |
#endif /* ALLOW_OBCS_NORTH */ |
158 |
|
159 |
#ifdef ALLOW_OBCS_SOUTH |
160 |
COMMON /GRID_S_OB/ |
161 |
& OBSu,OBSv,OBSt,OBSs |
162 |
_RL OBSu (1-Olx:sNx+Olx,Nr,nSx,nSy) |
163 |
_RL OBSv (1-Olx:sNx+Olx,Nr,nSx,nSy) |
164 |
_RL OBSt (1-Olx:sNx+Olx,Nr,nSx,nSy) |
165 |
_RL OBSs (1-Olx:sNx+Olx,Nr,nSx,nSy) |
166 |
#ifdef ALLOW_OBCS_PRESCRIBE |
167 |
COMMON /GRID_S_OB_AUX/ |
168 |
& OBSu0,OBSv0,OBSt0,OBSs0, |
169 |
& OBSu1,OBSv1,OBSt1,OBSs1 |
170 |
_RL OBSu0 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
171 |
_RL OBSv0 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
172 |
_RL OBSt0 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
173 |
_RL OBSs0 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
174 |
_RL OBSu1 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
175 |
_RL OBSv1 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
176 |
_RL OBSt1 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
177 |
_RL OBSs1 (1-Olx:sNx+Olx,Nr,nSx,nSy) |
178 |
#endif /* ALLOW_OBCS_PRESCRIBE */ |
179 |
#ifdef ALLOW_SEAICE |
180 |
COMMON /SEAICE_S_OB/ OBSa,OBSh,OBSa0,OBSh0,OBSa1,OBSh1, |
181 |
& OBSsl,OBSsn,OBSsl0,OBSsn0,OBSsl1,OBSsn1, |
182 |
& OBSuice,OBSvice,OBSuice0,OBSvice0,OBSuice1,OBSvice1 |
183 |
_RL OBSa (1-Olx:sNx+Olx,nSx,nSy) |
184 |
_RL OBSh (1-Olx:sNx+Olx,nSx,nSy) |
185 |
_RL OBSa0 (1-Olx:sNx+Olx,nSx,nSy) |
186 |
_RL OBSh0 (1-Olx:sNx+Olx,nSx,nSy) |
187 |
_RL OBSa1 (1-Olx:sNx+Olx,nSx,nSy) |
188 |
_RL OBSh1 (1-Olx:sNx+Olx,nSx,nSy) |
189 |
_RL OBSsl (1-Olx:sNx+Olx,nSx,nSy) |
190 |
_RL OBSsn (1-Olx:sNx+Olx,nSx,nSy) |
191 |
_RL OBSsl0 (1-Olx:sNx+Olx,nSx,nSy) |
192 |
_RL OBSsn0 (1-Olx:sNx+Olx,nSx,nSy) |
193 |
_RL OBSsl1 (1-Olx:sNx+Olx,nSx,nSy) |
194 |
_RL OBSsn1 (1-Olx:sNx+Olx,nSx,nSy) |
195 |
_RL OBSuice (1-Olx:sNx+Olx,nSx,nSy) |
196 |
_RL OBSvice (1-Olx:sNx+Olx,nSx,nSy) |
197 |
_RL OBSuice0 (1-Olx:sNx+Olx,nSx,nSy) |
198 |
_RL OBSvice0 (1-Olx:sNx+Olx,nSx,nSy) |
199 |
_RL OBSuice1 (1-Olx:sNx+Olx,nSx,nSy) |
200 |
_RL OBSvice1 (1-Olx:sNx+Olx,nSx,nSy) |
201 |
#endif /* ALLOW_SEAICE */ |
202 |
#endif /* ALLOW_OBCS_SOUTH */ |
203 |
|
204 |
#ifdef ALLOW_OBCS_EAST |
205 |
COMMON /GRID_E_OB/ |
206 |
& OBEu,OBEv,OBEt,OBEs |
207 |
_RL OBEu (1-Oly:sNy+Oly,Nr,nSx,nSy) |
208 |
_RL OBEv (1-Oly:sNy+Oly,Nr,nSx,nSy) |
209 |
_RL OBEt (1-Oly:sNy+Oly,Nr,nSx,nSy) |
210 |
_RL OBEs (1-Oly:sNy+Oly,Nr,nSx,nSy) |
211 |
#ifdef ALLOW_OBCS_PRESCRIBE |
212 |
COMMON /GRID_E_OB_AUX/ |
213 |
& OBEu0,OBEv0,OBEt0,OBEs0, |
214 |
& OBEu1,OBEv1,OBEt1,OBEs1 |
215 |
_RL OBEu0 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
216 |
_RL OBEv0 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
217 |
_RL OBEt0 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
218 |
_RL OBEs0 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
219 |
_RL OBEu1 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
220 |
_RL OBEv1 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
221 |
_RL OBEt1 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
222 |
_RL OBEs1 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
223 |
#endif /* ALLOW_OBCS_PRESCRIBE */ |
224 |
#ifdef ALLOW_SEAICE |
225 |
COMMON /SEAICE_E_OB/ OBEa,OBEh,OBEa0,OBEh0,OBEa1,OBEh1, |
226 |
& OBEsl,OBEsn,OBEsl0,OBEsn0,OBEsl1,OBEsn1, |
227 |
& OBEuice,OBEvice,OBEuice0,OBEvice0,OBEuice1,OBEvice1 |
228 |
_RL OBEa (1-Oly:sNy+Oly,nSx,nSy) |
229 |
_RL OBEh (1-Oly:sNy+Oly,nSx,nSy) |
230 |
_RL OBEa0 (1-Oly:sNy+Oly,nSx,nSy) |
231 |
_RL OBEh0 (1-Oly:sNy+Oly,nSx,nSy) |
232 |
_RL OBEa1 (1-Oly:sNy+Oly,nSx,nSy) |
233 |
_RL OBEh1 (1-Oly:sNy+Oly,nSx,nSy) |
234 |
_RL OBEsl (1-Oly:sNy+Oly,nSx,nSy) |
235 |
_RL OBEsn (1-Oly:sNy+Oly,nSx,nSy) |
236 |
_RL OBEsl0 (1-Oly:sNy+Oly,nSx,nSy) |
237 |
_RL OBEsn0 (1-Oly:sNy+Oly,nSx,nSy) |
238 |
_RL OBEsl1 (1-Oly:sNy+Oly,nSx,nSy) |
239 |
_RL OBEsn1 (1-Oly:sNy+Oly,nSx,nSy) |
240 |
_RL OBEuice (1-Oly:sNy+Oly,nSx,nSy) |
241 |
_RL OBEvice (1-Oly:sNy+Oly,nSx,nSy) |
242 |
_RL OBEuice0 (1-Oly:sNy+Oly,nSx,nSy) |
243 |
_RL OBEvice0 (1-Oly:sNy+Oly,nSx,nSy) |
244 |
_RL OBEuice1 (1-Oly:sNy+Oly,nSx,nSy) |
245 |
_RL OBEvice1 (1-Oly:sNy+Oly,nSx,nSy) |
246 |
#endif /* ALLOW_SEAICE */ |
247 |
#endif /* ALLOW_OBCS_EAST */ |
248 |
|
249 |
#ifdef ALLOW_OBCS_WEST |
250 |
COMMON /GRID_W_OB/ |
251 |
& OBWu,OBWv,OBWt,OBWs |
252 |
_RL OBWu (1-Oly:sNy+Oly,Nr,nSx,nSy) |
253 |
_RL OBWv (1-Oly:sNy+Oly,Nr,nSx,nSy) |
254 |
_RL OBWt (1-Oly:sNy+Oly,Nr,nSx,nSy) |
255 |
_RL OBWs (1-Oly:sNy+Oly,Nr,nSx,nSy) |
256 |
#ifdef ALLOW_OBCS_PRESCRIBE |
257 |
COMMON /GRID_W_OB_AUX/ |
258 |
& OBWu0,OBWv0,OBWt0,OBWs0, |
259 |
& OBWu1,OBWv1,OBWt1,OBWs1 |
260 |
_RL OBWu0 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
261 |
_RL OBWv0 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
262 |
_RL OBWt0 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
263 |
_RL OBWs0 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
264 |
_RL OBWu1 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
265 |
_RL OBWv1 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
266 |
_RL OBWt1 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
267 |
_RL OBWs1 (1-Oly:sNy+Oly,Nr,nSx,nSy) |
268 |
#endif /* ALLOW_OBCS_PRESCRIBE */ |
269 |
#ifdef ALLOW_SEAICE |
270 |
COMMON /SEAICE_W_OB/ OBWa,OBWh,OBWa0,OBWh0,OBWa1,OBWh1, |
271 |
& OBWsl,OBWsn,OBWsl0,OBWsn0,OBWsl1,OBWsn1, |
272 |
& OBWuice,OBWvice,OBWuice0,OBWvice0,OBWuice1,OBWvice1 |
273 |
_RL OBWa (1-Oly:sNy+Oly,nSx,nSy) |
274 |
_RL OBWh (1-Oly:sNy+Oly,nSx,nSy) |
275 |
_RL OBWa0 (1-Oly:sNy+Oly,nSx,nSy) |
276 |
_RL OBWh0 (1-Oly:sNy+Oly,nSx,nSy) |
277 |
_RL OBWa1 (1-Oly:sNy+Oly,nSx,nSy) |
278 |
_RL OBWh1 (1-Oly:sNy+Oly,nSx,nSy) |
279 |
_RL OBWsl (1-Oly:sNy+Oly,nSx,nSy) |
280 |
_RL OBWsn (1-Oly:sNy+Oly,nSx,nSy) |
281 |
_RL OBWsl0 (1-Oly:sNy+Oly,nSx,nSy) |
282 |
_RL OBWsn0 (1-Oly:sNy+Oly,nSx,nSy) |
283 |
_RL OBWsl1 (1-Oly:sNy+Oly,nSx,nSy) |
284 |
_RL OBWsn1 (1-Oly:sNy+Oly,nSx,nSy) |
285 |
_RL OBWuice (1-Oly:sNy+Oly,nSx,nSy) |
286 |
_RL OBWvice (1-Oly:sNy+Oly,nSx,nSy) |
287 |
_RL OBWuice0 (1-Oly:sNy+Oly,nSx,nSy) |
288 |
_RL OBWvice0 (1-Oly:sNy+Oly,nSx,nSy) |
289 |
_RL OBWuice1 (1-Oly:sNy+Oly,nSx,nSy) |
290 |
_RL OBWvice1 (1-Oly:sNy+Oly,nSx,nSy) |
291 |
#endif /* ALLOW_SEAICE */ |
292 |
#endif /* ALLOW_OBCS_WEST */ |
293 |
|
294 |
COMMON /OB_FILES/ |
295 |
& OBNetaFile,OBSetaFile,OBEetaFile,OBWetaFile, |
296 |
& OBNwFile, OBSwFile, OBEwFile, OBWwFile, |
297 |
& OBNuFile,OBNvFile,OBNtFile,OBNsFile,OBNaFile,OBNhFile, |
298 |
& OBSuFile,OBSvFile,OBStFile,OBSsFile,OBSaFile,OBShFile, |
299 |
& OBEuFile,OBEvFile,OBEtFile,OBEsFile,OBEaFile,OBEhFile, |
300 |
& OBWuFile,OBWvFile,OBWtFile,OBWsFile,OBWaFile,OBWhFile, |
301 |
& OBNslFile,OBSslFile,OBEslFile,OBWslFile, |
302 |
& OBNsnFile,OBSsnFile,OBEsnFile,OBWsnFile, |
303 |
& OBNuiceFile,OBSuiceFile,OBEuiceFile,OBWuiceFile, |
304 |
& OBNviceFile,OBSviceFile,OBEviceFile,OBWviceFile |
305 |
CHARACTER*(MAX_LEN_FNAM) |
306 |
& OBNetaFile,OBSetaFile,OBEetaFile,OBWetaFile, |
307 |
& OBNwFile, OBSwFile, OBEwFile, OBWwFile, |
308 |
& OBNuFile,OBNvFile,OBNtFile,OBNsFile,OBNaFile,OBNhFile, |
309 |
& OBSuFile,OBSvFile,OBStFile,OBSsFile,OBSaFile,OBShFile, |
310 |
& OBEuFile,OBEvFile,OBEtFile,OBEsFile,OBEaFile,OBEhFile, |
311 |
& OBWuFile,OBWvFile,OBWtFile,OBWsFile,OBWaFile,OBWhFile, |
312 |
& OBNslFile,OBSslFile,OBEslFile,OBWslFile, |
313 |
& OBNsnFile,OBSsnFile,OBEsnFile,OBWsnFile, |
314 |
& OBNuiceFile,OBSuiceFile,OBEuiceFile,OBWuiceFile, |
315 |
& OBNviceFile,OBSviceFile,OBEviceFile,OBWviceFile |
316 |
|
317 |
#ifdef ALLOW_NONHYDROSTATIC |
318 |
COMMON /GRID_OBNH/ |
319 |
& OBNw, OBSw, OBEw, OBWw |
320 |
_RL OBNw (1-Olx:sNx+Olx,Nr,nSx,nSy) |
321 |
_RL OBSw (1-Olx:sNx+Olx,Nr,nSx,nSy) |
322 |
_RL OBEw (1-Oly:sNy+Oly,Nr,nSx,nSy) |
323 |
_RL OBWw (1-Oly:sNy+Oly,Nr,nSx,nSy) |
324 |
#ifdef ALLOW_OBCS_PRESCRIBE |
325 |
COMMON /GRID_OBNH_AUX/ |
326 |
& OBNw0, OBSw0, OBEw0, OBWw0, |
327 |
& OBNw1, OBSw1, OBEw1, OBWw1 |
328 |
_RL OBNw0(1-Olx:sNx+Olx,Nr,nSx,nSy) |
329 |
_RL OBSw0(1-Olx:sNx+Olx,Nr,nSx,nSy) |
330 |
_RL OBEw0(1-Oly:sNy+Oly,Nr,nSx,nSy) |
331 |
_RL OBWw0(1-Oly:sNy+Oly,Nr,nSx,nSy) |
332 |
_RL OBNw1(1-Olx:sNx+Olx,Nr,nSx,nSy) |
333 |
_RL OBSw1(1-Olx:sNx+Olx,Nr,nSx,nSy) |
334 |
_RL OBEw1(1-Oly:sNy+Oly,Nr,nSx,nSy) |
335 |
_RL OBWw1(1-Oly:sNy+Oly,Nr,nSx,nSy) |
336 |
#endif /* ALLOW_OBCS_PRESCRIBE */ |
337 |
#endif /* ALLOW_NONHYDROSTATIC */ |
338 |
|
339 |
#ifdef NONLIN_FRSURF |
340 |
COMMON /GRID_OB_NLFS/ |
341 |
& OBNhfac0,OBShfac0,OBEhfac0,OBWhfac0 |
342 |
_RS OBNhfac0(1-Olx:sNx+Olx,nSx,nSy) |
343 |
_RS OBShfac0(1-Olx:sNx+Olx,nSx,nSy) |
344 |
_RS OBEhfac0(1-Oly:sNy+Oly,nSx,nSy) |
345 |
_RS OBWhfac0(1-Oly:sNy+Oly,nSx,nSy) |
346 |
COMMON /OB_NLFS/ |
347 |
& OBNeta, OBSeta, OBEeta, OBWeta |
348 |
_RL OBNeta (1-Olx:sNx+Olx,nSx,nSy) |
349 |
_RL OBSeta (1-Olx:sNx+Olx,nSx,nSy) |
350 |
_RL OBEeta (1-Oly:sNy+Oly,nSx,nSy) |
351 |
_RL OBWeta (1-Oly:sNy+Oly,nSx,nSy) |
352 |
#ifdef ALLOW_OBCS_PRESCRIBE |
353 |
COMMON /OB_NLFS_AUX/ |
354 |
& OBNeta0,OBSeta0,OBEeta0,OBWeta0, |
355 |
& OBNeta1,OBSeta1,OBEeta1,OBWeta1 |
356 |
_RL OBNeta0(1-Olx:sNx+Olx,nSx,nSy) |
357 |
_RL OBSeta0(1-Olx:sNx+Olx,nSx,nSy) |
358 |
_RL OBEeta0(1-Oly:sNy+Oly,nSx,nSy) |
359 |
_RL OBWeta0(1-Oly:sNy+Oly,nSx,nSy) |
360 |
_RL OBNeta1(1-Olx:sNx+Olx,nSx,nSy) |
361 |
_RL OBSeta1(1-Olx:sNx+Olx,nSx,nSy) |
362 |
_RL OBEeta1(1-Oly:sNy+Oly,nSx,nSy) |
363 |
_RL OBWeta1(1-Oly:sNy+Oly,nSx,nSy) |
364 |
#endif /* ALLOW_OBCS_PRESCRIBE */ |
365 |
#endif /* NONLIN_FRSURF */ |
366 |
|
367 |
COMMON /GG_VOLFLUX/ shiftvel |
368 |
_RL shiftvel(2) |
369 |
|
370 |
CMM( |
371 |
#ifdef ALLOW_OBCS_CONTROL |
372 |
common /ih_modes/ modesv |
373 |
_RL modesv (nr,nr,nr) |
374 |
#endif |
375 |
CMM) |
376 |
|
377 |
#endif /* ALLOW_OBCS */ |