Download g2polc.eso

Back to the list

   1 : C G2POLC    SOURCE    CHAT      06/03/29    21:22:18     5360           
   2 : C
   3 :       SUBROUTINE G2POLC(IGR1,NBLIG1,NBCOL1,
   4 :      >            NBAJ,NBCOAJ,INCOAJ,NBLGAJ,INLGAJ,
   5 :      >            INDICE,INCREM,COORD,NBCOOR,IDIMC,
   6 :      >            ITVL,NITMAX,
   7 :      >            IGR,NBLIG,NBCOL,iarr)
   8 : C     **********************************************************************
   9 : C     OBJET G2POLC : AJOUTE LIGNES ET COLONNES A UNE GRILLE GEOMETRIQUE 
  10 : C
  11 : C     EN ENTREE   :  
  12 : C       IGR1(NBCOL1,NBLIG1) : TABLEAU D'INDICES DES NOEUDS  
  13 : C       IDIMC : DIMENSION DE L'ESPACE (=3)
  14 : C       COORD : TABLEAU DES COORDONNEES DES NOEUDS
  15 : C       NBCOOR: NOMBRE DE POINTS DANS LE TABLEAU COORD
  16 : C       
  17 : C       NBAJ(1)    : NOMBRE D'AJOUTS DE COLONNES
  18 : C       INCOAJ()   : TABLEAU DES POSITIONS D'AJOUT
  19 : C       NBCOAJ(I)  : NOMBRE DE COLONNES A AJOUTER 
  20 : C                    AVANT INCOAJ(I) SI NEGATIF
  21 : C                    APRES INCOAJ(I) SI POSITIF
  22 : C       NBAJ(2)    : NOMBRE D'AJOUTS DE LIGNES
  23 : C       INLGAJ()   : TABLEAU DES POSITIONS D'AJOUT
  24 : C       NBLGAJ(I)  : NOMBRE DE LIGNES A AJOUTER 
  25 : C                    AVANT INLGAJ(I) SI NEGATIF
  26 : C                    APRES INLGAJ(I) SI POSITIF
  27 : C
  28 : C       INDICE     : INDICE POUR REMPLIR LES NOUVELLES COLONNES
  29 : C       INCREM     : INCREMENT DE L'INDICE
  30 : C
  31 : C       ITVL  : TABLEAU DE TRAVAIL (ENTIERS)
  32 : C       NITMAX: TAILLE DU TABLEAU ITVL
  33 : C               ON A BESOIN DU TABLEAU DE TRAVAIL SEULEMENT SI ON AJOUTE
  34 : C               SIMULTANEMENT DES LIGNES ET DES COLONNES. LA PLACE NECES-
  35 : C               SAIRE EST DE : (NBCOL1+NBCOAJ(i))*NBLIG1
  36 : C
  37 : C     EN SORTIE   :
  38 : C       IGR(NBCOL,NBLIG) : TABLEAU D'INDICES MODIFIES
  39 : C       COORD,NBCOOR     : POINTS AJOUTES
  40 : C
  41 : C     **********************************************************************
  42 :       IMPLICIT INTEGER(I-N)
  43 :       INTEGER IGR1(*),NBLIG1,NBCOL1
  44 :       INTEGER NBCOAJ(*),INCOAJ(*),NBLGAJ(*),INLGAJ(*),NBAJ(*)
  45 :       REAL*8    COORD(*)
  46 :       INTEGER INDICE,INCREM,IDIMC,NBCOOR,ITVL(*),NITMAX
  47 :       INTEGER IGR(*),NBLIG,NBCOL,iarr
  48 : C
  49 :       INTEGER INDXYZ,I,IGR11,NBCO11,NBLG11,IOP
  50 : C
  51 :       INDXYZ = INDICE
  52 :       NBCOL  = NBCOL1
  53 :       NBLIG  = NBLIG1  
  54 :       IGR11  = 1      
  55 : C
  56 : C        ==============================
  57 : C     --- ON AJOUTE DES COLONNES A GR1 ---
  58 : C        ==============================
  59 : C
  60 :       DO 10 I=1,NBAJ(1)
  61 :         NBCOL = NBCOL + NBCOAJ(I) 
  62 :    10 CONTINUE
  63 :       DO 20 I=1,NBAJ(2)
  64 :         NBLIG = NBLIG + NBLGAJ(I) 
  65 :    20 CONTINUE
  66 : C
  67 :       IF( NBCOL.GT.NBCOL1 )THEN
  68 :         IF( NBLIG.GT.NBLIG1 )THEN
  69 : C         ---- ON A BESOIN D'UN TABLEAU TAMPON ----
  70 :           IF( NITMAX.LT. (IGR11-1+NBCOL*NBLIG1))THEN
  71 :             iarr = -2
  71 :             CALL DSERRE(1,iarr,'G2POLC',' POUR COMPLETER LA GRILLE ')          
  71 :             CALL ESEINT(1,'PLACE NECESSAIRE ',NBCOL*NBLIG,1)
  72 :             GOTO 9999
  73 :           ENDIF
  73 :           CALL G2MOCO(IGR1,NBLIG1,NBCOL1,
  74 :      >                NBAJ(1),INCOAJ,NBCOAJ,INDICE,INCREM,
  75 :      >                ITVL(IGR11),NBLG11,NBCO11)
  76 :         ELSE
  76 :           CALL G2MOCO(IGR1,NBLIG1,NBCOL1,
  77 :      >                NBAJ(1),INCOAJ,NBCOAJ,INDICE,INCREM,
  78 :      >                IGR,NBLIG,NBCOL)
  79 :         ENDIF
  80 : C
  80 :         CALL G2POCO(IGR1,NBLIG1,NBCOL1,
  81 :      >              NBAJ(1),INCOAJ,NBCOAJ,INDXYZ,INCREM,
  82 :      >              COORD,IDIMC)
  83 :         NBCOOR = INDXYZ - 1
  84 :       ENDIF
  85 : C
  86 : C        ============================
  87 : C     --- ON AJOUTE DES LIGNES A GR1 ---
  88 : C        ============================
  89 : C
  90 :       IF(NBLIG.EQ.NBLIG1)THEN
  91 :         IF(NBCOL.EQ.NBCOL1)THEN
  92 :            IOP = 1
  92 :            CALL G2COPY(IGR1,NBCOL1,NBLIG1,IOP,
  93 :      >                 IGR,NBCOL,NBLIG )
  94 :         ENDIF
  95 :         GOTO 9999
  96 :       ENDIF
  97 : C
  98 :       IF( NBCOL.EQ.NBCOL1 ) THEN
  98 :         CALL G2MOLG(IGR1,NBLIG1,NBCOL1,
  99 :      >              NBAJ(2),INLGAJ,NBLGAJ,INDICE,INCREM,
 100 :      >              IGR,NBLIG,NBCOL)
 100 :         CALL G2POLG(IGR1,NBLIG1,NBCOL1,
 101 :      >            NBAJ(2),INLGAJ,NBLGAJ,INDXYZ,INCREM,
 102 :      >            COORD,IDIMC)
 103 :       ELSE
 103 :         CALL G2MOLG(ITVL(IGR11),NBLG11,NBCO11,
 104 :      >              NBAJ(2),INLGAJ,NBLGAJ,INDICE,INCREM,
 105 :      >              IGR,NBLIG,NBCOL)
 106 : C     CORRECTION BUG : IGR11 REMPLACE PAR ITVL(IGR11)
 106 :         CALL G2POLG(ITVL(IGR11),NBLG11,NBCO11,
 107 :      >            NBAJ(2),INLGAJ,NBLGAJ,INDXYZ,INCREM,
 108 :      >            COORD,IDIMC)
 109 :       ENDIF
 110 :       NBCOOR = INDXYZ - 1
 111 : C
 112 :  9999 END
 113 :  
 114 :  
 115 :  

© Cast3M 2003 - All rights reserved.
Disclaimer