Télécharger chal1.eso

Retour à la liste

Numérotation des lignes :

chal1
  1. C CHAL1 SOURCE CB215821 21/03/03 21:15:08 10910
  2.  
  3. C=======================================================================
  4. C= C H A L 1 =
  5. C= --------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul des flux equivalents a des sources volumiques =
  10. C= =
  11. C= Parametres : (E)=Entree (S)=Sortie =
  12. C= ------------ =
  13. C= IPMODE (E) Pointeur sur le segment MMODEL de la structure =
  14. C= IPCHSO (E) Pointeur sur le segment MCHAML de sources donnees =
  15. C= en chaque element de la structure (champ variable) =
  16. C= IPCARA (E) Pointeur sur le segment MCHALM de CARACTERISTIQUES =
  17. C= dans le cas des COQues et des BARRes =
  18. C= MOCOMP (E) Nom de la composante du champ de flux equivalents =
  19. C= IPFLUX (S) Pointeur sur le champ des flux nodaux equivalents =
  20. C= =
  21. C= Remarque : Le MODELE doit contenir exclusivement un seul type =
  22. C= ---------- d'elements, soit MASSIFs, soit COQUEs, soit BARREs. =
  23. C=======================================================================
  24.  
  25. SUBROUTINE CHAL1 (IPMODE,IFORMU,ITYPEF, IPCHSO,ISUPSO, IPCARA,
  26. & MOCOMP, IPFLUX)
  27.  
  28. IMPLICIT INTEGER(I-N)
  29. IMPLICIT REAL*8 (A-H,O-Z)
  30.  
  31.  
  32. -INC PPARAM
  33. -INC CCOPTIO
  34.  
  35. -INC SMMODEL
  36. -INC SMCHAML
  37.  
  38. CHARACTER*(*) MOCOMP
  39.  
  40. IPFLUX = 0
  41.  
  42. C 1 - CHANGEMENT DU SUPPORT DU MCHAML DE CARACTERISTIQUES S'IL EXISTE
  43. C ====
  44. C Transport des points de Gauss aux noeuds si necessaire ?
  45. C On devrait plutot le faire sur ISUPSO ?
  46. C Mais comme pour l'instant on utilise IPCARA que pour des modeles ou
  47. C tout est calcule aux noeuds et ISUPSO = 1, cela va bien.
  48. IPCARB = IPCARA
  49. IF (IPCARA.NE.0) THEN
  50. CALL CHASUP(IPMODE,IPCARA,IPCARB,iok,ISUPSO)
  51. IF (IERR.NE.0 .OR. iok.NE.0) THEN
  52. CALL ERREUR(21)
  53. RETURN
  54. ENDIF
  55. ENDIF
  56.  
  57. MMODEL = IPMODE
  58. NSOU = mmodel.KMODEL(/1)
  59.  
  60. C 3 - CREATION DU MCHAML RESULTAT (GLOBAL)
  61. C ==========================================
  62. L1 = 18
  63. N1 = NSOU
  64. N3 = 6
  65. SEGINI,mchelm
  66. mchelm.IFOCHE = IFOUR
  67. mchelm.TITCHE = 'SOURCES.VOLUMIQUES'
  68. IPCHAL = mchelm
  69.  
  70. C 4 - CALCUL DES FLUX EQUIVALENTS AUX SOURCES VOLUMIQUES
  71. C ========================================================
  72. C 4.1 - Cas des elements MASSIFS (1D,2D,3D)
  73. C =====
  74. IF (ITYPEF.EQ.1) THEN
  75. CALL CHAMAS(IPMODE,IFORMU, IPCHSO,ISUPSO, MOCOMP, IPCHAL)
  76. C =====
  77. C 4.2 - Cas des elements de COQUE
  78. C =====
  79. ELSE IF (ITYPEF.EQ.2) THEN
  80. CALL CHACOQ(IPMODE,IFORMU, IPCHSO,IPCARB,ISUPSO, MOCOMP, IPCHAL)
  81. C =====
  82. C 4.3 - Cas des elements BARREs
  83. C =====
  84. ELSE IF (ITYPEF.EQ.3) THEN
  85. CALL CHABAT(IPMODE,IFORMU, IPCHSO,IPCARB,ISUPSO, MOCOMP, IPCHAL)
  86.  
  87. ELSE
  88. CALL ERREUR(21)
  89. RETURN
  90. ENDIF
  91.  
  92. C 5 - DESACTIVATION DES OBJETS UTILISES
  93. C =======================================
  94.  
  95. C Compactage eventuel du champ RESULTAT :
  96. mchelm = IPCHAL
  97. N1 = 0
  98. DO is = 1, NSOU
  99. IF (mchelm.IMACHE(is).NE.0) THEN
  100. N1 = N1 + 1
  101. mchelm.CONCHE(N1) = mchelm.CONCHE(is)
  102. mchelm.IMACHE(N1) = mchelm.IMACHE(is)
  103. mchelm.ICHAML(N1) = mchelm.ICHAML(is)
  104. DO js = 1, N3
  105. mchelm.INFCHE(N1,js) = mchelm.INFCHE(is,js)
  106. ENDDO
  107. ENDIF
  108. ENDDO
  109. IF (N1.NE.NSOU) THEN
  110. SEGADJ,mchelm
  111. ENDIF
  112.  
  113. C En cas d'erreur :
  114. IF (IERR.NE.0) IPCHAL = 0
  115.  
  116. C Champ resultat (= 0 en cas d'erreur)
  117. IPFLUX = IPCHAL
  118.  
  119. END
  120.  
  121.  
  122.  
  123.  

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