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.
#2721 (Failing SETTE tests with debug flags (r15199)) – NEMO

#2721 closed Bug (fixed)

Failing SETTE tests with debug flags (r15199)

Reported by: hadcv Owned by: hadcv
Priority: low Milestone: Unscheduled
Component: MULTIPLE Version: trunk
Severity: minor Keywords: SETTE, debug
Cc:

Description (last modified by hadcv)

Context

This ticket covers several fixes for SETTE failures when using debug flags.

The arch file is arch-XC40_METO_IFORT.fcm but with:

%FCFLAGS -r8 -i4 -init=arrays,snan,huge -traceback -debug all -debug inline-debug-info -g -O0 -fp-model strict -check all,noarg_temp_created -fpe-all0 -ftz -ftrapuv

Issues/fixes

  • AMM12

Floating point exception in dia_25h due to ww being undefined on halo points in the expression wn_25h(:,:,:) + ww(:,:,:).

Fix: All dia25h.F90 local/module variables are declared without halo points and the code modified accordingly. The XIOS field definitions for the diagnostics are changed to the "inner" grid (as per #2694). A correction to the grid_W_3D_inner definition in grid_def_nemo.xml is required as part of this.

Note: As noted in #2694, there is no output of "inner" grid nav_lat/nav_lon to avoid duplication. Since dia_25h variables are output in their own files, these files will not contain any nav_lat/nav_lon coordinates after this fix.

  • WED025 (nn_hls = 2 + ln_tile = T)

Floating point exception in zdf_mxl due to hmlp not being defined on all points in the expression hmlp - risfdep when using tiling.

Fix: Evaluate this expression only after hmlp is defined on all points (at the last tile). The same is required of hmld in zdf_mxl_turb, but it must first be initialised as it is undefined on the 2nd halo points. This is done in zdf_phy_init, requiring the call to zdf_phy_alloc to be moved here from zdf_mxl.

  • SWG

Floating point exception in dia_wri due to r3u being undefined on the 2nd halo points in the expression hu_0(:,:)*(1._wp+r3u(:,:,Kmm)).

Fix: Add an lbc_lnk to SWE/stpmlf.F90 for r3u(:,:,Naa) and r3v(:,:,Naa), as done in SWE/stprk3.F90. It is also necessary to set ln_dia25h = .FALSE. in SWE/nemogcm.F90 as dia_25h_init is not called and this logical is not initialised, resulting in segmentation faults when it changes value randomly.

Note: I also corrected the labels ("stp_MLF" -> "stp_RK3") and grids ("U" -> "V" for r3v) in the lbc_lnk calls in SWE/stprk3.F90. This does not affect the SETTE tests, but could have given a wrong result when using key_RK3.

  • ICE_AGRIF

See #2682- this is still unresolved.

Fix: Compile XIOS with -O1.

Commit History (1)

ChangesetAuthorTimeChangeLog
15249hadcv2021-09-13T11:59:09+02:00

#2721: Fix SETTE debug failures

Change History (2)

comment:1 Changed 15 months ago by hadcv

In 15249:

Error: Failed to load processor CommitTicketReference
No macro or processor named 'CommitTicketReference' found

comment:2 Changed 15 months ago by hadcv

  • Description modified (diff)
  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.