1 : C G2POCO SOURCE CHAT 05/01/13 00:15:06 5004 2 : C 3 : C 4 : SUBROUTINE G2POCO(IGR1,NBLIG1,NBCOL1, 5 : > NBAJ,INCOAJ,NBCOAJ,INDICE,INCREM, 6 : > COORD,IDIMC) 7 : C ********************************************************************** 8 : C OBJET G2POCO : AJOUTE DES POINTS SUR DES COLONNES D'UN TABLEAU 9 : C 10 : C EN ENTREE : 11 : C IGR1(NBLIG1,NBCOL1) : LE TABLEAU DES INDICES NOEUDS (DANS COORD) 12 : C 13 : C NBAJ : NOMBRE D'AJOUTS 14 : C INCOAJ() : TABLEAU DES POSITIONS D'AJOUT 15 : C NBCOAJ(I) : NOMBRE DE COLONNES A AJOUTER 16 : C AVANT INCOAJ(I) SI NEGATIF 17 : C APRES INCOAJ(I) SI POSITIF 18 : C 19 : C COORD : COORDONNEES DES NOEUDS (A COMPLETER) 20 : C IDIMC : DIMENSION DE L'ESPACE 21 : C INDICE : INDICE POUR REMPLIR COORD 22 : C (LES COORDONNEES NOUVEAUX POINTS) 23 : C INCREM : INCREMENT DE L'INDICE 24 : C 25 : C EN SORTIE : 26 : C COORD : LE TABLEAU AVEC LES POINTS SUPPLEMENTAIRES 27 : C INDICE : L'INDICE INCREMENTE 28 : C 29 : C ********************************************************************** 30 : IMPLICIT INTEGER(I-N) 31 : INTEGER IGR1(*),NBLIG1,NBCOL1 32 : INTEGER NBAJ,INCOAJ(*),NBCOAJ(*),INDICE,INCREM 33 : REAL*8 COORD(*) 34 : INTEGER IDIMC 35 : C 36 : INTEGER ICOAJ,I,J,K,KK,NUM1,NUM2,NBCC 37 : REAL*8 XN,XO,XE,V12 38 : C 39 : ICOAJ = 1 40 : DO 50 J=1,NBCOL1 41 : C 42 : C --- ON AJOUTE DES COLONNES AVANT --- 43 : C 44 :
Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 0 in C:\xampp\htdocs\cast3m_kit_local_fr_en_2014\sources.php on line 158
45 : IF((ICOAJ.GT.1).AND. 46 : > ((J-1).EQ.INCOAJ(ICOAJ-1)) )THEN 47 : NBCC = NBCOAJ(ICOAJ) + NBCOAJ(ICOAJ-1) 48 : ELSE 49 : NBCC = NBCOAJ(ICOAJ) 50 : ENDIF 51 : XN = 1.0 / (NBCC + 1.0) 52 : DO 25 K=1,NBCOAJ(ICOAJ) 53 : DO 20 I = 1,NBLIG1 54 : C --- INTERPOLATION ENTRE LA COLONNE J-1 ET J --- 55 : NUM1 = IGR1((I-1)*NBCOL1+J-1) 56 : NUM2 = IGR1((I-1)*NBCOL1+J) 57 : DO 15 KK=1,IDIMC 58 : XO = COORD((NUM1-1)*IDIMC+KK) 59 : XE = COORD((NUM2-1)*IDIMC+KK) 60 : V12 = COORD((NUM2-1)*IDIMC+KK) - XO 61 : COORD((INDICE-1)*IDIMC+KK) = XE - 62 : > (NBCOAJ(ICOAJ) -K + 1)*V12*XN 63 : 15 CONTINUE 64 : INDICE = INDICE + INCREM 65 : 20 CONTINUE 66 : 25 CONTINUE 67 : ICOAJ = ICOAJ+1 68 : ENDIF 69 : C 70 : C --- ON AJOUTE DES COLONNES APRES --- 71 : C 72 : IF((NBAJ.GE.ICOAJ).AND.( J.EQ. INCOAJ(ICOAJ)))THEN 73 : IF((NBAJ.GT.ICOAJ).AND. 74 : > ((J+1).EQ.-INCOAJ(ICOAJ+1)))THEN 75 : NBCC = NBCOAJ(ICOAJ) + NBCOAJ(ICOAJ+1) 76 : ELSE 77 : NBCC = NBCOAJ(ICOAJ) 78 : ENDIF 79 : XN = 1.0 / (NBCC + 1.0) 80 : DO 45 K=1,NBCOAJ(ICOAJ) 81 : DO 40 I = 1,NBLIG1 82 : C --- INTERPOLATION ENTRE LA COLONNE J ET J+1 --- 83 : NUM1 = IGR1((I-1)*NBCOL1+J) 84 : NUM2 = IGR1((I-1)*NBCOL1+J+1) 85 : DO 35 KK=1,IDIMC 86 : XO = COORD((NUM1-1)*IDIMC+KK) 87 : V12 = COORD((NUM2-1)*IDIMC+KK) - XO 88 : COORD((INDICE-1)*IDIMC+KK) = V12*XN*K + XO 89 : 35 CONTINUE 90 : INDICE = INDICE + INCREM 91 : 40 CONTINUE 92 : 45 CONTINUE 93 : ICOAJ = ICOAJ+1 94 : ENDIF 95 : 50 CONTINUE 96 : C 97 : 9999 END 98 : 99 :
© Cast3M 2003 - All rights reserved.
Disclaimer