Télécharger sore1.eso

Retour à la liste

Numérotation des lignes :

sore1
  1. C SORE1 SOURCE CB215821 24/04/12 21:17:15 11897
  2.  
  3. ************************************************************************
  4. *
  5. * SORE1
  6. * _____
  7. * FONCTION:
  8. * ---------
  9. * CREATION DE LA MATRICE DE CONDUCTIVITE N DIV(GRAD T)
  10. * POUR DES ELMENTS MASSIFS UNIQUEMENT
  11. * GESTION DES SEGMENTS ET TESTS DE COMPATIBILITE
  12. *
  13. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+)=CONTENU DANS UN COMMUN
  14. * -----------
  15. *
  16. * IPMODE (E) POINTEUR SUR LE MMODEL
  17. * IPCHEL (E) POINTEUR SUR LE CHAMP CARACTERISTIQUES (MATER)
  18. * IPCHE4 (E) POINTEUR SUR LE CHAMP FACTEUR DE GRAD(T)
  19. * IPCHP1 (E) POINTEUR SUR LE CHPOINT de TEMPERATURE
  20. * IPRIGI (S) POINTEUR SUR LE SEGMENT MRIGID
  21. *
  22. * VARIABLES:
  23. * ----------
  24. * NBNN NOMBRE DE NOEUDS DANS L'ELEMENT CONSIDERE
  25. * NEF NUMERO DE L'ELEMENT FINI DANS NOMTP
  26. * NBMAIL NOMBRE DE MAILLAGES ELEMENTAIRES
  27. * NBELEM NOMBRE D'ELEMENTS DANS LE MAILLAGE ELEMENTAIRE
  28. *
  29. * AUTEUR, DATE DE CREATION:
  30. * -------------------------
  31. * J.M.BAZE AVRIL 97
  32. *
  33. * LANGAGE:
  34. * --------
  35. * ESOPE + FORTRAN77
  36. ************************************************************************
  37. SUBROUTINE SORE1 (IPMODE,IPCHEL,IPCHE4,IPCHP1,IPRIGI)
  38.  
  39. IMPLICIT INTEGER(I-N)
  40. IMPLICIT REAL*8(A-H,O-Z)
  41.  
  42.  
  43. -INC PPARAM
  44. -INC CCOPTIO
  45. -INC CCHAMP
  46.  
  47. -INC SMRIGID
  48. -INC SMCHAML
  49. -INC SMELEME
  50. -INC SMMODEL
  51. -INC SMCHPOI
  52.  
  53. CHARACTER*4 MOPRIM,MODUAL
  54. INTEGER NBROBL
  55. INTEGER NBRFAC
  56. INTEGER MODEPL
  57. POINTEUR nomcom.NOMID
  58.  
  59. IPRIGI = 0
  60.  
  61. * Determination du LIEU SUPPORT du MCHAML DE CARACTERISTIQUES
  62. CALL QUESUP(0,IPCHEL,0,0,iretou,ISUPCA)
  63. IF (ISUPCA.GT.900 .OR. IERR.NE.0) RETURN
  64. * Si le MCHAML est appuye aux NOEUDS ou au GRAVITE, on change le SUPPORT
  65. * pour les points de GAUSS.
  66. * Attention pour l'instant, on met en ISUPCA = 6, mais il faudrait
  67. * distinguer les formulations et les supports...
  68. IF (ISUPCA.EQ.1 .OR. ISUPCA.EQ.2) THEN
  69. * On change plus bas le support pour 6...
  70. ELSE
  71. IPCHE1 = IPCHEL
  72. IF (ISUPCA.NE.6) THEN
  73. write(ioimp,*) 'SORE1 : SUPPORT ISUPCA = ',ISUPCA
  74. ENDIF
  75. ENDIF
  76. IF (ISUPCA.NE.6) THEN
  77. ISUPCA = 6
  78. CALL CHASUP(IPMODE,IPCHEL,IPCHE1,iretou,ISUPCA)
  79. IF (iretou.NE.0) THEN
  80. CALL ERREUR(iretou)
  81. RETURN
  82. ENDIF
  83. ENDIF
  84.  
  85. * CHPOINT de TEMPERATURE ---> MCHAML AUX NOEUDS
  86. CALL CHAME1(0,IPMODE,IPCHP1,' ',IPCHE2,1)
  87. IF (IERR.NE.0) RETURN
  88. ICHCAR = 0
  89.  
  90. * GRADIENT de TEMPERATURE
  91. NBROBL=1
  92. NBRFAC=0
  93. SEGINI nomcom
  94. nomcom.LESOBL(1)='T '
  95. MODEPL=nomcom
  96.  
  97. CALL GRAD1(IPMODE,MODEPL,IPCHE2,ICHCAR,IPCHE3,iretou)
  98. SEGSUP NOMCOM
  99. IF (iretou.NE.1 .OR. IERR.NE.0) RETURN
  100.  
  101. * VERIFICATION DES SUPPORTS
  102. *
  103. MCHELM = IPCHE1
  104. SEGACT,MCHELM
  105. NBMAIC=IMACHE(/1)
  106. c* SEGDES MCHELM
  107.  
  108. MMODEL = IPMODE
  109. SEGACT,MMODEL
  110. NSOUS = mmodel.KMODEL(/1)
  111. * IL MANQUE LES CARACTERISTIQUES D'UNE OU PLUSIEURS PARTIES
  112. * DU MODELE
  113. IF (NSOUS.GT.NBMAIC) THEN
  114. CALL ERREUR(404)
  115. SEGDES,MMODEL
  116. GOTO 900
  117. ENDIF
  118. *
  119. * INITIALISATION DU CHAPEAU DE L'OBJET RIGIDITE
  120. *
  121. NRIGEL = NSOUS
  122. SEGINI,MRIGID
  123. mrigid.ICHOLE = 0
  124. mrigid.IMGEO1 = 0
  125. mrigid.IMGEO2 = 0
  126. mrigid.IFORIG = IFOUR
  127. mrigid.ISUPEQ = 0
  128. mrigid.MTYMAT = 'RIGIDITE'
  129. IPRIGI = MRIGID
  130. *
  131. * BOUCLE SUR LES MAILLAGES ELEMENTAIRES,ZONE IMAIL
  132.  
  133. DO 50 isous = 1, NSOUS
  134.  
  135. IMODEL=KMODEL(isous)
  136. SEGACT,IMODEL
  137.  
  138. NEF = imodel.NEFMOD
  139.  
  140. MELEME = imodel.IMAMOD
  141. SEGACT,MELEME
  142. NBNN = meleme.NUM(/1)
  143. NBELEM = meleme.NUM(/2)
  144.  
  145. C Recuperation des Noms de composante PRIMALES et DUALES
  146. nomid = imodel.LNOMID(1)
  147. SEGACT,nomid
  148. MOPRIM = nomid.LESOBL(1)
  149. SEGDES,nomid
  150. nomid = imodel.LNOMID(2)
  151. SEGACT,nomid
  152. MODUAL = nomid.LESOBL(1)
  153. SEGDES,nomid
  154.  
  155. * REMPLIR LE SEGMENT DESCRIPTEUR DE L'OBJET RIGIDITE
  156. *
  157. NLIGRP = NBNN
  158. NLIGRD = NBNN
  159. SEGINI,DESCR
  160. DO IB = 1, NLIGRP
  161. LISINC(IB) = MOPRIM
  162. LISDUA(IB) = MODUAL
  163. NOELEP(IB) = IB
  164. NOELED(IB) = IB
  165. ENDDO
  166. SEGDES,DESCR
  167. IDESCR = DESCR
  168.  
  169. NELRIG = NBELEM
  170. SEGINI,xMATRI
  171. xMATRI.SYMRE = 2
  172.  
  173. mrigid.COERIG(isous) = 1.D0
  174. mrigid.IRIGEL(1,isous) = IMAMOD
  175. mrigid.IRIGEL(2,isous) = 0
  176. mrigid.IRIGEL(3,isous) = IDESCR
  177. mrigid.IRIGEL(4,isous) = xMATRI
  178. mrigid.IRIGEL(5,isous) = 0
  179. mrigid.IRIGEL(6,isous) = 0
  180. mrigid.IRIGEL(7,isous) = 2
  181. mrigid.IRIGEL(8,isous) = 0
  182.  
  183. CALL SORE2(NEF,isous,IMODEL,IPCHE1,IPCHE3,IPCHE4, IPRIGI)
  184.  
  185. SEGDES,xMATRI
  186. SEGDES,MELEME
  187. IF (IERR.NE.0) GOTO 900
  188.  
  189. 50 CONTINUE
  190.  
  191. 900 CONTINUE
  192. DO isous = 1, NSOUS
  193. IMODEL = mmodel.KMODEL(isous)
  194. SEGDES,IMODEL
  195. ENDDO
  196. SEGDES,MMODEL
  197. IF (IPRIGI.NE.0) THEN
  198. SEGDES,MRIGID
  199. ELSE
  200. SEGSUP,MRIGID
  201. ENDIF
  202.  
  203. MCHELM = IPCHE3
  204. SEGSUP,MCHELM
  205.  
  206. RETURN
  207. END
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  

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