Télécharger chamas.eso

Retour à la liste

Numérotation des lignes :

  1. C CHAMAS SOURCE FANDEUR 16/11/30 21:15:08 9222
  2.  
  3. C=======================================================================
  4. C= C H A M A S =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul des flux equivalents a des sources volumiques dans le cas =
  10. C= des elements MASSIFs (1D, 2D, 3D). =
  11. C= =
  12. C= Parametres : (E)=Entree (S)=Sortie =
  13. C= ------------ =
  14. C= IPMODE (E) Pointeur du MMODEL a traiter =
  15. C= IFORMU (E) Entier indiquant la formulation du modele a traiter =
  16. C= IPCHSO (E) Pointeur du MCHAML de sources =
  17. C= IPCHEB (E) Pointeur du MCHAML de CARACTERISTIQUES =
  18. C= (Inutilise ici) =
  19. C= ISUPCH (E) Support des champs en entree =
  20. C= NOMDUA (E) Nom de la composante du champ de flux equivalents =
  21. C= IPCHAL (S) Pointeur sur le champ des flux equivalents =
  22. C=======================================================================
  23.  
  24. SUBROUTINE CHAMAS (IPMODE,IFORMU, IPCHSO,IPCHEB,ISUPCH, NOMDUA,
  25. & IPCHAL)
  26.  
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8 (A-H,O-Z)
  29.  
  30. -INC CCOPTIO
  31.  
  32. -INC SMCHAML
  33. -INC SMMODEL
  34.  
  35. SEGMENT INFO
  36. INTEGER INFELL(JG)
  37. ENDSEGMENT
  38.  
  39. CHARACTER*(*) NOMDUA
  40.  
  41. MMODEL = IPMODE
  42. C* SEGACT,MMODEL <- Actif en E/S (non modifie)
  43. NSOU=KMODEL(/1)
  44. C =====
  45. MCHELM = IPCHAL
  46. c* SEGACT,MCHELM <- Actif en E/S et modifiable
  47. c* NSZC = MCHELM.IMACHE(/1) <- On a ici : NSZC = NSOU
  48. C =====
  49. MCHEL1 = IPCHSO
  50. c* SEGACT,MCHEL1 <- Actif en E/S (non modifie)
  51. NSZ1 = MCHEL1.IMACHE(/1)
  52.  
  53. C 3 - BOUCLE SUR LES ZONES ELEMENTAIRES DU MODELE (ISOU)
  54. C ========================================================
  55. DO 100 ISOU = 1, NSOU
  56. C =====
  57. C 3.1 - Modele elementaire ISOU
  58. C =====
  59. IMODEL = mmodel.KMODEL(ISOU)
  60. ** SEGACT,IMODEL
  61. C =====
  62. C 3.2 - Recherche dans le MCHAML des sources (IPCHSO) du maillage
  63. C (IMAMOD) associe au modele elementaire iSou, puis recuperation
  64. C du MCHAML elementaire de sources associe (IPSONO)
  65. C =====
  66. IPSONO = 0
  67. DO is = 1, NSZ1
  68. IF (MCHEL1.IMACHE(is).EQ.imodel.IMAMOD .AND.
  69. & MCHEL1.CONCHE(is).EQ.imodel.CONMOD) THEN
  70. mchaml = MCHEL1.ICHAML(is)
  71. SEGACT,mchaml
  72. c il faudrait chercher la composante si le champ en a plus qu'une.
  73. IPSONO = mchaml.IELVAL(1)
  74. SEGDES,mchaml
  75. GOTO 10
  76. ENDIF
  77. ENDDO
  78. 10 CONTINUE
  79. IF (IPSONO.EQ.0) GOTO 100
  80. C =====
  81. C 3.3 - Recuperation d'informations sur l'element fini du modele
  82. C elementaire iSou (NEF)
  83. C =====
  84. NEF = imodel.NEFMOD
  85. IPGEO = imodel.IMAMOD
  86. IF (IFORMU.EQ.1 .OR. IFORMU.EQ.2) THEN
  87. CALL TSHAPE(NEF,'GAUSS',IPINTE)
  88. ELSE
  89. IF (imodel.INFMOD(/1).LT.2+ISUPCH) THEN
  90. CALL ELQUOI(NEF,0,ISUPCH,ipinf,imodel)
  91. IF (IERR.NE.0) RETURN
  92. info = ipinf
  93. IPINTE = info.INFELL(11)
  94. SEGSUP,info
  95. ELSE
  96. IPINTE = imodel.INFMOD(2+ISUPCH)
  97. ENDIF
  98. ENDIF
  99. C =====
  100. C 3.4 - Calcul des flux nodaux equivalents (segment MELVAL)
  101. C =====
  102. IF (IDIM.EQ.3) THEN
  103. CALL CHAMA3(IPSONO,IPGEO,IPINTE,IPCHEQ)
  104. ELSE IF (IDIM.EQ.2) THEN
  105. CALL CHAMA2(IPSONO,IPGEO,IPINTE,IPCHEQ)
  106. ELSE IF (IDIM.EQ.1) THEN
  107. CALL CHAMA1(IPSONO,IPGEO,IPINTE,IPCHEQ)
  108. ENDIF
  109. IF (IERR.NE.0) GOTO 100
  110. C =====
  111. C 3.5 - Initialisation du MCHAML des flux de chaleur nodaux equivalents
  112. C (MCHAML) associe au modele elementaire iSou (maillage IMAMOD)
  113. C Remplissage des donnees associees a MCHAML dans MCHELM (global)
  114. C =====
  115. N2 = 1
  116. SEGINI,MCHAML
  117. mchaml.NOMCHE(1) = NOMDUA
  118. mchaml.TYPCHE(1) = 'REAL*8'
  119. mchaml.IELVAL(1) = IPCHEQ
  120. SEGDES,MCHAML
  121.  
  122. mchelm.CONCHE(ISOU) = imodel.CONMOD
  123. mchelm.IMACHE(ISOU) = IPGEO
  124. mchelm.ICHAML(ISOU) = MCHAML
  125. mchelm.INFCHE(ISOU,3) = NIFOUR
  126. mchelm.INFCHE(ISOU,6) = 1
  127.  
  128. C===
  129. 100 CONTINUE
  130. C===
  131. C Fin de la boucle sur les sous-modeles elementaires
  132.  
  133. RETURN
  134. END
  135.  
  136.  
  137.  

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