SURFEX in MESONH V4_10_0 from LA

Contains:

  • modifications for Mesonh compilation in REAL*4 (13 files modified):
    => problem with tuning of threshold value depending of the level of precision set.
    In REAL*4, some calculations didn’t achieve, because values were too low. For example in coare30_flux.F90: PRESA(:)=1./ZAC(:) that is replaced by: PRESA(:) = 1. / MAX(ZAC(:),XSURF_EPSILON), XSURF_EPSILON being as low as possible.
    This slightly modifies results, anyway those results were not meaningful.
  • Suppression of DOUBLE PRECISION (13 files modified)
    => for the IBM compiler, “DOUBLE PRECISION†can turn into REAL*16 functions of the compilation options, there is no option to promote only default real (as it exists for other compilers).
    Concerned variables in SURFEX are XTIME_... used to profile the time spent in each part of the code for MPI.
  • Bugfix from P. Tulet for the chemical part: sources to run salts in Méso-NH + a bug for dusts

These modifications were performed by J. Escobar during its tests on different architectures (tori/yuki/baeufix/pc gfortran/pc pgi/pc ifort/national calculation centers) for Mesonh V4_10_0.

Currently they are present in branch BUG for SVN SURFEX V7_3 (except from the bugfix for the chemical part), but as they affect quite a large amount of files, they won’t be considered as bugs for 7_3 but as a contribution for V8.

G. Tanguy will put and test them in SURFEX V8.

This contribution is technical and will be done at the end of the process, first of the automatic contributions (first because it’s not really automatic but rather systematic). Moreover, this contribution may become larger (according to work done by Juan about it) from the end of the process of merging SURFEX V8.

To be noted that modifications specific to Mésonh are set under precompilation keys (cf modd_surf_par.F90 notably).