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 4354 for branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn3d.F90 – NEMO

Ignore:
Timestamp:
2014-01-17T17:56:32+01:00 (10 years ago)
Author:
jchanut
Message:

Restore AGRIF and BDY compatibility, see ticket #1133

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn3d.F90

    r4317 r4354  
    1515   !!---------------------------------------------------------------------- 
    1616   USE timing          ! Timing 
    17    USE wrk_nemo        ! Memory Allocation 
    1817   USE oce             ! ocean dynamics and tracers  
    1918   USE dom_oce         ! ocean space and time domain 
     
    266265      REAL(wp) ::   zwgt           ! boundary weight 
    267266      INTEGER  ::  ib_bdy          ! loop index 
    268       REAL(wp), POINTER, DIMENSION(:,:) :: phur1, phvr1     ! inverse depth at u and v points 
    269267      !!---------------------------------------------------------------------- 
    270268      ! 
     
    272270      ! 
    273271      !------------------------------------------------------- 
    274       ! Remove barotropic part from before velocity 
    275       !------------------------------------------------------- 
    276       CALL wrk_alloc(jpi,jpj,pub2d,pvb2d,phur1,phvr1)  
    277  
    278       pub2d(:,:) = 0.e0 
    279       pvb2d(:,:) = 0.e0 
    280  
    281       phur1(:,:) = 0. 
    282       phvr1(:,:) = 0. 
    283       DO jk = 1, jpkm1 
    284 #if defined key_vvl 
    285          phur1(:,:) = phur1(:,:) + fse3u_a(:,:,jk) * umask(:,:,jk) 
    286          phvr1(:,:) = phvr1(:,:) + fse3v_a(:,:,jk) * vmask(:,:,jk) 
    287          pub2d(:,:) = pub2d(:,:) + fse3u_b(:,:,jk)* ub(:,:,jk)   *umask(:,:,jk)  
    288          pvb2d(:,:) = pvb2d(:,:) + fse3v_b(:,:,jk)* vb(:,:,jk)   *vmask(:,:,jk) 
    289 #else 
    290          pub2d(:,:) = pub2d(:,:) + fse3u(:,:,jk) * ub(:,:,jk)  * umask(:,:,jk) 
    291          pvb2d(:,:) = pvb2d(:,:) + fse3v(:,:,jk) * vb(:,:,jk)  * vmask(:,:,jk) 
    292 #endif 
    293       END DO 
    294  
    295       IF( lk_vvl ) THEN 
    296          phur1(:,:) = umask(:,:,1) / ( phur1(:,:) + 1. - umask(:,:,1) ) 
    297          phvr1(:,:) = vmask(:,:,1) / ( phvr1(:,:) + 1. - vmask(:,:,1) ) 
    298          pub2d(:,:) = pub2d(:,:) * umask(:,:,1) * phur1(:,:) 
    299          pvb2d(:,:) = pvb2d(:,:) * vmask(:,:,1) * phvr1(:,:) 
    300       ELSE 
    301          pub2d(:,:) = pvb2d(:,:) * hur(:,:) 
    302          pvb2d(:,:) = pub2d(:,:) * hvr(:,:) 
    303       ENDIF 
    304272 
    305273      DO ib_bdy=1, nb_bdy 
     
    312280               DO jk = 1, jpkm1 
    313281                  ua(ii,ij,jk) = ( ua(ii,ij,jk) + zwgt * ( dta_bdy(ib_bdy)%u3d(jb,jk) - & 
    314                                    ub(ii,ij,jk) + pub2d(ii,ij)) ) * umask(ii,ij,jk) 
     282                                   ub(ii,ij,jk) + ub_b(ii,ij)) ) * umask(ii,ij,jk) 
    315283               END DO 
    316284            END DO 
     
    323291               DO jk = 1, jpkm1 
    324292                  va(ii,ij,jk) = ( va(ii,ij,jk) + zwgt * ( dta_bdy(ib_bdy)%v3d(jb,jk) -  & 
    325                                    vb(ii,ij,jk) + pvb2d(ii,ij)) ) * vmask(ii,ij,jk) 
     293                                   vb(ii,ij,jk) + vb_b(ii,ij)) ) * vmask(ii,ij,jk) 
    326294               END DO 
    327295            END DO 
     
    329297      ENDDO 
    330298      ! 
    331       CALL wrk_dealloc(jpi,jpj,pub2d,pvb2d,phur1,phvr1)  
    332       ! 
    333299      CALL lbc_lnk( ua, 'U', -1. )   ;   CALL lbc_lnk( va, 'V', -1. )   ! Boundary points should be updated 
    334300      ! 
Note: See TracChangeset for help on using the changeset viewer.