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.
#955 (avmu & avmv computation problem for the NEMO1D case) – NEMO

Opened 11 years ago

Closed 11 years ago

#955 closed Bug (fixed)

avmu & avmv computation problem for the NEMO1D case

Reported by: rbourdal Owned by: rbourdal
Priority: high Milestone:
Component: C1D Version: v3.4
Severity: Keywords:
Cc:

Description

The computation of avmu and avmv in zdfgls and zdftke is not correct in 1D case. The values are systematically the half of the expected one (not the case for 3D configurations).

The following lines:

avmu(ji,jj,jk) = 0.5 * ( avm(ji,jj,jk) + avm(ji+1,jj ,jk) ) * umask(ji,jj,jk)
avmv(ji,jj,jk) = 0.5 * ( avm(ji,jj,jk) + avm(ji ,jj+1,jk) ) * vmask(ji,jj,jk)

should be replaced by:
avmu(ji,jj,jk) = ( avm(ji,jj,jk) + avm(ji+1,jj ,jk) ) / MAX( 1.e0 , umask(ji,jj,jk) + umask(ji+1,jj ,jk) )
avmv(ji,jj,jk) = ( avm(ji,jj,jk) + avm(ji ,jj+1,jk) ) / MAX( 1.e0 , vmask(ji,jj,jk) + vmask(ji ,jj+1,jk) )

Commit History (0)

(No commits)

Change History (4)

comment:1 Changed 11 years ago by greffray

Correct computations of avmu and avmv working in all cases (3d and 1d):

avmu(ji,jj,jk) = ( avm(ji,jj,jk) + avm(ji+1,jj ,jk) ) / &

& MAX( 1.e0 , tmask(ji,jj,jk) + tmask(ji+1,jj ,jk) ) * umask(ji,jj,jk)

avmv(ji,jj,jk) = ( avm(ji,jj,jk) + avm(ji ,jj+1,jk) ) / &

& MAX( 1.e0 , tmask(ji,jj,jk) + tmask(ji ,jj+1,jk) ) * vmask(ji,jj,jk)

Romain & Guillaume

comment:2 Changed 11 years ago by gm

The proposed fix is OK for solving the problem in TKE and GLS, but similar issue occurs in KPP, tmx, ric, bfr...

Moreover, this modification involved more CPU time in the 3D case... ==> Something else must be found!

A idea that should work:
1- defined umask(:,:,:) = vmask(:,:,:) = tmask(2,2,:)
2- at the end of dyn_nxt_c1d put the central value of u and v alone 1st and last raw and column for before and now field
3- in stp_c1d, after the call of zdf_mxl, set avmu(2,2,:) and avmv(2,2,:) to avm(2,2,:)

this will solve the issue for all vertical physics

Gurvan

comment:3 Changed 11 years ago by clevy

  • Owner changed from NEMO team to rbourdal

comment:4 Changed 11 years ago by rbourdal

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

Ticket close in the revision 3720.
(Ticket 956 is closed at the same time)
Solution:
In 1D case, force to set the value of the central column over the whole domain thanks to the lbclnk routine. All half-sum are now correct.

Routine changed:
domain.F90
domzgr.F90
iom.F90
lbclnk.F90

Note: See TracTickets for help on using tickets.