Télécharger lekmof.eso

Retour à la liste

Numérotation des lignes :

  1. C LEKMOF SOURCE BP208322 16/11/18 21:18:42 9177
  2. SUBROUTINE LEKMOF(MTABD,NU,MTABX,KINC,IHV,MCHELM,KPOIND,
  3. &MUG,MCHELG)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. C***********************************************************************
  7. C
  8. C Ce sous programme lit le NUième coefficient d'un opérateur, stocké
  9. C à l'indice ARGnu de la table KIZX de pointeur MTABX associée à
  10. C l'opérateur en cours de traitement.
  11. C Le coefficient est de type ENTIER, FLOTTANT, POINT, CHPOINT ou MOT.
  12. C Dans le cas MOT, on récupère la donnée se trouvant à l'indice MOT
  13. C de la table INCO.
  14. C Ce Sp lit lit le coefficient et rend un MCHAML quoi qu'il arrive
  15. C Le MCHAML en retour est jetable il est calcule aux pts d'integrations
  16. C----------------------------------------------------------------------
  17. C HISTORIQUE : 20/10/01 : Création
  18. C
  19. C HISTORIQUE :
  20. C
  21. C
  22. C---------------------------
  23. C Paramètres Entrée/Sortie :
  24. C---------------------------
  25. C
  26. C E/ MTABD : Objet model de la zone
  27. C E/ NU : Rang du coefficient à aller chercher (ENTIER)
  28. C E/ MTABX : Pointeur de la table contenant le coefficient
  29. C E/ KINC : Pointeur de la table INCO dans laquelle on va chercher
  30. C les valeurs des indices lorsque ceux-ci sont des MOTS.
  31. C E/ IHV=0 CHPOINT SCALAIRE ou FLOTTANT
  32. C IHV=1 CHPOINT VECTEUR ou POINT
  33. C E/ MUG=0 On rend le coefficient tel quel
  34. C E/ MUG=1 Si le coefficient est un CHPOINT On retourne en plus le gradient
  35. C /S MCHELM : Chamelem pts d'intégration pour le COEF
  36. C /S MCHELG : Chamelem pts d'intégration pour le Gradient du coef (=0 sinon)
  37. C E/ KPOIND : ENTIER type du support GÉométrique DUAL du shéma
  38. C d'intégration => pour la création du Chamelem
  39. C----------------------------------------------------------------------
  40. C KPOIN = 0->SOMMET 1-> FACE 2-> CENTRE 3-> CENTREP0 4-> CENTREP1 5-> MSOMMET
  41. C----------------------------------------------------------------------
  42. C************************************************************************
  43.  
  44. -INC SMCHAML
  45. -INC SMCHPOI
  46. -INC SMELEME
  47. -INC SMCOORD
  48. -INC CCOPTIO
  49. -INC CCGEOME
  50. CHARACTER*8 TYPE,NOM,NARG,TYPM
  51. LOGICAL LOGI
  52. DIMENSION XPOI(3)
  53. C*****************************************************************************
  54. CLEKMOF
  55. C
  56. C- Récupération du TYPE du NUième argument de l'opérateur
  57. C
  58. C write(6,*)' DEBUT LEKMOF NU=',NU
  59.  
  60. IF (NU.LE.0 .OR. NU.GE.100) THEN
  61. INTERR(1) = NU
  62. INTERR(2) = 1
  63. INTERR(3) = 99
  64. CALL ERREUR(789)
  65. RETURN
  66. ENDIF
  67. IF (NU.LE.9) THEN
  68. WRITE(NARG,FMT='(A3,I1)')'ARG',Nu
  69. ELSE
  70. WRITE(NARG,FMT='(A3,I2)')'ARG',Nu
  71. ENDIF
  72. TYPE = ' '
  73. CALL LENCHA(NARG,LC)
  74. c write(6,*)' AVANT ACCTAB type=',type,NARG(1:LC),nom
  75. CALL ACCTAB(MTABX,'MOT', 0,0.D0,NARG(1:LC),LOGI, 0,
  76. & TYPE ,IVAL,COEF, NOM,LOGI,MCHPOI)
  77.  
  78. c write(6,*)' TYPE,COEF,MCHPOI,IVAL=',TYPE,COEF,MCHPOI,IVAL
  79. IF(TYPE.EQ.'ENTIER')COEF=FLOAT(IVAL)
  80. IF(TYPE.EQ.'MOT')THEN
  81. TYPE=' '
  82. CALL ACMO(KINC,NOM,TYPE,MCHPOI)
  83.  
  84. c write(6,*)' NOM=',NOM,' TYPE,ip=',TYPE,MCHPOI
  85. IF(TYPE.EQ.'ENTIER')THEN
  86. CALL ACME(KINC,NOM,IVAL)
  87. COEF=FLOAT(IVAL)
  88. ELSEIF(TYPE.EQ.'FLOTTANT')THEN
  89. CALL ACMF(KINC,NOM,COEF)
  90. ENDIF
  91. ENDIF
  92.  
  93.  
  94. IF(TYPE.EQ.'POINT')THEN
  95. IP=MCHPOI
  96. XPOI(1) = XCOOR((IP-1)*(IDIM+1) +1)
  97. XPOI(2) = XCOOR((IP-1)*(IDIM+1) +2)
  98. IF (IDIM.EQ.3) XPOI(3) = XCOOR((IP-1)*(IDIM+1) +3)
  99. ENDIF
  100.  
  101. c write(6,*)'TYPE=',TYPE
  102. IF(TYPE.NE.'FLOTTANT'.AND.TYPE.NE.'ENTIER'.AND.
  103. & TYPE.NE.'CHPOINT '.AND.TYPE.NE.'MCHAML '.AND.IHV.EQ.0)THEN
  104. C On ne veut pas d'objet de type %m1:8
  105. MOTERR(1: 8) = TYPE
  106. CALL ERREUR(39)
  107. RETURN
  108. ENDIF
  109.  
  110. IF(TYPE.NE.'POINT'.AND.
  111. & TYPE.NE.'CHPOINT '.AND.TYPE.NE.'MCHAML '.AND.IHV.EQ.1)THEN
  112. C On ne veut pas d'objet de type %m1:8
  113. MOTERR(1: 8) = TYPE
  114. CALL ERREUR(39)
  115. RETURN
  116. ENDIF
  117.  
  118. TYPM=' '
  119. CALL ACMO(MTABX,'DOMZ',TYPM,IMDL)
  120. CALL MELMOF(IMDL,MTABD,IHV,TYPE,COEF,XPOI,MCHPOI,MCHELM,KPOIND,
  121. &MUG,MCHELG)
  122.  
  123. c write(6,*)' FIN LEKMOF MUG=',MUG
  124. RETURN
  125. 1001 FORMAT(20(1X,I5))
  126. 1002 FORMAT(10(1X,1PE11.4))
  127. END
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  

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