Télécharger kbor.eso

Retour à la liste

Numérotation des lignes :

kbor
  1. C KBOR SOURCE CB215821 20/11/25 13:30:49 10792
  2. SUBROUTINE KBOR(MCHPO1,MCHPO2)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. C----------------------------------------------------------------------
  6. C Surcharge du second membre par certaines valeurs en vue de traiter
  7. C les conditions aux limites de type Dirichlet en mecanique des fluides
  8. C----------------------------------------------------------------------
  9. C
  10. C SYNTAXE : CHP3 = KOPS CHP1 'CLIM' CHP2 ENTI1 ;
  11. C
  12. C 'CLIM' : Mot désignant l'option ad'hoc pour passer ici
  13. C CHP1 : Champoint contenant le second membre
  14. C CHP2 : Champoint de conditions aux limites
  15. C ENTI1 : Entier indiquant le type de surcharge
  16. C 0 -> 0 1 -> 1.E30 2 -> 1.E30*CHP2 3 -> CHP2
  17. C -1,-2,-3 -> on teste sur le nom des composantes et non sur
  18. C ux,uy,uz (meme specif que |ENTI1|)
  19. C CHP3 : Contient CHP1 surchargé suivant CHP2 et ENTI1
  20. C
  21. C----------------------------------------------------------------------
  22. C
  23. C--------------
  24. C Entree/Sortie
  25. C--------------
  26. C
  27. C E/S MCHPO1 : Pointeur de CHP1 en Entrée et de CHPO3 en sortie
  28. C E/ MCHPO2 : Pointeur de CHP2
  29. C
  30. C----------------------------------------------------------------------
  31. C Le pointeur de CHP3 écrase subtilement celui de CHP1 (!?)
  32. C----------------------------------------------------------------------
  33. -INC CCREEL
  34. -INC SMELEME
  35. POINTEUR MELEM1.MELEME,MELEM2.MELEME
  36. -INC SMCHPOI
  37. -INC PPARAM
  38. -INC SMLENTI
  39. CHARACTER*(LOCOMP) NMC1,NMC2,NMC3
  40. C
  41. IF (MCHPO1.EQ.0.OR.MCHPO2.EQ.0) THEN
  42. C 5 3 Erreur anormale.contactez votre support
  43. CALL ERREUR(5)
  44. RETURN
  45. ENDIF
  46. CALL LIRENT(IKAS,1,IRET)
  47. IF (IRET.EQ.0) RETURN
  48. IKA1=IKAS
  49. IKAS=ABS(IKAS)
  50. IF (IKAS.GE.4) THEN
  51. C 26 2 Tache impossible. Probablement données erronées
  52. CALL ERREUR(26)
  53. RETURN
  54. ENDIF
  55. CALL ECROBJ('CHPOINT',MCHPO1)
  56. CALL COPIER
  57. CALL LIROBJ('CHPOINT',MCHPO1,1,IRET)
  58. IF(IRET.EQ.0)RETURN
  59.  
  60. C write(6,*)' MCHPO1,MCHPO2=',MCHPO1,MCHPO2
  61. SEGACT MCHPO1,MCHPO2
  62. NSOUP1=MCHPO1.IPCHP(/1)
  63.  
  64. NSOUP2=MCHPO2.IPCHP(/1)
  65. C write(6,*)' NSOUP1,NSOUP2=',NSOUP1,NSOUP2
  66. DO 21 L2=1,NSOUP2
  67. MSOUP2=MCHPO2.IPCHP(L2)
  68. SEGACT MSOUP2
  69. MELEM2=MSOUP2.IGEOC
  70. SEGACT MELEM2
  71. NPT2=MELEM2.NUM(/2)
  72. NC2=MSOUP2.NOHARM(/1)
  73. MPOVA2=MSOUP2.IPOVAL
  74. SEGACT MPOVA2
  75. C write(6,*)' NC2,NPT2=',nc2,npt2
  76. DO 21 N2=1,NC2
  77. NMC2=MSOUP2.NOCOMP(N2)
  78.  
  79. DO 11 L1=1,NSOUP1
  80. C write(6,*)' L1=',L1
  81. MSOUP1=MCHPO1.IPCHP(L1)
  82. SEGACT MSOUP1
  83. MELEM1=MSOUP1.IGEOC
  84. SEGACT MELEM1
  85. NPT1=MELEM1.NUM(/2)
  86. NC1=MSOUP1.NOHARM(/1)
  87. MPOVA1=MSOUP1.IPOVAL
  88. SEGACT MPOVA1*MOD
  89. C write(6,*)' NC1,NPT1=',nc1,npt1
  90. DO 11 N1=1,NC1
  91. NMC1=MSOUP1.NOCOMP(N1)
  92. Correction ttmf3, le 18/08/99 : NMC3 non initialisée
  93. NMC3=NMC2
  94. C write(6,*)' NC1,NC2,NSOUP1,NSOUP2=',
  95. C &NC1,NC2,NSOUP1,NSOUP2
  96. IF(NMC2(1:1).EQ.'1')NMC3='UX '
  97. IF(NMC2(1:1).EQ.'2')NMC3='UY '
  98. IF(NMC2(1:1).EQ.'3')NMC3='UZ '
  99. IF(IKA1.LE.0)NMC3=NMC2
  100. IF(NMC1.NE.NMC3)GO TO 11
  101. CALL KRIPAD(MELEM1,MLENTI)
  102. DO 2 I2=1,NPT2
  103. I1=LECT(MELEM2.NUM(1,I2))
  104. IF(I1.EQ.0)GO TO 2
  105. IF(IKAS.EQ.0)THEN
  106. C MPOVA1.VPOCHA(I1,N1)=XPETIT
  107. MPOVA1.VPOCHA(I1,N1)=1.D-30
  108. ELSEIF(IKAS.EQ.1)THEN
  109. C MPOVA1.VPOCHA(I1,N1)=XGRAND
  110. MPOVA1.VPOCHA(I1,N1)=1.D30
  111. ELSEIF(IKAS.EQ.2)THEN
  112. C MPOVA1.VPOCHA(I1,N1)=MPOVA2.VPOCHA(I2,N2)*XGRAND
  113. MPOVA1.VPOCHA(I1,N1)=MPOVA2.VPOCHA(I2,N2)*1.D30
  114. ELSEIF(IKAS.EQ.3)THEN
  115. MPOVA1.VPOCHA(I1,N1)=MPOVA2.VPOCHA(I2,N2)
  116. ELSE
  117. * WRITE(6,*)' KOPS : CLIM IKAS=',IKAS,' NON PREVU '
  118. RETURN
  119. ENDIF
  120.  
  121. 2 CONTINUE
  122.  
  123. 11 CONTINUE
  124. 21 CONTINUE
  125.  
  126. CALL ECROBJ('CHPOINT ',MCHPO1)
  127.  
  128. RETURN
  129. 1001 FORMAT(20(1X,I5))
  130. 1008 FORMAT(10(1X,A8))
  131. 1002 FORMAT(10(1X,1PE11.4))
  132. END
  133.  
  134.  

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