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 @ 35

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

CT : UPDATE001 : First major NEMO update

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