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.
#2359 (Bug: U/V point interpolation of isf tbl tracer properties) – NEMO

Opened 4 years ago

Closed 4 years ago

#2359 closed Bug (fixed)

Bug: U/V point interpolation of isf tbl tracer properties

Reported by: mathiot Owned by: mathiot
Priority: low Milestone:
Component: SBC Version: trunk
Severity: minor Keywords:
Cc:

Description

Context

Interpolation of the mean tracer properties in the isf top boundary layer on U/V point is wrong.

Analysis

It only affect the trunk and version 4. Version 3.6 is not affected. A fix has been included 2019 isf development and therefore included in the 2 dev_merge_2019 branches.

Recommendation

  • src/OCE/SBC/sbcisf.F90

     
    741741      INTEGER ::   ikt, ikb                    ! top and bottom index of the tbl 
    742742      REAL(wp) ::   ze3, zhk 
    743743      REAL(wp), DIMENSION(jpi,jpj) :: zhisf_tbl ! thickness of the tbl 
     744      REAL(wp), DIMENSION(jpi,jpj) :: zvarout 
    744745      !!---------------------------------------------------------------------- 
    745746       
    746747      ! initialisation 
     
    748749    
    749750      SELECT CASE ( cd_ptin ) 
    750751      CASE ( 'U' ) ! compute U in the top boundary layer at T- point  
     752         ! 
     753         zvarout(:,:)=0._wp 
     754         ! 
    751755         DO jj = 1,jpj 
    752756            DO ji = 1,jpi 
    753757               ikt = miku(ji,jj) ; ikb = miku(ji,jj) 
     
    763767               ! level fully include in the ice shelf boundary layer 
    764768               DO jk = ikt, ikb - 1 
    765769                  ze3 = e3u_n(ji,jj,jk) 
    766                   pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3 
     770                  zvarout(ji,jj) = zvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3 
    767771               END DO 
    768772 
    769773               ! level partially include in ice shelf boundary layer  
    770774               zhk = SUM( e3u_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj) 
    771                pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk) 
     775               zvarout(ji,jj) = zvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk) 
    772776            END DO 
    773777         END DO 
    774778         DO jj = 2, jpj 
    775779            DO ji = 2, jpi 
    776780!!gm a wet-point only average should be used here !!! 
    777                pvarout(ji,jj) = 0.5_wp * (pvarout(ji,jj) + pvarout(ji-1,jj)) 
     781               pvarout(ji,jj) = 0.5_wp * (zvarout(ji,jj) + zvarout(ji-1,jj)) 
    778782            END DO 
    779783         END DO 
    780784         CALL lbc_lnk('sbcisf', pvarout,'T',-1.) 
    781785       
    782786      CASE ( 'V' ) ! compute V in the top boundary layer at T- point  
     787         ! 
     788         zvarout(:,:)=0._wp 
     789         ! 
    783790         DO jj = 1,jpj 
    784791            DO ji = 1,jpi 
    785792               ikt = mikv(ji,jj) ; ikb = mikv(ji,jj) 
     
    795802               ! level fully include in the ice shelf boundary layer 
    796803               DO jk = ikt, ikb - 1 
    797804                  ze3 = e3v_n(ji,jj,jk) 
    798                   pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3 
     805                  zvarout(ji,jj) = zvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3 
    799806               END DO 
    800807 
    801808               ! level partially include in ice shelf boundary layer  
    802809               zhk = SUM( e3v_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj) 
    803                pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk) 
     810               zvarout(ji,jj) = zvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk) 
    804811            END DO 
    805812         END DO 
    806813         DO jj = 2, jpj 
    807814            DO ji = 2, jpi 
    808815!!gm a wet-point only average should be used here !!! 
    809                pvarout(ji,jj) = 0.5_wp * (pvarout(ji,jj) + pvarout(ji,jj-1)) 
     816               pvarout(ji,jj) = 0.5_wp * (zvarout(ji,jj) + zvarout(ji,jj-1)) 
    810817            END DO 
    811818         END DO 
    812819         CALL lbc_lnk('sbcisf', pvarout,'T',-1.) 

Commit History (1)

ChangesetAuthorTimeChangeLog
12294mathiot2019-12-30T19:46:59+01:00

fix #2359

Change History (1)

comment:1 Changed 4 years ago by mathiot

  • Resolution set to fixed
  • Status changed from new to closed

In 12294:

Error: Failed to load processor CommitTicketReference
No macro or processor named 'CommitTicketReference' found
Note: See TracTickets for help on using tickets.