New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
obcdyn_tam.F90 in branches/TAM_V3_0/NEMOTAM/OPATAM_SRC/OBC – NEMO

source: branches/TAM_V3_0/NEMOTAM/OPATAM_SRC/OBC/obcdyn_tam.F90 @ 1885

Last change on this file since 1885 was 1885, checked in by rblod, 14 years ago

add TAM sources

  • Property svn:executable set to *
File size: 21.3 KB
RevLine 
[1885]1MODULE obcdyn_tam
2#if defined key_obc
3   !!=================================================================================
4   !!                       ***  MODULE  obcdyn  ***
5   !! Ocean dynamics:   Radiation of velocities on each open boundary
6   !!=================================================================================
7
8   !!---------------------------------------------------------------------------------
9   !!   obc_dyn_tan        : call the subroutine for each open boundary
10   !!   obc_dyn_east_tan   :
11   !!   obc_dyn_west_tan   :
12   !!   obc_dyn_north_tan  :
13   !!   obc_dyn_south_tan  :
14   !!   obc_dyn_adj        : call the subroutine for each open boundary
15   !!   obc_dyn_east_adj   :
16   !!   obc_dyn_west_adj   :
17   !!   obc_dyn_north_adj  :
18   !!   obc_dyn_south_adj  :
19   !!----------------------------------------------------------------------------------
20
21   !!----------------------------------------------------------------------------------
22   !! * Modules used
23   USE oce_tam,        ONLY : ub_tl, vb_tl, ua_tl, va_tl, & ! ocean dynamics and tracers
24        &                     ub_ad, vb_ad, ua_ad, va_ad
25   USE obc_oce
26   USE dom_oce         ! ocean space and time domain
27   USE phycst          ! physical constants
28   USE obc_oce         ! ocean open boundary conditions
29   USE lbclnk          ! ???
30   USE lbclnk_tam,     ONLY : lbc_lnk_adj ! ocean lateral boundary conditions (or mpp link)
31   USE lib_mpp         ! ???
32   USE dynspg_oce      ! choice/control of key cpp for surface pressure gradient
33   USE obccli          ! ocean open boundary conditions: climatology
34   USE in_out_manager  ! I/O manager
35   USE prtctl
36   IMPLICIT NONE
37   PRIVATE
38
39   !! * Accessibility
40   PUBLIC obc_dyn_tan ! routine called in dynspg_flt
41   PUBLIC obc_dyn_adj ! routine called in dynspg_flt
42   PUBLIC obc_dyn_adj_tst
43
44   !! * Module variables
45   INTEGER ::   ji, jj, jk     ! dummy loop indices
46   LOGICAL ::   ll_fbc
47
48   !!---------------------------------------------------------------------------------
49
50CONTAINS
51
52   SUBROUTINE obc_dyn_tan ( kt )
53      !!------------------------------------------------------------------------------
54      !!                      SUBROUTINE obc_dyn
55      !!                     ********************
56      !! ** Purpose :
57      !!      Compute  dynamics (u,v) at the open boundaries.
58      !!      if defined key_dynspg_flt:
59      !!                 this routine is called by dynspg_flt and updates
60      !!                 ua, va which are the actual velocities (not trends)
61      !!
62      !!      The logical variable lp_obc_east, and/or lp_obc_west, and/or lp_obc_north,
63      !!      and/or lp_obc_south allow the user to determine which boundary is an
64      !!      open one (must be done in the param_obc.h90 file).
65      !!
66      !! ** Reference :
67      !!      Marchesiello P., 1995, these de l'universite J. Fourier, Grenoble, France.
68      !!
69      !! History :
70      !!        !  95-03 (J.-M. Molines) Original, SPEM
71      !!        !  97-07 (G. Madec, J.-M. Molines) addition
72      !!   8.5  !  02-10 (C. Talandier, A-M. Treguier) Free surface, F90
73      !!   9.0  !  05-11  (V. Garnier) Surface pressure gradient organization
74      !!----------------------------------------------------------------------
75      !! * Arguments
76      INTEGER, INTENT( in ) ::   kt
77
78      !!----------------------------------------------------------------------
79      !!  OPA 9.0 , LOCEAN-IPSL (2005)
80      !! $Header: /home/opalod/NEMOCVSROOT/NEMO/OPA_SRC/OBC/obcdyn.F90,v 1.5 2005/12/28 09:25:07 opalod Exp $
81      !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
82      !!----------------------------------------------------------------------
83
84      ! 0. Local constant initialization
85      ! --------------------------------
86
87#if defined key_pomme_r025
88      ! Warning : TAM is available only for fixed boundary conditions (FBC)
89      ll_fbc = .true.
90#else
91      Error, OBC not ready.
92#endif
93
94# if defined key_dynspg_rl 
95      Error, this option is obsolete (suppressed after nemo_v3_2)
96# endif
97
98      IF( lp_obc_east  )   CALL obc_dyn_east_tan
99      IF( lp_obc_west  )   CALL obc_dyn_west_tan
100      IF( lp_obc_north )   CALL obc_dyn_north_tan
101      IF( lp_obc_south )   CALL obc_dyn_south_tan
102
103      IF( lk_mpp ) THEN
104         CALL lbc_lnk( ub_tl, 'U', -1. )
105         CALL lbc_lnk( vb_tl, 'V', -1. )
106         CALL lbc_lnk( ua_tl, 'U', -1. )
107         CALL lbc_lnk( va_tl, 'V', -1. )
108      ENDIF
109
110   END SUBROUTINE obc_dyn_tan
111
112   SUBROUTINE obc_dyn_adj ( kt )
113      !!------------------------------------------------------------------------------
114      !!                  ***  SUBROUTINE obc_dyn_adj  ***
115      !!             
116      !! ** Purpose :
117      !!
118      !!  History :
119      !!         !
120      !!------------------------------------------------------------------------------
121      !! * Arguments
122      INTEGER, INTENT( in ) ::   kt
123      !! * Local declaration
124      !!------------------------------------------------------------------------------
125
126#if defined key_pomme_r025
127      ! Warning : TAM is available only for fixed boundary conditions (FBC)
128      ll_fbc = .true.
129#else
130      Error, OBC not ready.
131#endif
132
133      IF( lk_mpp ) THEN
134         CALL lbc_lnk_adj( va_ad, 'V', -1. )
135         CALL lbc_lnk_adj( ua_ad, 'U', -1. )
136         CALL lbc_lnk_adj( vb_ad, 'V', -1. )
137         CALL lbc_lnk_adj( ub_ad, 'U', -1. )
138      ENDIF
139
140      IF( lp_obc_south )   CALL obc_dyn_south_adj
141      IF( lp_obc_north )   CALL obc_dyn_north_adj
142      IF( lp_obc_west  )   CALL obc_dyn_west_adj
143      IF( lp_obc_east  )   CALL obc_dyn_east_adj
144
145   END SUBROUTINE obc_dyn_adj
146
147   SUBROUTINE obc_dyn_east_tan
148      !!------------------------------------------------------------------------------
149      !!                  ***  SUBROUTINE obc_dyn_east  ***
150      !!             
151      !! ** Purpose :
152      !!      Apply the radiation algorithm on east OBC velocities ua, va using the
153      !!      phase velocities calculated in obc_rad_east subroutine in obcrad.F90 module
154      !!      If the logical lfbceast is .TRUE., there is no radiation but only fixed OBC
155      !!
156      !!  History :
157      !!         ! 95-03 (J.-M. Molines) Original from SPEM
158      !!         ! 97-07 (G. Madec, J.-M. Molines) additions
159      !!         ! 97-12 (M. Imbard) Mpp adaptation
160      !!         ! 00-06 (J.-M. Molines)
161      !!    8.5  ! 02-10 (C. Talandier, A-M. Treguier) Free surface, F90
162      !!    9.0  ! 05-11  (V. Garnier) Surface pressure gradient organization
163      !!------------------------------------------------------------------------------
164
165      ! 1. First three time steps and more if lfbceast is .TRUE.
166      !    In that case open boundary conditions are FIXED.
167      ! --------------------------------------------------------
168
169      WRITE(numout,*) 'verif passage dans obc_dyn_east_tan'
170      IF ( ll_fbc .OR. lfbceast ) THEN
171
172         ! 1.1 U zonal velocity   
173         ! --------------------
174         DO ji = nie0, nie1
175            DO jk = 1, jpkm1
176               DO jj = 1, jpj
177                  ua_tl(ji,jj,jk) = ua_tl(ji,jj,jk) * ( 1. - uemsk(jj,jk) )
178               END DO
179            END DO
180         END DO
181
182         ! 1.2 V meridional velocity
183         ! -------------------------
184         DO ji = nie0+1, nie1+1
185            DO jk = 1, jpkm1
186               DO jj = 1, jpj
187                  va_tl(ji,jj,jk) = va_tl(ji,jj,jk) * ( 1. - vemsk(jj,jk) ) 
188               END DO
189            END DO
190         END DO
191
192      ELSE
193
194         CALL ctl_stop( 'Error in obcdyn_tam : TAM is available only for fixed boundary conditions' )
195
196      END IF
197
198   END SUBROUTINE obc_dyn_east_tan
199
200   SUBROUTINE obc_dyn_east_adj
201      !!------------------------------------------------------------------------------
202      !!                  ***  SUBROUTINE obc_dyn_east_adj  ***
203      !!             
204      !! ** Purpose :
205      !!
206      !!  History :
207      !!         !
208      !!------------------------------------------------------------------------------
209      !! * Arguments
210      !! * Local declaration
211      !!------------------------------------------------------------------------------
212      WRITE(numout,*) 'verif passage dans obc_dyn_east_adj'
213
214      IF ( ll_fbc .OR. lfbceast ) THEN
215
216         ! 1.2 V meridional velocity
217         ! -------------------------
218         DO ji = nie0+1, nie1+1
219            DO jk = 1, jpkm1
220               DO jj = 1, jpj
221                  va_ad(ji,jj,jk) = va_ad(ji,jj,jk) * ( 1. - vemsk(jj,jk) ) 
222               END DO
223            END DO
224         END DO
225
226         ! 1.1 U zonal velocity   
227         ! --------------------
228         DO ji = nie0, nie1
229            DO jk = 1, jpkm1
230               DO jj = 1, jpj
231                  ua_ad(ji,jj,jk) = ua_ad(ji,jj,jk) * ( 1. - uemsk(jj,jk) )
232               END DO
233            END DO
234         END DO
235
236      ELSE
237
238         CALL ctl_stop( 'Error in obcdyn_tam : TAM is available only for fixed boundary conditions' )
239
240      END IF
241
242   END SUBROUTINE obc_dyn_east_adj
243
244   SUBROUTINE obc_dyn_west_tan
245      !!------------------------------------------------------------------------------
246      !!                  ***  SUBROUTINE obc_dyn_west  ***
247      !!                 
248      !! ** Purpose :
249      !!      Apply the radiation algorithm on west OBC velocities ua, va using the
250      !!      phase velocities calculated in obc_rad_west subroutine in obcrad.F90 module
251      !!      If the logical lfbcwest is .TRUE., there is no radiation but only fixed OBC
252      !!
253      !!  History :
254      !!         ! 95-03 (J.-M. Molines) Original from SPEM
255      !!         ! 97-07 (G. Madec, J.-M. Molines) additions
256      !!         ! 97-12 (M. Imbard) Mpp adaptation
257      !!         ! 00-06 (J.-M. Molines)
258      !!    8.5  ! 02-10 (C. Talandier, A-M. Treguier) Free surface, F90
259      !!    9.0  ! 05-11  (V. Garnier) Surface pressure gradient organization
260      !!------------------------------------------------------------------------------
261
262      ! 1. First three time steps and more if lfbcwest is .TRUE.
263      !    In that case open boundary conditions are FIXED.
264      ! --------------------------------------------------------
265
266      IF ( ll_fbc .OR. lfbcwest ) THEN
267
268         ! 1.1 U zonal velocity
269         ! ---------------------
270         DO ji = niw0, niw1
271            DO jk = 1, jpkm1
272               DO jj = 1, jpj
273                  ua_tl(ji,jj,jk) = ua_tl(ji,jj,jk) * ( 1. - uwmsk(jj,jk) ) 
274               END DO
275            END DO
276         END DO
277
278         ! 1.2 V meridional velocity
279         ! -------------------------
280         DO ji = niw0, niw1
281            DO jk = 1, jpkm1
282               DO jj = 1, jpj
283                  va_tl(ji,jj,jk) = va_tl(ji,jj,jk) * ( 1. - vwmsk(jj,jk) )
284               END DO
285            END DO
286         END DO
287
288      ELSE
289
290         CALL ctl_stop( 'Error in obcdyn_tam : TAM is available only for fixed boundary conditions' )
291
292      END IF
293
294   END SUBROUTINE obc_dyn_west_tan
295
296   SUBROUTINE obc_dyn_west_adj
297      !!------------------------------------------------------------------------------
298      !!                  ***  SUBROUTINE obc_dyn_west_adj  ***
299      !!             
300      !! ** Purpose :
301      !!
302      !!  History :
303      !!         !
304      !!------------------------------------------------------------------------------
305      !! * Arguments
306      !! * Local declaration
307      !!------------------------------------------------------------------------------
308      IF ( ll_fbc .OR. lfbcwest ) THEN
309
310         ! 1.2 V meridional velocity
311         ! -------------------------
312         DO ji = niw0, niw1
313            DO jk = 1, jpkm1
314               DO jj = 1, jpj
315                  va_ad(ji,jj,jk) = va_ad(ji,jj,jk) * ( 1. - vwmsk(jj,jk) )
316               END DO
317            END DO
318         END DO
319         ! 1.1 U zonal velocity
320         ! ---------------------
321         DO ji = niw0, niw1
322            DO jk = 1, jpkm1
323               DO jj = 1, jpj
324                  ua_ad(ji,jj,jk) = ua_ad(ji,jj,jk) * ( 1. - uwmsk(jj,jk) ) 
325               END DO
326            END DO
327         END DO
328
329      ELSE
330
331         CALL ctl_stop( 'Error in obcdyn_tam : TAM is available only for fixed boundary conditions' )
332
333      END IF
334
335   END SUBROUTINE obc_dyn_west_adj
336
337   SUBROUTINE obc_dyn_north_tan
338      !!------------------------------------------------------------------------------
339      !!                     SUBROUTINE obc_dyn_north
340      !!                    *************************
341      !! ** Purpose :
342      !!      Apply the radiation algorithm on north OBC velocities ua, va using the
343      !!      phase velocities calculated in obc_rad_north subroutine in obcrad.F90 module
344      !!      If the logical lfbcnorth is .TRUE., there is no radiation but only fixed OBC
345      !!
346      !!  History :
347      !!         ! 95-03 (J.-M. Molines) Original from SPEM
348      !!         ! 97-07 (G. Madec, J.-M. Molines) additions
349      !!         ! 97-12 (M. Imbard) Mpp adaptation
350      !!         ! 00-06 (J.-M. Molines)
351      !!    8.5  ! 02-10 (C. Talandier, A-M. Treguier) Free surface, F90
352      !!    9.0  ! 05-11  (V. Garnier) Surface pressure gradient organization
353      !!------------------------------------------------------------------------------
354
355      ! 1. First three time steps and more if lfbcnorth is .TRUE.
356      !    In that case open boundary conditions are FIXED.
357      ! ---------------------------------------------------------
358 
359        IF ( ll_fbc .OR. lfbcnorth ) THEN
360   
361         ! 1.1 U zonal velocity
362         ! --------------------
363         DO jj = njn0+1, njn1+1
364            DO jk = 1, jpkm1
365               DO ji = 1, jpi
366                  ua_tl(ji,jj,jk) = ua_tl(ji,jj,jk) * ( 1. - unmsk(ji,jk) )
367               END DO
368            END DO
369         END DO
370
371         ! 1.2 V meridional velocity
372         ! -------------------------
373         DO jj = njn0, njn1
374            DO jk = 1, jpkm1
375               DO ji = 1, jpi
376                  va_tl(ji,jj,jk)= va_tl(ji,jj,jk) * ( 1. - vnmsk(ji,jk) )
377               END DO
378            END DO
379         END DO
380
381      ELSE
382
383         CALL ctl_stop( 'Error in obcdyn_tam : TAM is available only for fixed boundary conditions' )
384
385      END IF
386
387   END SUBROUTINE obc_dyn_north_tan
388
389   SUBROUTINE obc_dyn_north_adj
390      !!------------------------------------------------------------------------------
391      !!                  ***  SUBROUTINE obc_dyn_north_adj  ***
392      !!             
393      !! ** Purpose :
394      !!
395      !!  History :
396      !!         !
397      !!------------------------------------------------------------------------------
398      !! * Arguments
399      !! * Local declaration
400      !!------------------------------------------------------------------------------
401        IF ( ll_fbc .OR. lfbcnorth ) THEN
402   
403         ! 1.2 V meridional velocity
404         ! -------------------------
405         DO jj = njn0, njn1
406            DO jk = 1, jpkm1
407               DO ji = 1, jpi
408                  va_ad(ji,jj,jk)= va_ad(ji,jj,jk) * ( 1. - vnmsk(ji,jk) )
409               END DO
410            END DO
411         END DO
412
413         ! 1.1 U zonal velocity
414         ! --------------------
415         DO jj = njn0+1, njn1+1
416            DO jk = 1, jpkm1
417               DO ji = 1, jpi
418                  ua_ad(ji,jj,jk) = ua_ad(ji,jj,jk) * ( 1. - unmsk(ji,jk) )
419               END DO
420            END DO
421         END DO
422
423      ELSE
424
425         CALL ctl_stop( 'Error in obcdyn_tam : TAM is available only for fixed boundary conditions' )
426
427      END IF
428
429   END SUBROUTINE obc_dyn_north_adj
430
431   SUBROUTINE obc_dyn_south_tan
432      !!------------------------------------------------------------------------------
433      !!                     SUBROUTINE obc_dyn_south
434      !!                    *************************
435      !! ** Purpose :
436      !!      Apply the radiation algorithm on south OBC velocities ua, va using the
437      !!      phase velocities calculated in obc_rad_south subroutine in obcrad.F90 module
438      !!      If the logical lfbcsouth is .TRUE., there is no radiation but only fixed OBC
439      !!
440      !!  History :
441      !!         ! 95-03 (J.-M. Molines) Original from SPEM
442      !!         ! 97-07 (G. Madec, J.-M. Molines) additions
443      !!         ! 97-12 (M. Imbard) Mpp adaptation
444      !!         ! 00-06 (J.-M. Molines)
445      !!    8.5  ! 02-10 (C. Talandier, A-M. Treguier) Free surface, F90
446      !!    9.0  ! 05-11  (V. Garnier) Surface pressure gradient organization
447      !!------------------------------------------------------------------------------
448
449      ! 1. First three time steps and more if lfbcsouth is .TRUE.
450      !    In that case open boundary conditions are FIXED.
451      ! ---------------------------------------------------------
452
453      IF ( ll_fbc .OR. lfbcsouth ) THEN
454     
455         ! 1.1 U zonal velocity
456         ! --------------------
457         DO jj = njs0, njs1
458            DO jk = 1, jpkm1
459               DO ji = 1, jpi
460                  ua_tl(ji,jj,jk) = ua_tl(ji,jj,jk) * ( 1. - usmsk(ji,jk) )
461               END DO
462            END DO
463         END DO
464
465         ! 1.2 V meridional velocity
466         ! -------------------------
467         DO jj = njs0, njs1
468            DO jk = 1, jpkm1
469               DO ji = 1, jpi
470                  va_tl(ji,jj,jk) = va_tl(ji,jj,jk) * ( 1. - vsmsk(ji,jk) )
471               END DO
472            END DO
473         END DO
474
475      ELSE
476
477         CALL ctl_stop( 'Error in obcdyn_tam : TAM is available only for fixed boundary conditions' )
478
479      END IF
480
481   END SUBROUTINE obc_dyn_south_tan
482
483   SUBROUTINE obc_dyn_south_adj
484      !!------------------------------------------------------------------------------
485      !!                  ***  SUBROUTINE obc_dyn_south_adj  ***
486      !!             
487      !! ** Purpose :
488      !!
489      !!  History :
490      !!         !
491      !!------------------------------------------------------------------------------
492      !! * Arguments
493      !! * Local declaration
494      !!------------------------------------------------------------------------------
495      IF ( ll_fbc .OR. lfbcsouth ) THEN
496     
497         ! 1.2 V meridional velocity
498         ! -------------------------
499         DO jj = njs0, njs1
500            DO jk = 1, jpkm1
501               DO ji = 1, jpi
502                  va_ad(ji,jj,jk) = va_ad(ji,jj,jk) * ( 1. - vsmsk(ji,jk) )
503               END DO
504            END DO
505         END DO
506
507         ! 1.1 U zonal velocity
508         ! --------------------
509         DO jj = njs0, njs1
510            DO jk = 1, jpkm1
511               DO ji = 1, jpi
512                  ua_ad(ji,jj,jk) = ua_ad(ji,jj,jk) * ( 1. - usmsk(ji,jk) )
513               END DO
514            END DO
515         END DO
516
517      ELSE
518
519         CALL ctl_stop( 'Error in obcdyn_tam : TAM is available only for fixed boundary conditions' )
520
521      END IF
522
523   END SUBROUTINE obc_dyn_south_adj
524
525
526   SUBROUTINE obc_dyn_adj_tst( kumadt )
527
528     USE gridrandom, ONLY : grid_rd_sd
529     USE tstool_tam, ONLY : prntst_adj, stdu, stdv
530     USE dotprodfld, ONLY : dot_product  ! Computes dot product for 3D and 2D fields
531
532     INTEGER, INTENT(IN) ::  kumadt        ! Output unit
533     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  &
534          zua_tlin,  zva_tlin,  zua_adin,  zva_adin, z3r
535     REAL(wp) ::  zspdx, zspdy
536     CHARACTER (LEN=14) ::  cl_name
537
538     ! ... Allocate memory
539     ALLOCATE(  zua_tlin (jpi,jpj,jpk), zva_tlin(jpi,jpj,jpk), &
540                zua_adin (jpi,jpj,jpk), zva_adin(jpi,jpj,jpk), &
541                z3r(jpi,jpj,jpk)  ) 
542     
543     ! ... Initialisations
544     zua_tlin(:,:,:) = 0.e0  ;   zua_adin(:,:,:) = 0.e0
545     zva_tlin(:,:,:) = 0.e0  ;   zva_adin(:,:,:) = 0.e0
546
547     ! ... Define random working arrays
548     CALL grid_rd_sd( 456953, z3r,  'U', 0.0_wp, stdu)
549     DO jk = 1, jpk ; DO jj = nldj, nlej ; DO ji = nldi, nlei
550        zua_tlin(ji,jj,jk) = z3r(ji,jj,jk)
551     END DO ; END DO ; END DO
552     
553     CALL grid_rd_sd( 3434334, z3r, 'V', 0.0_wp, stdv)
554     DO jk = 1, jpk ; DO jj = nldj, nlej ; DO ji = nldi, nlei
555        zva_tlin(ji,jj,jk) = z3r(ji,jj,jk)
556     END DO ; END DO ; END DO
557
558     ! ... Initialize the tangent variables
559     ua_tl(:,:,:) = zua_tlin(:,:,:)   ;   ub_tl(:,:,:) = 0.e0
560     va_tl(:,:,:) = zva_tlin(:,:,:)   ;   vb_tl(:,:,:) = 0.e0
561
562     ! ... Call the tangent routine
563     CALL obc_dyn_tan( nit000 )
564 
565     ! ... Initialize the adjoint variables
566     zua_adin(:,:,:) = 1. * ua_tl(:,:,:)
567     zva_adin(:,:,:) = 1. * va_tl(:,:,:)
568
569     ! ... Calculate the scalar product for the output
570     zspdy = DOT_PRODUCT( ua_tl, zua_adin ) &
571           + DOT_PRODUCT( va_tl, zva_adin ) 
572
573     ! ... Call the adjoint routine
574     ua_ad(:,:,:) = zua_adin(:,:,:)   ;   ub_ad(:,:,:) = 0.e0
575     va_ad(:,:,:) = zva_adin(:,:,:)   ;   vb_ad(:,:,:) = 0.e0
576
577     CALL obc_dyn_adj( nit000 )
578
579     ! ... Calculate the scalar product for the input
580     zspdx = DOT_PRODUCT( zua_tlin, ua_ad ) &
581           + DOT_PRODUCT( zva_tlin, va_ad ) 
582
583     ! ... Diagnostic write
584     !    14 char:'12345678901234'
585     cl_name =    'obcdyn_tam    '
586     CALL prntst_adj( cl_name, kumadt, zspdx, zspdy )
587
588   END SUBROUTINE obc_dyn_adj_tst
589#else
590   !!=================================================================================
591   !!                       ***  MODULE  obcdyn  ***
592   !! Ocean dynamics:   Radiation of velocities on each open boundary
593   !!=================================================================================
594CONTAINS
595   SUBROUTINE obc_dyn_tan                              ! No open boundaries ==> empty routine
596   END SUBROUTINE obc_dyn_tan
597   SUBROUTINE obc_dyn_adj                              ! No open boundaries ==> empty routine
598   END SUBROUTINE obc_dyn_adj
599   SUBROUTINE obc_dyn_adj_tst
600   END SUBROUTINE obc_dyn_adj_tst
601#endif
602
603END MODULE obcdyn_tam
Note: See TracBrowser for help on using the repository browser.