La question est souvent posée de savoir quelles sont les résolutions
standard de LMDZ et quelles sont les degrés de liberté sur le choix
de la grille.


La réponse est de deux ordre.
D'abord, il y a certaines contrantes qu'il est préférable de respecter pour
des raisons d'efficacité numérique et qui sont décrites ci-dessous.
Ensuite, il est sans doute souhaitable de se placer au maximum sur
des grilles communes, quand c'est possible.

Pour le développement du modèle intégré de l'IPSL par exemple, deux 
résolutions sont pour l'instant retenues.
Une résolution très grossière de 72x45.
Une résolution plus fine de 96x71.
Les deux résolutions diffèrent par la parité des latitudes et donc par la
répartition des points à l'équateur ce qui peut avoir un impact sur le
couplage avec l'océan mais on ne sait pas dans quel mesure.

Pour ceux qui veulent jouer avec d'autres grilles, régulières ou zoomées,

Les contraintes techniques sont les suivantes:
==============================================

1. Rapport entre le nombre de points en longitude et en latitude.

Pour les grilles régulières au moins, nous privilégions des grilles
avec une résolution en degrés plus fine en latitude qu'en longitude afin
d'obtenir une résolution relativement isotrope dans les moyennes latitudes.
Une grille régulière 2ox2o, par exemple, correspond à des mailles isotropes
à l'équateur mais extrêmement étirées en latitude dans les hautes
latitudes.
On peut m^eme envisager d'utiliser des grilles avec le m^eme nombre de points
en longitude et en latitude pour resoudre finement les structures
latitudinales, essentielles dans les tropiques.


2. Prendre un multiple de 8.

Pour des raisons d'efficacité numérique du schéma de transport, il est
préférable de choisir un nombre de point en longitude (iim)
multiple de 8 (ou, à défaut 4).
En effet, pour éviter de réduire indéfiniment le pas de temps d'advection
pour palier au problème posé par le resserement des mailles en logitude
près des pôles, on groupe à partir d'une certaine latitude les mailles
2 par 2 en longitude, puis 4 par 4, puis 8 par 8 en arrivant au pôle.
Ce nombre peut éventuellement être changer en modifiant le paramètre
      parameter (ngroup=3)
dans le sous-programme dyn3d/groupe.F (ngroup=3 pour im multiple de 2**3=8).
Mais, prendre une valeur plus petite de ngroup risque de conduire à
devoir diminuer de façon notable le pas de temps d'advection.


3. Choisir une grille physique avec des diviseurs.

Le code radiatif est extrêmement coûteux en taille mémoire notamment parce
qu'il contient un grand nombre de tableaux locaux en im*jm*lm*lm.
Pour éviter d'avoir des éxecutables excessivement gros, il est possible
de demander au code de calculer le transfert radiatif sur des sous
domaines (merci Laurent Li).
Ces sous domaines doivent avoir une dimension diviseur de la dimension
totale de la grille horizontale physique, klon.
La grille horizontale de la physique est représentée par une dimension
horizontale unique correspondant à tous les points de la grille
dynamique sans la duplication des points en -pi et +pi et avec un seul
point par pôle soit:
  klon=2+iim*(jjm-1)
2 est toujours diviseurs si iim l'est (ce qui est nécessaire pour le
point 2).
Mais, à part ça, c'est pas toujours évident...
Une fois qu'un diviseur kdlon de klon est trouvé, il suffit de placer
dans le répertoire phylmd un fichier raddim.im.jm.h
contenant la valeur de kdlon.
Ce fichier sera automatiquement copié sur raddim.h quand vous effectuerez
la compilation avec makegcm.
Par exemple
==> raddim.96.72.h <==
      INTEGER kdlon, kflev
      PARAMETER (kdlon=487,kflev=klev)
sera copié sur raddim.h si on effectue la comande 
   makegcm -d 96x72x19 gcm

Si le fichier raddim.im.jm.h n'existe pas pour la résolution demandée,
makegcm vous prévient (mais vous ne le verrez pas parce que c'est noyé
dans plein d'autres bla bla) et écrase le fichier raddim.h avec le fichier
==> raddim.defaut.h <==
      INTEGER kdlon, kflev
      PARAMETER (kdlon=klon,kflev=klev)

Pour les résolutions supérieures à 72x45, je propose de privilégier les grilles
suivantes: 96x72, 192x145, 290x180
avec les fichiers suivants

==> raddim.96.72.h <==
      INTEGER kdlon, kflev
      PARAMETER (kdlon=487,kflev=klev)

==> raddim.192.145.h <==
       INTEGER kdlon, kflev
c   klon=27650=50*553=10*2765
      PARAMETER (kdlon=2765,kflev=klev)

==> raddim.290.180.h <==
c  klon=51912=17304*3=12978*4=8652*6=7416*7=6489*8
c  = 5768*9 = 4326*12 = 3708*14 = 2884*18 = 2472*21 = 2163*24
c  = 1854*28 = 1442*36 = 1236*42 = 927*56 = 824*63 = 721*72
c  = 618*84 = 504*103 = 412*126 = 309*168 = 252*206
      INTEGER kdlon, kflev
      PARAMETER (kdlon=1442,kflev=klev)


Mais, n'hésitez pas, en phase de développement, à utiliser des versions 
beaucoup plus légères, à l'huile végétale, comme 32x24 ou 48x32.


Enfin, pour ceux qui voudraient chosir leur nouvelle grille et
treouver des resolutions avec des diviseurs pour raddim, ils peuvent
compiler et executer le petit programme FORTRAN
choixdim.F