Télécharger calj22.eso

Retour à la liste

Numérotation des lignes :

calj22
  1. C CALJ22 SOURCE CHAT 05/01/12 21:46:34 5004
  2. SUBROUTINE CALJ22(FN,GR,PG,XYZ,HR,PGSQ,RPG,
  3. *ND,NP,NPG,IAXI,AIRE,AJ)
  4. C************************************************************************
  5. C
  6. C CE SP DIFFERRE DE CALI22 PAR LE RANGEMENT DE HR
  7. C HR(ND,NP)
  8. C
  9. C REMARQUE IMPORTANTE : CE SP NE TRAITE QUE LES ELEMENTS VOLUMIQUES
  10. C => HR(ND ...
  11. C
  12. C
  13. C CALCUL DE L'INVERSE DU JACOBIEN AJ=1/J
  14. C CALCUL DE L'AIRE OU VOLUME AIRE
  15. C CALCUL DE PGSQ(L)
  16. C CALCUL DE RPG(L)
  17. C CALCUL DE DES GRADIENTS HR(ND,NP)
  18. C CALCUL INTERMEDIAIRE DE L'ELEMENT D'AIRE SQ=DET(J)
  19. C DANS LES CAS 2D ET 3D
  20. C
  21. C ND DIMENSION ESPACE
  22. C NP NOMBRE DE NOEUDS DE L'ELEMENT
  23. C NPG NOMBRE DE POINTS D'INTEGRATION
  24. C
  25. C XYZ COORDONNEES
  26. C GR GRADIENT
  27. C B & KAUX TABLEAUX DE TRAVAIL
  28. C************************************************************************
  29. IMPLICIT INTEGER(I-N)
  30. IMPLICIT REAL*8 (A-H,O-Z)
  31. C
  32. REAL*8 FN(NP,NPG),GR(ND,NP,NPG),HR(ND,NP,NPG)
  33. REAL*8 PG(NPG),XYZ(ND,NP),PGSQ(NPG),RPG(NPG)
  34. REAL*8 SQ(64),B(3),AJ(ND,ND,NPG)
  35. DIMENSION KAUX(3)
  36. -INC CCREEL
  37. C
  38. C***
  39.  
  40. DEUPI=2.D0*XPI
  41.  
  42. C WRITE(6,*)' SUB CALJ22 XYZ=',((XYZ(MM1,MM2),MM1=1,ND),MM2=1,NP)
  43.  
  44. DO 10 L=1,NPG
  45. DO 10 M=1,ND
  46. DO 10 N=1,ND
  47. AJT=0.D0
  48. DO 11 I=1,NP
  49. AJT=AJT+GR(M,I,L)*XYZ(N,I)
  50. 11 CONTINUE
  51. AJ(N,M,L)=AJT
  52. 10 CONTINUE
  53. C
  54. DO 20 L=1,NPG
  55. IF(ND.EQ.1)THEN
  56. VINT=AJ(1,1,L)
  57. C VINT=ABS(VINT)
  58. AJ(1,1,L)=1.D0/VINT
  59. ELSEIF(ND.EQ.2)THEN
  60. VINT=AJ(1,1,L)*AJ(2,2,L)-AJ(1,2,L)*AJ(2,1,L)
  61. C VINT=ABS(VINT)
  62. RVINT=1.D0/VINT
  63. D11=AJ(2,2,L)
  64. D12=AJ(1,2,L)
  65. D21=AJ(2,1,L)
  66. D22=AJ(1,1,L)
  67. AJ(1,1,L)= RVINT*D11
  68. AJ(1,2,L)=-RVINT*D12
  69. AJ(2,1,L)=-RVINT*D21
  70. AJ(2,2,L)= RVINT*D22
  71. ELSEIF(ND.EQ.3)THEN
  72. D11=AJ(2,2,L)*AJ(3,3,L)-AJ(3,2,L)*AJ(2,3,L)
  73. D12=AJ(1,2,L)*AJ(3,3,L)-AJ(3,2,L)*AJ(1,3,L)
  74. D13=AJ(1,2,L)*AJ(2,3,L)-AJ(2,2,L)*AJ(1,3,L)
  75. D21=AJ(2,1,L)*AJ(3,3,L)-AJ(3,1,L)*AJ(2,3,L)
  76. D22=AJ(1,1,L)*AJ(3,3,L)-AJ(3,1,L)*AJ(1,3,L)
  77. D23=AJ(1,1,L)*AJ(2,3,L)-AJ(2,1,L)*AJ(1,3,L)
  78. D31=AJ(2,1,L)*AJ(3,2,L)-AJ(3,1,L)*AJ(2,2,L)
  79. D32=AJ(1,1,L)*AJ(3,2,L)-AJ(3,1,L)*AJ(1,2,L)
  80. D33=AJ(1,1,L)*AJ(2,2,L)-AJ(2,1,L)*AJ(1,2,L)
  81. VINT=AJ(1,1,L)*D11-AJ(1,2,L)*D21+AJ(1,3,L)*D31
  82. C VINT=ABS(VINT)
  83. RVINT=1.D0/VINT
  84. AJ(1,1,L)= RVINT*D11
  85. AJ(1,2,L)=-RVINT*D12
  86. AJ(1,3,L)= RVINT*D13
  87. AJ(2,1,L)=-RVINT*D21
  88. AJ(2,2,L)= RVINT*D22
  89. AJ(2,3,L)=-RVINT*D23
  90. AJ(3,1,L)= RVINT*D31
  91. AJ(3,2,L)=-RVINT*D32
  92. AJ(3,3,L)= RVINT*D33
  93. ELSE
  94. VINT=0.D0
  95. ENDIF
  96.  
  97. SQ(L)=ABS(VINT)
  98. C*** CALL DLAIN(ND,ND,AJ(1,1,L),KAUX,B,IER)
  99. C
  100. 20 CONTINUE
  101. C
  102. DO 31 L=1,NPG
  103. DO 31 I=1,NP
  104. DO 31 N=1,ND
  105. U=0.D0
  106. DO 32 M=1,ND
  107. 32 U=U+AJ(M,N,L)*GR(M,I,L)
  108. 31 HR(N,I,L)=U
  109. U=0.D0
  110. DO 4 L=1,NPG
  111. U=U+PG(L)*SQ(L)
  112. 4 PGSQ(L)=PG(L)*SQ(L)
  113. AIRE=U
  114. IF(IAXI.EQ.0)RETURN
  115. C
  116. ID=3-IAXI
  117. IF(IAXI.EQ.3)CALL ARRET(0)
  118. DO 45 L=1,NPG
  119. RPGT =0.D0
  120. DO 46 I=1,NP
  121. RPGT=RPGT+XYZ(ID,I)*FN(I,L)
  122. 46 CONTINUE
  123. RPG(L)=RPGT
  124. 45 CONTINUE
  125. C
  126. U=0.D0
  127. DO 47 L=1,NPG
  128. PGSQ(L)=PGSQ(L)*DEUPI*RPG(L)
  129. U=U+PGSQ(L)
  130. 47 CONTINUE
  131. AIRE=U
  132. C
  133. RETURN
  134. 1002 FORMAT(10(1X,1PE11.4))
  135. 1001 FORMAT(20(1X,I5))
  136. END
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  

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