70
71
76
77
78
79 integer, intent(in) :: ng, tile
80 integer, intent(in) :: LBi, UBi, LBj, UBj, LBij, UBij
81 integer, intent(in) :: IminS, ImaxS, JminS, JmaxS
82 integer, intent(in) :: Linp
83
84
85
86 integer :: i, it1, it2, j
87# ifdef SOLVE3D
88 integer :: k, it
89# endif
90 real(r8) :: fac, fac1, fac2
91
92# include "set_bounds.h"
93
94
95
96
97
98
99
100
101
102
103 IF (
nbrec(ng).eq.1)
THEN
104 it1=1
105 it2=1
106 fac1=1.0_r8
107 fac2=0.0_r8
108 ELSE
109# ifdef GENERIC_DSTART
111# else
112 it1=max(0,(
iic(ng)-1)/
nobc(ng))+1
113# endif
114 it2=min(it1+1,
nbrec(ng))
117 fac=1.0_r8/(fac1+fac2)
118 fac1=fac*fac1
119 fac2=fac*fac2
120 END IF
121
122
123
126 &
domain(ng)%Western_Edge(tile))
THEN
127 DO j=jstr,jend
129 & fac1* &
132 & fac2* &
135 END DO
136 END IF
137
140 &
domain(ng)%Eastern_Edge(tile))
THEN
141 DO j=jstr,jend
143 & fac1* &
146 & fac2* &
149 END DO
150 END IF
151
154 &
domain(ng)%Southern_Edge(tile))
THEN
155 DO i=istr,iend
157 & fac1* &
160 & fac2* &
163 END DO
164 END IF
165
168 &
domain(ng)%Northern_Edge(tile))
THEN
169 DO i=istr,iend
171 & fac1* &
174 & fac2* &
177 END DO
178 END IF
179
180
181
184 &
domain(ng)%Western_Edge(tile))
THEN
185 DO j=jstr,jend
187 & fac1* &
190 & fac2* &
193 END DO
194 END IF
195
198 &
domain(ng)%Eastern_Edge(tile))
THEN
199 DO j=jstr,jend
201 & fac1* &
204 & fac2* &
207 END DO
208 END IF
209
212 &
domain(ng)%Southern_Edge(tile))
THEN
213 DO i=istru,iend
215 & fac1* &
218 & fac2* &
221 END DO
222 END IF
223
226 &
domain(ng)%Northern_Edge(tile))
THEN
227 DO i=istru,iend
229 & fac1* &
232 & fac2* &
235 END DO
236 END IF
237
238
239
242 &
domain(ng)%Western_Edge(tile))
THEN
243 DO j=jstrv,jend
245 & fac1* &
248 & fac2* &
251 END DO
252 END IF
253
256 &
domain(ng)%Eastern_Edge(tile))
THEN
257 DO j=jstrv,jend
259 & fac1* &
262 & fac2* &
265 END DO
266 END IF
267
270 &
domain(ng)%Southern_Edge(tile))
THEN
271 DO i=istr,iend
273 & fac1* &
276 & fac2* &
279 END DO
280 END IF
281
284 &
domain(ng)%Northern_Edge(tile))
THEN
285 DO i=istr,iend
287 & fac1* &
290 & fac2* &
293 END DO
294 END IF
295
296# ifdef SOLVE3D
297
298
299
302 &
domain(ng)%Western_Edge(tile))
THEN
304 DO j=jstr,jend
306 & fac1* &
309 & fac2* &
312 END DO
313 END DO
314 END IF
315
318 &
domain(ng)%Eastern_Edge(tile))
THEN
320 DO j=jstr,jend
322 & fac1* &
325 & fac2* &
328 END DO
329 END DO
330 END IF
331
334 &
domain(ng)%Southern_Edge(tile))
THEN
336 DO i=istru,iend
338 & fac1* &
341 & fac2* &
344 END DO
345 END DO
346 END IF
347
350 &
domain(ng)%Northern_Edge(tile))
THEN
352 DO i=istru,iend
354 & fac1* &
357 & fac2* &
360 END DO
361 END DO
362 END IF
363
364
365
368 &
domain(ng)%Western_Edge(tile))
THEN
370 DO j=jstrv,jend
372 & fac1* &
375 & fac2* &
378 END DO
379 END DO
380 END IF
381
384 &
domain(ng)%Eastern_Edge(tile))
THEN
386 DO j=jstrv,jend
388 & fac1* &
391 & fac2* &
394 END DO
395 END DO
396 END IF
397
400 &
domain(ng)%Southern_Edge(tile))
THEN
402 DO i=istr,iend
404 & fac1* &
407 & fac2* &
410 END DO
411 END DO
412 END IF
413
416 &
domain(ng)%Northern_Edge(tile))
THEN
418 DO i=istr,iend
420 & fac1* &
423 & fac2* &
426 END DO
427 END DO
428 END IF
429
430
431
435 &
domain(ng)%Western_Edge(tile))
THEN
437 DO j=jstr,jend
439 & fac1* &
441 &
iwest,it1,linp,it)+ &
442 & fac2* &
445 END DO
446 END DO
447 END IF
448
451 &
domain(ng)%Eastern_Edge(tile))
THEN
453 DO j=jstr,jend
455 & fac1* &
457 &
ieast,it1,linp,it)+ &
458 & fac2* &
461 END DO
462 END DO
463 END IF
464
467 &
domain(ng)%Southern_Edge(tile))
THEN
469 DO i=istr,iend
471 & fac1* &
474 & fac2* &
477 END DO
478 END DO
479 END IF
480
483 &
domain(ng)%Northern_Edge(tile))
THEN
485 DO i=istr,iend
487 & fac1* &
490 & fac2* &
493 END DO
494 END DO
495 END IF
496 END DO
497# endif
498
499 RETURN
real(dp), dimension(:), allocatable dt
real(dp), dimension(:,:), allocatable obc_time
real(dp), dimension(:), allocatable time
integer, dimension(:), allocatable ntstart
integer, dimension(:), allocatable nbrec