branch NEW_PREP from MOSAYC


  • Short-term optimizations of PREP step proposed by ALADIN in March 2013 (Tayfun Dalkilic, Daan Degrauwe):
      • the loop on covers is reduced to a loop on effective present covers on the area.
      • open-mp directives are added to still improve this loop.
      • generalization by reducing the size of array XCOVER to the present covers in the area, in PREP but also in PGD step (leads to use less memory)
      • hor_interpol is no longer systematically called for all 12 vegtypes.
      • the fortran function “count†that takes much resource is replaced by an optimized code.
      • open-mp directives are added to improve the more expensive loops.
        Short-term optimizations of PREP
        Tayfun Dalkilic, Daan Degrauwe
        March 11, 2013
  • optimizations of PGD in GAUSSIAN grid:
    • changes in the writing of the loops
    • adds of open-mp directives to improve the more expensive loops during the index calculation.
  • PGD and PREP files can be written and read in NETCDF format:
    • new specific I/O routines
  • Library XRD38 is replaced by XRD39:
    • lead to include USE MODI of FA routines in SURFEX code, what is not totally satisfying (incompatible with the GMKPACK compilation) and should be revised.
  • A PREP file can enter the namelist only for the snow part:
    • the entry for the PGD corresponding file was missing
  • Corrections in the chemical part:
    • in collaboration with CAIAC (M. Michou, P. Hamer, D. Saint Martin)
  • NEW_PREP was used to test and validate the new base of automatic tests. This lead to 3 categories of changes in the code:
    • bugs were detected thanks to the base of tests and corrected in NEW_PREP, notably for the parallelization with OPEN-MP,
    • for an optimal use of the base of tests, names of namelists entries were changed so that they are specific to each block (a same namelist entry can’t appear in two different blocks),
    • new diagnostics were added in NETCDF format, especially for the TEB part.
  • CROCUS files are re-written following SURFEX rules for names of variables and typography, and trying to make common subroutines when the same code is used in different places:
    • this lead to include a part of the CEN contribution


  • Some adds for PGD & PREP files in NETCDF format are not set yet, for example the possibility to use NETCDF format in case of a LIMP_ZS, LIMP_COVER or other LIMP_... in running PGD.

Other possible developments to be included (asked from users), if time is found to do them before the beginning of V8:

  • provide a common version of SURFEX compilation environment for UBUNTU and other Linux distributions, in order to make the installation with UBUNTU easier.

The branch NEW_PREP is considered as closed for SURFEX V8.

Normally, a version of NEW_PREP is to be included in CY40t1 of AROME.

As NEW_PREP was used to finalize the base of automatic tests, and so simultaneously tested and validated with this base of automatic tests, it seems that NEW_PREP is a good candidate to enter the DEV version of V8, first.

This can be done as soon as the schedule is defined. At this moment, the ending document of the automatic tests for NEW_PREP will be provided.