Halos

De LMDZPedia
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.