Télécharger gradge.eso

Retour à la liste

Numérotation des lignes :

gradge
  1. C GRADGE SOURCE KK2000 14/04/10 21:15:07 8032
  2. SUBROUTINE GRADGE(ICEN,IELTFA,IFAC,IFACEL,INORM,ICHCL,ICHAM)
  3. C------------------------------------------------------------------
  4. C PROJET : CASTEM 2000
  5. C
  6. C NOM : GRADGE
  7. C
  8. C DESCRIPTION : Cette subroutine est appellee par
  9. C PENT15 et calcule les coefficients a appliquer
  10. C sur la fonction dont on veut calculer le gradient
  11. C pour chacune des coordonnees. Ces coefficients
  12. C sont stockes dans ICHAM
  13. C
  14. C LANGAGE : FORTRAN 77 + ESOPE 2000
  15. C
  16. C AUTEUR : A. BECCANTINI, SFME/LTMF
  17. C
  18. C-----------------------------------------------------------------
  19. C
  20. C APPELES (E/S) :
  21. C
  22. C APPELES (Calcul): CONSDU, RSETXI, ELKONF
  23. C
  24. C-----------------------------------------------------------------
  25. C
  26. C INPUT : ICEN : 'CENTRE' points
  27. C
  28. C IELTFA : Element-faces
  29. C
  30. C IFAC : 'FACE' points
  31. C
  32. C IFACEL : Left center - face center -right center
  33. C Same order as IFAC
  34. C
  35. C INORM : Face normals CHAMPOINT
  36. C
  37. C ICHCL : BC CHAMPOINT
  38. C
  39. C
  40. C OUTPUT : ICHAM : MCHEML which contains the coefficients to
  41. C compute gradients.
  42. C
  43. C-----------------------------------------------------------------
  44. C
  45. C HISTORIQUE (Anomalies et modifications eventuelles)
  46. C
  47. C HISTORIQUE : 14.10.98, Creation
  48. C
  49. C-----------------------------------------------------------------
  50. C
  51. C
  52. C
  53. IMPLICIT INTEGER(I-N)
  54. IMPLICIT REAL*8(A-H,O-Z)
  55. C
  56. INTEGER ICEN, IELTFA, IFACEL, INORM, ICHCL, ICHAM, IFAC
  57. & ,MLECOE
  58. C
  59.  
  60. -INC PPARAM
  61. -INC CCOPTIO
  62. -INC SMLENTI
  63. -INC SMELEME
  64. C
  65. C**** The FACE and CENTRE neighbors of each 'CENTRE' points
  66. C Two cases:
  67. C - If the 'FACE' point belongs to just one element, it belongs to
  68. C the neighbors of the element 'CENTRE'
  69. C - If the 'FACE' point belongs to two elements, the elements CENTREs
  70. C are neighbors
  71. C
  72. CALL RLENCE(ICEN,IELTFA,IFAC,IFACEL,MELEME)
  73. IF(IERR.NE.0) GOTO 9999
  74. C
  75. C RLENCE creates MELEME,
  76. C the mesh which contains the neighbors of the CENTRE and
  77. C the CENTRE itself
  78. CC
  79. CC**** Test RLENCE
  80. CC
  81. C SEGACT MELEME
  82. C NBSOUS=MELEME.LISOUS(/1)
  83. C JG=MAX(NBSOUS,1)
  84. C SEGINI MLENTI
  85. C IF (JG.EQ.1)THEN
  86. C MLENTI.LECT(1)=MELEME
  87. C ELSE
  88. C DO ISOUS=1,JG,1
  89. C MLENTI.LECT(ISOUS)=MELEME.LISOUS(ISOUS)
  90. C ENDDO
  91. C ENDIF
  92. C
  93. C DO ISOUS=1,JG,1
  94. C WRITE(IOIMP,*) 'SGP :', ISOUS, MLENTI.LECT(ISOUS)
  95. C IPT1=MLENTI.LECT(ISOUS)
  96. C SEGACT IPT1
  97. C NBNN=IPT1.NUM(/1)
  98. C NBELEM=IPT1.NUM(/2)
  99. C DO IELEM=1,NBELEM,1
  100. C WRITE(IOIMP,*) 'Center =', IPT1.NUM(NBNN,IELEM)
  101. C WRITE(IOIMP,*) 'Neighbors =',
  102. C & (IPT1.NUM(IVOI,IELEM),IVOI=1,(NBNN-1))
  103. C ENDDO
  104. C ENDDO
  105. CC
  106. CC**** Fin test RLENCE
  107. CC
  108. C
  109. CALL RLEXCE(MELEME,ICEN,IFAC,INORM,ICHCL,MLECOE)
  110. IF(IERR.NE.0) GOTO 9999
  111. C
  112. C MLECOE : list of integers.
  113. C MLECOE.LECT(I) is the pointer of the matrix of real
  114. C which contains the coefficient of the i-th centre
  115. C to compute its gradient as function of the values on
  116. C its neighbors.
  117. C
  118. CALL RLXCE1(MELEME,MLECOE,ICHAM)
  119. IF(IERR.NE.0) GOTO 9999
  120. C
  121. 9999 RETURN
  122. END
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  

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