Télécharger lekmif.eso

Retour à la liste

Numérotation des lignes :

lekmif
  1. C LEKMIF SOURCE CB215821 20/11/25 13:33:34 10792
  2. SUBROUTINE LEKMIF(NUCOEF,MTABD,IHV,MCHELM,KPOIND)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. C***********************************************************************
  6. C
  7. C Ce sous programme lit un coefficient dans la pile des objets GIBIANE
  8. C Le coefficient attendu peut etre de type ENTIER, FLOTTANT, POINT, ou
  9. C CHPOINT.
  10. C Ce SP rend un MCHAML quoi qu'il arrive
  11. C Le MCHAML en retour est jetable et est calcule aux pts d'integrations
  12. C----------------------------------------------------------------------
  13. C HISTORIQUE : 20/10/01 : Création
  14. C
  15. C HISTORIQUE :
  16. C
  17. C---------------------------
  18. C Paramètres Entrée/Sortie :
  19. C---------------------------
  20. C
  21. C E/ NUCOEF : Rang du coefficient à aller chercher (ENTIER)
  22. C E/ MTABD : Objet model de la zone
  23. C E/ IHV=0 CHPOINT SCALAIRE ou FLOTTANT
  24. C IHV=1 CHPOINT VECTEUR ou POINT
  25. C /S MCHELM : Chamelem pts d'intégration pour le COEF
  26. C E/ KPOIND : ENTIER type du support GÉométrique DUAL du shéma
  27. C d'intégration => pour la création du Chamelem
  28. C----------------------------------------------------------------------
  29. C KPOIN = 0->SOMMET 1-> FACE 2-> CENTRE 3-> CENTREP0 4-> CENTREP1 5-> MSOMMET
  30. C----------------------------------------------------------------------
  31. C************************************************************************
  32.  
  33. -INC SMCHAML
  34. -INC SMCHPOI
  35. -INC SMELEME
  36. -INC SMCOORD
  37.  
  38. -INC PPARAM
  39. -INC CCOPTIO
  40. -INC CCGEOME
  41. CHARACTER*8 TYPE,TYPM
  42. DIMENSION XPOI(3)
  43. C*****************************************************************************
  44. CLEKMIF
  45. C write(6,*)' DEBUT LEKMIF NUCOEF=',NUCOEF,
  46. C &'MTABD=',MTABD
  47. XPETI=1.D-30
  48. IAXI=0
  49. IF(IFOMOD.EQ.0)IAXI=2
  50. TYPE=' '
  51. CALL QUETYP(TYPE,0,IRET)
  52. IF(IRET.EQ.0)THEN
  53. C Tache impossible. Probablement données erronées
  54. C CALL ERREUR(26)
  55. C Il manque la donnee du CHPOINT , MCHAML ou de la TABLE.
  56. C CALL ERREUR(686)
  57. C Il manque une donnée
  58. CALL ERREUR(641)
  59. RETURN
  60. ENDIF
  61. C write(6,*)' LEKMIF TYPE=',TYPE,ihv
  62.  
  63. IF(TYPE.NE.'FLOTTANT'.AND.TYPE.NE.'ENTIER'.AND.
  64. & TYPE.NE.'CHPOINT '.AND.IHV.EQ.0)THEN
  65. C On ne veut pas d'objet de type %m1:8
  66. MOTERR(1: 8) = TYPE
  67. CALL ERREUR(39)
  68. RETURN
  69. ENDIF
  70.  
  71. IF(TYPE.NE.'POINT'.AND.
  72. & TYPE.NE.'CHPOINT '.AND.IHV.EQ.1)THEN
  73. C On ne veut pas d'objet de type %m1:8
  74. MOTERR(1: 8) = TYPE
  75. CALL ERREUR(39)
  76. RETURN
  77. ENDIF
  78.  
  79. C-------------------------------------------------------------------------
  80. C__FLOTTANT
  81. IF(TYPE.EQ.'FLOTTANT'.OR.TYPE.EQ.'ENTIER'.OR.
  82. & TYPE.EQ.'POINT' )THEN
  83.  
  84. IF(TYPE.EQ.'FLOTTANT')THEN
  85. CALL LIRREE(COEF,0,IRET)
  86. ELSEIF(TYPE.EQ.'ENTIER')THEN
  87. CALL LIRENT(IVAL,0,IRET)
  88. COEF=FLOAT(IVAL)
  89. ELSEIF(TYPE.EQ.'POINT')THEN
  90. CALL LIROBJ(TYPE,IP,0,IRET)
  91. XPOI(1) = XCOOR((IP-1)*(IDIM+1) +1)
  92. XPOI(2) = XCOOR((IP-1)*(IDIM+1) +2)
  93. IF (IDIM.EQ.3) XPOI(3) = XCOOR((IP-1)*(IDIM+1) +3)
  94. ENDIF
  95.  
  96. C__CHPOINT
  97. ELSEIF(TYPE.EQ.'CHPOINT')THEN
  98. CALL LIROBJ(TYPE,MCHPOI,0,IRET)
  99. SEGACT MCHPOI
  100. ENDIF
  101.  
  102. IMDL=0
  103. CALL MELMOF(IMDL,MTABD,IHV,TYPE,COEF,XPOI,MCHPOI,MCHELM,KPOIND,
  104. & 0,MCHELG)
  105.  
  106.  
  107. C write(6,*)' FIN LEKMIF '
  108. RETURN
  109. 1001 FORMAT(20(1X,I5))
  110. 1002 FORMAT(10(1X,1PE11.4))
  111. END
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  

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