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 1695 for trunk/NEMO/LIM_SRC_2/limsbc_2.F90 – NEMO

Ignore:
Timestamp:
2009-10-30T17:42:38+01:00 (14 years ago)
Author:
smasson
Message:

wind stress module directly at T-point, see ticket:577

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/LIM_SRC_2/limsbc_2.F90

    r1694 r1695  
    9090      REAL(wp), DIMENSION(jpi,jpj,1) ::   zalb     ! albedo of ice under overcast sky 
    9191      REAL(wp), DIMENSION(jpi,jpj,1) ::   zalbp    ! albedo of ice under clear sky 
    92       REAL(wp) ::   zsang, zmod, zfm 
    93       REAL(wp), DIMENSION(jpi,jpj) ::   ztio_u, ztio_v   ! ocean stress below sea-ice 
     92      REAL(wp) ::   zsang, zmod, zztmp, zfm 
     93      REAL(wp), DIMENSION(jpi,jpj) ::   ztio_u, ztio_v   ! component of ocean stress below sea-ice at I-point 
     94      REAL(wp), DIMENSION(jpi,jpj) ::   ztiomi           ! module    of ocean stress below sea-ice at I-point 
    9495      REAL(wp), DIMENSION(jpi,jpj) ::   zqnsoce          ! save qns before its modification by ice model 
    9596 
     
    249250               zu_io  = u_ice(ji,jj) - u_oce(ji,jj) 
    250251               zv_io  = v_ice(ji,jj) - v_oce(ji,jj) 
    251                zmod   = rhoco * SQRT( zu_io * zu_io + zv_io * zv_io ) 
    252                ! ... ice stress over ocean with a ice-ocean rotation angle (at I-point) 
    253                ztio_u(ji,jj) = zmod * ( cangvg * zu_io - zsang * zv_io ) 
    254                ztio_v(ji,jj) = zmod * ( cangvg * zv_io + zsang * zu_io ) 
     252               zmod   = SQRT( zu_io * zu_io + zv_io * zv_io ) 
     253               zztmp  = rhoco * zmod 
     254               ! ... components of ice stress over ocean with a ice-ocean rotation angle (at I-point) 
     255               ztio_u(ji,jj) = zztmp * ( cangvg * zu_io - zsang * zv_io ) 
     256               ztio_v(ji,jj) = zztmp * ( cangvg * zv_io + zsang * zu_io ) 
     257               ! ... module of ice stress over ocean (at I-point) 
     258               ztiomi(ji,jj) = zztmp * zmod 
    255259               !  
    256260            END DO 
     
    259263         DO jj = 2, jpjm1 
    260264            DO ji = 2, jpim1   ! NO vector opt. 
    261                ! ... ice-cover wheighted ice-ocean stress at U and V-points  (from I-point values) 
     265               ! ... components of ice-ocean stress at U and V-points  (from I-point values) 
    262266               zutau  = 0.5 * ( ztio_u(ji+1,jj) + ztio_u(ji+1,jj+1) ) 
    263267               zvtau  = 0.5 * ( ztio_v(ji,jj+1) + ztio_v(ji+1,jj+1) ) 
    264268               ! ... open-ocean (lead) fraction at U- & V-points (from T-point values) 
    265                zfrldu = 0.5 * ( frld (ji,jj) + frld (ji+1,jj  ) ) 
    266                zfrldv = 0.5 * ( frld (ji,jj) + frld (ji  ,jj+1) ) 
    267                ! update surface ocean stress 
     269               zfrldu = 0.5 * ( frld(ji,jj) + frld(ji+1,jj  ) ) 
     270               zfrldv = 0.5 * ( frld(ji,jj) + frld(ji  ,jj+1) ) 
     271               ! ... update components of surface ocean stress (ice-cover wheighted) 
    268272               utau(ji,jj) = zfrldu * utau(ji,jj) + ( 1. - zfrldu ) * zutau 
    269273               vtau(ji,jj) = zfrldv * vtau(ji,jj) + ( 1. - zfrldv ) * zvtau 
     274               ! ... module of ice-ocean stress at T-points (from I-point values) 
     275               zztmp = 0.25 * ( ztiomi(ji,jj) + ztiomi(ji+1,jj) + ztiomi(ji,jj+1) + ztiomi(ji+1,jj+1) ) 
     276               ! ... update module of surface ocean stress (ice-cover wheighted) 
     277               taum(ji,jj) = frld(ji,jj) * taum(ji,jj) + ( 1. - frld(ji,jj) ) * zztmp 
    270278               ! 
    271279            END DO 
    272280         END DO 
    273281 
    274          ! boundary condition on the stress (utau,vtau) 
     282         ! boundary condition on the stress (utau,vtau,taum) 
    275283         CALL lbc_lnk( utau, 'U', -1. ) 
    276284         CALL lbc_lnk( vtau, 'V', -1. ) 
     285         CALL lbc_lnk( taum, 'T',  1. ) 
    277286 
    278287      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.