C CISAF SOURCE CHAT 05/01/12 22:03:15 5004 SUBROUTINE CISAF(XE,EXX,EYY,DDHOMU,AIR,ASS,AXX,AYY, 1 BSS,BXX,BYY) C C******************* FONCTIONS DE CISAILLEMENT ***************** C C CE SOUS PROGRAMME CALCULE LES CONSTANTES as'(k),ax'(i) C ay'(i),bs'(k),bx'(i),by'(i) ,ou i=1--->3 k=4---->6 C C Y C . 3 C . * C .5 * * 4 (4,5,6,noueuds condenses) C . + + C .* * C 1 + * * + * * + 2 . . . . . . .X C 6 C***************************************************************** C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION XE(3,*),EXX(*),EYY(*),DDHOMU(8,*),ASS(*),BSS(*) DIMENSION AXX(*),AYY(*),BXX(*),BYY(*) DIMENSION VV2(3,3),DFON(6,3),VV3(3,3) DIMENSION AAX(6),AAY(6),BBX(6),BBY(6) * CALL ZERO(DFON,6,3) DFON(1,1)=4.D0 DFON(1,2)=4.D0 DFON(1,3)=4.D0 DFON(2,1)=4.D0 DFON(3,2)=4.D0 DFON(4,3)=4.D0 DFON(5,2)=-8.D0 DFON(6,3)=-4.D0 DFON(5,3)=-4.D0 DFON(6,1)=-8.D0 DPSIX=(XE(2,3)-XE(2,1))/(2.D0*AIR) DPSIY=-(XE(1,3)-XE(1,1))/(2.D0*AIR) DETAX=(XE(2,1)-XE(2,2))/(2.D0*AIR) DETAY=-(XE(1,1)-XE(1,2))/(2.D0*AIR) * CALL ZERO(VV3,3,3) C calcul de la matrice jacobienne du second ordre VV3(1,1)=DPSIX*DPSIX VV3(1,2)=DETAX*DETAX VV3(2,1)=DPSIY*DPSIY VV3(2,2)=DETAY*DETAY VV3(1,3)=2.D0*DPSIX*DETAX VV3(2,3)=2.D0*DPSIY*DETAY VV3(3,2)=DETAX*DETAY VV3(3,1)=DPSIY*DPSIX VV3(3,3)=DPSIY*DETAX+DETAY*DPSIX * RAF=DDHOMU(4,4) RAC1=DDHOMU(7,7) RAC2=DDHOMU(8,8) RAFC1= RAF/RAC1 RAFC2= RAF/RAC2 PXY=DDHOMU(4,5)/DDHOMU(4,4) RAPU=DDHOMU(6,6)/DDHOMU(4,4) RAFF=DDHOMU(5,5)/DDHOMU(4,4) CALL ZERO(AAX,6,1) CALL ZERO(BBX,6,1) CALL ZERO(AAY,6,1) CALL ZERO(BBY,6,1) DO 30 I=1,6 AAX(I)=VV3(1,1)*DFON(I,1)+VV3(1,2)*DFON(I,2)+VV3(1,3)*DFON(I,3) $+RAPU*(VV3(2,1)*DFON(I,1)+VV3(2,2)*DFON(I,2)+VV3(2,3)*DFON(I,3)) AAY(I)=(VV3(3,1)*DFON(I,1)+VV3(3,2)*DFON(I,2)+VV3(3,3)*DFON(I,3)) $*PXY $+RAPU*(VV3(3,1)*DFON(I,1)+VV3(3,2)*DFON(I,2)+VV3(3,3)*DFON(I,3)) BBX(I)=(VV3(3,1)*DFON(I,1)+VV3(3,2)*DFON(I,2)+VV3(3,3)*DFON(I,3)) $*PXY $+RAPU*(VV3(3,1)*DFON(I,1)+VV3(3,2)*DFON(I,2)+VV3(3,3)*DFON(I,3)) BBY(I)=(VV3(2,1)*DFON(I,1)+VV3(2,2)*DFON(I,2)+VV3(2,3)*DFON(I,3)) $*RAFF $+RAPU*(VV3(1,1)*DFON(I,1)+VV3(1,2)*DFON(I,2)+VV3(1,3)*DFON(I,3)) AAX(I)=RAFC1*AAX(I) AAY(I)=RAFC1*AAY(I) BBX(I)=RAFC2*BBX(I) BBY(I)=RAFC2*BBY(I) 30 CONTINUE * CALL ZERO(ASS,6,1) CALL ZERO(BSS,6,1) ASS(4)=AAX(4)*EXX(1)+AAY(4)*EYY(1) ASS(5)=AAX(5)*EXX(2)+AAY(5)*EYY(2) ASS(6)=AAX(6)*EXX(3)+AAY(6)*EYY(3) BSS(4)=BBX(4)*EXX(1)+BBY(4)*EYY(1) BSS(5)=BBX(5)*EXX(2)+BBY(5)*EYY(2) BSS(6)=BBX(6)*EXX(3)+BBY(6)*EYY(3) CALL ZERO(AXX,3,1) CALL ZERO(AYY,3,1) CALL ZERO(BYY,3,1) CALL ZERO(BXX,3,1) AXX(1)=AAX(1)+0.5D0*EYY(2)*(AAX(5)*EYY(2)-AAY(5)*EXX(2)) $+0.5D0*EYY(3)*(AAX(6)*EYY(3)-AAY(6)*EXX(3)) AXX(2)=AAX(2)+0.5D0*EYY(1)*(AAX(4)*EYY(1)-AAY(4)*EXX(1)) $+0.5D0*EYY(3)*(AAX(6)*EYY(3)-AAY(6)*EXX(3)) AXX(3)=AAX(3)+0.5D0*EYY(1)*(AAX(4)*EYY(1)-AAY(4)*EXX(1)) $+0.5D0*EYY(2)*(AAX(5)*EYY(2)-AAY(5)*EXX(2)) AYY(1)=AAY(1)-0.5D0*EXX(2)*(AAX(5)*EYY(2)-AAY(5)*EXX(2)) $-0.5D0*EXX(3)*(AAX(6)*EYY(3)-AAY(6)*EXX(3)) AYY(2)=AAY(2)-0.5D0*EXX(1)*(AAX(4)*EYY(1)-AAY(4)*EXX(1)) $-0.5D0*EXX(3)*(AAX(6)*EYY(3)-AAY(6)*EXX(3)) AYY(3)=AAY(3)-0.5D0*EXX(1)*(AAX(4)*EYY(1)-AAY(4)*EXX(1)) $-0.5D0*EXX(2)*(AAX(5)*EYY(2)-AAY(5)*EXX(2)) BXX(1)=BBX(1)+0.5D0*EYY(2)*(BBX(5)*EYY(2)-BBY(5)*EXX(2)) $+0.5D0*EYY(3)*(BBX(6)*EYY(3)-BBY(6)*EXX(3)) BXX(2)=BBX(2)+0.5D0*EYY(1)*(BBX(4)*EYY(1)-BBY(4)*EXX(1)) $+0.5D0*EYY(3)*(BBX(6)*EYY(3)-BBY(6)*EXX(3)) BXX(3)=BBX(3)+0.5D0*EYY(1)*(BBX(4)*EYY(1)-BBY(4)*EXX(1)) $+0.5D0*EYY(2)*(BBX(5)*EYY(2)-BBY(5)*EXX(2)) BYY(1)=BBY(1)-0.5D0*EXX(2)*(BBX(5)*EYY(2)-BBY(5)*EXX(2)) $-0.5D0*EXX(3)*(BBX(6)*EYY(3)-BBY(6)*EXX(3)) BYY(2)=BBY(2)-0.5D0*EXX(1)*(BBX(4)*EYY(1)-BBY(4)*EXX(1)) $-0.5D00*EXX(3)*(BBX(6)*EYY(3)-BBY(6)*EXX(3)) BYY(3)=BBY(3)-0.5D0*EXX(1)*(BBX(4)*EYY(1)-BBY(4)*EXX(1)) $-0.5D0*EXX(2)*(BBX(5)*EYY(2)-BBY(5)*EXX(2)) * RETURN END