Télécharger chalvm.eso

Retour à la liste

Numérotation des lignes :

  1. C CHALVM SOURCE CB215821 19/02/25 21:15:04 10119
  2.  
  3. C=======================================================================
  4. C= C H A L V M =
  5. C= ----------- =
  6. C= =
  7. C= OPERATEUR CAST3M "SOURCE" : =
  8. C= --------------------------- =
  9. C= VERIFICATIONS SUR LE MODELE =
  10. C= Le MODELE doit contenir exclusivement un seul type =
  11. C= d'elements, soit MASSIFs, soit COQUEs, soit BARREs. =
  12. C= =
  13. C=======================================================================
  14.  
  15. SUBROUTINE CHALVM (IPMODL,MOCOMP, IPMOD1,IFORMU,ITYPEF)
  16.  
  17. IMPLICIT INTEGER(I-N)
  18. IMPLICIT REAL*8 (A-H,O-Z)
  19.  
  20. -INC CCOPTIO
  21.  
  22. -INC SMLMOTS
  23. -INC SMMODEL
  24.  
  25. CHARACTER*(*) MOCOMP
  26.  
  27. C ----------
  28. C= IMASSI Tableau contenant les numeros dans NOMTP des elements =
  29. C= thermiques de type MASSIF (dont l'element BARR) =
  30. C= LMASSI Longueur du tableau IMASSI =
  31. C= ICOQUE Tableau contenant les numeros dans NOMTP des elements =
  32. C= thermiques de type COQUE =
  33. C= LCOQUE Longueur du tableau ICOQUE =
  34. C= IBARTY Tableau contenant les numeros dans NOMTP des elements =
  35. C= thermiques de type BARRE ou TUYAU =
  36. C= LBARTY Longueur du tableau IBARTY =
  37. C ----------
  38. PARAMETER (LMASSI=16, LCOQUE=5, LBARTY=3)
  39. INTEGER IMASSI(LMASSI),ICOQUE(LCOQUE),IBARTY(LBARTY)
  40. C ----------
  41. C Elements TRI3 TRI6 QUA4 QUA8 CUB8 CU20 PRI6 PR15 TET4 TE10
  42. C MASSIFs PYR5 PY13 T1D2 T1D3 M1D2 M1D3
  43. C ----------
  44. DATA IMASSI / 4, 6, 8, 10, 14, 15, 16, 17, 23, 24,
  45. & 25, 26, 191, 192, 193, 194 /
  46. C -------------
  47. C Elts COQUEs COQ2 COQ3 COQ8 COQ4 COQ6
  48. C -------------
  49. DATA ICOQUE / 44, 27, 41, 49, 56 /
  50. C -------------
  51. C Elts BARRE/TUYA BARR TUYm TUYn
  52. C -------------
  53. DATA IBARTY / 46, 269, 270 /
  54. C -------------
  55.  
  56. IPMOD1 = 0
  57. IFORMU = 0
  58. ITYPEF = 0
  59.  
  60. C ======================================================
  61. C 1 - EXTRACTION DE LA FORMULATION A TRAITER DU MODELE
  62. C ======================================================
  63. C 1.1 - Verification de la formulation (unique) du modele
  64. C 1.2 - Recuperation du modele de la formulation retenue
  65. C 1.3 - Verification sur unicite de type EF retenu
  66. C =====
  67. iTHER = 0
  68. iTHHY = 0
  69. iDIFF = 0
  70. iELEC = 0
  71. iCHPH = 0
  72. *
  73. jMASSi = 0
  74. jCOQUe = 0
  75. jBARRe = 0
  76. *
  77. MMODEL = IPMODL
  78. SEGACT,MMODEL
  79. NSOUS = KMODEL(/1)
  80.  
  81. SEGINI,MMODE1=MMODEL
  82. N1 = 0
  83. DO isou = 1, NSOUS
  84. IMODEL = mmodel.KMODEL(isou)
  85. SEGACT,IMODEL
  86. MELE = imodel.NEFMOD
  87. i_mod1 = 0
  88. IF (imodel.FORMOD(/2).EQ.1) THEN
  89. IF (imodel.FORMOD(1).EQ.'THERMIQUE') THEN
  90. NMAT = imodel.MATMOD(/2)
  91. CALL PLACE(imodel.MATMOD,NMAT,icov,'CONVECTION')
  92. CALL PLACE(imodel.MATMOD,NMAT,iray,'RAYONNEMENT')
  93. IF (icov+iray.EQ.0) THEN
  94. iTHER = 1
  95. i_mod1 = 1
  96. ENDIF
  97. ELSEIF (imodel.FORMOD(1).EQ.'THERMOHYDRIQUE ') THEN
  98. iTHHY = 1
  99. i_mod1 = 1
  100. ELSEIF (imodel.FORMOD(1).EQ.'DIFFUSION ') THEN
  101. iDIFF = 1
  102. i_mod1 = 1
  103. ELSEIF (imodel.FORMOD(1).EQ.'ELECTROSTATIQUE ') THEN
  104. iELEC = 1
  105. i_mod1 = 1
  106. ELSEIF (imodel.FORMOD(1).EQ.'CHANGEMENT_PHASE') THEN
  107. iCHPH = 1
  108. i_mod1 = 1
  109. ENDIF
  110. ENDIF
  111.  
  112. IF (i_mod1.NE.0) THEN
  113. N1 = N1 + 1
  114. MMODE1.KMODEL(N1) = IMODEL
  115. CALL PLACE2(IBARTY,LBARTY,iok,MELE)
  116. IF (iok.NE.0) THEN
  117. jBARRe = jBARRe+1
  118. ELSE
  119. CALL PLACE2(IMASSI,LMASSI,iok,MELE)
  120. IF (iok.NE.0) THEN
  121. jMASSi = jMASSi+1
  122. ELSE
  123. CALL PLACE2(ICOQUE,LCOQUE,iok,MELE)
  124. IF (iok.NE.0) jCOQUe = jCOQUe+1
  125. ENDIF
  126. ENDIF
  127. ENDIF
  128. ENDDO
  129.  
  130. IF (N1.EQ.0) THEN
  131. write(ioimp,*) 'Modele vide ??'
  132. CALL ERREUR(21)
  133. GOTO 9900
  134. ENDIF
  135.  
  136. IF ((iTHER+iTHHY+iELEC+iDIFF+iCHPH) .NE.1 ) THEN
  137. write(ioimp,*) 'Une seule formulation dans le modele !'
  138. CALL ERREUR(21)
  139. GOTO 9900
  140. ENDIF
  141. IF (iTHER .EQ. 1) THEN
  142. IFORMU = 1
  143. ELSE IF (iTHHY .EQ. 1) THEN
  144. IFORMU = 2
  145. ELSE IF (iDIFF .EQ. 1) THEN
  146. IFORMU = 3
  147. ELSE IF (iELEC .EQ. 1) THEN
  148. IFORMU = 4
  149. ELSE IF (iCHPH .EQ. 1) THEN
  150. IFORMU = 1
  151. ELSE
  152. IFORMU = 0
  153. CALL ERREUR(5)
  154. GOTO 9900
  155. ENDIF
  156.  
  157. IF (jMASSi.EQ.N1) THEN
  158. ITYPEF = 1
  159. ELSE IF (jCOQUe.EQ.N1) THEN
  160. ITYPEF = 2
  161. ELSE IF (jBARRe.EQ.N1) THEN
  162. ITYPEF = 3
  163. ELSE
  164. ITYPEF = 0
  165. CALL ERREUR(409)
  166. GOTO 9900
  167. ENDIF
  168.  
  169. IF (N1.NE.NSOUS) THEN
  170. SEGADJ,MMODE1
  171. ENDIF
  172.  
  173. C ==================================================
  174. C 2 - Adequation nom de composante source & modele
  175. C ==================================================
  176. IF (iTHER .EQ. 1) THEN
  177. IF (MOCOMP.EQ.' ') MOCOMP = 'Q '
  178. IF (MOCOMP.NE.'Q ') CALL ERREUR(665)
  179. c* SEGDES,MMODE1
  180. ELSE
  181. IPCOMP = 0
  182. CALL NOVARD(MMODE1,'FORC')
  183. CALL LIROBJ('LISTMOTS',IPCOMP,1,iret)
  184. IF (IERR.NE.0) RETURN
  185. mlmots = IPCOMP
  186. SEGACT,mlmots
  187. NCOMP = mlmots.MOTS(/2)
  188. * Normalement : NCOMP est non nul !
  189. * Cas particulier de la diffusion en attendant un traitement adequat ?
  190. IF (iDIFF.EQ.1 .AND. NCOMP.GT.1) THEN
  191. write(ioimp,*) 'Modele de DIFFUSION a une seule quantite SVP'
  192. CALL ERREUR(21)
  193. ELSE
  194. IF (MOCOMP.EQ.' ') THEN
  195. MOCOMP = mlmots.MOTS(1)
  196. ELSE
  197. CALL PLACE(mlmots.MOTS,NCOMP,iret,MOCOMP)
  198. IF (iret.EQ.0) CALL ERREUR(665)
  199. ENDIF
  200. ENDIF
  201. SEGSUP,mlmots
  202. ENDIF
  203. IF (IERR.NE.0) GOTO 9900
  204.  
  205. IPMOD1 = MMODE1
  206.  
  207. 9900 CONTINUE
  208.  
  209. END
  210.  
  211.  

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