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.
#331 (No bottom friction if mbathy=2) – NEMO

Opened 15 years ago

Closed 14 years ago

#331 closed Bug (invalid)

No bottom friction if mbathy=2

Reported by: jchanut Owned by: nemo
Priority: low Milestone:
Component: OCE Version: v3.0
Severity: Keywords:
Cc:

Description

Bottom friction is not applied with implicit vertical mixing (in dyn_zdf_imp routine) IF mbathy=2 (only one ocean level in the vertical). Since by default there is a minimum of 3 ocean levels in the partial cells case, this does not concern people running with ln_zps=.true. and ntopo=1.
This bug could maybe explain part of the instability problems encountered in the past when relaxing this 3 minimum levels condition.

The problem comes from the definition of the matrix coefficients at the surface in dynzdf_imp.F90. One should replace the following lines for the u component:

      ! Surface boudary conditions
      DO jj = 2, jpjm1 
         DO ji = fs_2, fs_jpim1   ! vector opt.
            zwi(ji,jj,1) = 0.
            zwd(ji,jj,1) = 1. - zws(ji,jj,1)
         END DO
      END DO

by

      ! Surface boundary conditions
      DO jj = 2, jpjm1 
         DO ji = fs_2, fs_jpim1   ! vector opt.
            zwi(ji,jj,1) = 0.
            zcoef = - p2dt / fse3u(ji,jj,1)
            zzws         = zcoef * avmu(ji,jj,2) / fse3uw(ji,jj,2)
            zwd(ji,jj,1) = 1. - zzws
         END DO
      END DO

so that the bottom friction through the unmasked avmu is taken into account. The same for v of course.

Jerome

Commit History (0)

(No commits)

Change History (1)

comment:1 Changed 14 years ago by gm

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

This was a good point for release v3.1 and previous ones. Since release v3.2, the bottom friction is computed explicitly and add to the momentum equation in dynbfr.F90. Therefore the bottom value of avm(u or v) is now set to zero (through (u or v)mask). zws and zwi are thus always masked

If one day we return back to an implicit computation of the bottom friction, then this ticket must be considered

Note: See TracTickets for help on using tickets.