Télécharger bsigma.eso

Retour à la liste

Numérotation des lignes :

bsigma
  1. C BSIGMA SOURCE OF166741 24/05/06 21:15:02 11082
  2.  
  3. SUBROUTINE BSIGMA
  4.  
  5. C_______________________________________________________________________
  6. C
  7. C OPERATEUR FORCES INTERNES
  8. C
  9. C FOR1 = BSIGMA MODL1 SIG1 ( CAR1 ) ( HOO1 ) ( DEP1 ) ;
  10. C
  11. C MODL1 objet de type MMODEL
  12. C SIG1 MCHAML de contraintes
  13. C CAR1 MCHAML de caract{ristiques (facultatif)
  14. C HOO1 MCHAML DE MATERIAU OU DE HOOKE (FACULTATIF)
  15. C DEP1 CHPOINT de deplacements (facultatif / obligatoire si HHO)
  16. C FOR1 CHPOINT donnant les foces nodales
  17. C_______________________________________________________________________
  18. C
  19. IMPLICIT INTEGER(I-N)
  20. IMPLICIT REAL*8(A-H,O-Z)
  21.  
  22. -INC PPARAM
  23. -INC CCOPTIO
  24.  
  25. -INC SMCHPOI
  26. -INC SMCHAML
  27. -INC SMMODEL
  28. -INC SMCOORD
  29.  
  30. character*4 mcle(1)
  31. data mcle/'NOER'/
  32.  
  33. segact mcoord
  34.  
  35. noer=0
  36. call lirmot(mcle,1,noer,0)
  37.  
  38. CALL LIROBJ('MMODEL ',IPMODL,1,irt1)
  39. IF (IERR.NE.0) RETURN
  40. CALL ACTOBJ('MMODEL ',IPMODL,1)
  41. C
  42. C S'AGIT-IL D'UN MODELE CHARGEMENT PRESSION ?
  43. C
  44. MMODEL = IPMODL
  45. IMODEL = KMODEL(1)
  46. IF (FORMOD(1).EQ.'CHARGEMENT') GOTO 10
  47. C_______________________________________________________________________
  48. C
  49. C CAS GENERAL
  50. C_______________________________________________________________________
  51. C
  52. IPCHE1 = 0
  53. IPCHE2 = 0
  54. IPCHE3 = 0
  55. IPCHP4 = 0
  56.  
  57. C- 1 ER CHAMP/ELEMENT
  58. C
  59. CALL LIROBJ('MCHAML ',IPIN,1,irt1)
  60. IF (IERR.NE.0) RETURN
  61. CALL ACTOBJ('MCHAML ',IPIN,1)
  62. CALL REDUAF(IPIN,IPMODL,IPCHE1,0,IR,KER)
  63. IF(IR .NE. 1) CALL ERREUR(KER)
  64. IF(IERR .NE. 0) RETURN
  65.  
  66. * Test sur le type du mchelm = CONTRAINTES
  67. C* On peut pas faire ce test a l'heure actuelle car les champs issus de
  68. C* COMP n'ont pas ce type...
  69. C* mchelm = IPCHE1
  70. C*C SEGACT,mchelm
  71. C* IF (mchelm.titche.NE.'CONTRAINTES') THEN
  72. C* MOTERR(1:16) = 'CONTRAINTES '
  73. C* CALL ERREUR(291)
  74. C* RETURN
  75. C* ENDIF
  76.  
  77. C- 2 EME CHAMP/ELEMENT (FACULTATIF)
  78. C
  79. IPCHA2 = 0
  80. CALL LIROBJ('MCHAML ',IPIN,0,irt1)
  81. IF (IERR.NE.0) RETURN
  82. IF (irt1 .EQ. 1) THEN
  83. CALL ACTOBJ('MCHAML ',IPIN,1)
  84. CALL REDUAF(IPIN,IPMODL,IPCHA2,0,IR,KER)
  85. IF(IR .NE. 1) CALL ERREUR(KER)
  86. IF(IERR .NE. 0) RETURN
  87. ENDIF
  88.  
  89. C- 3 EME CHAMP/ELEMENT (FACULTATIF)
  90. C
  91. IPCHA3 = 0
  92. CALL LIROBJ('MCHAML',IPIN,0,irt1)
  93. IF (IERR.NE.0) RETURN
  94. IF (irt1 .EQ. 1) THEN
  95. CALL ACTOBJ('MCHAML ',IPIN,1)
  96. CALL REDUAF(IPIN,IPMODL,IPCHA3,0,IR,KER)
  97. IF(IR .NE. 1) CALL ERREUR(KER)
  98. IF(IERR .NE. 0) RETURN
  99. ENDIF
  100.  
  101. C- 4 EME CHAMP/POINT (FACULTATIF mais obligatoire si modele HHO)
  102. C
  103. CALL LIROBJ('CHPOINT',IPCHP4,0,irt1)
  104. IF (IERR.NE.0) RETURN
  105.  
  106. C- Un peu de rangement des champs :
  107. C- Si IPCHA2 = 0, normalement IPCHA3 = 0 aussi !
  108. IF (IPCHA2.NE.0) THEN
  109. C- Il y a des cas (par ex. modele MELANGE) ou IPCHA2 n'a pas un des
  110. C- types recherches. d'ou le traitement ici :
  111. mchelm = IPCHA2
  112. if (mchelm.titche(1:16).eq.'CARACTERISTIQUES' .or.
  113. & mchelm.titche(1:16).eq.'MATRICE DE HOOKE') then
  114. CALL RNGCHA(IPCHA2, IPCHA3,
  115. & 'CARACTERISTIQUES', 'MATRICE DE HOOKE',
  116. & IPCHE2, IPCHE3)
  117. if (ierr.ne.0) return
  118. else
  119. IPCHE2 = IPCHA2
  120. endif
  121. ENDIF
  122.  
  123. IF (IPCHE2.NE.0) THEN
  124. IF (IPCHE3.EQ.0) THEN
  125. IMAT = 1
  126. ELSE
  127. IMAT = 2
  128. ENDIF
  129. ELSE
  130. IMAT = 0
  131. ENDIF
  132.  
  133. IRET = 0
  134.  
  135. CALL BSIGMP(IPMODL,IPCHE1,IPCHE2,IPCHE3,IMAT,
  136. & IPCHP4,IRET,NOER)
  137.  
  138. if (noer.eq.195) goto 30
  139. IF (IERR.NE.0 .OR. IRET.NE.1) RETURN
  140. GOTO 20
  141.  
  142. C_______________________________________________________________________
  143. C
  144. C CAS DES MODELES CHARGEMENT PRESSION
  145. C_______________________________________________________________________
  146. C
  147. 10 CONTINUE
  148. IPCHE1 = 0
  149. IPCHE2 = 0
  150. C
  151. C- 1 ER CHAMP/ELEMENT
  152. C
  153. IPCHA1 = 0
  154. CALL LIROBJ('MCHAML ',IPIN,1,irt1)
  155. IF(IERR .NE. 0) RETURN
  156. CALL ACTOBJ('MCHAML ',IPIN,1)
  157. CALL REDUAF(IPIN,IPMODL,IPCHA1,0,IR,KER)
  158. IF(IR .NE. 1) CALL ERREUR(KER)
  159. IF(IERR .NE. 0) RETURN
  160. C
  161. C- 2 EME CHAMP/ELEMENT (FACULTATIF)
  162. C
  163. IPCHA2 = 0
  164. CALL LIROBJ('MCHAML ',IPIN,0,irt1)
  165. IF (IERR.NE.0) RETURN
  166. IF (irt1 .EQ. 1) THEN
  167. CALL ACTOBJ('MCHAML ',IPIN,1)
  168. CALL REDUAF(IPIN,IPMODL,IPCHA2,0,IR,KER)
  169. IF(IR .NE. 1) CALL ERREUR(KER)
  170. IF(IERR .NE. 0) RETURN
  171. ENDIF
  172. C
  173. C ON TRIE LES MCHAML
  174. C
  175. CALL RNGCHA(IPCHA1,IPCHA2,'CONTRAINTES', 'CARACTERISTIQUES',
  176. & IPCHE1,IPCHE2)
  177. IF (IERR.NE.0) RETURN
  178. C IPCHE1 ou IPCHE2 est a minima fourni.
  179.  
  180. CALL FEQPR(IPMODL,IPCHE1,IPCHE2,IPCHP4,IRET)
  181. IF (IERR.NE.0 .OR. IRET.NE.1) RETURN
  182. C GOTO 20
  183. C_______________________________________________________________________
  184. C
  185. 20 CONTINUE
  186.  
  187. CALL ACTOBJ('CHPOINT ',IPCHP4,1)
  188. CALL ECROBJ('CHPOINT ',IPCHP4)
  189.  
  190. c* C- ATTRIBUTION D'UNE NATURE DISCRETE AU CHPO QUI SORT
  191. c* MCHPOI = IPCHP4
  192. c* JATTRI(1) = 2
  193.  
  194. RETURN
  195.  
  196. 30 continue
  197. * erreur changement de signe du jacobien si optio noer on rend un entier
  198. call ecrent(noer)
  199. call soucis(noer)
  200.  
  201. c return
  202. END
  203.  
  204.  
  205.  

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