Télécharger zkmtp.eso

Retour à la liste

Numérotation des lignes :

zkmtp
  1. C ZKMTP SOURCE CB215821 20/11/25 13:44:56 10792
  2. SUBROUTINE ZKMTP
  3. C************************************************************************
  4. C T
  5. C CALCUL DE C P
  6. C
  7. C MCHPOI = KMTP MATRAK IZB ;
  8. C
  9. C POINTEURS :
  10. C
  11. C MATRAK MATRICES ELEMENTAIRES DE LA DIVERGENCE (ALIAS "C")
  12. C IZB CHAMP DE PRESSION (SCAL ELEM SUR LA ZONE PRESSION)
  13. C MELEME OBJET MAILLAGE SUR LEQUEL REPOSE LA PRESSION
  14. C IZIPAD CORRESPONDANCE NUMER. GLOBALE --> NUMER. LOCALE
  15. C (DOMAINE SUR LEQUEL PORTE AP ET NON LA PRESSION)
  16. C MELEMG OBJET MAILLAGE SUR LEQUEL REPOSE LE GRADIENT DE PRESSION
  17. C C'EST UN OBJET MAILLAGE COMPOSE DE POI1.
  18. C
  19. C !!!!!!!!!!! QUI DOIT ETRE LE CHANGER MELEME POI1 !!!!!!!!!!!!!!!!!!!!
  20. C !!!!!!!!!!! ON NE VERIFIE MEME PAS (SCANDALEUX) !!!!!!!!!!!!!!!!!!!!
  21. C
  22. C EN SORTIE :
  23. C T
  24. C MCHPOI CONTIENT LE GRADIENT DE PRESSION C P
  25. C
  26. C ***********************************************************************
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8 (A-H,O-Z)
  29. CHARACTER*8 TYPE,TYPC
  30.  
  31. -INC PPARAM
  32. -INC CCOPTIO
  33. -INC SMELEME
  34. POINTEUR MELEMG.MELEME
  35. -INC SMLENTI
  36. POINTEUR IZIPAD.MLENTI
  37. C-INC SMMATRAKANC
  38. C*************************************************************************
  39. C
  40. C REPERAGE ET STOKAGE DES MATRICES ELEMENTAIRES puis assemblees
  41. C
  42.  
  43. * LGEOC SPG de la pression et/ou des multiplicateurs de Lagrange
  44. * (points CENTRE ) pour chaque operateur de contrainte
  45. * KGEOC SPG pour la totalite des points CENTRE.
  46. * KGEOS SPG pour la totalite des points SOMMET (Diagonale vitesse)
  47. * KLEMC Connectivites de l'ensemble des contraintes
  48. * LIZAFM(NBSOUS) contient les pointeurs IZAFM des sous-zones
  49.  
  50. SEGMENT MATRAK
  51. INTEGER LGEOC(NBOP),IDEBS(NBOP),IFINS(NBOP)
  52. INTEGER LIZAFM(NBSOUS)
  53. INTEGER IKAM0 (NBSOUS)
  54. INTEGER IMEM (NBELC)
  55. INTEGER KLEMC,KGEOS,KGEOC,KDIAG,KCAC,KIZCL,KIZGC
  56. ENDSEGMENT
  57.  
  58. SEGMENT IZAFM
  59. REAL*8 AM(NNELP,NP,IESP),RPGI(NELAX)
  60. ENDSEGMENT
  61.  
  62. POINTEUR IPMJ.IZAFM,IPMK.IZAFM
  63.  
  64. C*******************************************************************
  65. -INC SMCHPOI
  66. POINTEUR IZB.MCHPOI,IZBB.MPOVAL
  67. C***
  68.  
  69. C write(6,*)' DEBUT KMTP '
  70. TYPE='MATRAK'
  71. CALL LIROBJ(TYPE,MATRAK,1,IRET)
  72. IF(IRET.EQ.0)RETURN
  73.  
  74. TYPE='CHPOINT '
  75. CALL LIROBJ(TYPE,IZB,1,IRET)
  76. IF(IRET.EQ.0)RETURN
  77. CALL LICHT(IZB,IZBB,TYPC,IGEOMC)
  78.  
  79. CALL LIROBJ(TYPE,IZV,0,IRET)
  80. IF(IRET.EQ.0)IZV=0
  81.  
  82. SEGACT MATRAK
  83. MELEME=KLEMC
  84.  
  85. MELEMG=KGEOS
  86. CALL KRIPAD(MELEMG,IZIPAD)
  87. NC=IDIM
  88. TYPE='SOMMET'
  89. IF(IZV.EQ.0)THEN
  90. CALL CRCHPT(TYPE,MELEMG,NC,MCHPOI)
  91. CALL LICHT(MCHPOI,MPOVAL,TYPC,IGEOMS)
  92. NPT=VPOCHA(/1)
  93. ELSE
  94. CALL LICHT(IZV,IZVV,TYPC,IGEOMS)
  95. IF(IGEOMS.NE.MELEMG)THEN
  96. WRITE(6,*)'Supports geometriques non compatibles'
  97. RETURN
  98. ENDIF
  99. MCHPOI=0
  100. MPOVAL=IZVV
  101. NPT=VPOCHA(/1)
  102. IF(VPOCHA(/2).NE.IDIM)THEN
  103. WRITE(6,*)' Champoint inacceptable '
  104. RETURN
  105. ENDIF
  106.  
  107. ENDIF
  108.  
  109. SEGACT MELEME
  110.  
  111.  
  112.  
  113. NBSOUS=LISOUS(/1)
  114. IF(NBSOUS.EQ.0)NBSOUS=1
  115. KK=0
  116.  
  117. DO 13 KS=1,NBSOUS
  118. IF(NBSOUS.EQ.1)IPT1=MELEME
  119. IF(NBSOUS.NE.1)IPT1=LISOUS(KS)
  120. IZAFM=LIZAFM(KS)
  121. SEGACT IPT1,IZAFM
  122. C
  123. C
  124. NP=IPT1.NUM(/1)
  125. NEL=IPT1.NUM(/2)
  126. C
  127. IF(IDIM.EQ.3)GO TO 5
  128. C
  129. C*******************************************************************
  130. C PARTIE NUMERIQUE 2D DANS CMP2
  131. C*******************************************************************
  132. C
  133. K0=KK
  134. CALL KMP2(AM,IZBB.VPOCHA(K0+1,1),VPOCHA,
  135. & IZIPAD.LECT,IPT1.NUM,NP,NEL,NPT)
  136. KK=K0+NEL
  137.  
  138. C DO 6 K=1,NEL
  139. C KK=KK+1
  140. C DO 7 I=1,NP
  141. C IU=IPADL(IPT1.NUM(I,K))
  142. C VPOCHA(IU,1)=VPOCHA(IU,1)+AM(K,I,1)*B(KK)
  143. C VPOCHA(IU,2)=VPOCHA(IU,2)+AM(K,I,1)*B(KK)
  144. C7 CONTINUE
  145. C6 CONTINUE
  146.  
  147. GO TO 10
  148.  
  149. 5 CONTINUE
  150.  
  151. C
  152. C*******************************************************************
  153. C PARTIE NUMERIQUE 3D DANS CMP3
  154. C*******************************************************************
  155. C
  156. K0=KK
  157. CALL KMP3(AM,IZBB.VPOCHA(K0+1,1),VPOCHA,
  158. & IZIPAD.LECT,IPT1.NUM,NP,NEL,NPT)
  159. KK=K0+NEL
  160.  
  161. C DO 11 K=1,NEL
  162. C KK=KK+1
  163. C DO 12 I=1,NP
  164. C IU=IPADL(IPT1.NUM(I,K))
  165. C VPOCHA(IU,1)=VPOCHA(IU,1)+AM(K,I,1)*B(KK)
  166. C VPOCHA(IU,2)=VPOCHA(IU,2)+AM(K,I,1)*B(KK)
  167. C VPOCHA(IU,3)=VPOCHA(IU,3)+AM(K,I,1)*B(KK)
  168. C12 CONTINUE
  169. C11 CONTINUE
  170.  
  171. 10 CONTINUE
  172. SEGDES IPT1
  173. SEGDES IZAFM
  174. 13 CONTINUE
  175.  
  176. SEGSUP IZIPAD
  177. SEGDES MELEME
  178. SEGDES IZB,IZBB
  179.  
  180. SEGDES MPOVAL
  181. SEGDES MATRAK
  182.  
  183. IF(MCHPOI.NE.0)CALL ECROBJ('CHPOINT',MCHPOI)
  184. C write(6,*)' FIN KMTP '
  185. RETURN
  186. END
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  

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