Télécharger rlxce1.eso

Retour à la liste

Numérotation des lignes :

rlxce1
  1. C RLXCE1 SOURCE PV090527 25/01/03 21:15:29 12111
  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. -INC SMCOORD
  33.  
  34. -INC SMCHAML
  35. -INC SMLENTI
  36. POINTEUR MLESOU.MLENTI, MLECOE.MLENTI
  37. -INC SMELEME
  38.  
  39. SEGMENT MATRIX
  40. REAL*8 MAT(N1,N2)
  41. ENDSEGMENT
  42.  
  43. INTEGER NSOU, JG, N3, L1, NBNN, NBELEM, ICEN, ISOUS
  44. & , N1PTEL, N1EL, N2PTEL, N2EL, IELEM, IVOI
  45.  
  46. INTEGER N1,N2
  47. C
  48. C**** We recover the elemenary mesh of MELEME
  49. C
  50. SEGACT MELEME
  51. SEGACT MLECOE
  52. NSOU=MAX(MELEME.LISOUS(/1),1)
  53. JG=NSOU
  54. SEGINI MLESOU
  55. IF (NSOU.EQ.1)THEN
  56. MLESOU.LECT(1)=MELEME
  57. ELSE
  58. DO ISOUS=1,NSOU,1
  59. IPT1=MELEME.LISOUS(ISOUS)
  60. MLESOU.LECT(ISOUS)=IPT1
  61. ENDDO
  62. ENDIF
  63. C
  64. C**** Initialisation du MCHELM
  65. C
  66. N1=NSOU
  67. N2=IDIM
  68. N3=6
  69. L1=8
  70. SEGINI MCHELM
  71. MCHELM.TITCHE='Gradient'
  72. MCHELM.IFOCHE=IFOUR
  73. C
  74. ICEN=0
  75. DO ISOUS = 1, NSOU, 1
  76. IPT1=MLESOU.LECT(ISOUS)
  77. MCHELM.IMACHE(ISOUS)=IPT1
  78. MCHELM.CONCHE(ISOUS)=' '
  79. MCHELM.INFCHE(ISOUS,6)=1
  80. SEGINI MCHAML
  81. MCHELM.ICHAML(ISOUS)=MCHAML
  82. MCHAML.NOMCHE(1)='alphax'
  83. MCHAML.NOMCHE(2)='alphay'
  84. MCHAML.TYPCHE(1)='REAL*8 '
  85. MCHAML.TYPCHE(2)='REAL*8 '
  86. SEGACT IPT1
  87. NBNN=IPT1.NUM(/1)
  88. NBELEM=IPT1.NUM(/2)
  89. SEGDES IPT1
  90. N1PTEL=NBNN
  91. N1EL=NBELEM
  92. N2PTEL=0
  93. N2EL=0
  94. SEGINI MELVA1
  95. SEGINI MELVA2
  96. MCHAML.IELVAL(1)=MELVA1
  97. MCHAML.IELVAL(2)=MELVA2
  98. IF(IDIM.EQ.3)THEN
  99. MCHAML.NOMCHE(3)='alphaz'
  100. MCHAML.TYPCHE(3)='REAL*8 '
  101. SEGINI MELVA3
  102. MCHAML.IELVAL(3)=MELVA3
  103. ENDIF
  104. DO IELEM=1,NBELEM,1
  105. ICEN=ICEN+1
  106. MATRIX=MLECOE.LECT(ICEN)
  107. SEGACT MATRIX
  108. DO IVOI=1,NBNN,1
  109. MELVA1.VELCHE(IVOI,IELEM)=MATRIX.MAT(2,IVOI)
  110. MELVA2.VELCHE(IVOI,IELEM)=MATRIX.MAT(3,IVOI)
  111. IF(IDIM.EQ.3) MELVA3.VELCHE(IVOI,IELEM)=
  112. $ MATRIX.MAT(4,IVOI)
  113. ENDDO
  114. SEGSUP MATRIX
  115. ENDDO
  116. SEGDES MCHAML
  117. SEGDES MELEME
  118. SEGDES MELVA1
  119. SEGDES MELVA2
  120. IF(IDIM.EQ.3) SEGDES MELVA3
  121. ENDDO
  122. C
  123. SEGDES MCHELM
  124. C
  125. SEGSUP MLECOE
  126. SEGSUP MLESOU
  127. IF(NSOU .GT. 1) SEGSUP MELEME
  128. C
  129. RETURN
  130. END
  131.  
  132.  
  133.  
  134.  

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