Results of tests and analyses

This section summarizes the test results (from the database, based originally on NEW_PREP).


NEW_PREP_HIRLAM

From the database :
NO_ECO_TEB_OPT_FILES Emax/=0: 4
The fix in vegetation_update.F90 had a side effect on the update of TEB_garden (with no scientific practical effect). The TEB_garden update will be corrected by V. Masson.

PREP_EXTE_FILE_ASCII_ISBA_DIF83L_NEW Emax/=0:112
Some differences appeared when old version was run with lfi and new version in netcdf

PREP_EXTE_FILE_ASCII_ISBA_SNOW_3LD95_NEW Emax/=0: 104
PREP_EXTE_FILE_ASCII_ISBA_SNOW_3LEBA_NEW Emax/=0: 102
Bug present in both version, corrected by rev1835 in the trunk and corrected in V8_GMAP branch


V8_GMAP
tests made by adding the 3 files of the trunk revision 1835 to NEW_PREP_HIRLAM. Tests not done in parallel version.

 > no changes


introduction of bug update corresponding to revision 1835 in the trunk

revision 1835: corrections of mode_soil for W33_FUNC (field capacity at -0.33bar for ISBA-DF only) (B. Decharme) and correction for snow fields in prep (when passing from a multilayer to a single layer model and corection of the vertical shift, E. Martin). Files : mode_soil.F90, prep_snow_extern.F90, prep_ver_snow.F90

 > changes in the ISBA-DF and ISBA PREP SNOW tests cases


TOPMODEL - V8_BV

The script database has been corrected for TOP MODEL (and updated in the trunk)

  • change in the script script_cas_parts.sh
  • two new scripts in the "TESTS" directory script_exec_topd.sh and script_exec_topd_restart.sh
  • new files in the directory "TESTS/CAS_PART/TOPD/files/"

With these corrections :

 > no changes


TEB - V8_VM

Summary :
Limited changes are observed on scientific results due to :
a correction of a bug in sunpos.F90 ( 1E-12)
The implicitation of the coupling of the snow and the roof (important changes at the beginning of the simulation because of an important difference between Tsnow and troof at the beginning of the simulation

other differences comme from bug corrections :
NO_ECO_SOME_TEB_OPT
greenroof (diagnostic values where no greenroof are present)

****************************
* PHASE 1 de la VALIDATION *
****************************

Tests sans implicitation du couplage neige/toit et sans correction de sunpos.F90 :


 4 diagnostiques sont toujours différents (HU2MMIN/MAX T2MMIN/MAX) : car avant ils n’étaient pas réellement calculés dans TEB (seulement la valeur instantanée était prise), ni dans Flake.

 2 diagnostiques differents (T2MMAX_ISBA et HU2MMAX_ISBA) qui étaient égaux à XUNDEF dans l’ancienne version quand on utilise canopy pour ISBA, et qui sont corrects maintenant (correction de bug dans average_diag_isban.F90).

 jusqu’ à 40 diagnostiques diff&ecaute;rents quand il y a greenroof (correction de bug: quand GREENROOF est activ&ecaute; mais que la fraction de GREENROOF vaut zero sur certains point (ce qui est le cas dans la base de tests, où elle vaut zero pour tous les cas tests de TEB), les diagnostiques sont mis à XUNDEF pour ces points).

 cas NO_ECO_SOME_TEB_OPT (185 différences) : correction d’un bug, déjà pointé par Stéphanie, qui faisait que l’on ne pouvait pas utiliser ecoclimap pour GARDEN et NAM_DATA_ISBA pour initialiser ISBA pour le tile NATURE. En effet, les paramètres d’ISBA-NATURE étaient alors affectés aussi à ISBA-GARDEN. Et ceci ne pouvait marcher que si les nombres de points des deux tilesétaient identiques (cas de ce cas test). Sinon, c’est le ’segmentation fault’ assuré. Maintenant, dans la routine convert_patch_isba, utilisée aussi par garden, seul le tile isba peut utiliser les paramètres issus de NAM_DATA_ISBA. Les paramètres pour GARDEN sont alors calculés avec ecoclimap. Ceci induit que les résultats du cas test sont très différents, puisque GARDEN est maintenant (correctement) initialisé par ecoclimap et non en recopiant les champs d’ISBA du tile NATURE.

 cas NO_ECO_TEB_OPT_FILES : 4 champs PGD qui ne sont plus updatés pour des points non pertinents (pas de jardins) dans la vegetation_update.F90. Les résultats de simulation ne sont pas affectés.

****************************
* PHASE 2 de la VALIDATION *
****************************

Tests AVEC implicitation du couplage neige/toit et sans correction de sunpos.F90 :


L’implicitation entre neige et toit de l’equation de conduction de la chaleur dans TEB modifie les variables pronostiques de TEB, et donc un nombre important de variables:
 toutes la variables liées au toit quand l’on n’a ni BEM (pas de couplage entre le toit et le mur via le bâtiment) ni CANOPY (pas de couplage via l’air dans la canyon).
 toutes les variables de TEB si l’on a soit BEM, soit CANOPY, soit les deux.

L’amplitude de modification maximum a lieu pour la température de la couche supérieure du toit (TROOF1). Dans les simulations de la base de test, les conditions initiales provoquent un choc important sur les températures de neige et toit, du fait des 3 conditions suivantes:
 il y a beaucoup de neige
 la température initiale de la neige est de 271.52K
 la température initiale de la couche superficielle du toit, en contact immédiat avec la neige, est de 283.38K

Ceci induit un refroidissement très rapide de la température du toit. Au premier pas de temps, la différence entre les deux versions du code est d’environ 1°C et converge au cours du temps. Plusieurs cas se présentent :
 soit on n’a pas de toiture végétalisée (fraction nulle), ce qui est le cas par exemple dans les tests sur TEB, alors en 3h (pas de temps des diagnostiques de sortie dans la base de test), et alors la température des deux simulations a convergé et elle reste inférieure à 0.1°C quelle que soit la configuration de simulation. Cf figure evol_TROOF1_sans_GREENROOF.png.
 soit on a 50% de toits végétalisés (cas avec ECO_ALL par exemple), et alors la température du toit ne peut pas décroître aussi vite (du fait que la moitié est occupée par la toiture végétalisée, et que le flux de conduction depuis ce toit empêche le refroidissement). Alors l’écart entre les deux version vaut 0.7°C (valeur à 3h de simulation), puis décroit au cours du temps jusqu’à converger. Cf figure evol_TROOF1_avec_moitie_GREENROOF.png.
 soit on a 100% de toit végétalisé (cas hors base de test), et les deux versions du code sont bien identiques (pas de neige directement sur le toit).

****************************
* PHASE 3 de la VALIDATION *
****************************

Tests de la nouvelle version (même version en _old et _new dans la base de tests) en multiprocesseurs.
8 cas posent problèmes:

6 viennent sans doute d’un problème de code. Cependant, seulement 6 parmi tous les tests ISBA posent problème:
ISBA_2L_ALL4_SGH_OMP4 Emax/=0: 112
ISBA_2L_ALL4_SGH_MPI2OMP2 Emax/=0: 112
ISBA_2L_ALL4_SGH_CANOPY_DRAG_MPI2OMP2 Emax/=0: 150
ISBA_3L_SN3L_ALL4_SGH_OMP4 Emax/=0: 140
ISBA_3L_SN3L_ALL4_SGH_MPI2OMP2 Emax/=0: 140
ISBA_3L_SN3L_ALL4_SGH_CANOPY_DRAG_MPI2OMP2 Emax/=0: 178

Ces erreurs semblent être dues à la parallélisation OPEN-MP pour l’option ALL4_SGH d’ISBA.
Ces erreurs sont déjà présentes dans la version que j’ai récupérée de Béatrice Vincendon.
==> Il faudra itérer à nouveau avec elle pour voir d’où cela peux venir.

Les deux suivants, sont complètement isolés dans leur série dans la base de test. Je n’ai pas de piste pour comprendre le problème.
TEB_BEM_TWO_WALLS_DXCOIL_FINCAP_AUTOSIZE_OMP4 Emax/=0: 2
2 nouveaux diagnostiques qui sont différents (durées cumulées dans deux seuils de stress thermique donnés différentes d’un pas de temps entre le run en OPEN-MP 4 et les autres runs). Le calcul de ces variables se fait dans la routine utcic_stress.F90, où il y a un where.
Ce n’est pas reproductible. J’ai refait une simulation de ce cas sans problème.

SNAP_NC_NETCDF Emax/=0: 2
Les champs E_CO et E_O3 sont différents. Alors que ce sont exactement les mêmes exécutables qui ont tourné.

****************************
* PHASE 4 de la VALIDATION *
****************************

Tests AVEC implicitation du couplage neige/toit et AVEC correction de sunpos.F90 :


Diagnostics are only sligthly affected (difference of about 1E-12).


TEB - V8_lafaysse


The branch V8_lafaysse is compared with the branch V8_VM_BUGS (r2037).

Results are exactly identical for all tests which do not use Crocus.

Differences in tests with Crocus mainly come from the correction of solar radiation absorption (point 1). They can also come from the new wind formulation (point 4) and from some rewriting of the code (threshold effects sensitive to numerical approximations).
( to be completed)

*************
* REMARQUES *
*************

==> changement dans la base de tests du fichier de donnees architecturales de bati (fichier csv) par une version plus recente pour tenir compte des nouveaux champs dans TEB (panneaux solaires). A l’avenir, la lecture de nouveaux champs pourrait être mise sous clé (mais pour l’instant ce n’est pas une option utilisée ailleurs qu’à TURBAU, et on a mis à niveau ce fichier dans nos dernières simulations en 7_3).

==> modifier le fichier script_teb_run.sh dans la base de tests: changement de "" en "ROW30" pour CCH_BEM dans la namelist.

==> Attention, j’ai changé les numeros de VERSION et Bugfix à 8 et 0 respectivement. Faites attention que vos divers tests de lecture de variable dans un fichier soient bien écrits (et pas uniquement en fonction du numero de bugfix par exemple).

==> ATTENTION, amélioration à prévoir: les champs T2MMIN/MAX HU2MMIN/MAX sont remis à XUNDEF ou -XUNDEF dès qu’ils sont écrits. Donc dans uns simulation offline, ils sont corrects dans les fichiers de diagnostiques, mais ils sont faux dans le fichier de restart à la fin !! (ça n’a pas changé entre les 2 versions, sauf qu’il y a les champs pour TEB et Flake en plus).

==> NAM_LANDUSE_PREP_NC: OLD plante systématiquement, et ce quelque soit la version du code en _old (même si c’est le nouveau, comme lorsque j’ai fait le test de parallélisation). C’est donc probablement un problème lié à la base de test.

Note concerning the test database (version of January 2014) :

The following tests are suspicious for all versions (systematic crash)

NAM_LANDUSE_PREP_NC: OLD

=> because of script_to_old.sh, that needs to be adapted to use NC PGD and PREP file for OLD version of the code (currently, it’s LFI, due to the first version of STRATO that compared NEW_PREP and trunk_for_test)

SURF_FILETYPE_FA_RESTART_OLD: OLD

=> works with NEW_PREP. Intermediate versions have to be tested.

SEABATHY_ETOPO2: NEW

=> works with NEW_PREP. Intermediate versions have to be tested.

SEABATHY_ETOPO2: OLD

=> works with NEW_PREP. Intermediate versions have to be tested.

And that the non reproductibility diagnostic appears systematically for all versions :

SNAP_NC_NETCDF Emax/=0: 2


V8_lafaysse - V8_for_assimilation revision 2246


Tests were realized on PC and BEAUFIX in O2 and DEBUG modes and give exactly the same results, except for the assimilation tests that where corrected in V8_FOR_UNIFIED_ASSIMILATION.


V8_for_assimilation revision 2246 - V8_GMGEC_MEB


Tests are done with options LREPROD_OPER so that new defaults aren’t taken into accound during the tests.

Given the amount of modifications in V8_GMGEC_MEB, many simulations give different results but nothing so big or unexpectable we can think there is a problem.


V8_GMGEC_MEB - V8_MESONH


The only differences are numerical and linked to the little changes of Juan.


V8_MESONH - V8_ASSIM


Ok, no changes.


V8_MESONH - V8_RJTECH


V8 RJTECH report
(R. Jasinskas)