Télécharger trj902.eso

Retour à la liste

Numérotation des lignes :

trj902
  1. C TRJ902 SOURCE CHAT 05/01/13 03:48:29 5004
  2. SUBROUTINE TRJ902(XNOEU,X,G,IER)
  3. C
  4. C
  5. C
  6. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  7. C
  8. C CALCUL DES COORDONNEES DE REFERENCES DANS UN QUA9
  9. C XNOEU COORDONNEES DES SOMMETS
  10. C X REELLES
  11. C G REFERENCES
  12. C IER INDICE D'ERREUR
  13. C
  14. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  15. C
  16. C
  17. C
  18. IMPLICIT INTEGER(I-N)
  19. IMPLICIT REAL*8 (A-H,O-Z)
  20. C
  21. DIMENSION XNOEU(2,9),X(2),XN(9),G(2),DX(2),DG(2)
  22. DIMENSION Y(2),D1XN(9),D2XN(9),A(2,2),B(2,2)
  23.  
  24. -INC PPARAM
  25. -INC CCOPTIO
  26. C
  27. C
  28. NOEL=9
  29. C IDIM=2
  30. C
  31. C
  32. C
  33. C
  34. G(1)=0.5D0
  35. G(2)=0.5D0
  36. C
  37. N1=15
  38. DO 10 K=1,N1
  39. C
  40. XN(1)= 0.25D0*(1.D0-G(1))*(1.D0-G(2))*G(1)*G(2)
  41. XN(2)=-0.5D0 *(1.D0-G(1)*G(1))*(1.D0-G(2))*G(2)
  42. XN(3)=-0.25D0*(1.D0+G(1))*(1.D0-G(2))*G(1)*G(2)
  43. XN(4)= 0.5D0 *(1.D0+G(1))*(1.D0-G(2)*G(2))*G(2)
  44. XN(5)= 0.25D0*(1.D0+G(1))*(1.D0+G(2))*G(1)*G(2)
  45. XN(6)= 0.5D0 *(1.D0-G(1)*G(1))*(1.D0+G(2))*G(2)
  46. XN(7)=-0.25D0*(1.D0-G(1))*(1.D0+G(2))*G(1)*G(2)
  47. XN(8)=-0.5D0 *(1.D0-G(1))*(1.D0-G(2)*G(2))*G(1)
  48. XN(9)= (1.D0-G(1)*G(1))*(1.D0-G(2)*G(2))
  49. C
  50. Y(1)=0.D0
  51. Y(2)=0.D0
  52. DO 1 I =1,NOEL
  53. Y(1)=Y(1)+XN(I)*XNOEU(1,I)
  54. Y(2)=Y(2)+XN(I)*XNOEU(2,I)
  55. 1 CONTINUE
  56. C
  57. DX(1)=X(1)-Y(1)
  58. DX(2)=X(2)-Y(2)
  59. C
  60. D1XN(1)= 0.25D0*(1.D0-2.D0*G(1))*(1.D0-G(2))*G(2)
  61. D1XN(2)= (1.D0-G(2))*G(1)*G(2)
  62. D1XN(3)=-0.25D0*(1.D0+2.D0*G(1))*(1.D0-G(2))*G(2)
  63. D1XN(4)= 0.5D0 *(1.D0+2.D0*G(1))*(1.D0-G(2)*G(2))
  64. D1XN(5)= 0.25D0*(1.D0+2.D0*G(1))*(1.D0+G(2))*G(2)
  65. D1XN(6)=- (1.D0+G(2))*G(1)*G(2)
  66. D1XN(7)=-0.25D0*(1.D0-2.D0*G(1))*(1.D0+G(2))*G(2)
  67. D1XN(8)=-0.5D0 *(1.D0-2.D0*G(1))*(1.D0-G(2)*G(2))
  68. D1XN(9)=-2.D0 *(1.D0-G(2)*G(2))*G(1)
  69. C
  70. D2XN(1)= 0.25D0*(1.D0-G(1))*(1.D0-2.D0*G(2))*G(1)
  71. D2XN(2)=-0.5D0 *(1.D0-G(1)*G(1))*(1.D0-2.D0*G(2))
  72. D2XN(3)=-0.25D0*(1.D0+G(1))*(1.D0-2.D0*G(2))*G(1)
  73. D2XN(4)=- (1.D0+G(1))*G(1)*G(2)
  74. D2XN(5)= 0.25D0*(1.D0+G(1))*(1.D0+2.D0*G(2))*G(1)
  75. D2XN(6)= 0.5D0 *(1.D0-G(1)*G(1))*(1.D0+2.D0*G(2))
  76. D2XN(7)=-0.25D0*(1.D0-G(1))*(1.D0+2.D0*G(2))*G(1)
  77. D2XN(8)= (1.D0-G(1))*G(1)*G(2)
  78. D2XN(9)=-2.D0 *(1.D0-G(1)*G(1))*G(2)
  79. C
  80. A(1,1)=0.D0
  81. A(1,2)=0.D0
  82. A(2,1)=0.D0
  83. A(2,2)=0.D0
  84. C
  85. DO 4 I=1,NOEL
  86. A(1,1)=D1XN(I)*XNOEU(1,I)+A(1,1)
  87. A(1,2)=D1XN(I)*XNOEU(2,I)+A(1,2)
  88. A(2,1)=D2XN(I)*XNOEU(1,I)+A(2,1)
  89. A(2,2)=D2XN(I)*XNOEU(2,I)+A(2,2)
  90. 4 CONTINUE
  91. C
  92. DEL=A(1,1)*A(2,2)-A(2,1)*A(1,2)
  93. B(1,1)=1.D0/DEL*A(2,2)
  94. B(2,2)=1.D0/DEL*A(1,1)
  95. B(1,2)=-1.D0/DEL*A(2,1)
  96. B(2,1)=-1.D0/DEL*A(1,2)
  97. C
  98. DG(1)=B(1,1)*DX(1)+B(1,2)*DX(2)
  99. DG(2)=B(2,1)*DX(1)+B(2,2)*DX(2)
  100. C
  101. G(1)=DG(1)+G(1)
  102. G(2)=DG(2)+G(2)
  103. C
  104. DA1=ABS(DG(1))
  105. DA2=ABS(DG(2))
  106. IF(DA1.LE.0.0001.AND.DA2.LE.0.0001)GO TO 51
  107. 10 CONTINUE
  108. C
  109. C
  110. C IF(K.GE.N1)WRITE(6,101)X(1),X(2),DA1,DA2
  111. MOTERR(1:8)='TRJ902 '
  112. REAERR(1)=X(1)
  113. REAERR(2)=X(2)
  114. REAERR(3)=0.
  115. C CALL ERREUR(-300)
  116. IER=-300
  117. 51 CONTINUE
  118. C G(1)=XG1
  119. C G(2)=YG1
  120. C
  121. RETURN
  122. 101 FORMAT(//,3X,' PB DE CONVERGENCE TRJ902 AU POINT SITUE EN '
  123. *,2(1PE12.5),/,3X,' CONVERGENCE RELATIVE ',2(1PE12.5))
  124. C
  125. END
  126.  
  127.  
  128.  

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