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.
Custom Query – NEMO

Custom Query (2547 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (46 - 48 of 2547)

Ticket Resolution Summary Owner Reporter
#2675 fixed Incorrect evaluation of arithmetic expressions passed as argument to preprocessor macro 'A2D' systeam smueller
Description

Context

For nn_hls=1, the preprocessor macro A2D(nn_hls-1) evaluates to a different range than A2D(0).

Analysis

The argument of the A2D macro is not protected when used in the arithmetical expression that defines the range. As a result, for nn_hls=1, A2D(nn_hls-1) evaluates as ntsi-2:ntei,ntsj-2:ntej, which differs from the range represented by A2D(0) (ntsi:ntei,ntsj:ntej).

Fix

  • src/OCE/do_loop_substitute.h90

     
    6060 
    6161#define DO_2D(L, R, B, T) DO jj = ntsj-(B), ntej+(T) ; DO ji = ntsi-(L), ntei+(R) 
    6262#define DO_2D_OVR(L, R, B, T) DO_2D(L-(L+R)*nthl, R-(R+L)*nthr, B-(B+T)*nthb, T-(T+B)*ntht) 
    63 #define A1Di(H) ntsi-H:ntei+H 
    64 #define A1Dj(H) ntsj-H:ntej+H 
     63#define A1Di(H) ntsi-(H):ntei+(H) 
     64#define A1Dj(H) ntsj-(H):ntej+(H) 
    6565#define A2D(H) A1Di(H),A1Dj(H) 
    6666#define A1Di_T(T) (ntsi-nn_hls-1)*T+1: 
    6767#define A1Dj_T(T) (ntsj-nn_hls-1)*T+1: 

should protect the argument of the A2D macro.

#2673 fixed Make SETTE better acc acc
Description

Context

Following on from discussions during the merge, there are some relatively quick improvements to make to the sette scripts to help with the management of multiple SETTE runs with different options. Mostly it is quick and simple stuff but it involves code sufficient rearrangement to justify a development branch until all the changes have been checked

Proposal

First stage is to move all the option setting into sette.sh and allow most to be set through command-line options. It will also be good to get sette.sh to record its setup each time. Here is a first draft of the planned functionality:

./sette.sh -n ORCA2_ICE_PISCES -v HALO2 -F -z -X -A -x RESTART
==================================
-n: Configuration ORCA2_ICE_PISCES will be tested if it is available

-v: HALO2 validation sub-directory requested

-F: key_loop_fusion will not be activated

-z: key_nosignedzero will NOT be activated

-X: key_xios will not be activated

-A: Tasks will be run in attached (SPMD) mode

-x: RESTART tests requested

Carrying out the following tests  : RESTART
requested by the command          : ./sette.sh -n ORCA2_ICE_PISCES -v HALO2 -F -z -X -A -x RESTART
USING_TIMING                      : yes
USING_ICEBERGS                    : yes
USING_EXTRA_HALO                  : yes
USING_TILING                      : yes
USING_NOSIGNED0                   : no
USING_QCO                         : yes
USING_LOOP_FUSION                 : no
USING_XIOS                        : no
USING_MPMD                        : no
USING_RK3                         : no
Common compile keys to be added   : key_qco
Common compile keys to be deleted : key_xios key_nosignedzero key_loop_fusion key_RK3
Validation records to appear under: /work/n01/n01/acc/NEMO/2021/midmerge/dev_sette/NEMO_VALIDATION/HALO2
==================================

with a typical usage message of:

./sette.sh -h
sette.sh with no arguments (in this case all configuration will be tested with default options)
-T to set ln_timing false for all non-AGRIF configurations (default: true)
-t set ln_tile false in all tests that support it (default: true)
-e set nn_hls=1 (default: nn_hls=2)
-i set ln_icebergs false (default: true)
-z to remove the key_nosignedzero key (default: added)
-q to remove the key_qco key (default: added)
-X to remove the key_xios key (default: added)
-F to remove the key_loop_fusion key (default: added)
-Q to remove the key_RK3 key (currently a null-op since key_RK3 is not used)
-A to run tests in attached (SPMD) mode (default: MPMD with key_xios)
-n "CFG1_to_test CFG2_to_test ..." to test some specific configurations
-x "TEST_type TEST_type ..." to specify particular types of test (RESTART is mandatory)
-v "subdir" optional validation record subdirectory to be created below NEMO_VALIDATION_DIR
-c to clean each configuration
-s to synchronise the sette MY_SRC and EXP00 with the reference MY_SRC and EXPREF

Comments and suggestions are welcome. Please add to this ticket and if the ideas are too complex you can do them yourselves once I add the associated branch information :)

#2672 fixed Missing initialisation of ln_trc_ais in trcnam_age.F90. systeam acc
Description

Context

SETTE testing with AGRIF_DEMO gave inconsistent results with repeat runs that should be identical. The only differences in ocean.output was related to nutrients input from the Antarctic Ice-shelves (AIS). It seems a missing initialisation in trcnam_age was to blame.

Analysis

Typical inconsistency is shown here:

sdiff -s  NEMO_VALIDATION_HALO1/WAGRIF_DEMO_ST/X86_ARCHER2-Cray/14820+/LONG/ocean.output NEMO_VALIDATION_HALO2/WAGRIF_DEMO_ST/X86_ARCHER2-Cray/14820+/LONG/ocean.output
     1        Age    F    F    F    F    F            |      1        Age    F    F    F    F    T
  Global mean humidity at kt = nit000:  1.11215417170433852E- |   Global mean humidity at kt = nit000:  1.11215390167460054E-
 tracer nb : 1    name :       Age    mean :  0.1705089942E-0 |  tracer nb : 1    name :       Age    mean :  0.1705106879E-0
 tracer nb : 1    name :       Age    mean :  0.3405217970E-0 |  tracer nb : 1    name :       Age    mean :  0.3405235913E-0

sdiff -s  NEMO_VALIDATION_HALO1/WAGRIF_DEMO_ST/X86_ARCHER2-Cray/14820+/LONG/1_ocean.output NEMO_VALIDATION_HALO2/WAGRIF_DEMO_ST/X86_ARCHER2-Cray/14820+/LONG/1_ocean.output
     1        Age    F    F    F    F    T            |      1        Age    F    F    F    F    F
  Global mean humidity at kt = nit000:  1.60905705892214514E- |   Global mean humidity at kt = nit000:  1.60905701035166313E-
 tracer nb : 1    name :       Age    mean :  0.1706099178E-0 |  tracer nb : 1    name :       Age    mean :  0.1706103292E-0
 tracer nb : 1    name :       Age    mean :  0.3407879931E-0 |  tracer nb : 1    name :       Age    mean :  0.3407876146E-0

sdiff -s  NEMO_VALIDATION_HALO1/WAGRIF_DEMO_ST/X86_ARCHER2-Cray/14820+/LONG/2_ocean.output NEMO_VALIDATION_HALO2/WAGRIF_DEMO_ST/X86_ARCHER2-Cray/14820+/LONG/2_ocean.output
  Global mean humidity at kt = nit000:  1.96291437023064872E- |   Global mean humidity at kt = nit000:  1.9629143918481807E-3
 tracer nb : 1    name :       Age    mean :  0.1684214472E-0 |  tracer nb : 1    name :       Age    mean :  0.1684250432E-0
 tracer nb : 1    name :       Age    mean :  0.3339950262E-0 |  tracer nb : 1    name :       Age    mean :  0.3339904434E-0

where AIS is the last logical on the first returned line

Fix

Add:

      ln_trc_ais(jp_age) = .false. 

to trcnam_age.F90. (Done at changeset:14842 )

This fixes the immediate problem with the SETTE test using the age tracer. However, the treatment still looks inconsistent for other tracers. I.e. there is no initialisation in trcnam_c14.F90 or trcnam_cfc.F90 or a default setting in trcini.F90. The implementation of AIS needs to be checked.

Note: See TracQuery for help on using queries.