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.
#2149 (Trivial missing implicit bfriction in barotropic subcycle for cases other than ln_dynadv_vec) – NEMO

Opened 6 years ago

Closed 5 years ago

Last modified 2 years ago

#2149 closed Bug (fixed)

Trivial missing implicit bfriction in barotropic subcycle for cases other than ln_dynadv_vec

Reported by: deazer Owned by: deazer
Priority: low Milestone: 2018 release-4.0
Component: DYN Version: trunk
Severity: minor Keywords: bfriction implicit ln_dynadv_vec v4.0 wad
Cc:

Description

Context

In WAD, the bottom friction in barotropic sub cycle is applied implicitly (dynspg_ts)
however currently it is applied only when using vector invariant form

        ! Set next velocities: 
         IF( ln_dynadv_vec .OR. ln_linssh ) THEN      !* Vector form 
            DO jj = 2, jpjm1 
               DO ji = fs_2, fs_jpim1   ! vector opt. 
                  ua_e(ji,jj) = (                                 un_e(ji,jj)   & 
                            &     + rdtbt * (                      zwx(ji,jj)   & 
                            &                                 + zu_trd(ji,jj)   & 
                            &                                 + zu_frc(ji,jj) ) & 
                            &   ) * ssumask(ji,jj) 
 
va_e(ji,jj) = (                                 vn_e(ji,jj)   & 
                            &     + rdtbt * (                      zwy(ji,jj)   & 
                            &                                 + zv_trd(ji,jj)   & 
                            &                                 + zv_frc(ji,jj) ) & 
                            &   ) * ssvmask(ji,jj) 
 
!jth implicit bottom friction: 
                  IF ( ll_wd ) THEN ! revert to explicit for bit comparison tests in non wad runs 
                     ua_e(ji,jj) =  ua_e(ji,jj) /(1.0 -   rdtbt * zCdU_u(ji,jj) * hur_e(ji,jj)) 
                     va_e(ji,jj) =  va_e(ji,jj) /(1.0 -   rdtbt * zCdU_v(ji,jj) * hvr_e(ji,jj)) 
                  ENDIF 
END DO 
            END DO 
            ! 
         ELSE                           !* Flux form 
            DO jj = 2, jpjm1 
               DO ji = fs_2, fs_jpim1   ! vector opt. 
zhura = hu_0(ji,jj) + zsshu_a(ji,jj) 
                  zhvra = hv_0(ji,jj) + zsshv_a(ji,jj) 
 
zhura = ssumask(ji,jj)/(zhura + 1._wp - ssumask(ji,jj)) 
                  zhvra = ssvmask(ji,jj)/(zhvra + 1._wp - ssvmask(ji,jj)) 
 
ua_e(ji,jj) = (                hu_e(ji,jj)  *   un_e(ji,jj)   & 
                            &     + rdtbt * ( zhust_e(ji,jj)  *    zwx(ji,jj)   & 
                            &               + zhup2_e(ji,jj)  * zu_trd(ji,jj)   & 
                            &               +    hu_n(ji,jj)  * zu_frc(ji,jj) ) & 
                            &   ) * zhura 
 
va_e(ji,jj) = (                hv_e(ji,jj)  *   vn_e(ji,jj)   & 
                            &     + rdtbt * ( zhvst_e(ji,jj)  *    zwy(ji,jj)   & 
                            &               + zhvp2_e(ji,jj)  * zv_trd(ji,jj)   & 
                            &               +    hv_n(ji,jj)  * zv_frc(ji,jj) ) & 
                            &   ) * zhvra

Analysis

Recommendation

simply apply the bfriction

                  IF ( ll_wd ) THEN ! revert to explicit for bit comparison tests in non wad runs 
                     ua_e(ji,jj) =  ua_e(ji,jj) /(1.0 -   rdtbt * zCdU_u(ji,jj) * hur_e(ji,jj)) 
                     va_e(ji,jj) =  va_e(ji,jj) /(1.0 -   rdtbt * zCdU_v(ji,jj) * hvr_e(ji,jj)) 
                  ENDIF 

for all cases , e.g. take these lines outside of advection logicals.

Commit History (0)

(No commits)

Change History (3)

comment:1 Changed 5 years ago by deazer

  • Owner changed from systeam to deazer
  • Status changed from new to assigned
  • Summary changed from Trivial missing implcit bfriction in barotropic subcycle for cases other than ln_dynadv_vec to Trivial missing implicit bfriction in barotropic subcycle for cases other than ln_dynadv_vec
  • Type changed from Defect to Bug

Tested in SETTE, no effect on reference configurations as expected.

Should only be invoked if ll_wd is set

Have also tested for AMM15 with ll_wd set. Now can run with ubs advection as implicit bfriction is applied which was not the case
before bug fix.

unless any objections will commit back today.

comment:2 Changed 5 years ago by deazer

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

comment:3 Changed 2 years ago by nemo

  • Keywords v4.0 added
Note: See TracTickets for help on using tickets.