RPN_COMM

(RPN_COMM_compress)



subroutine RPN_COMM_compress(array,minx,maxx,miny,maxy,nil,njl,nk)
subroutine RPN_COMM_compress8(array,minx,maxx,miny,maxy,nil,njl,nk)
subroutine RPN_COMM_expand(array8,minx,maxx,miny,maxy,nil,njl,nk)
subroutine RPN_COMM_expand8(array8,minx,maxx,miny,maxy,nil,njl,nk)



ARGUMENTS

IN


OUT

  • array, avec le contenu du vecteur compressé ou étendu

  • DESCRIPTION


    Compresse le contenu d'un tableau en le débarassant de son halo "physique". Typiquement, le tableau en entrée aura la forme suivante (cas k=1):

    +---------+      
    |         |      
    | +-----+ |      
    | |ni*nj| |    ->
          (maxx-minx+1)*(maxy*miny+1) 
    | O-----+ |        +---------+----------+-------+-------+
    |         |        |ni*nj k=1| ni*nj k=2|
    ...k=nk|       |
    +---------+        +---------+----------+-------+-------+

    Le point "O" est l'origine (point (1,1)), le tableau externe est de dimension minx:maxx, miny:maxy et le tableau interne est de dimension ni,nj. La compression réécrit le tableau interne dans le tableau externe de façon à ce que les ni*nj*nk points soient consécutifs dans le tableau de (maxx-minx+1)*(maxy*miny+1).  On peut ainsi récupérer (maxx-minx+1)*(maxy*miny+1)-ni*nj*nk espaces en mémoire. L'appel à compress8 fait le travail pour des doubles précision.

    Dans le cas d'une expansion, on procéde de la façon inverse, en plaçant les points d'un tableau ni*nj*nk dans un tableau minx:maxx, miny:maxy, nk en commençant par l'origine (indice (1,1,1)). L'appel à expand8 fait le travail pour des doubles précisions.


    VOIR AUSSI

    RPN_COMM_* 

    Return to RPN Libraries home page