Télécharger chal1.eso

Retour à la liste

Numérotation des lignes :

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

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