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 12925 for NEMO/trunk/src/OCE/SBC/sbccpl.F90 – NEMO

Ignore:
Timestamp:
2020-05-14T15:46:17+02:00 (4 years ago)
Author:
smasson
Message:

trunk: avoid pollution of atm-ice stress at coastal points, see #2464

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/SBC/sbccpl.F90

    r12620 r12925  
    14811481      INTEGER ::   ji, jj   ! dummy loop indices 
    14821482      INTEGER ::   itx      ! index of taux over ice 
     1483      REAL(wp)                     ::   zztmp1, zztmp2 
    14831484      REAL(wp), DIMENSION(jpi,jpj) ::   ztx, zty  
    14841485      !!---------------------------------------------------------------------- 
     
    15441545            p_taui(:,:) = frcv(jpr_itx1)%z3(:,:,1)                   ! (U,V) ==> (U,V) 
    15451546            p_tauj(:,:) = frcv(jpr_ity1)%z3(:,:,1) 
    1546          CASE( 'F' ) 
    1547             DO_2D_00_00 
    1548                p_taui(ji,jj) = 0.5 * ( frcv(jpr_itx1)%z3(ji,jj,1) + frcv(jpr_itx1)%z3(ji  ,jj-1,1) ) 
    1549                p_tauj(ji,jj) = 0.5 * ( frcv(jpr_ity1)%z3(ji,jj,1) + frcv(jpr_ity1)%z3(ji-1,jj  ,1) ) 
    1550             END_2D 
    15511547         CASE( 'T' ) 
    15521548            DO_2D_00_00 
    1553                p_taui(ji,jj) = 0.5 * ( frcv(jpr_itx1)%z3(ji+1,jj  ,1) + frcv(jpr_itx1)%z3(ji,jj,1) ) 
    1554                p_tauj(ji,jj) = 0.5 * ( frcv(jpr_ity1)%z3(ji  ,jj+1,1) + frcv(jpr_ity1)%z3(ji,jj,1) ) 
     1549               ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and  rheology  
     1550               zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj  ,1) ) 
     1551               zztmp2 = 0.5_wp * ( 2. - vmask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji  ,jj+1,1) ) 
     1552               p_taui(ji,jj) = zztmp1 * ( frcv(jpr_itx1)%z3(ji+1,jj  ,1) + frcv(jpr_itx1)%z3(ji,jj,1) ) 
     1553               p_tauj(ji,jj) = zztmp2 * ( frcv(jpr_ity1)%z3(ji  ,jj+1,1) + frcv(jpr_ity1)%z3(ji,jj,1) ) 
    15551554            END_2D 
    1556          CASE( 'I' ) 
    1557             DO_2D_00_00 
    1558                p_taui(ji,jj) = 0.5 * ( frcv(jpr_itx1)%z3(ji+1,jj+1,1) + frcv(jpr_itx1)%z3(ji+1,jj  ,1) ) 
    1559                p_tauj(ji,jj) = 0.5 * ( frcv(jpr_ity1)%z3(ji+1,jj+1,1) + frcv(jpr_ity1)%z3(ji  ,jj+1,1) ) 
    1560             END_2D 
     1555            CALL lbc_lnk_multi( 'sbccpl', p_taui, 'U',  -1., p_tauj, 'V',  -1. ) 
    15611556         END SELECT 
    1562          IF( srcv(jpr_itx1)%clgrid /= 'U' ) THEN  
    1563             CALL lbc_lnk_multi( 'sbccpl', p_taui, 'U',  -1., p_tauj, 'V',  -1. ) 
    1564          ENDIF 
    15651557          
    15661558      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.