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.
obcdom.F90 in trunk/NEMO/OPA_SRC/OBC – NEMO

source: trunk/NEMO/OPA_SRC/OBC/obcdom.F90 @ 78

Last change on this file since 78 was 78, checked in by opalod, 20 years ago

CT : UPDATE052 : change logical lpXXXobc to lp_obc_XXX for Open Boundaries case

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 22.5 KB
Line 
1MODULE obcdom
2   !!=================================================================================
3   !!                       ***  MODULE  obcdom  ***
4   !! Space domain  :  get all the isolated coastline points needed to resolve the
5   !!                  barotropic streamfunction elliptic equation associated with
6   !!                  the open boundaries.
7   !!=================================================================================
8#if defined key_obc && defined key_dynspg_rl
9   !!---------------------------------------------------------------------------------
10   !!   'key_obc'           AND                                Open Boundary Condition
11   !!   'key_dynspg_rl'                                          Rigid-Lid formulation
12   !!---------------------------------------------------------------------------------
13   !!   obc_dom        : domain initialization in rid-lid formulation
14   !!---------------------------------------------------------------------------------
15   !! * Modules used
16   USE oce             ! ocean dynamics and tracers   
17   USE dom_oce         ! ocean space and time domain
18   USE phycst          ! physical constants
19   USE obc_oce         ! ocean open boundary conditions
20   USE in_out_manager  ! I/O manager
21   USE lib_mpp         ! distributed memory computing library
22
23   IMPLICIT NONE
24   PRIVATE
25
26   !! * Accessibility
27   PUBLIC obc_dom        ! routine called by iniobc.F90
28   !!---------------------------------------------------------------------------------
29
30CONTAINS
31
32   SUBROUTINE obc_dom
33      !!------------------------------------------------------------------------------
34      !!                       SUBROUTINE obc_dom
35      !!                      ********************
36      !! ** Purpose :   Initialize the array used for the computation of the part of
37      !!        the right hand side of the barotropic streamfunction elliptic equation
38      !!        associated with the open boundaries
39      !!
40      !! **  Method :
41      !!      + The (i,j) indices of ocean grid-points round isolated coastlines
42      !!        are found (isolated coastlines = coast lines separated by an
43      !!        open boundary) from icoast array read in coastlines file.
44      !!
45      !!      + read 'coastline' file  initialize icoast()
46      !!        modify icoast() depending on the number of open boundaries
47      !!        specified through key_obc
48      !!
49      !!      + compute zwb, an ocean/land mask defined as follows:
50      !!             zwb(i,j)  =  0. over the one isolated coastline
51      !!                       = -1, -2, -3 over the orthers
52      !!      + for example, when 4 open boundaries are specified:
53      !!
54      !!                       //|           |//
55      !!        North          //|   North   |// -1 -1   North
56      !!         West     0  0 //| - - - - - |// -1 -1    East
57      !!                       //| open bnd  |//
58      !!              ///////////|           |/////////
59      !!              ------------            ----------
60      !!                                               
61      !!             west   |                  |    east
62      !!           open bnd                       open bnd   
63      !!                    |                  |         
64      !!              ___________             _________
65      !!              ///////////|           |/////////
66      !!                       //|   south   |//
67      !!        South    -3 -3 //| - - - - - |// -2 -2   South
68      !!         West    -3 -3 //| open bnd  |// -2 -2    East
69      !!                       //|           |//
70      !!
71      !!        With the proper boundary conditions (defined by nperio)
72      !!
73      !!        C a u t i o n :  no check, the user must enter a well defined
74      !!        coastline file. Further more, he must verify that isolated
75      !!        coastlines have been well located dans that the right potential
76      !!        is affected to the right coastline in obc.F
77      !!
78      !! History :
79      !!   8.1  !  09-97  (J.M. Molines, G. Madec)  Original code
80      !!   8.2  !  06-99  (J.M. Molines) suppress zwb(,) for ATL6 (memory saving)
81      !!        !  02-02  (A.M. Treguier) icoast in 2 dimension
82      !!   8.5  !  02-08  (G. Madec)  F90 : free form
83      !!----------------------------------------------------------------------
84      !! * Local declarations
85      INTEGER ::   ji, jj, jn, jnic, jnp, jii    ! dummy loop indices
86      INTEGER ::   inum = 11         ! temporary logical unit
87      INTEGER ::   ifreq, il1, il2, ii, ij, icheck
88      INTEGER ::   ip, ipn, ips, ipe, ipw
89      INTEGER ::   iim, ijm, iii, ijj
90      INTEGER, DIMENSION(jpidta,jpjdta) ::   icoast
91      CHARACTER (len=15) ::   clexp
92      REAL(wp) ::   zzic, zland
93      REAL(wp) ::   zwb, zwbn, zwbs, zwbe, zwbw
94      REAL(wp) ::   zglo(jpiglo,jpjglo)
95      !!---------------------------------------------------------------------
96      !!  OPA 8.5, LODYC-IPSL (2002)
97      !!---------------------------------------------------------------------
98     
99      ! 0. initialization of gcfobc to zero
100      ! -----------------------------------
101     
102      DO jn = 1, 3
103         gcfobc(:,:,jn) = 0.e0
104      END DO
105     
106      ! 1. Only 1 open boundary : gcfobc is zero, return
107      ! ------------------------------------------------
108     
109      IF( nbobc == 1 .OR. nbic == 0 ) THEN
110         IF(lwp) WRITE(numout,*)
111         IF(lwp) WRITE(numout,*) ' obc_dom: No isolated coastlines gcfobc is set to zero'
112         IF(lwp) WRITE(numout,*) ' ~~~~~~~'
113         nstop = nstop + 1
114      END IF
115
116      ! 2. Lecture of 'coastlines' file
117      ! -------------------------------
118     
119      IF(lwp) WRITE(numout,*)
120      IF(lwp) WRITE(numout,*) 'obc_dom: define isolated coastlines from "coastlines" file'
121      IF(lwp) WRITE(numout,*) '~~~~~~~'
122      IF(lwp) WRITE(numout,*)
123
124      ! open coastlines file'
125      CALL ctlopn( inum, 'coastlines', 'OLD', 'FORMATTED', 'SEQUENTIAL',   &
126                   1 , numout, lwp, 1 )
127
128      ! lecture of coastlines, set icoast array
129      ! Note that this is coded for jpjdta > 1000
130      REWIND(inum)
131      READ(inum,9101) clexp, iim, ijm
132      READ(inum,'(/)')
133      ifreq = 40
134      il1 = 1
135      IF( jpjglo < 1000 ) THEN
136         DO jn = 1, jpidta/ifreq+1
137            READ(inum,'(/)')
138            il2 = min0( jpidta, il1+ifreq-1 )
139            READ(inum,9201) ( ii, ji = il1, il2, 5 )
140            READ(inum,'(/)')
141            DO jj = jpjdta, 1, -1
142               READ(inum,9202) ij, ( icoast(ji,jj), ji = il1, il2 )
143            END DO
144            il1 = il1 + ifreq
145         END DO
146      ELSE
147         DO jn = 1, jpidta/ifreq+1
148            READ(inum,'(/)')
149            il2 = min0( jpidta, il1+ifreq-1 )
150            READ(inum,9221) ( ii, ji = il1, il2, 5 )
151            READ(inum,'(/)')
152            DO jj = jpjdta, 1, -1
153               READ(inum,9222) ij, ( icoast(ji,jj), ji = il1, il2 )
154            END DO
155            il1 = il1 + ifreq
156         END DO
157      END IF
158      CLOSE(inum)
159
160   ! in case of zoom, icoast must be set to 0 on the domain border
161   ! it must be the same for the bathymetry
162   IF (lzoom_w) icoast(jpiglo            ,:) = 0 
163   IF (lzoom_e) icoast(jpiglo +jpizoom -1,:) = 0 
164   IF (lzoom_s) icoast(:,jpjzoom           ) = 0 
165   IF (lzoom_n) icoast(:,jpjglo+jpjzoom -1 ) = 0 
166
167      DO jj = 1, jpjglo
168         DO ji = 1, jpiglo
169            zglo(ji,jj) = icoast( ji+jpizoom-1, jj+jpjzoom-1)
170         END DO
171      END DO
172
173 9101 FORMAT(1x,a15,2i8)
174 9201 FORMAT(3x,13(i3,12x))
175 9202 FORMAT(i3,41i3)
176 9221 FORMAT(4x,13(i3,12x))
177 9222 FORMAT(i4,41i3)
178
179      ! check consistency between tmask and icoast
180     
181      icheck = 0
182      DO jj = 1, jpjm1
183         DO ji = 1, jpim1
184            icheck = icheck +  INT( tmask(ji,jj,1) ) - MAX(  0, icoast( mig(ji), mjg(jj) )  )
185         END DO
186      END DO
187      IF( lk_mpp )   CALL mpp_sum(icheck)   ! sum over the global domain
188
189      IF( icheck /= 0 ) THEN
190         IF(lwp) WRITE(numout,cform_err)
191         IF(lwp) WRITE(numout,*) 'obc_dom : tmask and isolated coastlines mask are not equal', icheck
192         IF(lwp) WRITE(numout,*) '~~~~~~~'
193         nstop = nstop + 1
194      END IF
195
196      ! 3. transfer the coastline information from T- to f-points
197      !    (i.e. from icoast to zwb with  zwb=0 over the continent
198      !     and ocean, =-n over the nth isolated coastline)
199      ! -----------------------------------------------------------
200     
201      ! east open boundary
202      IF( lp_obc_east .AND. ( jpieob /= 0 ) ) THEN
203         IF(lwp) WRITE(numout,*) '         East open boundary: from coastline S.E : ', &
204                                 INT(zglo(jpieob,jpjed)),' to N.E : ',               &
205                                 INT(zglo(jpieob,jpjef))
206      END IF
207      ! west open boundary
208      IF( lp_obc_west .AND. ( jpiwob /= 0 ) ) THEN
209         IF(lwp) WRITE(numout,*) '         West open boundary: from coastline S.W : ', &
210                                 INT(zglo(jpiwob,jpjwd)),' to N.W : ',               &
211                                 INT(zglo(jpiwob,jpjwf))
212      END IF
213      ! north open boundary
214      IF( lp_obc_north .AND. ( jpjnob /= 0 ) ) THEN
215         IF(lwp) WRITE(numout,*) '         North open boundary: from coastline N.W : ', &
216                                 INT(zglo(jpind,jpjnob)),' to N.E : ',                &
217                                 INT(zglo(jpinf,jpjnob))
218      END IF
219      ! south open boundary
220      IF( lp_obc_south .AND. ( jpjsob /= 0 ) ) THEN
221         IF(lwp) WRITE(numout,*) '         South open boundary: from coastline S.W : ', &
222                                 INT(zglo(jpisd,jpjsob)),' to S.E : ',                &
223                                 INT(zglo(jpisf,jpjsob))
224      END IF
225
226      ! 4. Identify the isolated coastline grid point position
227      ! ------------------------------------------------------
228
229      ! Loop over isolated coastlines
230
231      DO jnic = 1, nbobc-1
232         ! set to zero of miic, mjic of the jnic isolated coastline
233         DO jn = 0, 4
234            DO ji = 1, jpnic
235               miic(ji,jn,jnic) = 0
236               mjic(ji,jn,jnic) = 0
237            END DO
238         END DO
239         
240         ! Coastal isolated coastline grid-points (miic,mjic)
241         ip  = 0
242         ipn = 0
243         ips = 0
244         ipe = 0
245         ipw = 0
246         
247         ! Middle lines (1=<jj=<jpjm1)
248
249         !       jj+1  --zwb--v--ZWB--v--zwb--
250         !                |       |       |
251         !          jj+1  u   T   u   T   u
252         !                |       |       |
253         !       jj    --ZWB--v--ZWB--v--ZWB--
254         !                |       |       |
255         !              jj    u   T   u   T   u
256         !                |       |       |
257         !       jj-1  --zwb--v--ZWB--v--zwb--
258         !                |       |       |
259         !                |   ii  | ii+1  |
260         !                |       |       |
261         !               ii-1    ii      ii+1
262         
263         DO jj = 1, jpjglo-1
264            DO ji = 1, jpiglo-1
265               ii = ji
266               zwb = MIN( 0., zglo(ji,jj), zglo(ji+1,jj), zglo(ji,jj+1), zglo(ji+1,jj+1) )
267               IF( jj == jpjglo -1 ) THEN
268                  zwbn = zwb
269               ELSE
270                  zwbn= MIN( 0., zglo(ji,jj+1), zglo(ji+1,jj+1), zglo(ji,jj+2), zglo(ji+1,jj+2) )
271               END IF
272               IF( jj == 1 ) THEN
273                  zwbs = zwb
274               ELSE
275                  zwbs= MIN( 0., zglo(ji,jj-1), zglo(ji+1,jj-1), zglo(ji,jj), zglo(ji+1,jj) )
276               END IF
277               IF( ji == jpiglo -1 ) THEN
278                  zwbe = zwb
279               ELSE
280                  zwbe= MIN( 0., zglo(ji+1,jj), zglo(ji+2,jj), zglo(ji+1,jj+1), zglo(ji+2,jj+1) )
281               END IF
282               IF( ji == 1 ) THEN
283                  zwbw = zwb
284               ELSE
285                  zwbw= MIN( 0., zglo(ji-1,jj), zglo(ji,jj), zglo(ji-1,jj+1), zglo(ji,jj+1) )
286               END IF
287               
288               ! inside coastlines indicator
289               zzic  =                zwbn                 &
290                     * zwbw                       * zwbe   &
291                                    * zwbs
292               ! inside land indicator
293               zland = MAX( 0., zglo(ji,jj+1) ) + MAX( 0., zglo(ji+1,jj+1) )   &
294                     + MAX( 0., zglo(ji,jj  ) ) + MAX( 0., zglo(ji+1,jj  ) )
295               ! if isolated coastline grid-point
296               IF( zwb == float( -jnic ) .AND.   &
297                  ! not inside the isolated coastline
298                             zzic == 0.  .AND.   &
299                  ! not inside the land
300                             zland >= 2.         ) THEN
301                  ! coastal point of the isolated coastline jnic
302                  ip = ip + 1
303                  miic(ip,0,jnic) = ii
304                  mjic(ip,0,jnic) = jj
305                  ! which has a west ocean grid point
306                  IF( zwbw == 0. ) THEN
307                     ipw = ipw + 1
308                     miic(ipw,4,jnic) = ii
309                     mjic(ipw,4,jnic) = jj
310                  END IF
311                  ! which has a east ocean grid point
312                  IF( zwbe == 0. ) THEN
313                     ipe = ipe + 1
314                     IF( nperio == 1 .AND. ii == jpiglo-1 ) THEN
315                        miic(ipe,3,jnic) = 2
316                     ELSE
317                        miic(ipe,3,jnic) = ii + 1
318                     END IF
319                     mjic(ipe,3,jnic) = jj
320                  END IF
321                  ! which has a south ocean grid point
322                  IF( zwbs == 0. ) THEN
323                     ips = ips + 1
324                     miic(ips,2,jnic) = ii
325                     mjic(ips,2,jnic) = jj
326                  END IF
327                  ! which has a north ocean grid point not out of north open b.
328                  IF( zwbn == 0. ) THEN
329                     ipn = ipn + 1
330                     miic(ipn,1,jnic) = ii
331                     mjic(ipn,1,jnic) = jj + 1
332                  END IF
333               END IF
334            END DO
335         END DO
336         
337         mnic(0,jnic) = ip
338         mnic(1,jnic) = ipn
339         mnic(2,jnic) = ips
340         mnic(3,jnic) = ipe
341         mnic(4,jnic) = ipw
342         
343      END DO
344
345      ! 5. Check the number of isolated coastline
346      ! -----------------------------------------
347
348      DO jnic = 1, nbobc-1
349         IF( mnic(0,jnic) > jpnic ) THEN
350            IF(lwp) WRITE(numout,cform_err)
351            IF(lwp) WRITE(numout,*) 'obc_dom: isolated coastline ',jnic,   &
352               ' has ',ip,' grid-points > ',jpnic 
353            IF(lwp) WRITE(numout,*) '~~~~~~~'
354            IF(lwp) WRITE(numout,*) ' modify this dimension in obc_dom'
355            nstop = nstop + 1
356         END IF
357         IF( mnic(0,jnic) == 0 ) THEN
358            IF(lwp) WRITE(numout,cform_err)
359            IF(lwp) WRITE(numout,*) 'obc_dom: isolated coastline ',jnic,   &
360               ' has 0  grid-points verify coastlines file'
361            IF(lwp) WRITE(numout,*) '~~~~~~~'
362            nstop = nstop + 1
363         END IF
364      END DO
365
366      ! 6. Print of isolated coastline parametres and arrays
367      ! -----------------------------------------------------
368
369      IF(lwp) WRITE(numout,*) '           '
370      IF(lwp) WRITE(numout,*) '         isolated coastlines found:', nbobc - 1
371
372      DO jnic = 1, nbobc-1
373         ip  = mnic(0,jnic)
374         ipn = mnic(1,jnic)
375         ips = mnic(2,jnic)
376         ipe = mnic(3,jnic)
377         ipw = mnic(4,jnic)
378         IF(lwp) THEN
379            WRITE(numout,9000) jnic
380            WRITE(numout,9010) ip, ipn, ips, ipe, ipw
381            WRITE(numout,9020)
382            DO jnp = 1, mnic(0,jnic)
383               WRITE(numout,9030) jnp,( miic(jnp,ji,jnic)+nimpp-1, mjic(jnp,ji,jnic)+njmpp-1, ji=0,4 )
384            END DO
385         END IF
386         
387         ! format
388
389 9000 FORMAT(/,'          isolated coastline number= ',i2)
390 9010 FORMAT(/,'          npic=',i4,' npn=',i4,' nps=',i4,' npe=',i4,' npw=',i4)
391 9020 FORMAT(/,'              * ic  point *  point n  *  point s  *  point e ','*  point w  *')
392 9030 FORMAT('         ',i4,' * (',i4,',',i4,') * (',i4,',',i4,') * (',i4,',',i4,') * (',i4,',',i4,') * (',i4,',',i4,') *')
393
394      END DO
395
396      ! 7. Construct the gcfobc array associated with each isolated coastline
397      ! ----------------------------------------------------------------------
398
399      DO jnic = 1, nbobc-1
400
401         ! north and south grid-points
402         DO jii = 1, 2
403            DO jnp = 1, mnic(jii,jnic)
404               ii = miic(jnp,jii,jnic)
405               ij = mjic(jnp,jii,jnic)
406               ! take only into account gridpoint of the model domain
407               IF( ii >= nldi+nimpp-1 .AND. ii <= nlci+nimpp-1 .AND.   &
408                   ij >= nldj+njmpp-1 .AND. ij <= nlcj+njmpp-1       ) THEN
409                  iii=ii-nimpp+1
410                  ijj=ij-njmpp+1
411                  gcfobc(iii,ijj-jii+1,jnic) = gcfobc(iii,ijj-jii+1,jnic)   &
412                                             - hur(iii,ijj) * e1u(iii,ijj) / e2u(iii,ijj)
413
414               END IF
415            END DO
416         END DO
417
418         ! east and west grid-points
419         DO jii = 3, 4
420            DO jnp = 1, mnic(jii,jnic)
421               ii = miic(jnp,jii,jnic)
422               ij = mjic(jnp,jii,jnic)
423               ! take only into account gridpoint of the model domain
424               IF( ii >= nldi+nimpp-1 .AND. ii <= nlci+nimpp-1 .AND.    &
425                   ij >= nldj+njmpp-1 .AND. ij <= nlcj+njmpp-1 ) THEN
426                  iii=ii-nimpp+1
427                  ijj=ij-njmpp+1
428                  IF( iii-jii+3 == 1 ) THEN
429                     ! cyclic east-west boundary
430                     gcfobc(jpim1    ,ijj,jnic) = gcfobc(jpim1    ,ijj,jnic)   &
431                                                - hvr(iii,ijj) * e2v(iii,ijj) / e1v(iii,ijj)
432                  ELSE
433                     ! interior points
434                     gcfobc(iii-jii+3,ijj,jnic) = gcfobc(iii-jii+3,ijj,jnic)   &
435                                                - hvr(iii,ijj) * e2v(iii,ijj) / e1v(iii,ijj)
436                  END IF
437               END IF
438            END DO
439         END DO
440
441         ! applied bmask to suppress coastal open boundary influence
442         DO jj = 1, jpj
443            DO ji = 1, jpi
444               gcfobc(ji,jj,jnic) = gcfobc(ji,jj,jnic) * bmask(ji,jj)
445            END DO
446         END DO
447         
448      END DO
449
450
451      ! 8. check the grid point which value controls the isolated coastline potential
452      !    Note: in order to activate those tests you need to make zwb a global array,
453      !    which is not done usually to spare memory.
454      !    n.b. here at least 2 open boundaries
455      ! ------------------------------------------------------------------------------
456!
457! east open boundary:
458!     IF( nieob /= 0 ) THEN
459!   east open & south open  :                              Ed === Sf
460!         IF( njsob /= 0 ) THEN
461!             IF( zwb(nieob,jped) /= zwb(jpsf,njsob) ) THEN
462!                 IF(lwp)WRITE(numout,*) ' E R R O R : east d # south f'
463!             END IF
464!   east open, south closed & west open :                  Ed === Wd
465!           ELSEIF( niwob /= 0 ) THEN
466!             IF( zwb(nieob,jped) /= zwb(niwob,jpwd) ) THEN
467!                 IF(lwp)WRITE(numout,*) ' E R R O R : east d # west d'
468!             END IF
469!   east open, south closed, west closed & north open :    Ed === Nd
470!           ELSEIF( njnob /= 0 ) THEN
471!             IF( zwb(nieob,jped) /= zwb(jpnd,njnob) ) THEN
472!                 IF(lwp)WRITE(numout,*) ' E R R O R : east d # north d'
473!             END IF
474!         END IF
475!   east open & north open :                               Ef === Nf
476!         IF( njnob /= 0 ) THEN
477!             IF( zwb(nieob,jpef) /= zwb(jpnf,njnob) ) THEN
478!                 IF(lwp)WRITE(numout,*) ' E R R O R : east f # north f'
479!             END IF
480!   east open, north closed & west open :                  Ef === Wf
481!           ELSEIF( niwob /= 0 ) THEN
482!             IF( zwb(nieob,jpef) /= zwb(niwob,jpwf) ) THEN
483!                 IF(lwp)WRITE(numout,*) ' E R R O R : east f # west f'
484!             END IF
485!   east open, north closed, west closed & south open :    Ef === Sd
486!           ELSEIF( njsob /= 0 ) THEN
487!             IF( zwb(nieob,jpef) /= zwb(jpsd,njnob) ) THEN
488!                 IF(lwp)WRITE(numout,*) ' E R R O R : east f # south d'
489!             END IF
490!         END IF
491!
492! east closed
493!       ELSE
494! east closed, south open
495!         IF( njsob /= 0 ) THEN
496!   east closed, south open & west open :                  Sd === Wd
497!             IF( niwob /= 0 ) THEN
498!                 IF( zwb(jpsd,njsob) /= zwb(niwob,jpwd) ) THEN
499!                     IF(lwp)WRITE(numout,*) ' E R R O R :',
500!    $                                       ' south d # west d'
501!                 END IF
502!   east closed, south open, west closed & north open :    Sd === Nd
503!               ELSEIF( njnob /= 0 ) THEN
504!                 IF( zwb(jpsd,njsob) /= zwb(jpnd,njnob) ) THEN
505!                     IF(lwp)WRITE(numout,*) ' E R R O R : ',
506!    $                                       ' south d # north d'
507!                 END IF
508!             END IF
509!   south open, east closed & north open :                 Sf === Nf
510!             IF( njnob /= 0 ) THEN
511!                 IF( zwb(jpsf,njsob) /= zwb(jpnf,njnob) ) THEN
512!                     IF(lwp)WRITE(numout,*) ' E R R O R : ',
513!    $                                       ' south f # north f'
514!                 END IF
515!   south open, east closed, north closed & west open :    Sf === Wf
516!               ELSEIF( niwob /= 0 ) THEN
517!                 IF( zwb(jpsf,njsob) /= zwb(niwob,jpwf) ) THEN
518!                     IF(lwp)WRITE(numout,*) ' E R R O R : ',
519!    $                                       ' south f # west f'
520!                 END IF
521!             END IF
522!
523! east & south closed ==> north & west open :              Nd === Wf
524!                                                              Nf === Wd
525!           ELSE
526!             IF( zwb(jpnd,njnob) /= zwb(niwob,jpwf) ) THEN
527!                 IF(lwp)WRITE(numout,*) ' E R R O R : north d # west f'
528!             END IF
529!             IF( zwb(jpnf,njnob) /= zwb(niwob,jpwd) ) THEN
530!                 IF(lwp)WRITE(numout,*) ' E R R O R : north f # west d'
531!             END IF
532!         END IF
533!
534!     END IF
535!
536!
537
538   END SUBROUTINE obc_dom
539#else
540   !!=================================================================================
541   !!                       ***  MODULE  obcdom  ***
542   !! Space domain :  get all the isolated coastline points needed to resolve the
543   !!                 barotropic streamfunction elliptic equation associated with
544   !!                 the open boundaries.
545   !!=================================================================================
546CONTAINS
547
548   SUBROUTINE obc_dom                 
549
550      ! No isolated coastline OR No Open Boundaries ==> empty routine
551
552   END SUBROUTINE obc_dom
553#endif
554
555END MODULE obcdom
Note: See TracBrowser for help on using the repository browser.