Télécharger dbit.eso

Retour à la liste

Numérotation des lignes :

  1. C DBIT SOURCE CHAT 06/08/24 21:25:50 5529
  2. SUBROUTINE DBIT
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. C************************************************************************
  6. C
  7. C OPERATEUR DBIT
  8. C CALCUL DU DEBIT D'UN VECTEUR A TRAVERS UNE LIGNE ou une SURFACE
  9. C
  10. C SYNTAXE DE1 = DBIT CHT1 OBJM ;
  11. C
  12. C CHT1 : OBJET CHAMPOINT DE TYPE VECT SOMMET
  13. C OBJM : Objet modèle 'Navier_Stokes'
  14. C : a la rigueur table DOMAINE
  15. C DE1 : FLOTTANT
  16. C
  17. C
  18. C************************************************************************
  19. CHARACTER*8 TYPE,LTAB(1),NOM
  20. -INC CCOPTIO
  21. -INC SMELEME
  22. POINTEUR MELES1.MELEME,IGEOME.MELEME
  23. -INC SMCHPOI
  24. POINTEUR IZTUU.MPOVAL
  25. -INC SMLENTI
  26. POINTEUR IZIPAD.MLENTI
  27. C***********************************************************************
  28. IMPR=0
  29. IKF =0
  30. NM=0
  31. 10 CONTINUE
  32. CALL LIRCHA(NOM,0,LCHAR)
  33. IF(LCHAR.NE.0.AND.NOM.EQ.'IMPR')THEN
  34. NM = NM+1
  35. IMPR=1
  36. IF(NM.LE.1)GO TO 10
  37. ENDIF
  38. IF(LCHAR.NE.0.AND.NOM.EQ.'ALGE')THEN
  39. NM = NM+1
  40. IKF =1
  41. IF(NM.LE.1)GO TO 10
  42. ENDIF
  43. *
  44. * Lecture du CHPOINT
  45. *
  46. CALL LIROBJ('CHPOINT',IZTU,1,IRETOU)
  47. IF(IRETOU.EQ.0) THEN
  48. C% Information manquante (objet CHPOINT) : pas de définition de la densité
  49. CALL ERREUR(839)
  50. RETURN
  51. ENDIF
  52. *
  53. * Lecture de l'objet modele 'Navier-Stokes' à la rigueur une table DOMAINE
  54. *
  55. CALL LITDMD(MMODEL,MTABD,IRETOU)
  56. IF(IRETOU.EQ.0)RETURN
  57. IF(MTABD.EQ.0)CALL LEKMOD(MMODEL,MTABD,INEFMD)
  58. C INEFMD=1 LINE =2 MACRO =3 QUADRATIQUE
  59.  
  60. CALL LICHT(IZTU,IZTUU,TYPE,IGEOME)
  61. *
  62. * On s'assure que le champ est du type VECT/*
  63. *
  64. NC=IZTUU.VPOCHA(/2)
  65.  
  66. IF(NC.NE.IDIM) THEN
  67. SEGDES IZTUU
  68. C Indice %m1:8 : Le %m9:16 n'a pas le bon nombre de composantes
  69. MOTERR( 1: 8) = ' '
  70. MOTERR( 9:16) = 'CHPOINT '
  71. CALL ERREUR(784)
  72. RETURN
  73. ENDIF
  74. *
  75. * On v‚rifie que le support du champ comprend le maillage
  76. * sur lequel on cherche le d‚bit.
  77. *
  78. CALL KRIPAD(IGEOME,IZIPAD)
  79. MLENTI=IZIPAD
  80.  
  81. CALL LEKTAB(MTABD,'SOMMET',MELES1)
  82. CALL LEKTAB(MTABD,'MAILLAGE',MELEME)
  83. IF (IERR.NE.0) RETURN
  84.  
  85. SEGACT MELES1
  86. NPM=MELES1.NUM(/2)
  87. DO 1 I=1,NPM
  88. I1=MELES1.NUM(1,I)
  89.  
  90. IF(LECT(I1).EQ.0)THEN
  91. SEGDES IZTUU
  92. C Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique
  93. MOTERR(1: 8) = ' '
  94. MOTERR(9:16) = 'CHPOINT '
  95. CALL ERREUR(788)
  96. SEGSUP IZIPAD
  97. SEGDES MELES1
  98. RETURN
  99. ENDIF
  100. 1 CONTINUE
  101. SEGDES IGEOME,MELES1
  102.  
  103.  
  104. *
  105. * Calcul effectif du d‚bit
  106. *
  107.  
  108. IAXI=0
  109. IF(IFOMOD.EQ.0)IAXI=2
  110. CALL KFDBIT(IZTUU,MELEME,IZIPAD,IAXI,Q,ULP,ULM,IMPR)
  111.  
  112. IF(IKF.EQ.0)THEN
  113. CALL ECRREE(Q)
  114. ELSE
  115. CALL ECRREE(ULM)
  116. CALL ECRREE(ULP)
  117. ENDIF
  118.  
  119.  
  120. SEGSUP IZIPAD
  121. RETURN
  122. END
  123.  
  124.  
  125.  

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