Télécharger kbor.eso

Retour à la liste

Numérotation des lignes :

kbor
  1. C KBOR SOURCE CB215821 26/08/24 21:17:00 12622
  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 1009 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 1010 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. 1010 CONTINUE
  125. 21 CONTINUE
  126. 1009 CONTINUE
  127.  
  128. CALL ECROBJ('CHPOINT ',MCHPO1)
  129.  
  130. RETURN
  131. 1001 FORMAT(20(1X,I5))
  132. 1008 FORMAT(10(1X,A8))
  133. 1002 FORMAT(10(1X,1PE11.4))
  134. END
  135.  
  136.  
  137.  

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