C RCDST SOURCE CHAT 05/01/13 02:46:04 5004 SUBROUTINE RCDST(XE,NSTRS,LRE,DDHOMU,HS4,HS5,HS6, 1 REL,BGENE,IOP) * * CALCUL LA MATRICE B ET LA MATRICE DE RIGIDITE * RELATIVE AUX CISAILLEMENTS TRANSVERSES * ************************************************************************ * * ENTREES : * * XE : COORDONNEES DES NOEUDS * EPAIST :EPAISSEUR * NSTRS :NOMBRE DE COMPOSANTES DE CONTRAINTES * LRE :NOMBRE DE DEGRES DE LIBERTE * DDHOMU :MATRICE DE HOOKE * OP := 0 LA SORTIE EST LA MATRICE DE RIGIDITE * = 1 LA SORTIE EST LA MATRICE B * * SORTIES : * * HS4,HS5,HS6 : LES FONCTIONS QUI RELIE LES TERMES (BETA)SK A {U} * REL :MATRICE DE RIGIDITE * BGENE :MATRICE DE B * * AUTEUR :P.DOWLATYARI JUILLET 91 ************************************************************************ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) DIMENSION XE(3,*),DDHOMU(NSTRS,*),HS4(*),HS5(*) DIMENSION HS6(*),REL(LRE,*),BGENE(NSTRS,*) DIMENSION SX(3),SY(3),RL(3),EXX(3),EYY(3) DIMENSION DCIS(2,2),EKCIS(9,9),BCISA(2,9),HFX(9),HFY(9) DIMENSION ASS(6),BSS(6),AXX(3),BXX(3),AYY(3),BYY(3) * * DO 10 K=4,6 IF(K.EQ.4)THEN IJ=1 I=2 J=3 ELSEIF(K.EQ.5)THEN IJ=2 I=3 J=1 ELSE IJ=3 I=1 J=2 ENDIF SX(IJ)=XE(1,I)-XE(1,J) SY(IJ)=XE(2,I)-XE(2,J) RL(IJ)=SQRT(SX(IJ)*SX(IJ)+SY(IJ)*SY(IJ)) EXX(IJ)=-SX(IJ)/RL(IJ) EYY(IJ)=-SY(IJ)/RL(IJ) 10 CONTINUE AIR=ABS(0.5D0*(SX(1)*SY(2)-SX(2)*SY(1))) * CALL CISAF(XE,EXX,EYY,DDHOMU,AIR,ASS,AXX, 1 AYY,BSS,BXX,BYY) * CALL CISAR(ASS,BSS,AXX,AYY,BXX,BYY,RL,EXX,EYY, 1 HS4,HS5,HS6,HFX,HFY) * DO 20 IC=1,9 BCISA(1,IC)=HFX(IC) BCISA(2,IC)=HFY(IC) 20 CONTINUE * IF(IOP.EQ.0)THEN DCIS(1,1)=DDHOMU(7,7) DCIS(1,2)=DDHOMU(7,8) DCIS(2,1)=DDHOMU(8,7) DCIS(2,2)=DDHOMU(8,8) * CALL ZERO(EKCIS,9,9) CALL BDBST(BCISA,AIR,DCIS,9,2,EKCIS) * * REMPLISSAGE DANS REL * DO 30 IL=1,9 IL1=(IL-1)/3 IL2=IL+3*IL1+2 DO 30 IC=1,9 IC1=(IC-1)/3 IC2=IC+IC1*3+2 REL(IL2,IC2)=EKCIS(IL,IC) 30 CONTINUE ELSE * * REMPLISSAGE DANS BGENE * DO 40 IL=1,2 IL1=IL+6 DO 40 IC=1,9 IC1=(IC-1)/3 IC2=IC1*3+IC+2 BGENE(IL1,IC2)=BCISA(IL,IC) 40 CONTINUE ENDIF * RETURN END