1 : C CISAR SOURCE CHAT 05/01/12 22:03:19 5004 2 : SUBROUTINE CISAR(ASS,BSS,AXX,AYY,BXX,BYY,RL,EXX,EYY,HS4,HS5, 3 : * HS6,HFX,HFY) 4 : C 5 : C**************** CE SOUS PROGRAMME CALCULE LES FONCTIONS HS(K,I)****** 6 : C 7 : IMPLICIT INTEGER(I-N) 8 : IMPLICIT REAL*8 (A-H,O-Z) 9 : DIMENSION ASS(6),BSS(6),AXX(3),AYY(3),BXX(3),BYY(3) 10 : DIMENSION EXX(3),EYY(3),RL(3) 11 : DIMENSION HS4(9),HS5(9),HS6(9) 12 : DIMENSION COFA(3,3),COFB(3,3) 13 : DIMENSION DGX4(9),DGX5(9),DGX6(9),HFX(9),HFY(9) 13 : CALL ZERO(COFB,3,3) 14 : COFB(1,1)=1.D0-1.5D0*EXX(1)*ASS(4)-1.5D0*EYY(1)*BSS(4) 15 : COFB(2,2)=1.D0-1.5D0*EXX(2)*ASS(5)-1.5D0*EYY(2)*BSS(5) 16 : COFB(3,3)=1.D0-1.5D0*EXX(3)*ASS(6)-1.5D0*EYY(3)*BSS(6) 17 : COFB(1,2)=-1.5D0*EXX(1)*ASS(5)-1.5D0*EYY(1)*BSS(5) 18 : COFB(1,3)=-1.5D0*EXX(1)*ASS(6)-1.5D0*EYY(1)*BSS(6) 19 : COFB(2,1)=-1.5D0*EXX(2)*ASS(4)-1.5D0*EYY(2)*BSS(4) 20 : COFB(2,3)=-1.5D0*EXX(2)*ASS(6)-1.5D0*EYY(2)*BSS(6) 21 : COFB(3,1)=-1.5D0*EXX(3)*ASS(4)-1.5D0*EYY(3)*BSS(4) 22 : COFB(3,2)=-1.5D0*EXX(3)*ASS(5)-1.5D0*EYY(3)*BSS(5) 23 : * 23 : CALL ZERO(COFA,3,3) 24 : C INVERSION DE LA MATRICE COFB((3,3) 25 : COFA(1,1)= COFB(2,2)*COFB(3,3)-COFB(2,3)*COFB(3,2) 26 : COFA(2,2)= COFB(1,1)*COFB(3,3)-COFB(1,3)*COFB(3,1) 27 : COFA(3,3)= COFB(1,1)*COFB(2,2)-COFB(1,2)*COFB(2,1) 28 : COFA(1,2)=-COFB(1,2)*COFB(3,3)+COFB(3,2)*COFB(1,3) 29 : COFA(2,1)=-COFB(2,1)*COFB(3,3)+COFB(2,3)*COFB(3,1) 30 : COFA(1,3)= COFB(1,2)*COFB(2,3)-COFB(2,2)*COFB(1,3) 31 : COFA(3,1)= COFB(2,1)*COFB(3,2)-COFB(2,2)*COFB(3,1) 32 : COFA(2,3)=-COFB(1,1)*COFB(2,3)+COFB(2,1)*COFB(1,3) 33 : COFA(3,2)=-COFB(1,1)*COFB(3,2)+COFB(1,2)*COFB(3,1) 34 : DJAC=COFB(1,1)*COFA(1,1)+COFB(2,1)*COFA(1,2)+COFB(3,1)*COFA(1,3) 35 : XXXX = DJAC 36 : IF(DJAC.NE.0.D0) XXXX=1.D0/DJAC 37 : DO 10 IA=1,3 38 : DO 10 IB=1,3 39 : COFA(IA,IB)=COFA(IA,IB)*XXXX 40 : 10 CONTINUE 40 : CALL ZERO(DGX4,9,1) 40 : CALL ZERO(DGX5,9,1) 40 : CALL ZERO(DGX6,9,1) 41 : DGX4(1)=0.D0+00 42 : DGX4(3)=1.5D0*(EXX(1)*AXX(1)+EYY(1)*BXX(1)) 43 : DGX4(2)=-1.5D0*(EXX(1)*AYY(1)+EYY(1)*BYY(1)) 44 : DGX4(6)=1.5D0*(EXX(1)*AXX(2)+EYY(1)*BXX(2))-(EXX(1)/4.D0) 45 : DGX4(5)=-1.5D0*(EXX(1)*AYY(2)+EYY(1)*BYY(2))+(EYY(1)/4.D0) 46 : DGX4(9)=1.5D0*(EXX(1)*AXX(3)+EYY(1)*BXX(3))-(EXX(1)/4.D0) 47 : DGX4(8)=-1.5D0*(EXX(1)*AYY(3)+EYY(1)*BYY(3))+(EYY(1)/4.D0) 48 : DGX4(4)=1.5D0/RL(1) 49 : DGX4(7)=-1.5D0/RL(1) 50 : C 51 : DGX5(1)=-1.5D0/RL(2) 52 : DGX5(3)=1.5D0*(EXX(2)*AXX(1)+EYY(2)*BXX(1))-EXX(2)/4.D0 53 : DGX5(2)=-1.50D+00*(EXX(2)*AYY(1)+EYY(2)*BYY(1))+EYY(2)/4.D0 54 : DGX5(6)=1.5D0*(EXX(2)*AXX(2)+EYY(2)*BXX(2)) 55 : DGX5(5)=-1.5D0*(EXX(2)*AYY(2)+EYY(2)*BYY(2)) 56 : DGX5(9)=1.5D0*(EXX(2)*AXX(3)+EYY(2)*BXX(3))-EXX(2)/4.D0 57 : DGX5(8)=-1.5D0*(EXX(2)*AYY(3)+EYY(2)*BYY(3))+EYY(2)/4.D0 58 : DGX5(4)=0.D0 59 : DGX5(7)=1.5D0/RL(2) 60 : C 61 : DGX6(1)=1.5D0/RL(3) 62 : DGX6(3)=1.5D0*(EXX(3)*AXX(1)+EYY(3)*BXX(1))-EXX(3)/4.D0 63 : DGX6(2)=-1.5D0*(EXX(3)*AYY(1)+EYY(3)*BYY(1))+EYY(3)/4.D0 64 : DGX6(6)=1.5D0*(EXX(3)*AXX(2)+EYY(3)*BXX(2))-EXX(3)/4.D0 65 : DGX6(5)=-1.5D0*(EXX(3)*AYY(2)+EYY(3)*BYY(2))+EYY(3)/4.D0 66 : DGX6(9)=1.5D0*(EXX(3)*AXX(3)+EYY(3)*BXX(3)) 67 : DGX6(8)=-1.5D0*(EXX(3)*AYY(3)+EYY(3)*BYY(3)) 68 : DGX6(4)=-1.5D0/RL(3) 69 : DGX6(7)=0.D0 69 : CALL ZERO(HS4,9,1) 69 : CALL ZERO(HS5,9,1) 69 : CALL ZERO(HS6,9,1) 70 : DO 50 I=1,9 71 : HS4(I)=COFA(1,1)*DGX4(I)+COFA(1,2)*DGX5(I)+COFA(1,3)*DGX6(I) 72 : HS5(I)=COFA(2,1)*DGX4(I)+COFA(2,2)*DGX5(I)+COFA(2,3)*DGX6(I) 73 : HS6(I)=COFA(3,1)*DGX4(I)+COFA(3,2)*DGX5(I)+COFA(3,3)*DGX6(I) 74 : 50 CONTINUE 74 : CALL ZERO(HFX,9,1) 74 : CALL ZERO(HFY,9,1) 75 : HFX(1)=ASS(4)*HS4(1)+ASS(5)*HS5(1)+ASS(6)*HS6(1) 76 : HFX(4)=ASS(4)*HS4(4)+ASS(5)*HS5(4)+ASS(6)*HS6(4) 77 : HFX(7)=ASS(4)*HS4(7)+ASS(5)*HS5(7)+ASS(6)*HS6(7) 78 : HFX(2)=ASS(4)*HS4(2)+ASS(5)*HS5(2)+ASS(6)*HS6(2)-AYY(1) 79 : HFX(3)=ASS(4)*HS4(3)+ASS(5)*HS5(3)+ASS(6)*HS6(3)+AXX(1) 80 : HFX(5)=ASS(4)*HS4(5)+ASS(5)*HS5(5)+ASS(6)*HS6(5)-AYY(2) 81 : HFX(6)=ASS(4)*HS4(6)+ASS(5)*HS5(6)+ASS(6)*HS6(6)+AXX(2) 82 : HFX(8)=ASS(4)*HS4(8)+ASS(5)*HS5(8)+ASS(6)*HS6(8)-AYY(3) 83 : HFX(9)=ASS(4)*HS4(9)+ASS(5)*HS5(9)+ASS(6)*HS6(9)+AXX(3) 84 : * 85 : HFY(1)=BSS(4)*HS4(1)+BSS(5)*HS5(1)+BSS(6)*HS6(1) 86 : HFY(4)=BSS(4)*HS4(4)+BSS(5)*HS5(4)+BSS(6)*HS6(4) 87 : HFY(7)=BSS(4)*HS4(7)+BSS(5)*HS5(7)+BSS(6)*HS6(7) 88 : HFY(2)=BSS(4)*HS4(2)+BSS(5)*HS5(2)+BSS(6)*HS6(2)-BYY(1) 89 : HFY(3)=BSS(4)*HS4(3)+BSS(5)*HS5(3)+BSS(6)*HS6(3)+BXX(1) 90 : HFY(5)=BSS(4)*HS4(5)+BSS(5)*HS5(5)+BSS(6)*HS6(5)-BYY(2) 91 : HFY(6)=BSS(4)*HS4(6)+BSS(5)*HS5(6)+BSS(6)*HS6(6)+BXX(2) 92 : HFY(8)=BSS(4)*HS4(8)+BSS(5)*HS5(8)+BSS(6)*HS6(8)-BYY(3) 93 : HFY(9)=BSS(4)*HS4(9)+BSS(5)*HS5(9)+BSS(6)*HS6(9)+BXX(3) 94 : * 95 : RETURN 96 : END 97 :
© Cast3M 2003 - All rights reserved.
Disclaimer