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
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
Correct computations of avmu and avmv working in all cases (3d and 1d):
Romain & Guillaume