Télécharger cisar.eso

Retour à la liste

Numérotation des lignes :

cisar
  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)
  14. CALL ZERO(COFB,3,3)
  15. COFB(1,1)=1.D0-1.5D0*EXX(1)*ASS(4)-1.5D0*EYY(1)*BSS(4)
  16. COFB(2,2)=1.D0-1.5D0*EXX(2)*ASS(5)-1.5D0*EYY(2)*BSS(5)
  17. COFB(3,3)=1.D0-1.5D0*EXX(3)*ASS(6)-1.5D0*EYY(3)*BSS(6)
  18. COFB(1,2)=-1.5D0*EXX(1)*ASS(5)-1.5D0*EYY(1)*BSS(5)
  19. COFB(1,3)=-1.5D0*EXX(1)*ASS(6)-1.5D0*EYY(1)*BSS(6)
  20. COFB(2,1)=-1.5D0*EXX(2)*ASS(4)-1.5D0*EYY(2)*BSS(4)
  21. COFB(2,3)=-1.5D0*EXX(2)*ASS(6)-1.5D0*EYY(2)*BSS(6)
  22. COFB(3,1)=-1.5D0*EXX(3)*ASS(4)-1.5D0*EYY(3)*BSS(4)
  23. COFB(3,2)=-1.5D0*EXX(3)*ASS(5)-1.5D0*EYY(3)*BSS(5)
  24. *
  25. CALL ZERO(COFA,3,3)
  26. C INVERSION DE LA MATRICE COFB((3,3)
  27. COFA(1,1)= COFB(2,2)*COFB(3,3)-COFB(2,3)*COFB(3,2)
  28. COFA(2,2)= COFB(1,1)*COFB(3,3)-COFB(1,3)*COFB(3,1)
  29. COFA(3,3)= COFB(1,1)*COFB(2,2)-COFB(1,2)*COFB(2,1)
  30. COFA(1,2)=-COFB(1,2)*COFB(3,3)+COFB(3,2)*COFB(1,3)
  31. COFA(2,1)=-COFB(2,1)*COFB(3,3)+COFB(2,3)*COFB(3,1)
  32. COFA(1,3)= COFB(1,2)*COFB(2,3)-COFB(2,2)*COFB(1,3)
  33. COFA(3,1)= COFB(2,1)*COFB(3,2)-COFB(2,2)*COFB(3,1)
  34. COFA(2,3)=-COFB(1,1)*COFB(2,3)+COFB(2,1)*COFB(1,3)
  35. COFA(3,2)=-COFB(1,1)*COFB(3,2)+COFB(1,2)*COFB(3,1)
  36. DJAC=COFB(1,1)*COFA(1,1)+COFB(2,1)*COFA(1,2)+COFB(3,1)*COFA(1,3)
  37. XXXX = DJAC
  38. IF(DJAC.NE.0.D0) XXXX=1.D0/DJAC
  39. DO 10 IA=1,3
  40. DO 10 IB=1,3
  41. COFA(IA,IB)=COFA(IA,IB)*XXXX
  42. 10 CONTINUE
  43. CALL ZERO(DGX4,9,1)
  44. CALL ZERO(DGX5,9,1)
  45. CALL ZERO(DGX6,9,1)
  46. DGX4(1)=0.D0+00
  47. DGX4(3)=1.5D0*(EXX(1)*AXX(1)+EYY(1)*BXX(1))
  48. DGX4(2)=-1.5D0*(EXX(1)*AYY(1)+EYY(1)*BYY(1))
  49. DGX4(6)=1.5D0*(EXX(1)*AXX(2)+EYY(1)*BXX(2))-(EXX(1)/4.D0)
  50. DGX4(5)=-1.5D0*(EXX(1)*AYY(2)+EYY(1)*BYY(2))+(EYY(1)/4.D0)
  51. DGX4(9)=1.5D0*(EXX(1)*AXX(3)+EYY(1)*BXX(3))-(EXX(1)/4.D0)
  52. DGX4(8)=-1.5D0*(EXX(1)*AYY(3)+EYY(1)*BYY(3))+(EYY(1)/4.D0)
  53. DGX4(4)=1.5D0/RL(1)
  54. DGX4(7)=-1.5D0/RL(1)
  55. C
  56. DGX5(1)=-1.5D0/RL(2)
  57. DGX5(3)=1.5D0*(EXX(2)*AXX(1)+EYY(2)*BXX(1))-EXX(2)/4.D0
  58. DGX5(2)=-1.50D+00*(EXX(2)*AYY(1)+EYY(2)*BYY(1))+EYY(2)/4.D0
  59. DGX5(6)=1.5D0*(EXX(2)*AXX(2)+EYY(2)*BXX(2))
  60. DGX5(5)=-1.5D0*(EXX(2)*AYY(2)+EYY(2)*BYY(2))
  61. DGX5(9)=1.5D0*(EXX(2)*AXX(3)+EYY(2)*BXX(3))-EXX(2)/4.D0
  62. DGX5(8)=-1.5D0*(EXX(2)*AYY(3)+EYY(2)*BYY(3))+EYY(2)/4.D0
  63. DGX5(4)=0.D0
  64. DGX5(7)=1.5D0/RL(2)
  65. C
  66. DGX6(1)=1.5D0/RL(3)
  67. DGX6(3)=1.5D0*(EXX(3)*AXX(1)+EYY(3)*BXX(1))-EXX(3)/4.D0
  68. DGX6(2)=-1.5D0*(EXX(3)*AYY(1)+EYY(3)*BYY(1))+EYY(3)/4.D0
  69. DGX6(6)=1.5D0*(EXX(3)*AXX(2)+EYY(3)*BXX(2))-EXX(3)/4.D0
  70. DGX6(5)=-1.5D0*(EXX(3)*AYY(2)+EYY(3)*BYY(2))+EYY(3)/4.D0
  71. DGX6(9)=1.5D0*(EXX(3)*AXX(3)+EYY(3)*BXX(3))
  72. DGX6(8)=-1.5D0*(EXX(3)*AYY(3)+EYY(3)*BYY(3))
  73. DGX6(4)=-1.5D0/RL(3)
  74. DGX6(7)=0.D0
  75. CALL ZERO(HS4,9,1)
  76. CALL ZERO(HS5,9,1)
  77. CALL ZERO(HS6,9,1)
  78. DO 50 I=1,9
  79. HS4(I)=COFA(1,1)*DGX4(I)+COFA(1,2)*DGX5(I)+COFA(1,3)*DGX6(I)
  80. HS5(I)=COFA(2,1)*DGX4(I)+COFA(2,2)*DGX5(I)+COFA(2,3)*DGX6(I)
  81. HS6(I)=COFA(3,1)*DGX4(I)+COFA(3,2)*DGX5(I)+COFA(3,3)*DGX6(I)
  82. 50 CONTINUE
  83. CALL ZERO(HFX,9,1)
  84. CALL ZERO(HFY,9,1)
  85. HFX(1)=ASS(4)*HS4(1)+ASS(5)*HS5(1)+ASS(6)*HS6(1)
  86. HFX(4)=ASS(4)*HS4(4)+ASS(5)*HS5(4)+ASS(6)*HS6(4)
  87. HFX(7)=ASS(4)*HS4(7)+ASS(5)*HS5(7)+ASS(6)*HS6(7)
  88. HFX(2)=ASS(4)*HS4(2)+ASS(5)*HS5(2)+ASS(6)*HS6(2)-AYY(1)
  89. HFX(3)=ASS(4)*HS4(3)+ASS(5)*HS5(3)+ASS(6)*HS6(3)+AXX(1)
  90. HFX(5)=ASS(4)*HS4(5)+ASS(5)*HS5(5)+ASS(6)*HS6(5)-AYY(2)
  91. HFX(6)=ASS(4)*HS4(6)+ASS(5)*HS5(6)+ASS(6)*HS6(6)+AXX(2)
  92. HFX(8)=ASS(4)*HS4(8)+ASS(5)*HS5(8)+ASS(6)*HS6(8)-AYY(3)
  93. HFX(9)=ASS(4)*HS4(9)+ASS(5)*HS5(9)+ASS(6)*HS6(9)+AXX(3)
  94. *
  95. HFY(1)=BSS(4)*HS4(1)+BSS(5)*HS5(1)+BSS(6)*HS6(1)
  96. HFY(4)=BSS(4)*HS4(4)+BSS(5)*HS5(4)+BSS(6)*HS6(4)
  97. HFY(7)=BSS(4)*HS4(7)+BSS(5)*HS5(7)+BSS(6)*HS6(7)
  98. HFY(2)=BSS(4)*HS4(2)+BSS(5)*HS5(2)+BSS(6)*HS6(2)-BYY(1)
  99. HFY(3)=BSS(4)*HS4(3)+BSS(5)*HS5(3)+BSS(6)*HS6(3)+BXX(1)
  100. HFY(5)=BSS(4)*HS4(5)+BSS(5)*HS5(5)+BSS(6)*HS6(5)-BYY(2)
  101. HFY(6)=BSS(4)*HS4(6)+BSS(5)*HS5(6)+BSS(6)*HS6(6)+BXX(2)
  102. HFY(8)=BSS(4)*HS4(8)+BSS(5)*HS5(8)+BSS(6)*HS6(8)-BYY(3)
  103. HFY(9)=BSS(4)*HS4(9)+BSS(5)*HS5(9)+BSS(6)*HS6(9)+BXX(3)
  104. *
  105. RETURN
  106. END
  107.  
  108.  

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