g2polc
C G2POLC SOURCE CHAT 06/03/29 21:22:18 5360 C > NBAJ,NBCOAJ,INCOAJ,NBLGAJ,INLGAJ, > INDICE,INCREM,COORD,NBCOOR,IDIMC, > ITVL,NITMAX, > IGR,NBLIG,NBCOL,iarr) C ********************************************************************** C OBJET G2POLC : AJOUTE LIGNES ET COLONNES A UNE GRILLE GEOMETRIQUE C C EN ENTREE : C IGR1(NBCOL1,NBLIG1) : TABLEAU D'INDICES DES NOEUDS C IDIMC : DIMENSION DE L'ESPACE (=3) C COORD : TABLEAU DES COORDONNEES DES NOEUDS C NBCOOR: NOMBRE DE POINTS DANS LE TABLEAU COORD C C NBAJ(1) : NOMBRE D'AJOUTS DE COLONNES C INCOAJ() : TABLEAU DES POSITIONS D'AJOUT C NBCOAJ(I) : NOMBRE DE COLONNES A AJOUTER C AVANT INCOAJ(I) SI NEGATIF C APRES INCOAJ(I) SI POSITIF C NBAJ(2) : NOMBRE D'AJOUTS DE LIGNES C INLGAJ() : TABLEAU DES POSITIONS D'AJOUT C NBLGAJ(I) : NOMBRE DE LIGNES A AJOUTER C AVANT INLGAJ(I) SI NEGATIF C APRES INLGAJ(I) SI POSITIF C C INDICE : INDICE POUR REMPLIR LES NOUVELLES COLONNES C INCREM : INCREMENT DE L'INDICE C C ITVL : TABLEAU DE TRAVAIL (ENTIERS) C NITMAX: TAILLE DU TABLEAU ITVL C ON A BESOIN DU TABLEAU DE TRAVAIL SEULEMENT SI ON AJOUTE C SIMULTANEMENT DES LIGNES ET DES COLONNES. LA PLACE NECES- C SAIRE EST DE : (NBCOL1+NBCOAJ(i))*NBLIG1 C C EN SORTIE : C IGR(NBCOL,NBLIG) : TABLEAU D'INDICES MODIFIES C COORD,NBCOOR : POINTS AJOUTES C C ********************************************************************** IMPLICIT INTEGER(I-N) INTEGER IGR1(*),NBLIG1,NBCOL1 INTEGER NBCOAJ(*),INCOAJ(*),NBLGAJ(*),INLGAJ(*),NBAJ(*) REAL*8 COORD(*) INTEGER IGR(*),NBLIG,NBCOL,iarr C INTEGER INDXYZ,I,IGR11,NBCO11,NBLG11,IOP C INDXYZ = INDICE NBCOL = NBCOL1 NBLIG = NBLIG1 IGR11 = 1 C C ============================== C --- ON AJOUTE DES COLONNES A GR1 --- C ============================== C DO 10 I=1,NBAJ(1) NBCOL = NBCOL + NBCOAJ(I) 10 CONTINUE DO 20 I=1,NBAJ(2) NBLIG = NBLIG + NBLGAJ(I) 20 CONTINUE C IF( NBCOL.GT.NBCOL1 )THEN IF( NBLIG.GT.NBLIG1 )THEN C ---- ON A BESOIN D'UN TABLEAU TAMPON ---- IF( NITMAX.LT. (IGR11-1+NBCOL*NBLIG1))THEN iarr = -2 GOTO 9999 ENDIF > ITVL(IGR11),NBLG11,NBCO11) ELSE > IGR,NBLIG,NBCOL) ENDIF C > COORD,IDIMC) NBCOOR = INDXYZ - 1 ENDIF C C ============================ C --- ON AJOUTE DES LIGNES A GR1 --- C ============================ C IF(NBLIG.EQ.NBLIG1)THEN IF(NBCOL.EQ.NBCOL1)THEN IOP = 1 > IGR,NBCOL,NBLIG ) ENDIF GOTO 9999 ENDIF C IF( NBCOL.EQ.NBCOL1 ) THEN > IGR,NBLIG,NBCOL) > COORD,IDIMC) ELSE > IGR,NBLIG,NBCOL) C CORRECTION BUG : IGR11 REMPLACE PAR ITVL(IGR11) > COORD,IDIMC) ENDIF NBCOOR = INDXYZ - 1 C 9999 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales