Model Optimisation, Control Print and Benchmark


!-----------------------------------------------------------------------
&namctl        !   Control prints & Benchmark
!-----------------------------------------------------------------------
   ln_ctl      = .false.   !  trends control print (expensive!)
   nn_print    =    0      !  level of print (0 no extra print)
   nn_ictls    =    0      !  start i indice of control sum (use to compare mono versus
   nn_ictle    =    0      !  end   i indice of control sum        multi processor runs
   nn_jctls    =    0      !  start j indice of control               over a subdomain)
   nn_jctle    =    0      !  end   j indice of control
   nn_isplt    =    1      !  number of processors in i-direction
   nn_jsplt    =    1      !  number of processors in j-direction
   nn_bench    =    0      !  Bench mode (1/0): CAUTION use zero except for bench
                           !     (no physical validity of the results)
   nn_timing   =    0      !  timing by routine activated (=1) creates timing.output file, or not (=0)
/

Options are defined through the namctl namelist variables.

$ \bullet$ Vector optimisation:

key_ vectopt_loop enables the internal loops to collapse. This is very a very efficient way to increase the length of vector calculations and thus to speed up the model on vector computers.

$ \bullet$ Control print

1- ln_ctl : compute and print the trends averaged over the interior domain in all TRA, DYN, LDF and ZDF modules. This option is very helpful when diagnosing the origin of an undesired change in model results.

2- also ln_ctl but using the nictl and njctl namelist parameters to check the source of differences between mono and multi processor runs.

3- key_ esopa (to be rename key_nemo) : which is another option for model management. When defined, this key forces the activation of all options and CPP keys. For example, all tracer and momentum advection schemes are called! Therefore the model results have no physical meaning. However, this option forces both the compiler and the model to run through all the FORTRAN lines of the model. This allows the user to check for obvious compilation or execution errors with all CPP options, and errors in namelist options.

4- last digit comparison (nn_bit_cmp). In an MPP simulation, the computation of a sum over the whole domain is performed as the summation over all processors of each of their sums over their interior domains. This double sum never gives exactly the same result as a single sum over the whole domain, due to truncation differences. The "bit comparison" option has been introduced in order to be able to check that mono-processor and multi-processor runs give exactly the same results.

$ \bullet$ Benchmark (nn_bench). This option defines a benchmark run based on a GYRE configuration (see §16.4) in which the resolution remains the same whatever the domain size. This allows a very large model domain to be used, just by changing the domain size (jpiglo, jpjglo) and without adjusting either the time-step or the physical parameterisations.

Gurvan Madec and the NEMO Team
NEMO European Consortium2017-02-17