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 12377 for NEMO/trunk/src/OCE/BDY/bdydyn3d.F90 – NEMO

Ignore:
Timestamp:
2020-02-12T15:39:06+01:00 (4 years ago)
Author:
acc
Message:

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge --ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The --ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

Location:
NEMO/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
  • NEMO/trunk/src/OCE/BDY/bdydyn3d.F90

    r11536 r12377  
    3333CONTAINS 
    3434 
    35    SUBROUTINE bdy_dyn3d( kt ) 
     35   SUBROUTINE bdy_dyn3d( kt, Kbb, puu, pvv, Kaa ) 
    3636      !!---------------------------------------------------------------------- 
    3737      !!                  ***  SUBROUTINE bdy_dyn3d  *** 
     
    4040      !! 
    4141      !!---------------------------------------------------------------------- 
    42       INTEGER, INTENT(in) ::   kt   ! Main time step counter 
     42      INTEGER                             , INTENT( in    ) ::   kt        ! Main time step counter 
     43      INTEGER                             , INTENT( in    ) ::   Kbb, Kaa  ! Time level indices 
     44      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
    4345      ! 
    4446      INTEGER  ::   ib_bdy, ir     ! BDY set index, rim index 
     
    5860            CASE('none')        ;   CYCLE 
    5961            CASE('frs' )        ! treat the whole boundary at once 
    60                IF( ir == 0) CALL bdy_dyn3d_frs( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 
     62                       IF( ir == 0) CALL bdy_dyn3d_frs( puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 
    6163            CASE('specified')   ! treat the whole rim      at once 
    62                IF( ir == 0) CALL bdy_dyn3d_spe( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 
     64                       IF( ir == 0) CALL bdy_dyn3d_spe( puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 
    6365            CASE('zero')        ! treat the whole rim      at once 
    64                IF( ir == 0) CALL bdy_dyn3d_zro( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 
    65             CASE('orlanski' )   ;   CALL bdy_dyn3d_orlanski( idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, llrim0, ll_npo=.false. ) 
    66             CASE('orlanski_npo');   CALL bdy_dyn3d_orlanski( idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, llrim0, ll_npo=.true.  ) 
    67             CASE('zerograd')    ;   CALL bdy_dyn3d_zgrad( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy, llrim0 ) 
    68             CASE('neumann')     ;   CALL bdy_dyn3d_nmn( idx_bdy(ib_bdy), ib_bdy, llrim0 ) 
     66                       IF( ir == 0) CALL bdy_dyn3d_zro( puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 
     67            CASE('orlanski' )   ;   CALL bdy_dyn3d_orlanski( Kbb, puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, llrim0, ll_npo=.false. ) 
     68            CASE('orlanski_npo');   CALL bdy_dyn3d_orlanski( Kbb, puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, llrim0, ll_npo=.true.  ) 
     69            CASE('zerograd')    ;   CALL bdy_dyn3d_zgrad( puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy, llrim0 ) 
     70            CASE('neumann')     ;   CALL bdy_dyn3d_nmn( puu, pvv, Kaa, idx_bdy(ib_bdy), ib_bdy, llrim0 ) 
    6971            CASE DEFAULT        ;   CALL ctl_stop( 'bdy_dyn3d : unrecognised option for open boundaries for baroclinic velocities' ) 
    7072            END SELECT 
     
    9799         ! 
    98100         IF( ANY(llsend2) .OR. ANY(llrecv2) ) THEN   ! if need to send/recv in at least one direction 
    99             CALL lbc_lnk( 'bdydyn2d', ua, 'U', -1., kfillmode=jpfillnothing ,lsend=llsend2, lrecv=llrecv2 ) 
     101            CALL lbc_lnk( 'bdydyn2d', puu(:,:,:,Kaa), 'U', -1., kfillmode=jpfillnothing ,lsend=llsend2, lrecv=llrecv2 ) 
    100102         END IF 
    101103         IF( ANY(llsend3) .OR. ANY(llrecv3) ) THEN   ! if need to send/recv in at least one direction 
    102             CALL lbc_lnk( 'bdydyn2d', va, 'V', -1., kfillmode=jpfillnothing ,lsend=llsend3, lrecv=llrecv3 ) 
     104            CALL lbc_lnk( 'bdydyn2d', pvv(:,:,:,Kaa), 'V', -1., kfillmode=jpfillnothing ,lsend=llsend3, lrecv=llrecv3 ) 
    103105         END IF 
    104106      END DO   ! ir 
     
    107109 
    108110 
    109    SUBROUTINE bdy_dyn3d_spe( idx, dta, kt , ib_bdy ) 
     111   SUBROUTINE bdy_dyn3d_spe( puu, pvv, Kaa, idx, dta, kt, ib_bdy ) 
    110112      !!---------------------------------------------------------------------- 
    111113      !!                  ***  SUBROUTINE bdy_dyn3d_spe  *** 
     
    115117      !! 
    116118      !!---------------------------------------------------------------------- 
    117       INTEGER        , INTENT(in) ::   kt      ! time step index 
    118       TYPE(OBC_INDEX), INTENT(in) ::   idx     ! OBC indices 
    119       TYPE(OBC_DATA) , INTENT(in) ::   dta     ! OBC external data 
    120       INTEGER        , INTENT(in) ::   ib_bdy  ! BDY set index 
     119      INTEGER                             , INTENT( in    ) ::   Kaa       ! Time level index 
     120      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     121      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
     122      TYPE(OBC_DATA)                      , INTENT( in    ) ::   dta       ! OBC external data 
     123      INTEGER                             , INTENT( in    ) ::   kt        ! Time step 
     124      INTEGER                             , INTENT( in    ) ::   ib_bdy    ! BDY set index 
    121125      ! 
    122126      INTEGER  ::   jb, jk         ! dummy loop indices 
     
    129133            ii   = idx%nbi(jb,igrd) 
    130134            ij   = idx%nbj(jb,igrd) 
    131             ua(ii,ij,jk) = dta%u3d(jb,jk) * umask(ii,ij,jk) 
     135            puu(ii,ij,jk,Kaa) = dta%u3d(jb,jk) * umask(ii,ij,jk) 
    132136         END DO 
    133137      END DO 
     
    138142            ii   = idx%nbi(jb,igrd) 
    139143            ij   = idx%nbj(jb,igrd) 
    140             va(ii,ij,jk) = dta%v3d(jb,jk) * vmask(ii,ij,jk) 
     144            pvv(ii,ij,jk,Kaa) = dta%v3d(jb,jk) * vmask(ii,ij,jk) 
    141145         END DO 
    142146      END DO 
     
    145149 
    146150 
    147    SUBROUTINE bdy_dyn3d_zgrad( idx, dta, kt, ib_bdy, llrim0 ) 
     151   SUBROUTINE bdy_dyn3d_zgrad( puu, pvv, Kaa, idx, dta, kt, ib_bdy, llrim0 ) 
    148152      !!---------------------------------------------------------------------- 
    149153      !!                  ***  SUBROUTINE bdy_dyn3d_zgrad  *** 
     
    152156      !! 
    153157      !!---------------------------------------------------------------------- 
    154       INTEGER                     ::   kt 
    155       TYPE(OBC_INDEX), INTENT(in) ::   idx      ! OBC indices 
    156       TYPE(OBC_DATA),  INTENT(in) ::   dta      ! OBC external data 
    157       INTEGER,         INTENT(in) ::   ib_bdy   ! BDY set index 
    158       LOGICAL,         INTENT(in) ::   llrim0   ! indicate if rim 0 is treated 
     158      INTEGER                             , INTENT( in    ) ::   Kaa       ! Time level index 
     159      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     160      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
     161      TYPE(OBC_DATA)                      , INTENT( in    ) ::   dta       ! OBC external data 
     162      INTEGER                             , INTENT( in    ) ::   kt 
     163      INTEGER                             , INTENT( in    ) ::   ib_bdy    ! BDY set index 
     164      LOGICAL                             , INTENT( in    ) ::   llrim0   ! indicate if rim 0 is treated 
    159165      !! 
    160166      INTEGER  ::   jb, jk         ! dummy loop indices 
     
    178184            ! 
    179185            DO jk = 1, jpkm1 
    180                ua(ii,ij,jk) = ua(ii,ij+flagv,jk) * umask(ii,ij+flagv,jk) 
     186               puu(ii,ij,jk,Kaa) = puu(ii,ij+flagv,jk,Kaa) * umask(ii,ij+flagv,jk) 
    181187            END DO 
    182188            ! 
     
    198204            ! 
    199205            DO jk = 1, jpkm1 
    200                va(ii,ij,jk) = va(ii+flagu,ij,jk) * vmask(ii+flagu,ij,jk) 
     206               pvv(ii,ij,jk,Kaa) = pvv(ii+flagu,ij,jk,Kaa) * vmask(ii+flagu,ij,jk) 
    201207            END DO 
    202208            ! 
     
    207213 
    208214 
    209    SUBROUTINE bdy_dyn3d_zro( idx, dta, kt, ib_bdy ) 
     215   SUBROUTINE bdy_dyn3d_zro( puu, pvv, Kaa, idx, dta, kt, ib_bdy ) 
    210216      !!---------------------------------------------------------------------- 
    211217      !!                  ***  SUBROUTINE bdy_dyn3d_zro  *** 
     
    214220      !! 
    215221      !!---------------------------------------------------------------------- 
    216       INTEGER        , INTENT(in) ::   kt      ! time step index 
    217       TYPE(OBC_INDEX), INTENT(in) ::   idx     ! OBC indices 
    218       TYPE(OBC_DATA) , INTENT(in) ::   dta     ! OBC external data 
    219       INTEGER,         INTENT(in) ::   ib_bdy  ! BDY set index 
     222      INTEGER                             , INTENT( in    ) ::   kt        ! time step index 
     223      INTEGER                             , INTENT( in    ) ::   Kaa       ! Time level index 
     224      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     225      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
     226      TYPE(OBC_DATA)                      , INTENT( in    ) ::   dta       ! OBC external data 
     227      INTEGER                             , INTENT( in    ) ::   ib_bdy    ! BDY set index 
    220228      ! 
    221229      INTEGER  ::   ib, ik         ! dummy loop indices 
     
    228236         ij = idx%nbj(ib,igrd) 
    229237         DO ik = 1, jpkm1 
    230             ua(ii,ij,ik) = 0._wp 
     238            puu(ii,ij,ik,Kaa) = 0._wp 
    231239         END DO 
    232240      END DO 
     
    237245         ij = idx%nbj(ib,igrd) 
    238246         DO ik = 1, jpkm1 
    239             va(ii,ij,ik) = 0._wp 
     247            pvv(ii,ij,ik,Kaa) = 0._wp 
    240248         END DO 
    241249      END DO 
     
    244252 
    245253 
    246    SUBROUTINE bdy_dyn3d_frs( idx, dta, kt, ib_bdy ) 
     254   SUBROUTINE bdy_dyn3d_frs( puu, pvv, Kaa, idx, dta, kt, ib_bdy ) 
    247255      !!---------------------------------------------------------------------- 
    248256      !!                  ***  SUBROUTINE bdy_dyn3d_frs  *** 
     
    255263      !!               topography. Tellus, 365-382. 
    256264      !!---------------------------------------------------------------------- 
    257       INTEGER        , INTENT(in) ::   kt      ! time step index 
    258       TYPE(OBC_INDEX), INTENT(in) ::   idx     ! OBC indices 
    259       TYPE(OBC_DATA) , INTENT(in) ::   dta     ! OBC external data 
    260       INTEGER,         INTENT(in) ::   ib_bdy  ! BDY set index 
     265      INTEGER                             , INTENT( in    ) ::   kt        ! time step index 
     266      INTEGER                             , INTENT( in    ) ::   Kaa       ! Time level index 
     267      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     268      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
     269      TYPE(OBC_DATA)                      , INTENT( in    ) ::   dta       ! OBC external data 
     270      INTEGER                             , INTENT( in    ) ::   ib_bdy    ! BDY set index 
    261271      ! 
    262272      INTEGER  ::   jb, jk         ! dummy loop indices 
     
    271281            ij   = idx%nbj(jb,igrd) 
    272282            zwgt = idx%nbw(jb,igrd) 
    273             ua(ii,ij,jk) = ( ua(ii,ij,jk) + zwgt * ( dta%u3d(jb,jk) - ua(ii,ij,jk) ) ) * umask(ii,ij,jk) 
     283            puu(ii,ij,jk,Kaa) = ( puu(ii,ij,jk,Kaa) + zwgt * ( dta%u3d(jb,jk) - puu(ii,ij,jk,Kaa) ) ) * umask(ii,ij,jk) 
    274284         END DO 
    275285      END DO 
     
    281291            ij   = idx%nbj(jb,igrd) 
    282292            zwgt = idx%nbw(jb,igrd) 
    283             va(ii,ij,jk) = ( va(ii,ij,jk) + zwgt * ( dta%v3d(jb,jk) - va(ii,ij,jk) ) ) * vmask(ii,ij,jk) 
     293            pvv(ii,ij,jk,Kaa) = ( pvv(ii,ij,jk,Kaa) + zwgt * ( dta%v3d(jb,jk) - pvv(ii,ij,jk,Kaa) ) ) * vmask(ii,ij,jk) 
    284294         END DO 
    285295      END DO    
     
    288298 
    289299 
    290    SUBROUTINE bdy_dyn3d_orlanski( idx, dta, ib_bdy, llrim0, ll_npo ) 
     300   SUBROUTINE bdy_dyn3d_orlanski( Kbb, puu, pvv, Kaa, idx, dta, ib_bdy, llrim0, ll_npo ) 
    291301      !!---------------------------------------------------------------------- 
    292302      !!                 ***  SUBROUTINE bdy_dyn3d_orlanski  *** 
     
    298308      !! References:  Marchesiello, McWilliams and Shchepetkin, Ocean Modelling vol. 3 (2001)     
    299309      !!---------------------------------------------------------------------- 
    300       TYPE(OBC_INDEX),              INTENT(in) ::   idx  ! OBC indices 
    301       TYPE(OBC_DATA),               INTENT(in) ::   dta  ! OBC external data 
    302       INTEGER,                      INTENT(in) ::   ib_bdy   ! BDY set index 
    303       LOGICAL,                      INTENT(in) ::   llrim0   ! indicate if rim 0 is treated 
    304       LOGICAL,                      INTENT(in) ::   ll_npo   ! switch for NPO version 
     310      INTEGER                             , INTENT( in    ) ::   Kbb, Kaa  ! Time level indices 
     311      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     312      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
     313      TYPE(OBC_DATA)                      , INTENT( in    ) ::   dta       ! OBC external data 
     314      INTEGER                             , INTENT( in    ) ::   ib_bdy    ! BDY set index 
     315      LOGICAL                             , INTENT( in    ) ::   llrim0    ! indicate if rim 0 is treated 
     316      LOGICAL                             , INTENT( in    ) ::   ll_npo    ! switch for NPO version 
    305317 
    306318      INTEGER  ::   jb, igrd                               ! dummy loop indices 
    307319      !!---------------------------------------------------------------------- 
    308320      ! 
    309       !! Note that at this stage the ub and ua arrays contain the baroclinic velocities.  
     321      !! Note that at this stage the puu(:,:,:,Kbb) and puu(:,:,:,Kaa) arrays contain the baroclinic velocities.  
    310322      ! 
    311323      igrd = 2      ! Orlanski bc on u-velocity;  
    312324      !             
    313       CALL bdy_orlanski_3d( idx, igrd, ub, ua, dta%u3d, ll_npo, llrim0 ) 
     325      CALL bdy_orlanski_3d( idx, igrd, puu(:,:,:,Kbb), puu(:,:,:,Kaa), dta%u3d, ll_npo, llrim0 ) 
    314326 
    315327      igrd = 3      ! Orlanski bc on v-velocity 
    316328      !   
    317       CALL bdy_orlanski_3d( idx, igrd, vb, va, dta%v3d, ll_npo, llrim0 ) 
     329      CALL bdy_orlanski_3d( idx, igrd, pvv(:,:,:,Kbb), pvv(:,:,:,Kaa), dta%v3d, ll_npo, llrim0 ) 
    318330      ! 
    319331   END SUBROUTINE bdy_dyn3d_orlanski 
    320332 
    321333 
    322    SUBROUTINE bdy_dyn3d_dmp( kt ) 
     334   SUBROUTINE bdy_dyn3d_dmp( kt, Kbb, puu, pvv, Krhs ) 
    323335      !!---------------------------------------------------------------------- 
    324336      !!                  ***  SUBROUTINE bdy_dyn3d_dmp  *** 
     
    327339      !! 
    328340      !!---------------------------------------------------------------------- 
    329       INTEGER, INTENT(in) ::   kt   ! time step index 
     341      INTEGER                             , INTENT( in    ) ::   kt        ! time step 
     342      INTEGER                             , INTENT( in    ) ::   Kbb, Krhs ! Time level indices 
     343      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities and trends (to be updated at open boundaries) 
    330344      ! 
    331345      INTEGER  ::   jb, jk         ! dummy loop indices 
     
    345359               zwgt = idx_bdy(ib_bdy)%nbd(jb,igrd) 
    346360               DO jk = 1, jpkm1 
    347                   ua(ii,ij,jk) = ( ua(ii,ij,jk) + zwgt * ( dta_bdy(ib_bdy)%u3d(jb,jk) - & 
    348                                    ub(ii,ij,jk) + ub_b(ii,ij)) ) * umask(ii,ij,jk) 
     361                  puu(ii,ij,jk,Krhs) = ( puu(ii,ij,jk,Krhs) + zwgt * ( dta_bdy(ib_bdy)%u3d(jb,jk) - & 
     362                                   puu(ii,ij,jk,Kbb) + uu_b(ii,ij,Kbb)) ) * umask(ii,ij,jk) 
    349363               END DO 
    350364            END DO 
     
    356370               zwgt = idx_bdy(ib_bdy)%nbd(jb,igrd) 
    357371               DO jk = 1, jpkm1 
    358                   va(ii,ij,jk) = ( va(ii,ij,jk) + zwgt * ( dta_bdy(ib_bdy)%v3d(jb,jk) -  & 
    359                                    vb(ii,ij,jk) + vb_b(ii,ij)) ) * vmask(ii,ij,jk) 
     372                  pvv(ii,ij,jk,Krhs) = ( pvv(ii,ij,jk,Krhs) + zwgt * ( dta_bdy(ib_bdy)%v3d(jb,jk) -  & 
     373                                   pvv(ii,ij,jk,Kbb) + vv_b(ii,ij,Kbb)) ) * vmask(ii,ij,jk) 
    360374               END DO 
    361375            END DO 
     
    368382 
    369383 
    370    SUBROUTINE bdy_dyn3d_nmn( idx, ib_bdy, llrim0 ) 
     384   SUBROUTINE bdy_dyn3d_nmn( puu, pvv, Kaa, idx, ib_bdy, llrim0 ) 
    371385      !!---------------------------------------------------------------------- 
    372386      !!                 ***  SUBROUTINE bdy_dyn3d_nmn  *** 
     
    377391      !! 
    378392      !!---------------------------------------------------------------------- 
    379       TYPE(OBC_INDEX), INTENT(in) ::   idx      ! OBC indices 
    380       INTEGER,         INTENT(in) ::   ib_bdy   ! BDY set index 
    381       LOGICAL,         INTENT(in) ::   llrim0   ! indicate if rim 0 is treated 
     393      INTEGER                             , INTENT( in    ) ::   Kaa       ! Time level index 
     394      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     395      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
     396      INTEGER                             , INTENT( in    ) ::   ib_bdy    ! BDY set index 
     397      LOGICAL                             , INTENT( in    ) ::   llrim0    ! indicate if rim 0 is treated 
    382398      INTEGER  ::   igrd                        ! dummy indice 
    383399      !!---------------------------------------------------------------------- 
    384400      ! 
    385       !! Note that at this stage the ub and ua arrays contain the baroclinic velocities.  
     401      !! Note that at this stage the puu(:,:,:,Kbb) and puu(:,:,:,Kaa) arrays contain the baroclinic velocities.  
    386402      ! 
    387403      igrd = 2      ! Neumann bc on u-velocity;  
    388404      !             
    389       CALL bdy_nmn( idx, igrd, ua, llrim0 )   ! ua is masked 
     405      CALL bdy_nmn( idx, igrd, puu(:,:,:,Kaa), llrim0 ) 
    390406 
    391407      igrd = 3      ! Neumann bc on v-velocity 
    392408      !   
    393       CALL bdy_nmn( idx, igrd, va, llrim0 )   ! va is masked 
     409      CALL bdy_nmn( idx, igrd, pvv(:,:,:,Kaa), llrim0 ) 
    394410      ! 
    395411   END SUBROUTINE bdy_dyn3d_nmn 
Note: See TracChangeset for help on using the changeset viewer.