joploc
C JOPLOC SOURCE CHAT 05/01/13 00:50:04 5004 C C======================================================================= C C -CALCUL DE LA MATRICE DE PASSAGE BPSS C -CALCUL DES COORDONNEES LOCALES XEL C ROUTINE FORTRAN PUR POUR LES ELEMENTS JOINTS POREUX (BALD) C C======================================================================= C C INPUT C XE = COORDONNEES GLOBALES DE L ELEMENT C SHPTOT = FONCTIONS DE FORME C NBBB = NOMBRE DE NOEUDS DE L'ELEMENT C NBNO = NOMBRE DE FONCTIONS DE FORME C IFOU = IFOUR DE COPTIO C OUTPUT C XEL = COORDONNEES LOCALES DE L ELEMENT C BPSS = MATRICE DE PASAGE REPERE GLOBAL/REPERE LOCAL C C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) DIMENSION V2(3),XD(3,20) DIMENSION S1(3),S2(3),SN(3) C NNNN=NBNB/2 C DO 1 I=1,3 S1(I)=0.0D0 S2(I)=0.0D0 SN(I)=0.0D0 V2(I)=0.0D0 1 CONTINUE C C IF (IFOU.EQ.2) THEN C C---------- CALCUL DE LA MATRICE DE PASSAGE C DO 2 I=1,NNNN C C-------------------TANGENTE AU POINT DE GAUSS 1 SELON QSI C S1(1) = S1(1) + ( SHPTOT(2,I,1)*XE(1,I) ) S1(2) = S1(2) + ( SHPTOT(2,I,1)*XE(2,I) ) S1(3) = S1(3) + ( SHPTOT(2,I,1)*XE(3,I) ) C C-------------------TANGENTE AU POINT DE GAUSS 1 SELON ETA C V2(1) = V2(1) + ( SHPTOT(3,I,1)*XE(1,I) ) V2(2) = V2(2) + ( SHPTOT(3,I,1)*XE(2,I) ) V2(3) = V2(3) + ( SHPTOT(3,I,1)*XE(3,I) ) 2 CONTINUE C C-------------------NORMALE AU PLAN DU JOINT C SN(1) = (S1(2)*V2(3)) - (S1(3)*V2(2)) SN(2) = (S1(3)*V2(1)) - (S1(1)*V2(3)) SN(3) = (S1(1)*V2(2)) - (S1(2)*V2(1)) C C-------------------ORTHOGONALISATION DE S2 C S2(1) = (SN(2)*S1(3)) - (SN(3)*S1(2)) S2(2) = (SN(3)*S1(1)) - (SN(1)*S1(3)) S2(3) = (SN(1)*S1(2)) - (SN(2)*S1(1)) C C-------------------STOCKAGE DE LA MATRICE DE PASSAGE C DO 3 I=1,3 BPSS(1,I) = S1(I) BPSS(2,I) = S2(I) BPSS(3,I) = SN(I) 3 CONTINUE C C---------- CALCUL DES COORDONNEES LOCALES DE L'ELEMENT C C-------------------CHANGEMENT D'ORIGINE ( ORIGINE AU NOEUD 1 ) C DO 4 J=1,NBBB DO 5 I=1,3 XD(I,J) = XE(I,J) - XE(I,1) 5 CONTINUE 4 CONTINUE C C-------------------PROJECTION SUR LE PLAN DU JOINT C DO 6 J=1,NBBB XEL(1,J)=XD(1,J)*S1(1)+XD(2,J)*S1(2)+XD(3,J)*S1(3) XEL(2,J)=XD(1,J)*S2(1)+XD(2,J)*S2(2)+XD(3,J)*S2(3) XEL(3,J)=0.0D0 6 CONTINUE C ELSE IF(IFOU.EQ.-2.OR.IFOU.EQ.-1.OR.IFOU.EQ.0)THEN C C---------- CALCUL DE LA MATRICE DE PASSAGE C DO 7 I=1,NNNN C C-------------------TANGENTE AU POINT DE GAUSS 1 SELON QSI C S1(1) = S1(1) + ( SHPTOT(2,I,1)*XE(1,I) ) S1(2) = S1(2) + ( SHPTOT(2,I,1)*XE(2,I) ) 7 CONTINUE C C-------------------NORMALISATION DE S1 C XNORME = SQRT((S1(1)**2) + (S1(2)**2)) S1(1) = S1(1) / XNORME S1(2) = S1(2) / XNORME C C-------------------NORMALE AU JOINT (PAR ROTATION DE 90 DEGRES) C SN(1) =-S1(2) SN(2) = S1(1) C C-------------------STOCKAGE DE LA MATRICE DE PASSAGE C DO 8 I=1,2 BPSS(1,I) = S1(I) BPSS(2,I) = SN(I) 8 CONTINUE C C---------- CALCUL DES COORDONNEES LOCALES DE L'ELEMENT C C-------------------CHANGEMENT D'ORIGINE ( ORIGINE AU NOEUD 1) C DO 9 J=1,NBBB DO 10 I=1,2 XD(I,J) = XE(I,J) - XE(I,1) 10 CONTINUE 9 CONTINUE C C-------------------PROJECTION SUR LE PLAN DU JOINT C DO 11 J=1,NBBB XEL(1,J)=XD(1,J)*S1(1)+XD(2,J)*S1(2) XEL(2,J)=0.0D0 11 CONTINUE C END IF C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales