Télécharger rlxce1.eso

Retour à la liste

Numérotation des lignes :

rlxce1
  1. C RLXCE1 SOURCE CB215821 20/11/04 21:21:08 10766
  2. SUBROUTINE RLXCE1(MELEME,MLECOE,MCHELM)
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : RLXCE1
  8. C
  9. C DESCRIPTION : Appelle par GRADGE
  10. C
  11. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  12. C
  13. C AUTEUR : A. BECCANTINI
  14. C
  15. C************************************************************************
  16. C
  17. C Input
  18. C
  19. C MELEME : SPG of MCHELM (CNETRE + neighbors)
  20. C
  21. C MLECOE : pointers of the list of coeff
  22. C
  23. C Output
  24. C
  25. C MCHELM : MCHAML which contains the coeff. to compute gradients
  26. C
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8(A-H,O-Z)
  29.  
  30. C
  31. INTEGER NSOU, JG, N3, L1, NBNN, NBELEM, ICEN, ISOUS
  32. & , N1PTEL, N1EL, N2PTEL, N2EL, IELEM, IVOI
  33. C
  34. INTEGER N1,N2
  35. SEGMENT MATRIX
  36. REAL*8 MAT(N1,N2)
  37. ENDSEGMENT
  38. C
  39.  
  40. -INC PPARAM
  41. -INC CCOPTIO
  42. -INC SMCHAML
  43. -INC SMLENTI
  44. -INC SMELEME
  45. POINTEUR MLESOU.MLENTI, MLECOE.MLENTI
  46. C
  47. C**** We recover the elemenary mesh of MELEME
  48. C
  49. SEGACT MELEME
  50. SEGACT MLECOE
  51. NSOU=MAX(MELEME.LISOUS(/1),1)
  52. JG=NSOU
  53. SEGINI MLESOU
  54. IF (NSOU.EQ.1)THEN
  55. MLESOU.LECT(1)=MELEME
  56. ELSE
  57. DO ISOUS=1,NSOU,1
  58. IPT1=MELEME.LISOUS(ISOUS)
  59. MLESOU.LECT(ISOUS)=IPT1
  60. ENDDO
  61. ENDIF
  62. C
  63. C**** Initialisation du MCHELM
  64. C
  65. N1=NSOU
  66. N2=IDIM
  67. N3=6
  68. L1=8
  69. SEGINI MCHELM
  70. MCHELM.TITCHE='Gradient'
  71. MCHELM.IFOCHE=IFOUR
  72. C
  73. ICEN=0
  74. DO ISOUS = 1, NSOU, 1
  75. IPT1=MLESOU.LECT(ISOUS)
  76. MCHELM.IMACHE(ISOUS)=IPT1
  77. SEGINI MCHAML
  78. MCHELM.ICHAML(ISOUS)=MCHAML
  79. MCHAML.NOMCHE(1)='alphax'
  80. MCHAML.NOMCHE(2)='alphay'
  81. MCHAML.TYPCHE(1)='REAL*8 '
  82. MCHAML.TYPCHE(2)='REAL*8 '
  83. SEGACT IPT1
  84. NBNN=IPT1.NUM(/1)
  85. NBELEM=IPT1.NUM(/2)
  86. SEGDES IPT1
  87. N1PTEL=NBNN
  88. N1EL=NBELEM
  89. N2PTEL=0
  90. N2EL=0
  91. SEGINI MELVA1
  92. SEGINI MELVA2
  93. MCHAML.IELVAL(1)=MELVA1
  94. MCHAML.IELVAL(2)=MELVA2
  95. IF(IDIM.EQ.3)THEN
  96. MCHAML.NOMCHE(3)='alphaz'
  97. MCHAML.TYPCHE(3)='REAL*8 '
  98. SEGINI MELVA3
  99. MCHAML.IELVAL(3)=MELVA3
  100. ENDIF
  101. DO IELEM=1,NBELEM,1
  102. ICEN=ICEN+1
  103. MATRIX=MLECOE.LECT(ICEN)
  104. SEGACT MATRIX
  105. DO IVOI=1,NBNN,1
  106. MELVA1.VELCHE(IVOI,IELEM)=MATRIX.MAT(2,IVOI)
  107. MELVA2.VELCHE(IVOI,IELEM)=MATRIX.MAT(3,IVOI)
  108. IF(IDIM.EQ.3) MELVA3.VELCHE(IVOI,IELEM)=
  109. $ MATRIX.MAT(4,IVOI)
  110. ENDDO
  111. SEGSUP MATRIX
  112. ENDDO
  113. SEGDES MCHAML
  114. SEGDES MELEME
  115. SEGDES MELVA1
  116. SEGDES MELVA2
  117. IF(IDIM.EQ.3) SEGDES MELVA3
  118. ENDDO
  119. C
  120. SEGDES MCHELM
  121. C
  122. SEGSUP MLECOE
  123. SEGSUP MLESOU
  124. IF(NSOU .GT. 1) SEGSUP MELEME
  125. C
  126. RETURN
  127. END
  128.  
  129.  
  130.  
  131.  
  132. C
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  

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