Télécharger rlxce1.eso

Retour à la liste

Numérotation des lignes :

rlxce1
  1. C RLXCE1 SOURCE OF166741 24/10/03 21:15:40 12022
  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. -INC PPARAM
  31. -INC CCOPTIO
  32.  
  33. -INC SMCHAML
  34. -INC SMLENTI
  35. POINTEUR MLESOU.MLENTI, MLECOE.MLENTI
  36. -INC SMELEME
  37.  
  38. SEGMENT MATRIX
  39. REAL*8 MAT(N1,N2)
  40. ENDSEGMENT
  41.  
  42. INTEGER NSOU, JG, N3, L1, NBNN, NBELEM, ICEN, ISOUS
  43. & , N1PTEL, N1EL, N2PTEL, N2EL, IELEM, IVOI
  44.  
  45. INTEGER N1,N2
  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. MCHELM.CONCHE(ISOUS)=' '
  78. MCHELM.INFCHE(ISOUS,6)=1
  79. SEGINI MCHAML
  80. MCHELM.ICHAML(ISOUS)=MCHAML
  81. MCHAML.NOMCHE(1)='alphax'
  82. MCHAML.NOMCHE(2)='alphay'
  83. MCHAML.TYPCHE(1)='REAL*8 '
  84. MCHAML.TYPCHE(2)='REAL*8 '
  85. SEGACT IPT1
  86. NBNN=IPT1.NUM(/1)
  87. NBELEM=IPT1.NUM(/2)
  88. SEGDES IPT1
  89. N1PTEL=NBNN
  90. N1EL=NBELEM
  91. N2PTEL=0
  92. N2EL=0
  93. SEGINI MELVA1
  94. SEGINI MELVA2
  95. MCHAML.IELVAL(1)=MELVA1
  96. MCHAML.IELVAL(2)=MELVA2
  97. IF(IDIM.EQ.3)THEN
  98. MCHAML.NOMCHE(3)='alphaz'
  99. MCHAML.TYPCHE(3)='REAL*8 '
  100. SEGINI MELVA3
  101. MCHAML.IELVAL(3)=MELVA3
  102. ENDIF
  103. DO IELEM=1,NBELEM,1
  104. ICEN=ICEN+1
  105. MATRIX=MLECOE.LECT(ICEN)
  106. SEGACT MATRIX
  107. DO IVOI=1,NBNN,1
  108. MELVA1.VELCHE(IVOI,IELEM)=MATRIX.MAT(2,IVOI)
  109. MELVA2.VELCHE(IVOI,IELEM)=MATRIX.MAT(3,IVOI)
  110. IF(IDIM.EQ.3) MELVA3.VELCHE(IVOI,IELEM)=
  111. $ MATRIX.MAT(4,IVOI)
  112. ENDDO
  113. SEGSUP MATRIX
  114. ENDDO
  115. SEGDES MCHAML
  116. SEGDES MELEME
  117. SEGDES MELVA1
  118. SEGDES MELVA2
  119. IF(IDIM.EQ.3) SEGDES MELVA3
  120. ENDDO
  121. C
  122. SEGDES MCHELM
  123. C
  124. SEGSUP MLECOE
  125. SEGSUP MLESOU
  126. IF(NSOU .GT. 1) SEGSUP MELEME
  127. C
  128. RETURN
  129. END
  130.  
  131.  
  132.  

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