Télécharger melbou.eso

Retour à la liste

Numérotation des lignes :

melbou
  1. C MELBOU SOURCE PV090527 25/01/07 14:42:50 12115
  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. -INC SMCOORD
  36. CHARACTER*8 NOM0
  37. C*****************************************************************************
  38. CMELBOU
  39. C write(6,*)' DEBUT MELBOU '
  40. XPETI=1.D-30
  41. IAXI=0
  42. IF(IFOMOD.EQ.0)IAXI=2
  43. C
  44. CALL LEKTAB(MTABD,'MAILLAGE',MELEME)
  45.  
  46. SEGACT MELEME
  47.  
  48. L1=72
  49. N1=MAX(1,LISOUS(/1))
  50. N2=1
  51. N3=6
  52. SEGINI MCHELM
  53.  
  54. C-------------------------------------------------------------------------
  55.  
  56. SEGACT MCHEL1,MCHEL2,MCHEL3
  57.  
  58. DO 191 L=1,MAX(1,LISOUS(/1))
  59. IPT1=MELEME
  60. IF(LISOUS(/1).NE.0)IPT1=LISOUS(L)
  61. SEGACT IPT1
  62.  
  63. NOM0 = NOMS(IPT1.ITYPEL)//' '
  64. CALL KALPBG(NOM0,'FONFORM ',IZFFM)
  65. SEGACT IZFFM
  66. IZHR=KZHR(1)
  67. IZF1=KTP(1)
  68. IZH2=KZHR(2)
  69. SEGACT IZHR*MOD
  70.  
  71. NES=GR(/1)
  72. NPG=GR(/3)
  73.  
  74. NBNN =IPT1.NUM(/1)
  75. NBELEM=IPT1.NUM(/2)
  76. SEGINI MCHAML
  77.  
  78. N1PTEL=NPG*IDIM
  79. N1EL =NBELEM
  80. N2PTEL=0
  81. N2EL=0
  82. IMACHE(L)=IPT1
  83. ICHAML(L)=MCHAML
  84.  
  85. SEGINI MELVAL
  86. IELVAL(1)=MELVAL
  87.  
  88.  
  89. MCHAM1=MCHEL1.ICHAML(L)
  90. SEGACT MCHAM1
  91. MELVA1=MCHAM1.IELVAL(1)
  92. SEGACT MELVA1
  93. NIL1=MELVA1.VELCHE(/2)
  94. IF(NIL1.EQ.1)THEN
  95. IK1=1
  96. ELSE
  97. IK1=0
  98. ENDIF
  99. MCHAM2=MCHEL2.ICHAML(L)
  100. SEGACT MCHAM2
  101. MELVA2=MCHAM2.IELVAL(1)
  102. SEGACT MELVA2
  103. NIL2=MELVA2.VELCHE(/2)
  104. IF(NIL2.EQ.1)THEN
  105. IK2=1
  106. ELSE
  107. IK2=0
  108. ENDIF
  109.  
  110. MCHAM3=MCHEL3.ICHAML(L)
  111. SEGACT MCHAM3
  112. MELVA3=MCHAM3.IELVAL(1)
  113. SEGACT MELVA3
  114. NIL3=MELVA3.VELCHE(/2)
  115. IF(NIL3.EQ.1)THEN
  116. IK3=1
  117. ELSE
  118. IK3=0
  119. ENDIF
  120.  
  121. DO 192 K=1,N1EL
  122. NK1=K + IK1*(1 - K)
  123. NK2=K + IK2*(1 - K)
  124. NK3=K + IK3*(1 - K)
  125. DO 194 N=1,IDIM
  126. DO 194 LG=1,NPG
  127. VELCHE(LG+(N-1)*NPG,K)=MELVA1.VELCHE(LG+(N-1)*NPG,NK1)*
  128. & (MELVA3.VELCHE(LG,NK3) - MELVA2.VELCHE(LG,NK2))
  129. 194 CONTINUE
  130. 192 CONTINUE
  131.  
  132.  
  133. SEGSUP MELVA1,MELVA2,MELVA3
  134. SEGSUP MCHAM1,MCHAM2,MCHAM3
  135.  
  136. SEGDES MELVAL
  137. SEGDES IPT1,MCHAML
  138. SEGSUP IZFFM,IZHR,IZF1,IZH2
  139. 191 CONTINUE
  140. SEGDES MCHELM,MELEME
  141. SEGSUP MCHEL1,MCHEL2,MCHEL3
  142. MCHELS=MCHELM
  143.  
  144. C*************************************************************************
  145.  
  146. c write(6,*)' FIN MELBOU '
  147. RETURN
  148. 1001 FORMAT(20(1X,I5))
  149. 1002 FORMAT(10(1X,1PE11.4))
  150. END
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  

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