Halos

De LMDZPedia
Révision de 17 octobre 2020 à 22:27 par Lfairhead (discussion | contributions) (Page créée avec « Il faut se méfier car avec les découpages en domaines MPI, si on regarde dans un halo à un moment avant qu'il soit correctement rempli, alors on peut y trouver n'impo... »)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher


Il faut se méfier car avec les découpages en domaines MPI, si on regarde dans un halo à un moment avant qu'il soit correctement rempli, alors on peut y trouver n'importe quoi.

Un peu de nomenclature:

ijb_u => "ij": indice linéaire (grille horizontale) "b": begin (donc indice de début du domaine) "_u": grille U ije_u => "ij": indice linéaire (grille horizontale) "e": end (donc indice de fin du domaine) "_u": grille U ijb_v => "ij": indice linéaire (grille horizontale) "b": begin (donc indice de début du domaine) "_v": grille V ije_v => "ij": indice linéaire (grille horizontale) "e": end (donc indice de fin du domaine) "_v": grille V

Ces bornes incluent les halos, alors que les ij_begin et ij_end non (à vérifier; c.f. parallel_lmdz.F90). Les scalaires, qui ne sont techniquement pas sur la grille "U", sont indicés comme sur une grille U puisque la grille scalaire est de la même forme.

Les routines Register_SwapField servent à enregistrer les valeurs aux frontières internes de chaque domaine pour pouvoir ensuite les transmettre aux voisins qui en ont besoin pour remplir leurs halos (frontières externes). Donc pour ce qui est de la différence entre ps_dyn et ps dans call_calfis, les halos ne sont pas à jour dans ps_dyn, alors qu'ils le sont dans ps, après appel à Register_SwapField.