Numérotation des lignes :

C CQ2KP     SOURCE    CHAT      05/01/12    22:26:39     5004      SUBROUTINE CQ2KP(COO,PRESSI,AN,ALF11,ALF12,     1     ALF21,ALF22,RAYON,RE,CGAUS,TGAUS,NGAUS,A1,A4,S3,AM,A)      IMPLICIT INTEGER(I-N)      IMPLICIT REAL*8 (A-H,O-Z)C    Include contenant quelques constantes dont XPI :-INC CCREELCCCCCCCCCCCCCCC  CALCUL DE LA MATRICE KP POUR LES COQ2 TIREE INCAC      DIMENSION A4(8,8),S3(8,8),AM(8,8),A1(8,8)      DIMENSION COO(3,2),A(8,8)      DIMENSION ALF11(*),ALF12(*),ALF21(*),ALF22(*),RAYON(*),RE(*)      DIMENSION CGAUS(*),TGAUS(*)      CALL ZDANUL(RE,64)      RAYON(1)=COO(1,1)      RAYON(3)=COO(1,2)      RAYON(2)=(RAYON(1)+RAYON(3))*0.5D0      DR=RAYON(3)-RAYON(1)      DZ=COO(2,2)-COO(2,1)      DS=SQRT(DR*DR+DZ*DZ)      COSP=DR/DS      SINP=DZ/DS      XS2=0.5D0*DS      CALL RESOLV(A4,DS,COSP,SINP,S3,A)      CALL ZDANUL(ALF12,5)      CALL ZDANUL(ALF22,7)      DO 9 IN=1,NGAUS         RAY=RAYON(2)+XS2*COSP*TGAUS(IN)         X=TGAUS(IN)*XS2         X2=X*X         X3=X2*X         X4=X3*X         ANS=0.D0         ANT=0.D0         ALF11(1)=1.D0         ALF11(2)=X         ALF11(3)=X2         ALF11(4)=X3         ALF11(5)=X4         DO 12 NC=1,5            ALF21(NC)=ALF11(NC) 12      CONTINUE         ALF21(6)=X4*X         ALF21(7)=X4*X2         ANS=ANS*RAY*XS2*CGAUS(IN)         CALL AMULX(ALF11,5,ANS,ALF12)         ANT=ANT*XS2*CGAUS(IN)/RAY         CALL AMULX(ALF21,7,ANT,ALF22) 9    CONTINUE      CALL SHIFTD(ALF12,ALF11,5)      CALL SHIFTD(ALF22,ALF21,7)      DO 15 NC=1,8         DO 13 NCC=1,8            A1(NCC,NC)=A4(NC,NCC) 13      CONTINUE 15   CONTINUE      CALL ZDANUL(A,64)      PROD1=COSP*COSP      PROD2=SINP*SINP      PROD3=SINP*COSP      A(1,1)=PROD1*ALF21(1)      A(1,2)=PROD1*ALF21(2)      A(1,5)=PROD3*ALF21(1)      A(1,6)=PROD3*ALF21(2)      A(1,7)=PROD3*ALF21(3)      A(1,8)=PROD3*ALF21(4)      A(2,1)=A(1,2)      A(2,2)=ALF11(1)+PROD1*ALF21(3)      A(2,5)=PROD3*ALF21(2)      A(2,6)=PROD3*ALF21(3)      A(2,7)=PROD3*ALF21(4)      A(2,8)=PROD3*ALF21(5)      A(3,3)=ALF21(1)      A(3,4)=ALF21(2)      A(4,3)=A(3,4)      A(4,4)=ALF11(1)+ALF21(3)      A(5,1)=A(1,5)      A(5,2)=A(2,5)      A(5,5)=PROD2*ALF21(1)      A(5,6)=PROD2*ALF21(2)      A(5,7)=PROD2*ALF21(3)      A(5,8)=PROD2*ALF21(4)      A(6,1)=A(1,6)      A(6,2)=A(2,6)      A(6,5)=A(5,6)      A(6,6)=ALF11(1)+A(5,7)      A(6,7)=ALF11(2)*2.D0+A(5,8)      A(6,8)=ALF11(3)*3.D0+PROD2*ALF21(5)      A(7,1)=A(1,7)      A(7,2)=A(2,7)      A(7,5)=A(5,7)      A(7,6)=A(6,7)      A(7,7)=ALF11(3)*4.D0+PROD2*ALF21(5)      A(7,8)=ALF11(4)*6.D0+PROD2*ALF21(6)      A(8,1)=A(1,8)      A(8,2)=A(2,8)      A(8,5)=A(5,8)      A(8,6)=A(6,8)      A(8,7)=A(7,8)      A(8,8)=ALF11(5)*9.D0+PROD2*ALF21(7)      DSS=DS      PDS=DSS*PRESSI*0.5D0      DS2=DSS*DSS      PS2DS=PDS*DS2      PS4DS=PS2DS*DS2/80.D0      PS2DS=PS2DS/12.D0      PR=(RAYON(1)+4.D0*RAYON(2)+RAYON(3))*PDS/6.D0      PSR=(-RAYON(1)+RAYON(3))*DSS*PDS/12.D0      PS2R=(RAYON(1)+RAYON(3))*PDS*DS2/24.D0      PS3R=PSR*DS2/4.D0      A(1,5)=A(1,5)-PDS*0.5D0*COSP      A(1,6)=A(1,6)+PR*0.5D0      A(1,7)=A(1,7)-COSP*PS2DS*0.5D0+PSR      A(1,8)=A(1,8)+1.5D0*PS2R      A(5,1)=A(1,5)      A(6,1)=A(1,6)      A(7,1)=A(1,7)      A(8,1)=A(1,8)      A(2,5)=A(2,5)-PR*0.5D0      A(2,6)=A(2,6)-PS2DS*0.5D0*COSP      A(2,7)=A(2,7)+PS2R*0.5D0      A(2,8)=A(2,8)-PS4DS*COSP*0.5D0+PS3R      A(5,2)=A(2,5)      A(6,2)=A(2,6)      A(7,2)=A(2,7)      A(8,2)=A(2,8)      PROD1=PDS*SINP      A(3,3)=A(3,3)-PROD1      PROD2=PS2DS*SINP      A(4,4)=A(4,4)-PROD2      A(5,5)=A(5,5)-PROD1      A(5,7)=A(5,7)-PROD2      A(7,5)=A(5,7)      A(6,6)=A(6,6)-PROD2      PROD1=PS4DS*SINP      A(6,8)=A(6,8)-PROD1      A(8,6)=A(6,8)      A(7,7)=A(7,7)-PROD1      A(8,8)=A(8,8)-PROD1*DS2/5.6D0C     CALL MULMAT (8,8,8,A,A4,S3)      CALL MULMAT (S3,A,A4,8,8,8)C     CALL MULMAT (8,8,8,A1,S3,A)      CALL MULMAT (A,A1,S3,8,8,8)      CALL ZDANUL(AM,64)CCCCCCCCCC  CCC CCC      AM(1,1)=ALF21(1)      AM(3,3)=ALF21(1)      AM(5,5)=ALF21(1)      AM(1,2)=ALF21(2)      AM(2,1)=ALF21(2)      AM(3,4)=ALF21(2)      AM(4,3)=ALF21(2)      AM(5,6)=ALF21(2)      AM(6,5)=ALF21(2)      AM(2,2)=ALF21(3)      AM(4,4)=ALF21(3)      AM(6,6)=ALF21(3)      AM(5,7)=ALF21(3)      AM(7,5)=ALF21(3)      AM(5,8)=ALF21(4)      AM(8,5)=ALF21(4)      AM(6,7)=ALF21(4)      AM(7,6)=ALF21(4)      AM(7,7)=ALF21(5)      AM(6,8)=ALF21(5)      AM(8,6)=ALF21(5)      AM(7,8)=ALF21(6)      AM(8,7)=ALF21(6)      AM(8,8)=ALF21(7)C     CALL MULMAT (8,8,8,AM,A4,S3)      CALL MULMAT (S3,AM,A4,8,8,8)C     CALL MULMAT (8,8,8,A1,S3,AM)      CALL MULMAT (AM,A1,S3,8,8,8)      AN2=AN*AN      DO 30 NC=1,8         DO 31 NCC=1,8            A(NCC,NC)=A(NCC,NC)+AN2*AM(NCC,NC) 31      CONTINUE 30   CONTINUE      PROD1=2.D0*COSP      PROD2=2.D0*SINP      CALL ZDANUL(AM,64)      AM(1,3)=PROD1*ALF21(1)      AM(1,4)=PROD1*ALF21(2)      AM(2,3)=AM(1,4)      AM(2,4)=PROD1*ALF21(3)      AM(3,1)=AM(1,3)      AM(3,2)=AM(2,3)      AM(3,5)=PROD2*ALF21(1)      AM(3,6)=PROD2*ALF21(2)      AM(3,7)=PROD2*ALF21(3)      AM(3,8)=PROD2*ALF21(4)      AM(4,1)=AM(1,4)      AM(4,2)=AM(2,4)      AM(4,5)=AM(3,6)      AM(4,6)=AM(3,7)      AM(4,7)=AM(3,8)      AM(4,8)=PROD2*ALF21(5)      AM(5,3)=AM(3,5)      AM(5,4)=AM(4,5)      AM(6,3)=AM(3,6)      AM(6,4)=AM(4,6)      AM(7,3)=AM(3,7)      AM(7,4)=AM(4,7)      AM(8,3)=AM(3,8)      AM(8,4)=AM(4,8)      AM(3,5)=AM(3,5)-PDS      AM(5,3)=AM(3,5)      AM(3,7)=AM(3,7)-PS2DS      AM(4,6)=AM(4,6)-PS2DS      AM(7,3)=AM(3,7)      AM(6,4)=AM(4,6)      AM(4,8)=AM(4,8)-PS4DS      AM(8,4)=AM(4,8)C      CALL MULMAT (8,8,8,AM,A4,S3)      CALL MULMAT (S3,AM,A4,8,8,8)C     CALL MULMAT (8,8,8,A1,S3,AM)      CALL MULMAT (AM,A1,S3,8,8,8)      IF(AN.EQ.0) THEN         COEF=2*XPI      ELSE         COEF=XPI      ENDIF      IROT=1      DO 32 NC=1,8         DO 33 NCC=1,8            RE(IROT) =(A(NCC,NC)+AN*AM(NCC,NC))*2.D0+RE(IROT)            RE(IROT) = RE(IROT)*COEF            IROT=IROT+1 33      CONTINUE 32   CONTINUE      RETURN      END

© Cast3M 2003 - Tous droits réservés.
Mentions légales