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 10425 for NEMO/trunk/src/OCE/BDY – NEMO

Ignore:
Timestamp:
2018-12-19T22:54:16+01:00 (5 years ago)
Author:
smasson
Message:

trunk: merge back dev_r10164_HPC09_ESIWACE_PREP_MERGE@10424 into the trunk

Location:
NEMO/trunk/src/OCE/BDY
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/BDY/bdy_oce.F90

    r10068 r10425  
    1212   !!---------------------------------------------------------------------- 
    1313   USE par_oce         ! ocean parameters 
    14    USE lib_mpp         ! distributed memory computing 
    1514 
    1615   IMPLICIT NONE 
     
    148147   FUNCTION bdy_oce_alloc() 
    149148      !!---------------------------------------------------------------------- 
    150       USE lib_mpp, ONLY: ctl_warn, mpp_sum 
     149      USE lib_mpp, ONLY: ctl_stop, mpp_sum 
    151150      ! 
    152151      INTEGER :: bdy_oce_alloc 
     
    161160      bdyvmask(:,:) = 1._wp 
    162161      !  
    163       IF( lk_mpp             )   CALL mpp_sum ( bdy_oce_alloc ) 
    164       IF( bdy_oce_alloc /= 0 )   CALL ctl_warn('bdy_oce_alloc: failed to allocate arrays.') 
     162      CALL mpp_sum ( 'bdy_oce', bdy_oce_alloc ) 
     163      IF( bdy_oce_alloc /= 0 )   CALL ctl_stop( 'STOP', 'bdy_oce_alloc: failed to allocate arrays.' ) 
    165164      ! 
    166165   END FUNCTION bdy_oce_alloc 
  • NEMO/trunk/src/OCE/BDY/bdydyn2d.F90

    r10068 r10425  
    109109         pva2d(ii,ij) = ( pva2d(ii,ij) + zwgt * ( dta%v2d(jb) - pva2d(ii,ij) ) ) * vmask(ii,ij,1) 
    110110      END DO  
    111       CALL lbc_bdy_lnk( pua2d, 'U', -1., ib_bdy )  
    112       CALL lbc_bdy_lnk( pva2d, 'V', -1., ib_bdy)   ! Boundary points should be updated 
     111      CALL lbc_bdy_lnk( 'bdydyn2d', pua2d, 'U', -1., ib_bdy )  
     112      CALL lbc_bdy_lnk( 'bdydyn2d', pva2d, 'V', -1., ib_bdy)   ! Boundary points should be updated 
    113113      ! 
    114114   END SUBROUTINE bdy_dyn2d_frs 
     
    169169      END DO 
    170170 
    171       CALL lbc_bdy_lnk( spgu(:,:), 'T', 1., ib_bdy ) 
     171      CALL lbc_bdy_lnk( 'bdydyn2d', spgu(:,:), 'T', 1., ib_bdy ) 
    172172      ! 
    173173      igrd = 2      ! Flather bc on u-velocity;  
     
    207207         pva2d(ii,ij) = zforc + (1._wp - z1_2*zflag) * zcorr * vmask(ii,ij,1) 
    208208      END DO 
    209       CALL lbc_bdy_lnk( pua2d, 'U', -1., ib_bdy )   ! Boundary points should be updated 
    210       CALL lbc_bdy_lnk( pva2d, 'V', -1., ib_bdy )   ! 
     209      CALL lbc_bdy_lnk( 'bdydyn2d', pua2d, 'U', -1., ib_bdy )   ! Boundary points should be updated 
     210      CALL lbc_bdy_lnk( 'bdydyn2d', pva2d, 'V', -1., ib_bdy )   ! 
    211211      ! 
    212212   END SUBROUTINE bdy_dyn2d_fla 
     
    243243      CALL bdy_orlanski_2d( idx, igrd, pvb2d, pva2d, dta%v2d, ll_npo ) 
    244244      ! 
    245       CALL lbc_bdy_lnk( pua2d, 'U', -1., ib_bdy )   ! Boundary points should be updated 
    246       CALL lbc_bdy_lnk( pva2d, 'V', -1., ib_bdy )   ! 
     245      CALL lbc_bdy_lnk( 'bdydyn2d', pua2d, 'U', -1., ib_bdy )   ! Boundary points should be updated 
     246      CALL lbc_bdy_lnk( 'bdydyn2d', pva2d, 'V', -1., ib_bdy )   ! 
    247247      ! 
    248248   END SUBROUTINE bdy_dyn2d_orlanski 
     
    291291 
    292292         ! Boundary points should be updated 
    293          CALL lbc_bdy_lnk( zssh(:,:), 'T', 1., ib_bdy ) 
     293         CALL lbc_bdy_lnk( 'bdydyn2d', zssh(:,:), 'T', 1., ib_bdy ) 
    294294      END DO 
    295295 
  • NEMO/trunk/src/OCE/BDY/bdydyn3d.F90

    r10068 r10425  
    9797         END DO 
    9898      END DO 
    99       CALL lbc_bdy_lnk( ua, 'U', -1., ib_bdy )   ! Boundary points should be updated   
    100       CALL lbc_bdy_lnk( va, 'V', -1., ib_bdy )    
     99      CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy )   ! Boundary points should be updated   
     100      CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1., ib_bdy )    
    101101      ! 
    102102      IF( kt == nit000 )   CLOSE( unit = 102 ) 
     
    144144         END DO 
    145145      END DO 
    146       CALL lbc_bdy_lnk( ua, 'U', -1., ib_bdy )   ! Boundary points should be updated   
    147       CALL lbc_bdy_lnk( va, 'V', -1., ib_bdy )    
     146      CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy )   ! Boundary points should be updated   
     147      CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1., ib_bdy )    
    148148      ! 
    149149      IF( kt == nit000 )   CLOSE( unit = 102 ) 
     
    187187      END DO 
    188188      ! 
    189       CALL lbc_bdy_lnk( ua, 'U', -1., ib_bdy )   ;   CALL lbc_bdy_lnk( va, 'V', -1.,ib_bdy )   ! Boundary points should be updated 
     189      CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy )   ;   CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1.,ib_bdy )   ! Boundary points should be updated 
    190190      ! 
    191191      IF( kt == nit000 )   CLOSE( unit = 102 ) 
     
    234234         END DO 
    235235      END DO  
    236       CALL lbc_bdy_lnk( ua, 'U', -1., ib_bdy )    ! Boundary points should be updated 
    237       CALL lbc_bdy_lnk( va, 'V', -1., ib_bdy )    
     236      CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy )    ! Boundary points should be updated 
     237      CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1., ib_bdy )    
    238238      ! 
    239239      IF( kt == nit000 )   CLOSE( unit = 102 ) 
     
    270270      CALL bdy_orlanski_3d( idx, igrd, vb, va, dta%v3d, ll_npo ) 
    271271      ! 
    272       CALL lbc_bdy_lnk( ua, 'U', -1., ib_bdy )    ! Boundary points should be updated 
    273       CALL lbc_bdy_lnk( va, 'V', -1., ib_bdy )    
     272      CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy )    ! Boundary points should be updated 
     273      CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1., ib_bdy )    
    274274      ! 
    275275   END SUBROUTINE bdy_dyn3d_orlanski 
     
    319319      END DO 
    320320      ! 
    321       CALL lbc_lnk_multi( ua, 'U', -1.,  va, 'V', -1. )   ! Boundary points should be updated 
     321      CALL lbc_lnk_multi( 'bdydyn3d', ua, 'U', -1.,  va, 'V', -1. )   ! Boundary points should be updated 
    322322      ! 
    323323      IF( ln_timing )   CALL timing_stop('bdy_dyn3d_dmp') 
     
    351351      CALL bdy_nmn( idx, igrd, va ) 
    352352      ! 
    353       CALL lbc_bdy_lnk( ua, 'U', -1., ib_bdy )    ! Boundary points should be updated 
    354       CALL lbc_bdy_lnk( va, 'V', -1., ib_bdy ) 
     353      CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy )    ! Boundary points should be updated 
     354      CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1., ib_bdy ) 
    355355      ! 
    356356   END SUBROUTINE bdy_dyn3d_nmn 
  • NEMO/trunk/src/OCE/BDY/bdyice.F90

    r10069 r10425  
    135135         ENDDO 
    136136      ENDDO 
    137       CALL lbc_bdy_lnk( a_i(:,:,:), 'T', 1., jbdy ) 
    138       CALL lbc_bdy_lnk( h_i(:,:,:), 'T', 1., jbdy ) 
    139       CALL lbc_bdy_lnk( h_s(:,:,:), 'T', 1., jbdy ) 
     137      CALL lbc_bdy_lnk( 'bdyice', a_i(:,:,:), 'T', 1., jbdy ) 
     138      CALL lbc_bdy_lnk( 'bdyice', h_i(:,:,:), 'T', 1., jbdy ) 
     139      CALL lbc_bdy_lnk( 'bdyice', h_s(:,:,:), 'T', 1., jbdy ) 
    140140 
    141141      DO jl = 1, jpl 
     
    244244      END DO ! jl 
    245245 
    246       CALL lbc_bdy_lnk( a_i (:,:,:)  , 'T', 1., jbdy ) 
    247       CALL lbc_bdy_lnk( h_i (:,:,:)  , 'T', 1., jbdy ) 
    248       CALL lbc_bdy_lnk( h_s (:,:,:)  , 'T', 1., jbdy ) 
    249       CALL lbc_bdy_lnk( oa_i(:,:,:)  , 'T', 1., jbdy ) 
    250       CALL lbc_bdy_lnk( a_ip(:,:,:)  , 'T', 1., jbdy ) 
    251       CALL lbc_bdy_lnk( v_ip(:,:,:)  , 'T', 1., jbdy ) 
    252       CALL lbc_bdy_lnk( s_i (:,:,:)  , 'T', 1., jbdy ) 
    253       CALL lbc_bdy_lnk( t_su(:,:,:)  , 'T', 1., jbdy ) 
    254       CALL lbc_bdy_lnk( v_i (:,:,:)  , 'T', 1., jbdy ) 
    255       CALL lbc_bdy_lnk( v_s (:,:,:)  , 'T', 1., jbdy ) 
    256       CALL lbc_bdy_lnk( sv_i(:,:,:)  , 'T', 1., jbdy ) 
    257       CALL lbc_bdy_lnk( t_s (:,:,:,:), 'T', 1., jbdy ) 
    258       CALL lbc_bdy_lnk( e_s (:,:,:,:), 'T', 1., jbdy ) 
    259       CALL lbc_bdy_lnk( t_i (:,:,:,:), 'T', 1., jbdy ) 
    260       CALL lbc_bdy_lnk( e_i (:,:,:,:), 'T', 1., jbdy ) 
     246      CALL lbc_bdy_lnk( 'bdyice', a_i (:,:,:)  , 'T', 1., jbdy ) 
     247      CALL lbc_bdy_lnk( 'bdyice', h_i (:,:,:)  , 'T', 1., jbdy ) 
     248      CALL lbc_bdy_lnk( 'bdyice', h_s (:,:,:)  , 'T', 1., jbdy ) 
     249      CALL lbc_bdy_lnk( 'bdyice', oa_i(:,:,:)  , 'T', 1., jbdy ) 
     250      CALL lbc_bdy_lnk( 'bdyice', a_ip(:,:,:)  , 'T', 1., jbdy ) 
     251      CALL lbc_bdy_lnk( 'bdyice', v_ip(:,:,:)  , 'T', 1., jbdy ) 
     252      CALL lbc_bdy_lnk( 'bdyice', s_i (:,:,:)  , 'T', 1., jbdy ) 
     253      CALL lbc_bdy_lnk( 'bdyice', t_su(:,:,:)  , 'T', 1., jbdy ) 
     254      CALL lbc_bdy_lnk( 'bdyice', v_i (:,:,:)  , 'T', 1., jbdy ) 
     255      CALL lbc_bdy_lnk( 'bdyice', v_s (:,:,:)  , 'T', 1., jbdy ) 
     256      CALL lbc_bdy_lnk( 'bdyice', sv_i(:,:,:)  , 'T', 1., jbdy ) 
     257      CALL lbc_bdy_lnk( 'bdyice', t_s (:,:,:,:), 'T', 1., jbdy ) 
     258      CALL lbc_bdy_lnk( 'bdyice', e_s (:,:,:,:), 'T', 1., jbdy ) 
     259      CALL lbc_bdy_lnk( 'bdyice', t_i (:,:,:,:), 'T', 1., jbdy ) 
     260      CALL lbc_bdy_lnk( 'bdyice', e_i (:,:,:,:), 'T', 1., jbdy ) 
    261261      !       
    262262   END SUBROUTINE bdy_ice_frs 
     
    317317                  ! 
    318318               END DO 
    319                CALL lbc_bdy_lnk( u_ice(:,:), 'U', -1., jbdy ) 
     319               CALL lbc_bdy_lnk( 'bdyice', u_ice(:,:), 'U', -1., jbdy ) 
    320320               ! 
    321321            CASE ( 'V' ) 
     
    340340                  ! 
    341341               END DO 
    342                CALL lbc_bdy_lnk( v_ice(:,:), 'V', -1., jbdy ) 
     342               CALL lbc_bdy_lnk( 'bdyice', v_ice(:,:), 'V', -1., jbdy ) 
    343343               ! 
    344344            END SELECT 
  • NEMO/trunk/src/OCE/BDY/bdyini.F90

    r10068 r10425  
    11331133         END DO 
    11341134      END DO 
    1135       CALL lbc_lnk_multi( bdyumask, 'U', 1. , bdyvmask, 'V', 1. )   ! Lateral boundary cond.  
     1135      CALL lbc_lnk_multi( 'bdyini', bdyumask, 'U', 1. , bdyvmask, 'V', 1. )   ! Lateral boundary cond.  
    11361136 
    11371137      ! bdy masks are now set to zero on boundary points: 
     
    11691169 
    11701170      ! Lateral boundary conditions 
    1171       CALL lbc_lnk( zfmask, 'F', 1. )  
    1172       CALL lbc_lnk_multi( bdyumask, 'U', 1. , bdyvmask, 'V', 1., bdytmask, 'T', 1. ) 
     1171      CALL lbc_lnk( 'bdyini', zfmask, 'F', 1. )  
     1172      CALL lbc_lnk_multi( 'bdyini', bdyumask, 'U', 1. , bdyvmask, 'V', 1., bdytmask, 'T', 1. ) 
    11731173      DO ib_bdy = 1, nb_bdy       ! Indices and directions of rim velocity components 
    11741174 
     
    12031203            END DO 
    12041204            IF( icount /= 0 ) THEN 
    1205                IF(lwp) WRITE(numout,*) 
    1206                IF(lwp) WRITE(numout,*) ' E R R O R : Some ',cgrid(igrd),' grid points,',   & 
     1205               WRITE(ctmp1,*) ' E R R O R : Some ',cgrid(igrd),' grid points,',   & 
    12071206                  ' are not boundary points (flagu calculation). Check nbi, nbj, indices for boundary set ',ib_bdy 
    1208                IF(lwp) WRITE(numout,*) ' ========== ' 
    1209                IF(lwp) WRITE(numout,*) 
    1210                nstop = nstop + 1 
     1207               WRITE(ctmp2,*) ' ========== ' 
     1208               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    12111209            ENDIF  
    12121210         END DO 
     
    12381236            END DO 
    12391237            IF( icount /= 0 ) THEN 
    1240                IF(lwp) WRITE(numout,*) 
    1241                IF(lwp) WRITE(numout,*) ' E R R O R : Some ',cgrid(igrd),' grid points,',   & 
     1238               WRITE(ctmp1,*) ' E R R O R : Some ',cgrid(igrd),' grid points,',   & 
    12421239                  ' are not boundary points (flagv calculation). Check nbi, nbj, indices for boundary set ',ib_bdy 
    1243                IF(lwp) WRITE(numout,*) ' ========== ' 
    1244                IF(lwp) WRITE(numout,*) 
    1245                nstop = nstop + 1 
     1240               WRITE(ctmp2,*) ' ========== ' 
     1241               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    12461242            ENDIF  
    12471243         END DO 
     
    12801276         END DO 
    12811277         ! 
    1282          IF( lk_mpp )   CALL mpp_sum( bdysurftot )      ! sum over the global domain 
     1278         CALL mpp_sum( 'bdyini', bdysurftot )      ! sum over the global domain 
    12831279      END IF    
    12841280      ! 
     
    13761372                     icorns(ib2,1) = npckgw(ib1) 
    13771373                  ELSEIF ((jpisft(ib2)==jpiwob(ib1)).AND.(jpjwft(ib1)==jpjsob(ib2))) THEN 
    1378                      IF(lwp) WRITE(numout,*) 
    1379                      IF(lwp) WRITE(numout,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
    1380                      &                                     jpisft(ib2), jpjwft(ib1) 
    1381                      IF(lwp) WRITE(numout,*) ' ==========  Not allowed yet' 
    1382                      IF(lwp) WRITE(numout,*) '             Crossing problem with West segment: ',npckgw(ib1), &  
    1383                      &                                                    ' and South segment: ',npckgs(ib2) 
    1384                      IF(lwp) WRITE(numout,*) 
    1385                      nstop = nstop + 1 
     1374                     WRITE(ctmp1,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
     1375                        &                                     jpisft(ib2), jpjwft(ib1) 
     1376                     WRITE(ctmp2,*) ' ==========  Not allowed yet' 
     1377                     WRITE(ctmp3,*) '             Crossing problem with West segment: ',npckgw(ib1), &  
     1378                        &                                        ' and South segment: ',npckgs(ib2) 
     1379                     CALL ctl_stop( ' ', ctmp1, ctmp2, ctmp3, ' ' ) 
    13861380                  ELSE 
    1387                      IF(lwp) WRITE(numout,*) 
    1388                      IF(lwp) WRITE(numout,*) ' E R R O R : Check South and West Open boundary indices' 
    1389                      IF(lwp) WRITE(numout,*) ' ==========  Crossing problem with West segment: ',npckgw(ib1) , & 
    1390                      &                                                    ' and South segment: ',npckgs(ib2) 
    1391                      IF(lwp) WRITE(numout,*) 
    1392                      nstop = nstop+1 
     1381                     WRITE(ctmp1,*) ' E R R O R : Check South and West Open boundary indices' 
     1382                     WRITE(ctmp2,*) ' ==========  Crossing problem with West segment: ',npckgw(ib1) , & 
     1383                        &                                         ' and South segment: ',npckgs(ib2) 
     1384                     CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    13931385                  END IF 
    13941386               END IF 
     
    14121404                     icorns(ib2,2) = npckge(ib1) 
    14131405                  ELSEIF ((jpjeft(ib1)==jpjsob(ib2)).AND.(jpisdt(ib2)==jpieob(ib1)+1)) THEN 
    1414                      IF(lwp) WRITE(numout,*) 
    1415                      IF(lwp) WRITE(numout,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
    1416                      &                                     jpisdt(ib2), jpjeft(ib1) 
    1417                      IF(lwp) WRITE(numout,*) ' ==========  Not allowed yet' 
    1418                      IF(lwp) WRITE(numout,*) '             Crossing problem with East segment: ',npckge(ib1), & 
    1419                      &                                                    ' and South segment: ',npckgs(ib2) 
    1420                      IF(lwp) WRITE(numout,*) 
    1421                      nstop = nstop + 1 
     1406                     WRITE(ctmp1,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
     1407                        &                                     jpisdt(ib2), jpjeft(ib1) 
     1408                     WRITE(ctmp2,*) ' ==========  Not allowed yet' 
     1409                     WRITE(ctmp3,*) '             Crossing problem with East segment: ',npckge(ib1), & 
     1410                        &                                        ' and South segment: ',npckgs(ib2) 
     1411                     CALL ctl_stop( ' ', ctmp1, ctmp2, ctmp3, ' ' ) 
    14221412                  ELSE 
    1423                      IF(lwp) WRITE(numout,*) 
    1424                      IF(lwp) WRITE(numout,*) ' E R R O R : Check South and East Open boundary indices' 
    1425                      IF(lwp) WRITE(numout,*) ' ==========  Crossing problem with East segment: ',npckge(ib1), & 
    1426                      &                                                    ' and South segment: ',npckgs(ib2) 
    1427                      IF(lwp) WRITE(numout,*) 
    1428                      nstop = nstop + 1 
     1413                     WRITE(ctmp1,*) ' E R R O R : Check South and East Open boundary indices' 
     1414                     WRITE(ctmp2,*) ' ==========  Crossing problem with East segment: ',npckge(ib1), & 
     1415                     &                                           ' and South segment: ',npckgs(ib2) 
     1416                     CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    14291417                  END IF 
    14301418               END IF 
     
    14481436                     icornn(ib2,1) = npckgw(ib1) 
    14491437                  ELSEIF ((jpjwdt(ib1)==jpjnob(ib2)+1).AND.(jpinft(ib2)==jpiwob(ib1))) THEN 
    1450                      IF(lwp) WRITE(numout,*) 
    1451                      IF(lwp) WRITE(numout,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
     1438                     WRITE(ctmp1,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
    14521439                     &                                     jpinft(ib2), jpjwdt(ib1) 
    1453                      IF(lwp) WRITE(numout,*) ' ==========  Not allowed yet' 
    1454                      IF(lwp) WRITE(numout,*) '             Crossing problem with West segment: ',npckgw(ib1), & 
     1440                     WRITE(ctmp2,*) ' ==========  Not allowed yet' 
     1441                     WRITE(ctmp3,*) '             Crossing problem with West segment: ',npckgw(ib1), & 
    14551442                     &                                                    ' and North segment: ',npckgn(ib2) 
    1456                      IF(lwp) WRITE(numout,*) 
    1457                      nstop = nstop + 1 
     1443                     CALL ctl_stop( ' ', ctmp1, ctmp2, ctmp3, ' ' ) 
    14581444                  ELSE 
    1459                      IF(lwp) WRITE(numout,*) 
    1460                      IF(lwp) WRITE(numout,*) ' E R R O R : Check North and West Open boundary indices' 
    1461                      IF(lwp) WRITE(numout,*) ' ==========  Crossing problem with West segment: ',npckgw(ib1), & 
     1445                     WRITE(ctmp1,*) ' E R R O R : Check North and West Open boundary indices' 
     1446                     WRITE(ctmp2,*) ' ==========  Crossing problem with West segment: ',npckgw(ib1), & 
    14621447                     &                                                    ' and North segment: ',npckgn(ib2) 
    1463                      IF(lwp) WRITE(numout,*) 
    1464                      nstop = nstop + 1 
     1448                     CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    14651449                  END IF 
    14661450               END IF 
     
    14841468                     icornn(ib2,2) = npckge(ib1) 
    14851469                  ELSEIF ((jpjedt(ib1)==jpjnob(ib2)+1).AND.(jpindt(ib2)==jpieob(ib1)+1)) THEN 
    1486                      IF(lwp) WRITE(numout,*) 
    1487                      IF(lwp) WRITE(numout,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
     1470                     WRITE(ctmp1,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
    14881471                     &                                     jpindt(ib2), jpjedt(ib1) 
    1489                      IF(lwp) WRITE(numout,*) ' ==========  Not allowed yet' 
    1490                      IF(lwp) WRITE(numout,*) '             Crossing problem with East segment: ',npckge(ib1), & 
    1491                      &                                                    ' and North segment: ',npckgn(ib2) 
    1492                      IF(lwp) WRITE(numout,*) 
    1493                      nstop = nstop + 1 
     1472                     WRITE(ctmp2,*) ' ==========  Not allowed yet' 
     1473                     WRITE(ctmp3,*) '             Crossing problem with East segment: ',npckge(ib1), & 
     1474                     &                                           ' and North segment: ',npckgn(ib2) 
     1475                     CALL ctl_stop( ' ', ctmp1, ctmp2, ctmp3, ' ' ) 
    14941476                  ELSE 
    1495                      IF(lwp) WRITE(numout,*) 
    1496                      IF(lwp) WRITE(numout,*) ' E R R O R : Check North and East Open boundary indices' 
    1497                      IF(lwp) WRITE(numout,*) ' ==========  Crossing problem with East segment: ',npckge(ib1), & 
    1498                      &                                                    ' and North segment: ',npckgn(ib2) 
    1499                      IF(lwp) WRITE(numout,*) 
    1500                      nstop = nstop + 1 
     1477                     WRITE(ctmp1,*) ' E R R O R : Check North and East Open boundary indices' 
     1478                     WRITE(ctmp2,*) ' ==========  Crossing problem with East segment: ',npckge(ib1), & 
     1479                     &                                           ' and North segment: ',npckgn(ib2) 
     1480                     CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    15011481                  END IF 
    15021482               END IF 
     
    15201500            END DO 
    15211501         END DO 
    1522          IF( lk_mpp )   CALL mpp_sum( ztestmask, 2 )   ! sum over the global domain 
     1502         CALL mpp_sum( 'bdyini', ztestmask, 2 )   ! sum over the global domain 
    15231503 
    15241504         IF (ztestmask(1)==1) THEN  
    15251505            IF (icornw(ib,1)==0) THEN 
    1526                IF(lwp) WRITE(numout,*) 
    1527                IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgw(ib) 
    1528                IF(lwp) WRITE(numout,*) ' ==========  does not start on land or on a corner'                                                   
    1529                IF(lwp) WRITE(numout,*) 
    1530                nstop = nstop + 1 
     1506               WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgw(ib) 
     1507               WRITE(ctmp2,*) ' ==========  does not start on land or on a corner'                                                   
     1508               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    15311509            ELSE 
    15321510               ! This is a corner 
     
    15381516         IF (ztestmask(2)==1) THEN 
    15391517            IF (icornw(ib,2)==0) THEN 
    1540                IF(lwp) WRITE(numout,*) 
    1541                IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgw(ib) 
    1542                IF(lwp) WRITE(numout,*) ' ==========  does not end on land or on a corner'                                                   
    1543                IF(lwp) WRITE(numout,*) 
    1544                nstop = nstop + 1 
     1518               WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgw(ib) 
     1519               WRITE(ctmp2,*) ' ==========  does not end on land or on a corner'                                                   
     1520               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    15451521            ELSE 
    15461522               ! This is a corner 
     
    15641540            END DO 
    15651541         END DO 
    1566          IF( lk_mpp )   CALL mpp_sum( ztestmask, 2 )   ! sum over the global domain 
     1542         CALL mpp_sum( 'bdyini', ztestmask, 2 )   ! sum over the global domain 
    15671543 
    15681544         IF (ztestmask(1)==1) THEN 
    15691545            IF (icorne(ib,1)==0) THEN 
    1570                IF(lwp) WRITE(numout,*) 
    1571                IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckge(ib) 
    1572                IF(lwp) WRITE(numout,*) ' ==========  does not start on land or on a corner'                                                   
    1573                IF(lwp) WRITE(numout,*) 
    1574                nstop = nstop + 1  
     1546               WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckge(ib) 
     1547               WRITE(ctmp2,*) ' ==========  does not start on land or on a corner'                                                   
     1548               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    15751549            ELSE 
    15761550               ! This is a corner 
     
    15821556         IF (ztestmask(2)==1) THEN 
    15831557            IF (icorne(ib,2)==0) THEN 
    1584                IF(lwp) WRITE(numout,*) 
    1585                IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckge(ib) 
    1586                IF(lwp) WRITE(numout,*) ' ==========  does not end on land or on a corner'                                                   
    1587                IF(lwp) WRITE(numout,*) 
    1588                nstop = nstop + 1 
     1558               WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckge(ib) 
     1559               WRITE(ctmp2,*) ' ==========  does not end on land or on a corner'                                                   
     1560               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    15891561            ELSE 
    15901562               ! This is a corner 
     
    16081580            END DO 
    16091581         END DO 
    1610          IF( lk_mpp )   CALL mpp_sum( ztestmask, 2 )   ! sum over the global domain 
     1582         CALL mpp_sum( 'bdyini', ztestmask, 2 )   ! sum over the global domain 
    16111583 
    16121584         IF ((ztestmask(1)==1).AND.(icorns(ib,1)==0)) THEN 
    1613             IF(lwp) WRITE(numout,*) 
    1614             IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgs(ib) 
    1615             IF(lwp) WRITE(numout,*) ' ==========  does not start on land or on a corner'                                                   
    1616             IF(lwp) WRITE(numout,*) 
    1617             nstop = nstop + 1 
     1585            WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgs(ib) 
     1586            WRITE(ctmp2,*) ' ==========  does not start on land or on a corner'                                                   
     1587            CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    16181588         ENDIF 
    16191589         IF ((ztestmask(2)==1).AND.(icorns(ib,2)==0)) THEN 
    1620             IF(lwp) WRITE(numout,*) 
    1621             IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgs(ib) 
    1622             IF(lwp) WRITE(numout,*) ' ==========  does not end on land or on a corner'                                                   
    1623             IF(lwp) WRITE(numout,*) 
    1624             nstop = nstop + 1 
     1590            WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgs(ib) 
     1591            WRITE(ctmp2,*) ' ==========  does not end on land or on a corner'                                                   
     1592            CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    16251593         ENDIF 
    16261594      END DO 
     
    16381606            END DO 
    16391607         END DO 
    1640          IF( lk_mpp )   CALL mpp_sum( ztestmask, 2 )   ! sum over the global domain 
     1608         CALL mpp_sum( 'bdyini', ztestmask, 2 )   ! sum over the global domain 
    16411609 
    16421610         IF ((ztestmask(1)==1).AND.(icornn(ib,1)==0)) THEN 
    1643             IF(lwp) WRITE(numout,*) 
    1644             IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgn(ib) 
    1645             IF(lwp) WRITE(numout,*) ' ==========  does not start on land'                                                   
    1646             IF(lwp) WRITE(numout,*) 
    1647             nstop = nstop + 1 
     1611            WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgn(ib) 
     1612            WRITE(ctmp2,*) ' ==========  does not start on land'                                                   
     1613            CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    16481614         ENDIF 
    16491615         IF ((ztestmask(2)==1).AND.(icornn(ib,2)==0)) THEN 
    1650             IF(lwp) WRITE(numout,*) 
    1651             IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgn(ib) 
    1652             IF(lwp) WRITE(numout,*) ' ==========  does not end on land'                                                   
    1653             IF(lwp) WRITE(numout,*) 
    1654             nstop = nstop + 1 
     1616            WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgn(ib) 
     1617            WRITE(ctmp2,*) ' ==========  does not end on land'                                                   
     1618            CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    16551619         ENDIF 
    16561620      END DO 
     
    16911655      ! 
    16921656      IF( itest>0 ) THEN 
    1693          IF(lwp) WRITE(numout,*) ' E R R O R : Segments ', ib1, 'and ', ib2 
    1694          IF(lwp) WRITE(numout,*) ' ==========  have different open bdy schemes'                                                   
    1695          IF(lwp) WRITE(numout,*) 
    1696          nstop = nstop + 1 
     1657         WRITE(ctmp1,*) ' E R R O R : Segments ', ib1, 'and ', ib2 
     1658         WRITE(ctmp2,*) ' ==========  have different open bdy schemes'                                                   
     1659         CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    16971660      ENDIF 
    16981661      ! 
  • NEMO/trunk/src/OCE/BDY/bdytra.F90

    r10068 r10425  
    7171            END SELECT 
    7272            ! Boundary points should be updated 
    73             CALL lbc_bdy_lnk( tsa(:,:,:,jn), 'T', 1., ib_bdy ) 
     73            CALL lbc_bdy_lnk( 'bdytra', tsa(:,:,:,jn), 'T', 1., ib_bdy ) 
    7474            !  
    7575         END DO 
  • NEMO/trunk/src/OCE/BDY/bdyvol.F90

    r10068 r10425  
    8585!!gm replace these lines : 
    8686      z_cflxemp = SUM ( ( emp(:,:) - rnf(:,:) + fwfisf(:,:) ) * bdytmask(:,:) * e1e2t(:,:) ) / rau0 
    87       IF( lk_mpp )   CALL mpp_sum( z_cflxemp )     ! sum over the global domain 
     87      CALL mpp_sum( 'bdyvol', z_cflxemp )     ! sum over the global domain 
    8888!!gm   by : 
    89 !!gm      z_cflxemp = glob_sum(  ( emp(:,:)-rnf(:,:)+fwfisf(:,:) ) * bdytmask(:,:) * e1e2t(:,:)  ) / rau0 
     89!!gm      z_cflxemp = glob_sum(  'bdyvol', ( emp(:,:)-rnf(:,:)+fwfisf(:,:) ) * bdytmask(:,:) * e1e2t(:,:)  ) / rau0 
    9090!!gm 
    9191 
     
    114114         ! 
    115115      END DO 
    116       IF( lk_mpp )   CALL mpp_sum( zubtpecor )   ! sum over the global domain 
     116      CALL mpp_sum( 'bdyvol', zubtpecor )   ! sum over the global domain 
    117117 
    118118      ! The normal velocity correction 
     
    148148         ! 
    149149      END DO 
    150       IF( lk_mpp )   CALL mpp_sum( ztranst )   ! sum over the global domain 
     150      CALL mpp_sum( 'bdyvol', ztranst )   ! sum over the global domain 
    151151  
    152152      ! Check the cumulated transport through unstructured OBC once barotropic velocities corrected 
Note: See TracChangeset for help on using the changeset viewer.