/[MITgcm]/MITgcm/pkg/obcs/obcs_init_variables.F
ViewVC logotype

Annotation of /MITgcm/pkg/obcs/obcs_init_variables.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.41 - (hide annotations) (download)
Tue Oct 25 15:21:11 2011 UTC (12 years, 8 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint63e, checkpoint63f
Changes since 1.40: +13 -1 lines
initialize new variables OB??Stevens

1 mlosch 1.41 C $Header: /u/gcmpack/MITgcm/pkg/obcs/obcs_init_variables.F,v 1.40 2011/05/24 14:31:14 jmc Exp $
2 adcroft 1.3 C $Name: $
3 adcroft 1.2
4     #include "OBCS_OPTIONS.h"
5    
6 jmc 1.35 CBOP
7     C !ROUTINE: OBCS_INIT_VARIABLES
8     C !INTERFACE:
9 adcroft 1.2 SUBROUTINE OBCS_INIT_VARIABLES( myThid )
10 jmc 1.35
11     C !DESCRIPTION:
12 jmc 1.33 C *==========================================================*
13     C | SUBROUTINE OBCS_INIT_VARIABLES
14     C | o Initialise OBCs variable data
15     C *==========================================================*
16     C *==========================================================*
17 jmc 1.35
18     C !USES:
19 adcroft 1.2 IMPLICIT NONE
20     C === Global variables ===
21     #include "SIZE.h"
22     #include "EEPARAMS.h"
23     #include "PARAMS.h"
24     #include "DYNVARS.h"
25 jmc 1.40 #include "OBCS_PARAMS.h"
26     c#include "OBCS_GRID.h"
27     #include "OBCS_FIELDS.h"
28     #include "OBCS_SEAICE.h"
29 jmc 1.17 #ifdef ALLOW_PTRACERS
30 mlosch 1.14 #include "PTRACERS_SIZE.h"
31 jmc 1.24 #include "PTRACERS_PARAMS.h"
32     #include "PTRACERS_FIELDS.h"
33 mlosch 1.14 #include "OBCS_PTRACERS.h"
34     #endif /* ALLOW_PTRACERS */
35 adcroft 1.2
36 jmc 1.35 C !INPUT/OUTPUT PARAMETERS:
37 adcroft 1.2 C == Routine arguments ==
38 jmc 1.35 C myThid :: my Thread Id Number
39 adcroft 1.2 INTEGER myThid
40 jmc 1.35 CEOP
41 adcroft 1.2
42     #ifdef ALLOW_OBCS
43    
44 jmc 1.35 C !LOCAL VARIABLES:
45 adcroft 1.2 C == Local variables ==
46     INTEGER bi, bj
47 jmc 1.39 INTEGER i, j, k
48 mlosch 1.14 #ifdef ALLOW_PTRACERS
49     INTEGER iTracer
50     #endif /* ALLOW_PTRACERS */
51 adcroft 1.2
52 adcroft 1.12 #ifdef ALLOW_DEBUG
53     IF (debugMode) CALL DEBUG_ENTER('OBCS_INIT_VARIABLES',myThid)
54     #endif
55    
56 adcroft 1.2 DO bj = myByLo(myThid), myByHi(myThid)
57     DO bi = myBxLo(myThid), myBxHi(myThid)
58    
59 jmc 1.37 #ifdef ALLOW_OBCS_PRESCRIBE
60     OBCS_ldRec(bi,bj) = 0
61     #endif
62 jmc 1.39 DO k=1,Nr
63     DO i=1-Olx,sNx+Olx
64 heimbach 1.10 #ifdef ALLOW_OBCS_NORTH
65 jmc 1.39 OBNu(i,k,bi,bj)=0. _d 0
66     OBNv(i,k,bi,bj)=0. _d 0
67     OBNt(i,k,bi,bj)=0. _d 0
68     OBNs(i,k,bi,bj)=0. _d 0
69     # ifdef ALLOW_OBCS_PRESCRIBE
70     OBNu0(i,k,bi,bj)=0. _d 0
71     OBNv0(i,k,bi,bj)=0. _d 0
72     OBNt0(i,k,bi,bj)=0. _d 0
73     OBNs0(i,k,bi,bj)=0. _d 0
74     OBNu1(i,k,bi,bj)=0. _d 0
75     OBNv1(i,k,bi,bj)=0. _d 0
76     OBNt1(i,k,bi,bj)=0. _d 0
77     OBNs1(i,k,bi,bj)=0. _d 0
78 heimbach 1.10 # endif
79 mlosch 1.41 # ifdef ALLOW_OBCS_STEVENS
80     OBNvStevens(i,k,bi,bj)=0. _d 0
81     # endif /* ALLOW_OBCS_STEVENS */
82 heimbach 1.10 #endif /* ALLOW_OBCS_NORTH */
83    
84     #ifdef ALLOW_OBCS_SOUTH
85 jmc 1.39 OBSu(i,k,bi,bj)=0. _d 0
86     OBSv(i,k,bi,bj)=0. _d 0
87     OBSt(i,k,bi,bj)=0. _d 0
88     OBSs(i,k,bi,bj)=0. _d 0
89     # ifdef ALLOW_OBCS_PRESCRIBE
90     OBSu0(i,k,bi,bj)=0. _d 0
91     OBSv0(i,k,bi,bj)=0. _d 0
92     OBSt0(i,k,bi,bj)=0. _d 0
93     OBSs0(i,k,bi,bj)=0. _d 0
94     OBSu1(i,k,bi,bj)=0. _d 0
95     OBSv1(i,k,bi,bj)=0. _d 0
96     OBSt1(i,k,bi,bj)=0. _d 0
97     OBSs1(i,k,bi,bj)=0. _d 0
98 heimbach 1.10 # endif
99 mlosch 1.41 # ifdef ALLOW_OBCS_STEVENS
100     OBSvStevens(i,k,bi,bj)=0. _d 0
101     # endif /* ALLOW_OBCS_STEVENS */
102 heimbach 1.10 #endif /* ALLOW_OBCS_SOUTH */
103 adcroft 1.2 ENDDO
104 heimbach 1.10
105 jmc 1.39 DO j=1-Oly,sNy+Oly
106 heimbach 1.10 #ifdef ALLOW_OBCS_EAST
107 jmc 1.39 OBEu(j,k,bi,bj)=0. _d 0
108     OBEv(j,k,bi,bj)=0. _d 0
109     OBEt(j,k,bi,bj)=0. _d 0
110     OBEs(j,k,bi,bj)=0. _d 0
111     # ifdef ALLOW_OBCS_PRESCRIBE
112     OBEu0(j,k,bi,bj)=0. _d 0
113     OBEv0(j,k,bi,bj)=0. _d 0
114     OBEt0(j,k,bi,bj)=0. _d 0
115     OBEs0(j,k,bi,bj)=0. _d 0
116     OBEu1(j,k,bi,bj)=0. _d 0
117     OBEv1(j,k,bi,bj)=0. _d 0
118     OBEt1(j,k,bi,bj)=0. _d 0
119     OBEs1(j,k,bi,bj)=0. _d 0
120 heimbach 1.10 # endif
121 mlosch 1.41 # ifdef ALLOW_OBCS_STEVENS
122     OBEuStevens(j,k,bi,bj)=0. _d 0
123     # endif /* ALLOW_OBCS_STEVENS */
124 heimbach 1.10 #endif /* ALLOW_OBCS_EAST */
125    
126     #ifdef ALLOW_OBCS_WEST
127 jmc 1.39 OBWu(j,k,bi,bj)=0. _d 0
128     OBWv(j,k,bi,bj)=0. _d 0
129     OBWt(j,k,bi,bj)=0. _d 0
130     OBWs(j,k,bi,bj)=0. _d 0
131     # ifdef ALLOW_OBCS_PRESCRIBE
132     OBWu0(j,k,bi,bj)=0. _d 0
133     OBWv0(j,k,bi,bj)=0. _d 0
134     OBWt0(j,k,bi,bj)=0. _d 0
135     OBWs0(j,k,bi,bj)=0. _d 0
136     OBWu1(j,k,bi,bj)=0. _d 0
137     OBWv1(j,k,bi,bj)=0. _d 0
138     OBWt1(j,k,bi,bj)=0. _d 0
139     OBWs1(j,k,bi,bj)=0. _d 0
140 heimbach 1.10 # endif
141 mlosch 1.41 # ifdef ALLOW_OBCS_STEVENS
142     OBWuStevens(j,k,bi,bj)=0. _d 0
143     # endif /* ALLOW_OBCS_STEVENS */
144 heimbach 1.10 #endif /* ALLOW_OBCS_WEST */
145 adcroft 1.2 ENDDO
146     ENDDO
147 jmc 1.5
148 jmc 1.33 #ifdef ALLOW_NONHYDROSTATIC
149 jmc 1.39 DO k=1,Nr
150     DO i=1-Olx,sNx+Olx
151     OBNw (i,k,bi,bj) = 0. _d 0
152     OBSw (i,k,bi,bj) = 0. _d 0
153     # ifdef ALLOW_OBCS_PRESCRIBE
154     OBNw0(i,k,bi,bj) = 0. _d 0
155     OBSw0(i,k,bi,bj) = 0. _d 0
156     OBNw1(i,k,bi,bj) = 0. _d 0
157     OBSw1(i,k,bi,bj) = 0. _d 0
158 jmc 1.33 # endif
159     ENDDO
160 jmc 1.39 DO j=1-Oly,sNy+Oly
161     OBEw (j,k,bi,bj) = 0. _d 0
162     OBWw (j,k,bi,bj) = 0. _d 0
163     # ifdef ALLOW_OBCS_PRESCRIBE
164     OBEw0(j,k,bi,bj) = 0. _d 0
165     OBWw0(j,k,bi,bj) = 0. _d 0
166     OBEw1(j,k,bi,bj) = 0. _d 0
167     OBWw1(j,k,bi,bj) = 0. _d 0
168 jmc 1.33 # endif
169     ENDDO
170     ENDDO
171     #endif /* ALLOW_NONHYDROSTATIC */
172    
173     #ifdef NONLIN_FRSURF
174 jmc 1.39 DO i=1-Olx,sNx+Olx
175     OBNeta (i,bi,bj) = 0. _d 0
176     OBSeta (i,bi,bj) = 0. _d 0
177     # ifdef ALLOW_OBCS_PRESCRIBE
178     OBNeta0(i,bi,bj) = 0. _d 0
179     OBSeta0(i,bi,bj) = 0. _d 0
180     OBNeta1(i,bi,bj) = 0. _d 0
181     OBSeta1(i,bi,bj) = 0. _d 0
182 jmc 1.33 # endif
183     ENDDO
184 jmc 1.39 DO j=1-Oly,sNy+Oly
185     OBEeta (j,bi,bj) = 0. _d 0
186     OBWeta (j,bi,bj) = 0. _d 0
187     # ifdef ALLOW_OBCS_PRESCRIBE
188     OBEeta0(j,bi,bj) = 0. _d 0
189     OBWeta0(j,bi,bj) = 0. _d 0
190     OBEeta1(j,bi,bj) = 0. _d 0
191     OBWeta1(j,bi,bj) = 0. _d 0
192 jmc 1.33 # endif
193     ENDDO
194     #endif /* NONLIN_FRSURF */
195    
196     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
197    
198 dimitri 1.21 #ifdef ALLOW_SEAICE
199 jmc 1.39 DO i=1-Olx,sNx+Olx
200 dimitri 1.21 #ifdef ALLOW_OBCS_NORTH
201 jmc 1.39 OBNa (i,bi,bj)=0. _d 0
202     OBNh (i,bi,bj)=0. _d 0
203     OBNa0(i,bi,bj)=0. _d 0
204     OBNh0(i,bi,bj)=0. _d 0
205     OBNa1(i,bi,bj)=0. _d 0
206     OBNh1(i,bi,bj)=0. _d 0
207     OBNsl (i,bi,bj)=0. _d 0
208     OBNsn (i,bi,bj)=0. _d 0
209     OBNsl0(i,bi,bj)=0. _d 0
210     OBNsn0(i,bi,bj)=0. _d 0
211     OBNsl1(i,bi,bj)=0. _d 0
212     OBNsn1(i,bi,bj)=0. _d 0
213     OBNuice (i,bi,bj)=0. _d 0
214     OBNvice (i,bi,bj)=0. _d 0
215     OBNuice0(i,bi,bj)=0. _d 0
216     OBNvice0(i,bi,bj)=0. _d 0
217     OBNuice1(i,bi,bj)=0. _d 0
218     OBNvice1(i,bi,bj)=0. _d 0
219 dimitri 1.21 #endif /* ALLOW_OBCS_NORTH */
220     #ifdef ALLOW_OBCS_SOUTH
221 jmc 1.39 OBSa (i,bi,bj)=0. _d 0
222     OBSh (i,bi,bj)=0. _d 0
223     OBSa0(i,bi,bj)=0. _d 0
224     OBSh0(i,bi,bj)=0. _d 0
225     OBSa1(i,bi,bj)=0. _d 0
226     OBSh1(i,bi,bj)=0. _d 0
227     OBSsl (i,bi,bj)=0. _d 0
228     OBSsn (i,bi,bj)=0. _d 0
229     OBSsl0(i,bi,bj)=0. _d 0
230     OBSsn0(i,bi,bj)=0. _d 0
231     OBSsl1(i,bi,bj)=0. _d 0
232     OBSsn1(i,bi,bj)=0. _d 0
233     OBSuice (i,bi,bj)=0. _d 0
234     OBSvice (i,bi,bj)=0. _d 0
235     OBSuice0(i,bi,bj)=0. _d 0
236     OBSvice0(i,bi,bj)=0. _d 0
237     OBSuice1(i,bi,bj)=0. _d 0
238     OBSvice1(i,bi,bj)=0. _d 0
239 dimitri 1.21 #endif /* ALLOW_OBCS_SOUTH */
240     ENDDO
241 jmc 1.39 DO j=1-Oly,sNy+Oly
242 dimitri 1.21 #ifdef ALLOW_OBCS_EAST
243 jmc 1.39 OBEa (j,bi,bj)=0. _d 0
244     OBEh (j,bi,bj)=0. _d 0
245     OBEa0(j,bi,bj)=0. _d 0
246     OBEh0(j,bi,bj)=0. _d 0
247     OBEa1(j,bi,bj)=0. _d 0
248     OBEh1(j,bi,bj)=0. _d 0
249     OBEsl (j,bi,bj)=0. _d 0
250     OBEsn (j,bi,bj)=0. _d 0
251     OBEsl0(j,bi,bj)=0. _d 0
252     OBEsn0(j,bi,bj)=0. _d 0
253     OBEsl1(j,bi,bj)=0. _d 0
254     OBEsn1(j,bi,bj)=0. _d 0
255     OBEuice (j,bi,bj)=0. _d 0
256     OBEvice (j,bi,bj)=0. _d 0
257     OBEuice0(j,bi,bj)=0. _d 0
258     OBEvice0(j,bi,bj)=0. _d 0
259     OBEuice1(j,bi,bj)=0. _d 0
260     OBEvice1(j,bi,bj)=0. _d 0
261 dimitri 1.21 #endif /* ALLOW_OBCS_EAST */
262     #ifdef ALLOW_OBCS_WEST
263 jmc 1.39 OBWa (j,bi,bj)=0. _d 0
264     OBWh (j,bi,bj)=0. _d 0
265     OBWa0(j,bi,bj)=0. _d 0
266     OBWh0(j,bi,bj)=0. _d 0
267     OBWa1(j,bi,bj)=0. _d 0
268     OBWh1(j,bi,bj)=0. _d 0
269     OBWsl (j,bi,bj)=0. _d 0
270     OBWsn (j,bi,bj)=0. _d 0
271     OBWsl0(j,bi,bj)=0. _d 0
272     OBWsn0(j,bi,bj)=0. _d 0
273     OBWsl1(j,bi,bj)=0. _d 0
274     OBWsn1(j,bi,bj)=0. _d 0
275     OBWuice (j,bi,bj)=0. _d 0
276     OBWvice (j,bi,bj)=0. _d 0
277     OBWuice0(j,bi,bj)=0. _d 0
278     OBWvice0(j,bi,bj)=0. _d 0
279     OBWuice1(j,bi,bj)=0. _d 0
280     OBWvice1(j,bi,bj)=0. _d 0
281 dimitri 1.21 #endif /* ALLOW_OBCS_WEST */
282     ENDDO
283     #endif /* ALLOW_SEAICE */
284    
285 mlosch 1.14 #ifdef ALLOW_PTRACERS
286 mlosch 1.20 #ifndef ALLOW_AUTODIFF_TAMC
287 mlosch 1.16 IF ( usePTRACERS ) THEN
288 mlosch 1.20 #endif
289 mlosch 1.16 DO iTracer=1,PTRACERS_numInUse
290 jmc 1.39 DO k=1,Nr
291     DO i=1-Olx,sNx+Olx
292 mlosch 1.14 #ifdef ALLOW_OBCS_NORTH
293 jmc 1.39 OBNptr (i,k,bi,bj,iTracer)=0. _d 0
294 mlosch 1.14 # ifdef ALLOW_OBCS_PRESCRIBE
295 jmc 1.39 OBNptr0(i,k,bi,bj,iTracer)=0. _d 0
296     OBNptr1(i,k,bi,bj,iTracer)=0. _d 0
297 mlosch 1.14 # endif
298     #endif /* ALLOW_OBCS_NORTH */
299 jmc 1.27
300 mlosch 1.14 #ifdef ALLOW_OBCS_SOUTH
301 jmc 1.39 OBSptr (i,k,bi,bj,iTracer)=0. _d 0
302 mlosch 1.14 # ifdef ALLOW_OBCS_PRESCRIBE
303 jmc 1.39 OBSptr0(i,k,bi,bj,iTracer)=0. _d 0
304     OBSptr1(i,k,bi,bj,iTracer)=0. _d 0
305 mlosch 1.14 # endif
306     #endif /* ALLOW_OBCS_SOUTH */
307 mlosch 1.16 ENDDO
308 jmc 1.27
309 jmc 1.39 DO j=1-Oly,sNy+Oly
310 mlosch 1.14 #ifdef ALLOW_OBCS_EAST
311 jmc 1.39 OBEptr (j,k,bi,bj,iTracer)=0. _d 0
312 mlosch 1.14 # ifdef ALLOW_OBCS_PRESCRIBE
313 jmc 1.39 OBEptr0(j,k,bi,bj,iTracer)=0. _d 0
314     OBEptr1(j,k,bi,bj,iTracer)=0. _d 0
315 mlosch 1.14 # endif
316     #endif /* ALLOW_OBCS_EAST */
317 jmc 1.27
318 mlosch 1.14 #ifdef ALLOW_OBCS_WEST
319 jmc 1.39 OBWptr (j,k,bi,bj,iTracer)=0. _d 0
320 mlosch 1.14 # ifdef ALLOW_OBCS_PRESCRIBE
321 jmc 1.39 OBWptr0(j,k,bi,bj,iTracer)=0. _d 0
322     OBWptr1(j,k,bi,bj,iTracer)=0. _d 0
323 mlosch 1.14 # endif
324     #endif /* ALLOW_OBCS_WEST */
325 mlosch 1.16 ENDDO
326 mlosch 1.14 ENDDO
327     ENDDO
328 mlosch 1.20 #ifndef ALLOW_AUTODIFF_TAMC
329 mlosch 1.16 ENDIF
330 mlosch 1.20 #endif
331 mlosch 1.14 #endif /* ALLOW_PTRACERS */
332    
333 jmc 1.33 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
334 adcroft 1.2
335     #ifdef ALLOW_ORLANSKI
336     IF (useOrlanskiNorth.OR.useOrlanskiSouth.OR.
337     & useOrlanskiEast.OR.useOrlanskiWest) THEN
338 adcroft 1.12 #ifdef ALLOW_DEBUG
339 jmc 1.39 IF (debugMode) CALL DEBUG_CALL('ORLANSKI_INIT',myThid)
340 adcroft 1.12 #endif
341 adcroft 1.2 CALL ORLANSKI_INIT(bi, bj, myThid)
342     ENDIF
343     #endif /* ALLOW_ORLANSKI */
344 adcroft 1.3
345     ENDDO
346 jmc 1.27 ENDDO
347 jmc 1.7
348 adcroft 1.9 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
349 jmc 1.29 C Only needed for Orlanski:
350 jmc 1.31 IF ( nIter0.NE.0 .OR. pickupSuff.NE.' ' ) THEN
351 jmc 1.29 CALL OBCS_READ_PICKUP( nIter0, myThid )
352 jmc 1.31 ENDIF
353 mlosch 1.30 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
354 adcroft 1.9
355 jmc 1.29 C-- Load/compute OBCS values (initial conditions only)
356 jmc 1.31 IF ( nIter0.EQ.0 .AND. pickupSuff.EQ.' ' ) THEN
357 adcroft 1.12 #ifdef ALLOW_DEBUG
358 jmc 1.29 IF (debugMode) CALL DEBUG_CALL('OBCS_CALC',myThid)
359 adcroft 1.12 #endif
360 jahn 1.34 CALL OBCS_CALC( startTime, nIter0,
361 jmc 1.29 & uVel, vVel, wVel, theta, salt, myThid )
362 heimbach 1.10
363 jmc 1.17 C-- Apply OBCS values to initial conditions for consistency
364     C (but initial conditions only)
365 adcroft 1.12 #ifdef ALLOW_DEBUG
366 jmc 1.27 IF (debugMode)
367 jmc 1.35 & CALL DEBUG_CALL('OBCS_APPLY_UV + OBCS_APPLY_TS',myThid)
368 adcroft 1.12 #endif
369 mlosch 1.15 DO bj = myByLo(myThid), myByHi(myThid)
370     DO bi = myBxLo(myThid), myBxHi(myThid)
371 jmc 1.35 CALL OBCS_APPLY_UV( bi, bj, 0, uVel, vVel, myThid )
372 jmc 1.36 CALL OBCS_APPLY_TS( bi, bj, 0, theta, salt, myThid )
373 mlosch 1.15 ENDDO
374     ENDDO
375 mlosch 1.18 IF (useOBCSprescribe) THEN
376     C After applying the boundary conditions exchange the 3D-fields.
377 jmc 1.32 C This is only necessary of the boundary values have been read
378 mlosch 1.18 C from a file.
379     #ifdef ALLOW_DEBUG
380 jmc 1.27 IF (debugMode)
381 jmc 1.35 & CALL DEBUG_CALL('EXCHANGES in OBCS_INIT_VARIABLES',myThid)
382 mlosch 1.18 #endif
383     CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)
384 jmc 1.26 _EXCH_XYZ_RL( theta, myThid )
385     _EXCH_XYZ_RL( salt , myThid )
386 mlosch 1.18 ENDIF
387     C endif start from rest
388 jmc 1.31 #ifdef ALLOW_OBCS_PRESCRIBE
389 jmc 1.32 ELSEIF ( useOBCSprescribe ) THEN
390 jmc 1.39 C-- Need this call (although loading U,V,T,S OB values is not really necessary)
391     C a) OB values needed for etaH (NonLinFreeSurf) and for wVel (nonHydrostatic)
392     C b) OB values needed for ptracers (in case nIter0 = PTRACERS_Iter0 <> 0)
393     C c) with present implementation, only do initialisation when called
394     C with myTime=startTime (S/R EXF_GETFFIELDREC, setting "first")
395     C or with myIter=nIter0 (S/R OBCS_FIELDS_LOAD). And this cannot be changed
396     C because of above call to OBCS_CALC(startTime,nIter0).
397 jmc 1.31 CALL OBCS_PRESCRIBE_READ( startTime, nIter0, myThid )
398     #endif
399 mlosch 1.18 ENDIF
400 jmc 1.38 C-- calls to S/R OBCS_COPY_TRACER on theta & salt are no longer needed
401     C with maskInC,W,S in pkg/generic_advdiff: removed
402 jmc 1.31
403 mlosch 1.14 #ifdef ALLOW_PTRACERS
404 mlosch 1.15 C repeat everything for passive tracers
405 mlosch 1.18 IF ( usePTRACERS ) THEN
406     C catch the case when we do start from a pickup for dynamics variables
407     C but initialise ptracers differently
408 jmc 1.36 IF ( nIter0.EQ.PTRACERS_Iter0 ) THEN
409 mlosch 1.15 #ifdef ALLOW_DEBUG
410 jmc 1.39 IF (debugMode) CALL DEBUG_CALL('OBCS_APPLY_PTRACER',myThid)
411 mlosch 1.15 #endif
412     DO iTracer=1,PTRACERS_numInUse
413     DO bj = myByLo(myThid), myByHi(myThid)
414     DO bi = myBxLo(myThid), myBxHi(myThid)
415 jmc 1.27 CALL OBCS_APPLY_PTRACER(
416 jmc 1.39 I bi, bj, 0, iTracer,
417     U ptracer(1-Olx,1-Oly,1,bi,bj,iTracer),
418 mlosch 1.15 I myThid )
419     ENDDO
420 mlosch 1.14 ENDDO
421 mlosch 1.15 ENDDO
422 jmc 1.36 C endif start from rest
423     ENDIF
424     IF ( nIter0.EQ.PTRACERS_Iter0 .AND. useOBCSprescribe ) THEN
425 mlosch 1.11 C After applying the boundary conditions exchange the 3D-fields.
426 jmc 1.32 C This is only necessary of the boundary values have been read
427 mlosch 1.11 C from a file.
428 adcroft 1.12 #ifdef ALLOW_DEBUG
429 jmc 1.27 IF (debugMode) CALL DEBUG_CALL(
430 mlosch 1.18 & 'PTRACERS EXCHANGES in OBCS_INIT_VARIABLES',myThid)
431 adcroft 1.12 #endif
432 jmc 1.19 CALL PTRACERS_FIELDS_BLOCKING_EXCH( myThid )
433 jmc 1.38 c ELSE
434 jmc 1.39 C-- Calls to S/R OBCS_COPY_TRACER on pTracers are no longer needed
435 jmc 1.38 C with maskInC,W,S in pkg/generic_advdiff: removed
436 jmc 1.39 C- This call was part of ptracers exchange S/R but was needed in all cases
437 mlosch 1.15 ENDIF
438 mlosch 1.18 C endif usePTRACERS
439     ENDIF
440 mlosch 1.15 #endif /* ALLOW_PTRACERS */
441 mlosch 1.11
442 adcroft 1.2 #endif /* ALLOW_OBCS */
443 heimbach 1.10
444 adcroft 1.12 #ifdef ALLOW_DEBUG
445     IF (debugMode) CALL DEBUG_LEAVE('OBCS_INIT_VARIABLES',myThid)
446     #endif
447 adcroft 1.2 RETURN
448     END

  ViewVC Help
Powered by ViewVC 1.1.22