132 SUBROUTINE ana_perturb_tile (ng, tile, model, &
133 & LBi, UBi, LBj, UBj, LBij, UBij, &
134 & IminS, ImaxS, JminS, JmaxS, &
135 & kstp, krhs, knew, &
137 & nstp, nrhs, nnew, &
139#ifdef ADJUST_BOUNDARY
141 & ad_t_obc, ad_u_obc, ad_v_obc, &
143 & ad_ubar_obc, ad_vbar_obc, &
147 & ad_ustr, ad_vstr, &
149#if defined ADJUST_STFLUX && defined SOLVE3D
153 & ad_t, ad_u, ad_v, &
155 & ad_ubar, ad_vbar, ad_zeta, &
158#ifdef ADJUST_BOUNDARY
160 & tl_t_obc, tl_u_obc, tl_v_obc, &
162 & tl_ubar_obc, tl_vbar_obc, &
166 & tl_ustr, tl_vstr, &
168#if defined ADJUST_STFLUX && defined SOLVE3D
172 & tl_t, tl_u, tl_v, &
174 & tl_ubar, tl_vbar, tl_zeta)
185 integer,
intent(in) :: ng, tile, model
186 integer,
intent(in) :: LBi, UBi, LBj, UBj, LBij, UBij
187 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
188 integer,
intent(in) :: kstp, krhs, knew
190 integer,
intent(in) :: nstp, nrhs, nnew
194# ifdef ADJUST_BOUNDARY
196 real(r8),
intent(inout) :: ad_t_obc(LBij:,:,:,:,:,:)
197 real(r8),
intent(inout) :: ad_u_obc(LBij:,:,:,:,:)
198 real(r8),
intent(inout) :: ad_v_obc(LBij:,:,:,:,:)
200 real(r8),
intent(inout) :: ad_ubar_obc(LBij:,:,:,:)
201 real(r8),
intent(inout) :: ad_vbar_obc(LBij:,:,:,:)
202 real(r8),
intent(inout) :: ad_zeta_obc(LBij:,:,:,:)
204# ifdef ADJUST_WSTRESS
205 real(r8),
intent(inout) :: ad_ustr(LBi:,LBj:,:,:)
206 real(r8),
intent(inout) :: ad_vstr(LBi:,LBj:,:,:)
208# if defined ADJUST_STFLUX && defined SOLVE3D
209 real(r8),
intent(inout) :: ad_tflux(LBi:,LBj:,:,:,:)
212 real(r8),
intent(inout) :: ad_t(LBi:,LBj:,:,:,:)
213 real(r8),
intent(inout) :: ad_u(LBi:,LBj:,:,:)
214 real(r8),
intent(inout) :: ad_v(LBi:,LBj:,:,:)
216 real(r8),
intent(inout) :: ad_ubar(LBi:,LBj:,:)
217 real(r8),
intent(inout) :: ad_vbar(LBi:,LBj:,:)
218 real(r8),
intent(inout) :: ad_zeta(LBi:,LBj:,:)
219# ifdef ADJUST_BOUNDARY
221 real(r8),
intent(inout) :: tl_t_obc(LBij:,:,:,:,:,:)
222 real(r8),
intent(inout) :: tl_u_obc(LBij:,:,:,:,:)
223 real(r8),
intent(inout) :: tl_v_obc(LBij:,:,:,:,:)
225 real(r8),
intent(inout) :: tl_ubar_obc(LBij:,:,:,:)
226 real(r8),
intent(inout) :: tl_vbar_obc(LBij:,:,:,:)
227 real(r8),
intent(inout) :: tl_zeta_obc(LBij:,:,:,:)
229# ifdef ADJUST_WSTRESS
230 real(r8),
intent(inout) :: tl_ustr(LBi:,LBj:,:,:)
231 real(r8),
intent(inout) :: tl_vstr(LBi:,LBj:,:,:)
233# if defined ADJUST_STFLUX && defined SOLVE3D
234 real(r8),
intent(inout) :: tl_tflux(LBi:,LBj:,:,:,:)
237 real(r8),
intent(inout) :: tl_t(LBi:,LBj:,:,:,:)
238 real(r8),
intent(inout) :: tl_u(LBi:,LBj:,:,:)
239 real(r8),
intent(inout) :: tl_v(LBi:,LBj:,:,:)
241 real(r8),
intent(inout) :: tl_ubar(LBi:,LBj:,:)
242 real(r8),
intent(inout) :: tl_vbar(LBi:,LBj:,:)
243 real(r8),
intent(inout) :: tl_zeta(LBi:,LBj:,:)
247# ifdef ADJUST_BOUNDARY
249 real(r8),
intent(inout) :: ad_t_obc(LBij:UBij,N(ng),4, &
250 & Nbrec(ng),2,NT(ng))
251 real(r8),
intent(inout) :: ad_u_obc(LBij:UBij,N(ng),4,Nbrec(ng),2)
252 real(r8),
intent(inout) :: ad_v_obc(LBij:UBij,N(ng),4,Nbrec(ng),2)
254 real(r8),
intent(inout) :: ad_ubar_obc(LBij:UBij,4,Nbrec(ng),2)
255 real(r8),
intent(inout) :: ad_vbar_obc(LBij:UBij,4,Nbrec(ng),2)
256 real(r8),
intent(inout) :: ad_zeta_obc(LBij:UBij,4,Nbrec(ng),2)
258# ifdef ADJUST_WSTRESS
259 real(r8),
intent(inout) :: ad_ustr(LBi:UBi,LBj:UBj,Nfrec(ng),2)
260 real(r8),
intent(inout) :: ad_vstr(LBi:UBi,LBj:UBj,Nfrec(ng),2)
262# if defined ADJUST_STFLUX && defined SOLVE3D
263 real(r8),
intent(inout) :: ad_tflux(LBi:UBi,LBj:UBj, &
264 & Nfrec(ng),2,NT(ng))
267 real(r8),
intent(inout) :: ad_t(LBi:UBI,LBj:UBj,N(ng),2,NT(ng))
268 real(r8),
intent(inout) :: ad_u(LBi:UBi,LBj:UBj,N(ng),2)
269 real(r8),
intent(inout) :: ad_v(LBi:UBi,LBj:UBj,N(ng),2)
271 real(r8),
intent(inout) :: ad_ubar(LBi:UBi,LBj:UBj,:)
272 real(r8),
intent(inout) :: ad_vbar(LBi:UBi,LBj:UBj,:)
273 real(r8),
intent(inout) :: ad_zeta(LBi:UBi,LBj:UBj,:)
274# ifdef ADJUST_BOUNDARY
276 real(r8),
intent(inout) :: tl_t_obc(LBij:UBij,N(ng),4, &
277 & Nbrec(ng),2,NT(ng))
278 real(r8),
intent(inout) :: tl_u_obc(LBij:UBij,N(ng),4,Nbrec(ng),2)
279 real(r8),
intent(inout) :: tl_v_obc(LBij:UBij,N(ng),4,Nbrec(ng),2)
281 real(r8),
intent(inout) :: tl_ubar_obc(LBij:UBij,4,Nbrec(ng),2)
282 real(r8),
intent(inout) :: tl_vbar_obc(LBij:UBij,4,Nbrec(ng),2)
283 real(r8),
intent(inout) :: tl_zeta_obc(LBij:UBij,4,Nbrec(ng),2)
285# ifdef ADJUST_WSTRESS
286 real(r8),
intent(inout) :: tl_ustr(LBi:UBi,LBj:UBj,Nfrec(ng),2)
287 real(r8),
intent(inout) :: tl_vstr(LBi:UBi,LBj:UBj,Nfrec(ng),2)
289# if defined ADJUST_STFLUX && defined SOLVE3D
290 real(r8),
intent(inout) :: tl_tflux(LBi:UBi,LBj:UBj, &
291 & Nfrec(ng),2,NT(ng))
294 real(r8),
intent(inout) :: tl_u(LBi:UBi,LBj:UBj,N(ng),2)
295 real(r8),
intent(inout) :: tl_v(LBi:UBi,LBj:UBj,N(ng),2)
296 real(r8),
intent(inout) :: tl_t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
298 real(r8),
intent(inout) :: tl_ubar(LBi:UBi,LBj:UBj,:)
299 real(r8),
intent(inout) :: tl_vbar(LBi:UBi,LBj:UBj,:)
300 real(r8),
intent(inout) :: tl_zeta(LBi:UBi,LBj:UBj,:)
305#ifdef ADJUST_BOUNDARY
306 logical :: Lperturb(4)
309 integer :: IperAD, JperAD, KperAD, ivarAD
310 integer :: IperTL, JperTL, KperTL, ivarTL
311 integer :: i, ib, ir, itrc, j, k
313#include "set_bounds.h"
331 IF (ivartl.eq.
isubar)
THEN
332 WRITE (
stdout,10)
'tl_ubar perturbed at (i,j) = ', &
334 ELSE IF (ivartl.eq.
isvbar)
THEN
335 WRITE (
stdout,10)
'tl_vbar perturbed at (i,j) = ', &
337 ELSE IF (ivartl.eq.
isfsur)
THEN
338 WRITE (
stdout,10)
'tl_zeta perturbed at (i,j) = ', &
341 ELSE IF (ivartl.eq.
isustr)
THEN
342 WRITE (
stdout,10)
'tl_ustr perturbed at (i,j) = ', &
344 ELSE IF (ivartl.eq.
isvstr)
THEN
345 WRITE (
stdout,10)
'tl_vstr perturbed at (i,j) = ', &
349 ELSE IF (ivartl.eq.
isuvel)
THEN
350 WRITE (
stdout,20)
'tl_u perturbed at (i,j,k) = ', &
351 & ipertl, jpertl, kpertl
352 ELSE IF (ivartl.eq.
isvvel)
THEN
353 WRITE (
stdout,20)
'tl_v perturbed at (i,j,k) = ', &
354 & ipertl, jpertl, kpertl
359 IF (ivartl.eq.
istvar(itrc))
THEN
360 WRITE (
stdout,30)
'tl_t perturbed at (i,j,k,itrc) = ', &
361 & ipertl, jpertl, kpertl, itrc
363 ELSE IF (ivartl.eq.
istsur(itrc))
THEN
364 WRITE (
stdout,20)
'tl_tflux perturbed at (i,j,k,itrc) = ',&
365 & ipertl, jpertl, kpertl, itrc
370#ifdef ADJUST_BOUNDARY
371 IF (ivartl.eq.
isubar)
THEN
372 WRITE (
stdout,10)
'tl_ubar_obc (S/N) perturbed at (i) = ', &
374 WRITE (
stdout,10)
'tl_ubar_obc (E/W) perturbed at (j) = ', &
376 ELSE IF (ivartl.eq.
isvbar)
THEN
377 WRITE (
stdout,10)
'tl_vbar_obc (S/N) perturbed at (i) = ', &
379 WRITE (
stdout,10)
'tl_vbar_obc (E/W) perturbed at (j) = ', &
381 ELSE IF (ivartl.eq.
isfsur)
THEN
382 WRITE (
stdout,10)
'tl_zeta_obc (S/N) perturbed at (i) = ', &
384 WRITE (
stdout,10)
'tl_zeta_obc (E/W) perturbed at (j) = ', &
387 ELSE IF (ivartl.eq.
isuvel)
THEN
388 WRITE (
stdout,10)
'tl_u_obc (S/N) perturbed at (i,k) = ', &
390 WRITE (
stdout,10)
'tl_u_obc (E/W) perturbed at (j,k) = ', &
392 ELSE IF (ivartl.eq.
isuvel)
THEN
393 WRITE (
stdout,10)
'tl_u_obc (S/N) perturbed at (i,k) = ', &
395 WRITE (
stdout,10)
'tl_u_obc (E/W) perturbed at (j,k) = ', &
401 IF (ivartl.eq.
istvar(itrc))
THEN
402 WRITE (
stdout,20)
'tl_t_obc perturbed at (i,k,itrc) = ', &
403 & ipertl, kpertl, itrc
404 WRITE (
stdout,20)
'tl_t_obc perturbed at (j,k,itrc) = ', &
405 & jpertl, kpertl, itrc
412 IF (ivarad.eq.
isubar)
THEN
413 WRITE (
stdout,40)
'ad_ubar perturbed at (i,j) = ', &
415 ELSE IF (ivarad.eq.
isvbar)
THEN
416 WRITE (
stdout,40)
'ad_vbar perturbed at (i,j) = ', &
418 ELSE IF (ivarad.eq.
isfsur)
THEN
419 WRITE (
stdout,40)
'ad_zeta perturbed at (i,j) = ', &
422 ELSE IF (ivarad.eq.
isustr)
THEN
423 WRITE (
stdout,40)
'ad_ustr perturbed at (i,j,k) = ', &
425 ELSE IF (ivarad.eq.
isvstr)
THEN
426 WRITE (
stdout,40)
'ad_vstr perturbed at (i,j,k) = ', &
430 ELSE IF (ivarad.eq.
isuvel)
THEN
431 WRITE (
stdout,50)
'ad_u perturbed at (i,j,k) = ', &
432 & iperad, jperad, kperad
433 ELSE IF (ivarad.eq.
isvvel)
THEN
434 WRITE (
stdout,50)
'ad_v perturbed at (i,j,k) = ', &
435 & iperad, jperad, kperad
440 IF (ivarad.eq.
istvar(itrc))
THEN
441 WRITE (
stdout,60)
'ad_t perturbed at (i,j,k,itrc) = ', &
442 & iperad, jperad, kperad, itrc
444 ELSE IF (ivarad.eq.
istsur(itrc))
THEN
445 WRITE (
stdout,50)
'ad_tflux perturbed at (i,j,k,itrc) = ',&
446 & iperad, jperad, kperad, itrc
451#ifdef ADJUST_BOUNDARY
452 IF (ivarad.eq.
isubar)
THEN
453 WRITE (
stdout,40)
'ad_ubar_obc (S/N) perturbed at (i) = ', &
455 WRITE (
stdout,40)
'ad_ubar_obc (E/W) perturbed at (j) = ', &
457 ELSE IF (ivarad.eq.
isvbar)
THEN
458 WRITE (
stdout,40)
'ad_vbar_obc (S/N) perturbed at (i) = ', &
460 WRITE (
stdout,40)
'ad_vbar_obc (E/W) perturbed at (j) = ', &
462 ELSE IF (ivarad.eq.
isfsur)
THEN
463 WRITE (
stdout,40)
'ad_zeta_obc (S/N) perturbed at (i) = ', &
465 WRITE (
stdout,40)
'ad_zeta_obc (E/W) perturbed at (j) = ', &
468 ELSE IF (ivarad.eq.
isuvel)
THEN
469 WRITE (
stdout,40)
'ad_u_obc (S/N) perturbed at (i,k) = ', &
471 WRITE (
stdout,40)
'ad_u_obc (E/W) perturbed at (j,k) = ', &
473 ELSE IF (ivarad.eq.
isuvel)
THEN
474 WRITE (
stdout,40)
'ad_u_obc (S/N) perturbed at (i,k) = ', &
476 WRITE (
stdout,40)
'ad_u_obc (E/W) perturbed at (j,k) = ', &
482 IF (ivarad.eq.
istvar(itrc))
THEN
483 WRITE (
stdout,50)
'ad_t_obc perturbed at (i,k,itrc) = ', &
484 & iperad, kperad, itrc
485 WRITE (
stdout,50)
'ad_t_obc perturbed at (j,k,itrc) = ', &
486 & jperad, kperad, itrc
501 IF ((ivartl.eq.
isubar).and. &
502 & (i.eq.ipertl).and.(j.eq.jpertl))
THEN
503 tl_ubar(i,j,kstp)=1.0_r8
505 tl_ubar(i,j,kstp)=0.0_r8
511 IF ((ivartl.eq.
isvbar).and. &
512 & (i.eq.ipertl).and.(j.eq.jpertl))
THEN
513 tl_vbar(i,j,kstp)=1.0_r8
515 tl_vbar(i,j,kstp)=0.0_r8
524 IF ((ivarad.eq.
isubar).and. &
525 & (i.eq.iperad).and.(j.eq.jperad))
THEN
526 ad_ubar(i,j,knew)=1.0_r8
528 ad_ubar(i,j,knew)=0.0_r8
534 IF ((ivarad.eq.
isvbar).and. &
535 & (i.eq.iperad).and.(j.eq.jperad))
THEN
536 ad_vbar(i,j,knew)=1.0_r8
538 ad_vbar(i,j,knew)=0.0_r8
553 IF ((ivartl.eq.
isustr).and. &
554 & (i.eq.ipertl).and.(j.eq.jpertl).and. &
555 & (ir.eq.kpertl))
THEN
556 tl_ustr(i,j,ir,kstp)=1.0_r8
558 tl_ustr(i,j,ir,kstp)=0.0_r8
564 IF ((ivartl.eq.
isvstr).and. &
565 & (i.eq.ipertl).and.(j.eq.jpertl).and. &
566 & (ir.eq.kpertl))
THEN
567 tl_vstr(i,j,ir,kstp)=1.0_r8
569 tl_vstr(i,j,ir,kstp)=0.0_r8
580 IF ((ivarad.eq.
isustr).and. &
581 & (i.eq.iperad).and.(j.eq.jperad).and. &
582 & (ir.eq.kperad))
THEN
583 ad_ustr(i,j,ir,knew)=1.0_r8
585 ad_ustr(i,j,ir,knew)=0.0_r8
591 IF ((ivarad.eq.
isvstr).and. &
592 & (i.eq.iperad).and.(j.eq.jperad).and. &
593 & (ir.eq.kperad))
THEN
594 ad_vstr(i,j,ir,knew)=1.0_r8
596 ad_vstr(i,j,ir,knew)=0.0_r8
611 IF ((ivartl.eq.
isfsur).and. &
612 & (i.eq.ipertl).and.(j.eq.jpertl))
THEN
613 tl_zeta(i,j,kstp)=1.0_r8
615 tl_zeta(i,j,kstp)=0.0_r8
624 IF ((ivarad.eq.
isfsur).and. &
625 & (i.eq.iperad).and.(j.eq.jperad))
THEN
626 ad_zeta(i,j,knew)=1.0_r8
628 ad_zeta(i,j,knew)=0.0_r8
644 IF ((ivartl.eq.
isuvel).and. &
645 & (i.eq.ipertl).and.(j.eq.jpertl).and. &
646 & (k.eq.kpertl))
THEN
647 tl_u(i,j,k,nstp)=1.0_r8
649 tl_u(i,j,k,nstp)=0.0_r8
655 IF ((ivartl.eq.
isvvel).and. &
656 & (i.eq.ipertl).and.(j.eq.jpertl).and. &
657 & (k.eq.kpertl))
THEN
658 tl_v(i,j,k,nstp)=1.0_r8
660 tl_v(i,j,k,nstp)=0.0_r8
671 IF ((ivarad.eq.
isuvel).and. &
672 & (i.eq.iperad).and.(j.eq.jperad).and. &
673 & (k.eq.kperad))
THEN
674 ad_u(i,j,k,nstp)=1.0_r8
676 ad_u(i,j,k,nstp)=0.0_r8
682 IF ((ivarad.eq.
isvvel).and. &
683 & (i.eq.iperad).and.(j.eq.jperad).and. &
684 & (k.eq.kperad))
THEN
685 ad_v(i,j,k,nstp)=1.0_r8
687 ad_v(i,j,k,nstp)=0.0_r8
703 IF ((ivartl.eq.
istvar(itrc)).and. &
704 & (i.eq.ipertl).and.(j.eq.jpertl).and. &
705 & (k.eq.kpertl))
THEN
706 tl_t(i,j,k,nstp,itrc)=1.0_r8
708 tl_t(i,j,k,nstp,itrc)=0.0_r8
721 IF ((ivarad.eq.
istvar(itrc)).and. &
722 & (i.eq.iperad).and.(j.eq.jperad).and. &
723 & (k.eq.kperad))
THEN
724 ad_t(i,j,k,nstp,itrc)=1.0_r8
726 ad_t(i,j,k,nstp,itrc)=0.0_r8
744 IF ((ivartl.eq.
istsur(itrc)).and. &
745 & (i.eq.ipertl).and.(j.eq.jpertl).and. &
746 & (ir.eq.kpertl))
THEN
747 tl_tflux(i,j,ir,nstp,itrc)=1.0_r8
749 tl_tflux(i,j,ir,nstp,itrc)=0.0_r8
762 IF ((ivarad.eq.
istsur(itrc)).and. &
763 & (i.eq.iperad).and.(j.eq.jperad).and. &
764 & (ir.eq.kperad))
THEN
765 ad_tflux(i,j,ir,nstp,itrc)=1.0_r8
767 ad_tflux(i,j,ir,nstp,itrc)=0.0_r8
775# ifdef ADJUST_BOUNDARY
795 IF (j.eq.jpertl)
THEN
796 tl_zeta_obc(j,ib,ir,1)=1.0_r8
798 tl_zeta_obc(j,ib,ir,1)=0.0_r8
803 IF (j.eq.jperad)
THEN
804 ad_zeta_obc(j,ib,ir,1)=1.0_r8
806 ad_zeta_obc(j,ib,ir,1)=0.0_r8
813 IF (i.eq.ipertl)
THEN
814 tl_zeta_obc(i,ib,ir,1)=1.0_r8
816 tl_zeta_obc(i,ib,ir,1)=0.0_r8
821 IF (i.eq.iperad)
THEN
822 ad_zeta_obc(i,ib,ir,1)=1.0_r8
824 ad_zeta_obc(i,ib,ir,1)=0.0_r8
837 IF (j.eq.jpertl)
THEN
838 tl_ubar_obc(j,ib,ir,1)=1.0_r8
840 tl_ubar_obc(j,ib,ir,1)=0.0_r8
845 IF (j.eq.jperad)
THEN
846 ad_ubar_obc(j,ib,ir,1)=1.0_r8
848 ad_ubar_obc(j,ib,ir,1)=0.0_r8
855 IF (i.eq.ipertl)
THEN
856 tl_ubar_obc(i,ib,ir,1)=1.0_r8
858 tl_ubar_obc(i,ib,ir,1)=0.0_r8
863 IF (i.eq.iperad)
THEN
864 ad_ubar_obc(i,ib,ir,1)=1.0_r8
866 ad_ubar_obc(i,ib,ir,1)=0.0_r8
879 IF (j.eq.jpertl)
THEN
880 tl_vbar_obc(j,ib,ir,1)=1.0_r8
882 tl_vbar_obc(j,ib,ir,1)=0.0_r8
887 IF (j.eq.jperad)
THEN
888 ad_vbar_obc(j,ib,ir,1)=1.0_r8
890 ad_vbar_obc(j,ib,ir,1)=0.0_r8
897 IF (i.eq.ipertl)
THEN
898 tl_vbar_obc(i,ib,ir,1)=1.0_r8
900 tl_vbar_obc(i,ib,ir,1)=0.0_r8
905 IF (i.eq.iperad)
THEN
906 ad_vbar_obc(i,ib,ir,1)=1.0_r8
908 ad_vbar_obc(i,ib,ir,1)=0.0_r8
924 IF ((j.eq.jpertl).and.(k.eq.kpertl))
THEN
925 tl_u_obc(j,k,ib,ir,1)=1.0_r8
927 tl_u_obc(j,k,ib,ir,1)=0.0_r8
934 IF ((j.eq.jperad).and.(k.eq.kperad))
THEN
935 ad_u_obc(j,k,ib,ir,1)=1.0_r8
937 ad_u_obc(j,k,ib,ir,1)=0.0_r8
946 IF ((i.eq.ipertl).and.(k.eq.kpertl))
THEN
947 tl_u_obc(i,k,ib,ir,1)=1.0_r8
949 tl_u_obc(i,k,ib,ir,1)=0.0_r8
956 IF ((i.eq.iperad).and.(k.eq.kperad))
THEN
957 ad_u_obc(i,k,ib,ir,1)=1.0_r8
959 ad_u_obc(i,k,ib,ir,1)=0.0_r8
974 IF ((j.eq.jpertl).and.(k.eq.kpertl))
THEN
975 tl_v_obc(j,k,ib,ir,1)=1.0_r8
977 tl_v_obc(j,k,ib,ir,1)=0.0_r8
984 IF ((j.eq.jperad).and.(k.eq.kperad))
THEN
985 ad_v_obc(j,k,ib,ir,1)=1.0_r8
987 ad_v_obc(j,k,ib,ir,1)=0.0_r8
996 IF ((i.eq.ipertl).and.(k.eq.kpertl))
THEN
997 tl_v_obc(i,k,ib,ir,1)=1.0_r8
999 tl_v_obc(i,k,ib,ir,1)=0.0_r8
1006 IF ((i.eq.iperad).and.(k.eq.kperad))
THEN
1007 ad_v_obc(i,k,ib,ir,1)=1.0_r8
1009 ad_v_obc(i,k,ib,ir,1)=0.0_r8
1020 IF (lperturb(ib).and.
lobc(ib,
istvar(itrc),ng))
THEN
1025 IF ((j.eq.jpertl).and.(k.eq.kpertl))
THEN
1026 tl_t_obc(j,k,ib,ir,1,itrc)=1.0_r8
1028 tl_t_obc(j,k,ib,ir,1,itrc)=0.0_r8
1035 IF ((j.eq.jperad).and.(k.eq.kperad))
THEN
1036 ad_t_obc(j,k,ib,ir,1,itrc)=1.0_r8
1038 ad_t_obc(j,k,ib,ir,1,itrc)=0.0_r8
1047 IF ((i.eq.ipertl).and.(k.eq.kpertl))
THEN
1048 tl_t_obc(i,k,ib,ir,1,itrc)=1.0_r8
1050 tl_t_obc(i,k,ib,ir,1,itrc)=0.0_r8
1057 IF ((i.eq.iperad).and.(k.eq.kperad))
THEN
1058 ad_t_obc(i,k,ib,ir,1,itrc)=1.0_r8
1060 ad_t_obc(i,k,ib,ir,1,itrc)=0.0_r8
1074 10
FORMAT (/,
' ANA_PERTURB - Tangent ', a, 2i4,/)
1076 20
FORMAT (/,
' ANA_PERTURB - Tangent ', a, 3i4,/)
1077 30
FORMAT (/,
' ANA_PERTURB - Tangent ', a, 4i4,/)
1079 40
FORMAT (/,
' ANA_PERTURB - Adjoint ', a, 2i4,/)
1081 50
FORMAT (/,
' ANA_PERTURB - Adjoint ', a, 3i4,/)
1082 60
FORMAT (/,
' ANA_PERTURB - Adjoint ', a, 4i4,/)