Télécharger melbou.eso

Retour à la liste

Numérotation des lignes :

melbou
  1. C MELBOU SOURCE BP208322 16/11/18 21:19:10 9177
  2. SUBROUTINE MELBOU(MTABD,MCHELS,MCHEL1,MCHEL2,MCHEL3)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. C***********************************************************************
  6. C
  7. C Ce Sp crée un MCHAML résultat Boussinesq
  8. C Le MCHAML en retour est jetable et est calcule aux pts d'integrations
  9. C Quel que soit le type de l'objet récupéré, l'objet retourné est un
  10. C MCHAML.
  11. C----------------------------------------------------------------------
  12. C
  13. C
  14. C----------------------------------------------------------------------
  15. C HISTORIQUE : 20/10/01 : Création
  16. C
  17. C HISTORIQUE :
  18. C
  19. C
  20. C---------------------------
  21. C Paramètres Entrée/Sortie :
  22. C---------------------------
  23. C
  24. C E/ MTABD : Objet model de la zone
  25. C----------------------------------------------------------------------
  26. C************************************************************************
  27.  
  28. -INC SIZFFB
  29. POINTEUR IZF1.IZFFM,IZH2.IZHR,IZFD.IZFFM
  30. -INC SMCHAML
  31. -INC SMELEME
  32. -INC PPARAM
  33. -INC CCOPTIO
  34. -INC CCGEOME
  35. CHARACTER*8 NOM0
  36. C*****************************************************************************
  37. CMELBOU
  38. C write(6,*)' DEBUT MELBOU '
  39. XPETI=1.D-30
  40. IAXI=0
  41. IF(IFOMOD.EQ.0)IAXI=2
  42. C
  43. CALL LEKTAB(MTABD,'MAILLAGE',MELEME)
  44.  
  45. SEGACT MELEME
  46.  
  47. L1=72
  48. N1=MAX(1,LISOUS(/1))
  49. N2=1
  50. N3=6
  51. SEGINI MCHELM
  52.  
  53. C-------------------------------------------------------------------------
  54.  
  55. SEGACT MCHEL1,MCHEL2,MCHEL3
  56.  
  57. DO 191 L=1,MAX(1,LISOUS(/1))
  58. IPT1=MELEME
  59. IF(LISOUS(/1).NE.0)IPT1=LISOUS(L)
  60. SEGACT IPT1
  61.  
  62. NOM0 = NOMS(IPT1.ITYPEL)//' '
  63. CALL KALPBG(NOM0,'FONFORM ',IZFFM)
  64. SEGACT IZFFM
  65. IZHR=KZHR(1)
  66. IZF1=KTP(1)
  67. IZH2=KZHR(2)
  68. SEGACT IZHR*MOD
  69.  
  70. NES=GR(/1)
  71. NPG=GR(/3)
  72.  
  73. NBNN =IPT1.NUM(/1)
  74. NBELEM=IPT1.NUM(/2)
  75. SEGINI MCHAML
  76.  
  77. N1PTEL=NPG*IDIM
  78. N1EL =NBELEM
  79. N2PTEL=0
  80. N2EL=0
  81. IMACHE(L)=IPT1
  82. ICHAML(L)=MCHAML
  83.  
  84. SEGINI MELVAL
  85. IELVAL(1)=MELVAL
  86.  
  87.  
  88. MCHAM1=MCHEL1.ICHAML(L)
  89. SEGACT MCHAM1
  90. MELVA1=MCHAM1.IELVAL(1)
  91. SEGACT MELVA1
  92. NIL1=MELVA1.VELCHE(/2)
  93. IF(NIL1.EQ.1)THEN
  94. IK1=1
  95. ELSE
  96. IK1=0
  97. ENDIF
  98. MCHAM2=MCHEL2.ICHAML(L)
  99. SEGACT MCHAM2
  100. MELVA2=MCHAM2.IELVAL(1)
  101. SEGACT MELVA2
  102. NIL2=MELVA2.VELCHE(/2)
  103. IF(NIL2.EQ.1)THEN
  104. IK2=1
  105. ELSE
  106. IK2=0
  107. ENDIF
  108.  
  109. MCHAM3=MCHEL3.ICHAML(L)
  110. SEGACT MCHAM3
  111. MELVA3=MCHAM3.IELVAL(1)
  112. SEGACT MELVA3
  113. NIL3=MELVA3.VELCHE(/2)
  114. IF(NIL3.EQ.1)THEN
  115. IK3=1
  116. ELSE
  117. IK3=0
  118. ENDIF
  119.  
  120. DO 192 K=1,N1EL
  121. NK1=K + IK1*(1 - K)
  122. NK2=K + IK2*(1 - K)
  123. NK3=K + IK3*(1 - K)
  124. DO 194 N=1,IDIM
  125. DO 194 LG=1,NPG
  126. VELCHE(LG+(N-1)*NPG,K)=MELVA1.VELCHE(LG+(N-1)*NPG,NK1)*
  127. & (MELVA3.VELCHE(LG,NK3) - MELVA2.VELCHE(LG,NK2))
  128. 194 CONTINUE
  129. 192 CONTINUE
  130.  
  131.  
  132. SEGSUP MELVA1,MELVA2,MELVA3
  133. SEGSUP MCHAM1,MCHAM2,MCHAM3
  134.  
  135. SEGDES MELVAL
  136. SEGDES IPT1,MCHAML
  137. SEGSUP IZFFM,IZHR,IZF1,IZH2
  138. 191 CONTINUE
  139. SEGDES MCHELM,MELEME
  140. SEGSUP MCHEL1,MCHEL2,MCHEL3
  141. MCHELS=MCHELM
  142.  
  143. C*************************************************************************
  144.  
  145. c write(6,*)' FIN MELBOU '
  146. RETURN
  147. 1001 FORMAT(20(1X,I5))
  148. 1002 FORMAT(10(1X,1PE11.4))
  149. END
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  

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