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.
Changeset 25 for trunk/NEMO/OPA_SRC/OBC – NEMO

Changeset 25 for trunk/NEMO/OPA_SRC/OBC


Ignore:
Timestamp:
2004-02-17T09:59:51+01:00 (20 years ago)
Author:
opalod
Message:

CT : BUGFIX008 : Running problem for EEL5 configuration is solved

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/OBC/obcini.F90

    r3 r25  
    11 MODULE obcini 
    2 #if defined key_obc 
    32   !!================================================================================= 
    43   !!                       ***  MODULE  obcini  *** 
    54   !! OBC initial state :  Open boundary initial state 
    65   !!================================================================================= 
    7  
     6#if defined key_obc 
     7   !!--------------------------------------------------------------------------------- 
     8   !!   'key_obc'                                             Open Boundary Conditions 
    89   !!--------------------------------------------------------------------------------- 
    910   !! * Modules used 
     
    4142      !!      (t, s)      over 2 time step and 2 rows 
    4243      !!      if ln_rstart = .FALSE. : no restart, fields set to zero 
    43       !!      if ln_rstart = .TRUE.  : restart, fields are read in file numrob 
     44      !!      if ln_rstart = .TRUE.  : restart, fields are read in a file  
    4445      !!      if rdpxxx = 0 then lfbc is set true for this boundary. 
    4546      !! 
    46       !! ** Input file :   restart.obc   : input restart file for open  
    47       !!                                   boundaries (unit file numrob) 
     47      !! ** Input   :   restart.obc file, restart file for open boundaries  
     48      !! 
    4849      !! History : 
    4950      !!   8.0  !  97-07  (G. Madec)  Original code 
     
    5253      !!---------------------------------------------------------------------- 
    5354      !! * Modules used 
    54       USE obcrst,   ONLY :   obc_rst_lec               ! Make obc_rst_lec routine available 
    55       USE obcdom,   ONLY :   obc_dom                   ! Make obc_dom routine available 
     55      USE obcrst,   ONLY :   obc_rst_lec   ! Make obc_rst_lec routine available 
     56      USE obcdom,   ONLY :   obc_dom       ! Make obc_dom routine available 
    5657 
    5758      !! * Local declarations 
     
    6263 
    6364      NAMELIST/namobc/ rdpein, rdpwin, rdpnin, rdpsin,   & 
    64                        rdpeob, rdpwob, rdpnob, rdpsob,   & 
    65                        zbsic1, zbsic2, zbsic3,           & 
    66                        nbic, volemp 
     65         &             rdpeob, rdpwob, rdpnob, rdpsob,   & 
     66         &             zbsic1, zbsic2, zbsic3,           & 
     67         &             nbic, volemp, nobc_dta 
    6768      !!---------------------------------------------------------------------- 
    6869 
     
    135136      IF(lwp) WRITE(numout,*) '         namobc' 
    136137      IF(lwp) WRITE(numout,*) ' ' 
    137       IF(lwp) WRITE(numout,*) '         data in file (=1) or     nobc_dta = ',nobc_dta 
     138      IF(lwp) WRITE(numout,*) '         data in file (=1) or     nobc_dta = ', nobc_dta 
    138139      IF(lwp) WRITE(numout,*) '         initial state used (=0)             ' 
    139140      IF( lwp.AND.lpeastobc ) THEN 
    140141         WRITE(numout,*) '         East open boundary :' 
    141          WRITE(numout,*) '              i index                    jpieob = ',jpieob 
    142          WRITE(numout,*) '              damping time scale (days)  rdpeob = ',rdpeob 
    143          WRITE(numout,*) '              damping time scale (days)  rdpein = ',rdpein 
     142         WRITE(numout,*) '              i index                    jpieob = ', jpieob 
     143         WRITE(numout,*) '              damping time scale (days)  rdpeob = ', rdpeob 
     144         WRITE(numout,*) '              damping time scale (days)  rdpein = ', rdpein 
    144145      END IF 
    145146 
    146147      IF( lwp.AND.lpwestobc ) THEN 
    147148         WRITE(numout,*) '         West open boundary :' 
    148          WRITE(numout,*) '              i index                    jpiwob = ',jpiwob 
    149          WRITE(numout,*) '              damping time scale (days)  rdpwob = ',rdpwob 
    150          WRITE(numout,*) '              damping time scale (days)  rdpwin = ',rdpwin 
     149         WRITE(numout,*) '              i index                    jpiwob = ', jpiwob 
     150         WRITE(numout,*) '              damping time scale (days)  rdpwob = ', rdpwob 
     151         WRITE(numout,*) '              damping time scale (days)  rdpwin = ', rdpwin 
    151152      END IF 
    152153 
    153154      IF( lwp.AND.lpnorthobc ) THEN 
    154155         WRITE(numout,*) '         North open boundary :' 
    155          WRITE(numout,*) '               j index                    jpjnob = ',jpjnob 
    156          WRITE(numout,*) '               damping time scale (days)  rdpnob = ',rdpnob 
    157          WRITE(numout,*) '               damping time scale (days)  rdpnin = ',rdpnin 
     156         WRITE(numout,*) '               j index                    jpjnob = ', jpjnob 
     157         WRITE(numout,*) '               damping time scale (days)  rdpnob = ', rdpnob 
     158         WRITE(numout,*) '               damping time scale (days)  rdpnin = ', rdpnin 
    158159      END IF 
    159160 
    160161      IF( lwp.AND.lpsouthobc ) THEN 
    161162         WRITE(numout,*) '         South open boundary :' 
    162          WRITE(numout,*) '               j index                    jpjsob = ',jpjsob 
    163          WRITE(numout,*) '               damping time scale (days)  rdpsob = ',rdpsob 
    164          WRITE(numout,*) '               damping time scale (days)  rdpsin = ',rdpsin 
     163         WRITE(numout,*) '               j index                    jpjsob = ', jpjsob 
     164         WRITE(numout,*) '               damping time scale (days)  rdpsob = ', rdpsob 
     165         WRITE(numout,*) '               damping time scale (days)  rdpsin = ', rdpsin 
    165166         WRITE(numout,*) ' ' 
    166167      END IF 
     
    537538         END DO 
    538539      END IF 
    539  
    540 # if defined key_mpp 
    541       CALL mpp_sum( obcsurftot ) 
    542 # endif 
     540      IF( lk_mpp )   CALL mpp_sum( obcsurftot )   ! sum over the global domain 
    543541 
    544542# endif 
     
    566564            IF( (njw1 + njmpp - 1) == jpjwf ) ztestmask(2)=ztestmask(2)+ tmask(ji,njw1,1) 
    567565         END DO 
    568 # if defined key_mpp 
    569          CALL mpp_sum( ztestmask, 2 ) 
    570 # endif 
     566         IF( lk_mpp )   CALL mpp_sum( ztestmask, 2 )   ! sum over the global domain 
     567 
    571568         IF( ztestmask(1) /= 0. ) icorner(1)=icorner(1)+1 
    572569         IF( ztestmask(2) /= 0. ) icorner(4)=icorner(4)+1 
     
    587584            IF( (nje1 + njmpp - 1) == jpjef ) ztestmask(2)=ztestmask(2)+ tmask(ji,nje1,1) 
    588585         END DO 
    589 # if defined key_mpp 
    590          CALL mpp_sum( ztestmask, 2 ) 
    591 # endif 
     586         IF( lk_mpp )   CALL mpp_sum( ztestmask, 2 )   ! sum over the global domain 
     587 
    592588        IF( ztestmask(1) /= 0. ) icorner(2)=icorner(2)+1 
    593589        IF( ztestmask(2) /= 0. ) icorner(3)=icorner(3)+1 
     
    608604            IF( (nin1 + nimpp - 1) == jpinf ) ztestmask(2)=ztestmask(2)+ tmask(nin1,jj,1) 
    609605         END DO 
    610 # if defined key_mpp 
    611          CALL mpp_sum( ztestmask, 2 ) 
    612 # endif 
     606         IF( lk_mpp )   CALL mpp_sum( ztestmask, 2 )   ! sum over the global domain 
     607 
    613608         IF( ztestmask(1) /= 0. ) icorner(4)=icorner(4)+1 
    614609         IF( ztestmask(2) /= 0. ) icorner(3)=icorner(3)+1 
     
    629624            IF( (nis1 + nimpp - 1) == jpisf ) ztestmask(2)=ztestmask(2)+ tmask(nis1,jj,1) 
    630625         END DO 
    631 # if defined key_mpp 
    632          CALL mpp_sum( ztestmask, 2 ) 
    633 # endif 
     626         IF( lk_mpp )   CALL mpp_sum( ztestmask, 2 )   ! sum over the global domain 
     627 
    634628         IF( ztestmask(1) /= 0. ) icorner(1)=icorner(1)+1 
    635629         IF( ztestmask(2) /= 0. ) icorner(2)=icorner(2)+1 
     
    695689      ! -------------------------------------------------------------- 
    696690 
    697       ! ... Restart from numrob 
     691      ! ... Restart from restart.obc 
    698692      IF( ln_rstart ) THEN 
    699693         CALL obc_rst_lec 
     
    703697          !     Those have dimensions of local subdomains 
    704698 
    705           bebnd(:,:,:)   = 0.e0 
    706           uebnd(:,:,:,:) = 0.e0 
    707           vebnd(:,:,:,:) = 0.e0 
    708           tebnd(:,:,:,:) = 0.e0  
    709           sebnd(:,:,:,:) = 0.e0 
    710  
    711           bwbnd(:,:,:)   = 0.e0 
    712           uwbnd(:,:,:,:) = 0.e0 
    713           vwbnd(:,:,:,:) = 0.e0 
    714           twbnd(:,:,:,:) = 0.e0  
    715           swbnd(:,:,:,:) = 0.e0 
    716  
    717           bnbnd(:,:,:)   = 0.e0 
    718           unbnd(:,:,:,:) = 0.e0 
    719           vnbnd(:,:,:,:) = 0.e0 
    720           tnbnd(:,:,:,:) = 0.e0  
    721           snbnd(:,:,:,:) = 0.e0 
    722  
    723           bsbnd(:,:,:)   = 0.e0 
    724           usbnd(:,:,:,:) = 0.e0 
    725           vsbnd(:,:,:,:) = 0.e0 
    726           tsbnd(:,:,:,:) = 0.e0  
    727           ssbnd(:,:,:,:) = 0.e0 
     699          bebnd(:,:,:)   = 0.e0   ;   bnbnd(:,:,:)   = 0.e0 
     700          uebnd(:,:,:,:) = 0.e0   ;   unbnd(:,:,:,:) = 0.e0 
     701          vebnd(:,:,:,:) = 0.e0   ;   vnbnd(:,:,:,:) = 0.e0 
     702          tebnd(:,:,:,:) = 0.e0   ;   tnbnd(:,:,:,:) = 0.e0  
     703          sebnd(:,:,:,:) = 0.e0   ;   snbnd(:,:,:,:) = 0.e0 
     704 
     705          bwbnd(:,:,:)   = 0.e0   ;   bsbnd(:,:,:)   = 0.e0 
     706          uwbnd(:,:,:,:) = 0.e0   ;   usbnd(:,:,:,:) = 0.e0 
     707          vwbnd(:,:,:,:) = 0.e0   ;   vsbnd(:,:,:,:) = 0.e0 
     708          twbnd(:,:,:,:) = 0.e0   ;   tsbnd(:,:,:,:) = 0.e0  
     709          swbnd(:,:,:,:) = 0.e0   ;   ssbnd(:,:,:,:) = 0.e0 
    728710 
    729711      END IF 
     
    744726            istop = istop + 1 
    745727         END IF 
    746 # if defined key_mpp 
    747          ! ...  
    748          IF( nimpp > jpieob-5) THEN 
    749             IF(lwp) WRITE(numout,cform_err) 
    750             IF(lwp) WRITE(numout,*) '        A sub-domain is too close to the East OBC' 
    751             IF(lwp) WRITE(numout,*) '        nimpp must be < jpieob-5' 
    752             istop = istop + 1 
    753          END IF 
    754 # else 
    755          IF( tmask(jpieob+1,jpjed  ,1) /= 0. .OR.    & 
    756              tmask(jpieob+1,jpjed+1,1) /= 1.         ) THEN 
    757             IF(lwp) WRITE(numout,cform_err) 
    758             IF(lwp) WRITE(numout,*) '           starting point is not a land T-point.' 
    759             IF(lwp) WRITE(numout,*) '      or   starting point + 1 is not a ocean T-point.' 
    760             istop = istop + 1 
    761          END IF 
    762          IF( tmask(jpieob+1,jpjef  ,1) /= 0. .OR.  & 
    763              tmask(jpieob+1,jpjef-1,1) /= 1.       ) THEN 
    764             IF(lwp) WRITE(numout,cform_err) 
    765             IF(lwp) WRITE(numout,*) '           ending point is not a land T-point.' 
    766             IF(lwp) WRITE(numout,*) '        or ending point - 1 is not a ocean T-point.' 
    767             istop = istop + 1 
    768          END IF 
    769  
    770          ! ... stop if  e r r o r (s)   detected 
    771          IF( istop /= 0 ) THEN 
    772             IF(lwp)WRITE(numout,*) 
    773             IF(lwp)WRITE(numout,*) istop,' E R R O R (S) detected : stop' 
    774             IF(lwp)WRITE(numout,*) ' =============== ' 
    775             IF(lwp)WRITE(numout,*) 
    776             nstop = nstop + 1 
    777          END IF 
    778 # endif 
    779       END IF 
     728 
     729         IF( lk_mpp ) THEN 
     730            ! ...  
     731            IF( nimpp > jpieob-5) THEN 
     732               IF(lwp) WRITE(numout,cform_err) 
     733               IF(lwp) WRITE(numout,*) '        A sub-domain is too close to the East OBC' 
     734               IF(lwp) WRITE(numout,*) '        nimpp must be < jpieob-5' 
     735               istop = istop + 1 
     736            ENDIF 
     737         ELSE 
     738            IF( tmask(jpieob+1,jpjed  ,1) /= 0. .OR.    & 
     739                tmask(jpieob+1,jpjed+1,1) /= 1.         ) THEN 
     740               IF(lwp) WRITE(numout,cform_err) 
     741               IF(lwp) WRITE(numout,*) '           starting point is not a land T-point.' 
     742               IF(lwp) WRITE(numout,*) '      or   starting point + 1 is not a ocean T-point.' 
     743               istop = istop + 1 
     744            END IF 
     745            IF( tmask(jpieob+1,jpjef  ,1) /= 0. .OR.  & 
     746                tmask(jpieob+1,jpjef-1,1) /= 1.       ) THEN 
     747               IF(lwp) WRITE(numout,cform_err) 
     748               IF(lwp) WRITE(numout,*) '           ending point is not a land T-point.' 
     749               IF(lwp) WRITE(numout,*) '        or ending point - 1 is not a ocean T-point.' 
     750               istop = istop + 1 
     751            END IF 
     752 
     753            ! ... stop if  e r r o r (s)   detected 
     754            IF( istop /= 0 ) THEN 
     755               IF(lwp)WRITE(numout,*) 
     756               IF(lwp)WRITE(numout,*) istop,' E R R O R (S) detected : stop' 
     757               IF(lwp)WRITE(numout,*) ' =============== ' 
     758               IF(lwp)WRITE(numout,*) 
     759               nstop = nstop + 1 
     760            ENDIF 
     761         ENDIF 
     762      ENDIF 
    780763 
    781764      ! ... control of the west boundary 
     
    787770            istop = istop + 1 
    788771         END IF 
    789 # if defined key_mpp 
    790          ! ...  
    791          IF( (nimpp < jpiwob+5) .AND. (nimpp > 1) ) THEN 
    792             IF(lwp) WRITE(numout,cform_err) 
    793             IF(lwp) WRITE(numout,*) '        A sub-domain is too close to the West OBC' 
    794             IF(lwp) WRITE(numout,*) '        nimpp must be > jpiwob-5 or =1' 
    795             istop = istop + 1 
    796          END IF 
    797 # else 
    798          IF( tmask(jpiwob,jpjwd  ,1) /= 0. .OR.    & 
    799              tmask(jpiwob,jpjwd+1,1) /= 1.         ) THEN 
    800             IF(lwp) WRITE(numout,cform_err) 
    801             IF(lwp) WRITE(numout,*) '           starting point is not a land T-point.' 
    802             IF(lwp) WRITE(numout,*) '      or   starting point + 1 is not a ocean T-point.' 
    803             istop = istop + 1 
    804          END IF 
    805          IF ( tmask(jpieob+1,jpjef  ,1) /= 0. .OR.  & 
    806               tmask(jpieob+1,jpjef-1,1) /= 1.       ) THEN 
    807              IF(lwp) WRITE(numout,cform_err) 
    808              IF(lwp) WRITE(numout,*) '           ending point is not a land T-point.' 
    809              IF(lwp) WRITE(numout,*) '        or ending point - 1 is not a ocean T-point.' 
    810              istop = istop + 1 
    811          END IF 
    812  
    813          ! ... stop if  e r r o r (s)   detected 
    814          IF( istop /= 0 ) THEN 
    815             IF(lwp)WRITE(numout,*) 
    816             IF(lwp)WRITE(numout,*) istop,' E R R O R (S) detected : stop' 
    817             IF(lwp)WRITE(numout,*) ' =============== ' 
    818             IF(lwp)WRITE(numout,*) 
    819             nstop = nstop + 1 
    820          END IF 
    821 # endif 
    822       END IF 
     772 
     773         IF( lk_mpp ) THEN 
     774            IF( (nimpp < jpiwob+5) .AND. (nimpp > 1) ) THEN 
     775               IF(lwp) WRITE(numout,cform_err) 
     776               IF(lwp) WRITE(numout,*) '        A sub-domain is too close to the West OBC' 
     777               IF(lwp) WRITE(numout,*) '        nimpp must be > jpiwob-5 or =1' 
     778               istop = istop + 1 
     779            ENDIF 
     780         ELSE 
     781            IF( tmask(jpiwob,jpjwd  ,1) /= 0. .OR.    & 
     782                tmask(jpiwob,jpjwd+1,1) /= 1.         ) THEN 
     783               IF(lwp) WRITE(numout,cform_err) 
     784               IF(lwp) WRITE(numout,*) '           starting point is not a land T-point.' 
     785               IF(lwp) WRITE(numout,*) '      or   starting point + 1 is not a ocean T-point.' 
     786               istop = istop + 1 
     787            END IF 
     788            IF ( tmask(jpieob+1,jpjef  ,1) /= 0. .OR.  & 
     789                 tmask(jpieob+1,jpjef-1,1) /= 1.       ) THEN 
     790                IF(lwp) WRITE(numout,cform_err) 
     791                IF(lwp) WRITE(numout,*) '           ending point is not a land T-point.' 
     792                IF(lwp) WRITE(numout,*) '        or ending point - 1 is not a ocean T-point.' 
     793                istop = istop + 1 
     794            END IF 
     795    
     796            ! ... stop if  e r r o r (s)   detected 
     797            IF( istop /= 0 ) THEN 
     798               IF(lwp)WRITE(numout,*) 
     799               IF(lwp)WRITE(numout,*) istop,' E R R O R (S) detected : stop' 
     800               IF(lwp)WRITE(numout,*) ' =============== ' 
     801               IF(lwp)WRITE(numout,*) 
     802               nstop = nstop + 1 
     803            ENDIF 
     804         ENDIF 
     805      ENDIF 
    823806 
    824807      ! control of the north boundary 
     
    830813            istop = istop + 1 
    831814         END IF 
    832 # if defined key_mpp 
    833          ! ...  
    834          IF( njmpp > jpjnob-5) THEN 
    835             IF(lwp) WRITE(numout,cform_err) 
    836             IF(lwp) WRITE(numout,*) '        A sub-domain is too close to the North OBC' 
    837             IF(lwp) WRITE(numout,*) '        njmpp must be < jpjnob-5' 
    838             istop = istop + 1 
    839          END IF 
    840 # else 
    841          IF( tmask(jpind  , jpjnob+1,1) /= 0. .OR.    & 
    842              tmask(jpind+1, jpjnob+1,1) /= 1.         ) THEN 
    843             IF(lwp) WRITE(numout,cform_err) 
    844             IF(lwp) WRITE(numout,*) '           starting point is not a land T-point.' 
    845             IF(lwp) WRITE(numout,*) '      or   starting point + 1 is not a ocean T-point.' 
    846             istop = istop + 1 
    847          END IF 
    848          IF( tmask(jpinf  ,jpjnob+1,1) /= 0. .OR.  & 
    849              tmask(jpinf-1,jpjnob+1,1) /= 1.       ) THEN 
    850             IF(lwp) WRITE(numout,cform_err) 
    851             IF(lwp) WRITE(numout,*) '           ending point is not a land T-point.' 
    852             IF(lwp) WRITE(numout,*) '        or ending point - 1 is not a ocean T-point.' 
    853             istop = istop + 1 
    854          END IF 
    855  
    856          ! ... stop if  e r r o r (s)   detected 
    857          IF( istop /= 0 ) THEN 
    858             IF(lwp)WRITE(numout,*) 
    859             IF(lwp)WRITE(numout,*) istop,' E R R O R (S) detected : stop' 
    860             IF(lwp)WRITE(numout,*) ' =============== ' 
    861             IF(lwp)WRITE(numout,*) 
    862             nstop = nstop + 1 
    863          END IF 
    864 # endif 
    865       END IF 
     815 
     816         IF( lk_mpp ) THEN 
     817            IF( njmpp > jpjnob-5) THEN 
     818               IF(lwp) WRITE(numout,cform_err) 
     819               IF(lwp) WRITE(numout,*) '        A sub-domain is too close to the North OBC' 
     820               IF(lwp) WRITE(numout,*) '        njmpp must be < jpjnob-5' 
     821               istop = istop + 1 
     822            ENDIF 
     823         ELSE 
     824            IF( tmask(jpind  , jpjnob+1,1) /= 0. .OR.    & 
     825                tmask(jpind+1, jpjnob+1,1) /= 1.         ) THEN 
     826               IF(lwp) WRITE(numout,cform_err) 
     827               IF(lwp) WRITE(numout,*) '           starting point is not a land T-point.' 
     828               IF(lwp) WRITE(numout,*) '      or   starting point + 1 is not a ocean T-point.' 
     829               istop = istop + 1 
     830            END IF 
     831            IF( tmask(jpinf  ,jpjnob+1,1) /= 0. .OR.  & 
     832                tmask(jpinf-1,jpjnob+1,1) /= 1.       ) THEN 
     833               IF(lwp) WRITE(numout,cform_err) 
     834               IF(lwp) WRITE(numout,*) '           ending point is not a land T-point.' 
     835               IF(lwp) WRITE(numout,*) '        or ending point - 1 is not a ocean T-point.' 
     836               istop = istop + 1 
     837            END IF 
     838    
     839            ! ... stop if  e r r o r (s)   detected 
     840            IF( istop /= 0 ) THEN 
     841               IF(lwp)WRITE(numout,*) 
     842               IF(lwp)WRITE(numout,*) istop,' E R R O R (S) detected : stop' 
     843               IF(lwp)WRITE(numout,*) ' =============== ' 
     844               IF(lwp)WRITE(numout,*) 
     845               nstop = nstop + 1 
     846            ENDIF 
     847         ENDIF 
     848      ENDIF 
    866849 
    867850      ! control of the south boundary 
     
    873856            istop = istop + 1 
    874857         END IF 
    875 # if defined key_mpp 
    876          ! ...  
    877          IF( (njmpp < jpjsob+5) .AND. (njmpp > 1) ) THEN 
    878             IF(lwp) WRITE(numout,cform_err) 
    879             IF(lwp) WRITE(numout,*) '        A sub-domain is too close to the South OBC' 
    880             IF(lwp) WRITE(numout,*) '        njmpp must be > jpjsob+5 or =1' 
    881             istop = istop + 1 
    882          END IF 
    883 # else 
    884          IF( tmask(jpisd  , jpjsob,1) /= 0. .OR.    & 
    885              tmask(jpisd+1, jpjsob,1) /= 1.         ) THEN 
    886             IF(lwp) WRITE(numout,cform_err) 
    887             IF(lwp) WRITE(numout,*) '           starting point is not a land T-point.' 
    888             IF(lwp) WRITE(numout,*) '      or   starting point + 1 is not a ocean T-point.' 
    889             istop = istop + 1 
    890          END IF 
    891          IF( tmask(jpisf  ,jpjsob,1) /= 0. .OR.  & 
    892              tmask(jpisf-1,jpjsob,1) /= 1.       ) THEN 
    893             IF(lwp) WRITE(numout,cform_err) 
    894             IF(lwp) WRITE(numout,*) '           ending point is not a land T-point.' 
    895             IF(lwp) WRITE(numout,*) '        or ending point - 1 is not a ocean T-point.' 
    896             istop = istop + 1 
    897          END IF 
    898  
    899          ! ... stop if  e r r o r (s)   detected 
    900          IF( istop /= 0 ) THEN 
    901             IF(lwp)WRITE(numout,*) 
    902             IF(lwp)WRITE(numout,*) istop,' E R R O R (S) detected : stop' 
    903             IF(lwp)WRITE(numout,*) ' =============== ' 
    904             IF(lwp)WRITE(numout,*) 
    905             nstop = nstop + 1 
    906          END IF 
    907 # endif 
    908       END IF 
     858 
     859         IF( lk_mpp ) THEN 
     860            IF( (njmpp < jpjsob+5) .AND. (njmpp > 1) ) THEN 
     861               IF(lwp) WRITE(numout,cform_err) 
     862               IF(lwp) WRITE(numout,*) '        A sub-domain is too close to the South OBC' 
     863               IF(lwp) WRITE(numout,*) '        njmpp must be > jpjsob+5 or =1' 
     864               istop = istop + 1 
     865            ENDIF 
     866         ELSE 
     867            IF( tmask(jpisd  , jpjsob,1) /= 0. .OR.    & 
     868                tmask(jpisd+1, jpjsob,1) /= 1.         ) THEN 
     869               IF(lwp) WRITE(numout,cform_err) 
     870               IF(lwp) WRITE(numout,*) '           starting point is not a land T-point.' 
     871               IF(lwp) WRITE(numout,*) '      or   starting point + 1 is not a ocean T-point.' 
     872               istop = istop + 1 
     873            END IF 
     874            IF( tmask(jpisf  ,jpjsob,1) /= 0. .OR.  & 
     875                tmask(jpisf-1,jpjsob,1) /= 1.       ) THEN 
     876               IF(lwp) WRITE(numout,cform_err) 
     877               IF(lwp) WRITE(numout,*) '           ending point is not a land T-point.' 
     878               IF(lwp) WRITE(numout,*) '        or ending point - 1 is not a ocean T-point.' 
     879               istop = istop + 1 
     880            END IF 
     881    
     882            ! ... stop if  e r r o r (s)   detected 
     883            IF( istop /= 0 ) THEN 
     884               IF(lwp)WRITE(numout,*) 
     885               IF(lwp)WRITE(numout,*) istop,' E R R O R (S) detected : stop' 
     886               IF(lwp)WRITE(numout,*) ' =============== ' 
     887               IF(lwp)WRITE(numout,*) 
     888               nstop = nstop + 1 
     889            ENDIF 
     890         ENDIF 
     891      ENDIF 
    909892 
    910893   END SUBROUTINE obc_init 
     894 
    911895#else 
    912    !!================================================================================= 
    913    !!                       ***  MODULE  obcini  *** 
    914    !! OBC initial state :  Open boundary initial state 
    915    !!================================================================================= 
     896   !!--------------------------------------------------------------------------------- 
     897   !!   Dummy module                                                NO open boundaries 
     898   !!--------------------------------------------------------------------------------- 
    916899CONTAINS 
    917  
    918    SUBROUTINE obc_init 
    919       !                 This is not an Open boundary mode ==> empty routine 
     900   SUBROUTINE obc_init      ! Dummy routine 
    920901   END SUBROUTINE obc_init 
    921902#endif 
    922903 
     904   !!================================================================================= 
    923905END MODULE obcini 
Note: See TracChangeset for help on using the changeset viewer.