Télécharger ecoule.eso

Retour à la liste

Numérotation des lignes :

ecoule
  1. C ECOULE SOURCE JB251061 23/05/10 21:15:09 11667
  2. SUBROUTINE ECOULE
  3. *---------------------------------------------------------------------
  4. * ECOULEMENT INELASTIQUE
  5. *---------------------------------------------------------------------
  6. *
  7. * SYNTAXE POUR LES LOIS VISCO (IND=1) :
  8. *
  9. * SIGF VARF DEPIN = 'ECOU' MODL SIG0 VAR0 DEPST
  10. * CARAC ( PRECIS ) LATAB ( MOALIR ) ;
  11. *
  12. * SYNTAXE POUR LES LOIS PLASTIQUES (IND=2):
  13. *
  14. * SIGF VARF DEPIN = 'ECOU' MODL SIG0 VAR0 DEPST CARAC
  15. * ( PRECIS ) ( ISTEP ) ;
  16. * MMODEL | MODL OBJET MODELE
  17. *
  18. * | SIG0 CONTRAINTES AU DEBUT DU PAS
  19. * | VAR0 VARIABLES INTERNES AU DEBUT DU PAS
  20. * MCHAML | DEPST INCREMENT DE DEFORMATIONS TOTALES
  21. * | CARAC CONSTANTES DU MATERIAU ET CARACTERISTIQUES
  22. * | GEOMETRIQUES ( SELON LES ELEMENTS )
  23. * FLOTTANT | PRECIS PRECISION POUR ITERATIONS INTERNES
  24. * TABLE | LATAB TABLE CONTENANT D'AUTRES INFOS
  25. * MOT | MOALIR MOT A LIRE
  26. * ISTEP | INDICATEUR D'ACTION POUR CALCUL NONLOCAL
  27. * | =0 DANS LE CAS D'UN CALCUL LOCAL (NORMAL)
  28. * | =1 OU 2 DANS LE CAS D'UN CALCUL NONLOCAL
  29. * | =1 POUR CALCUL DES FONCTIONS SEUIL UNIQUEMENT
  30. * | =2 POUR CALCUL DES VARIABLES DISSIPATIVES A PARTIR
  31. * | DES FONCTIONS SEUIL MOYENNEES PREALABLEMENT PAR NLOC
  32. *
  33. *
  34. *
  35. * | SIGF CONTRAINTES A LA FIN DU PAS
  36. * MCHAML | VARF VARIABLES INTERNES A LA FIN DU PAS
  37. * | DEPIN INCREMENT DE DEFORMATIONS INELASTIQUES
  38. *
  39. * Passage aux nouveaux CHAMELEM par P DOWLATYARI DEC 91
  40. *---------------------------------------------------------------------
  41. IMPLICIT INTEGER(I-N)
  42. IMPLICIT REAL*8(A-H,O-Z)
  43. -INC PPARAM
  44. -INC CCOPTIO
  45. -INC SMCHAML
  46. -INC SMCHPOI
  47. *
  48. CHARACTER*10 MOALIR
  49. CHARACTER*8 TYPOBJ
  50. CHARACTER*4 MOTSUC
  51. CHARACTER*72 CHARRE
  52. LOGICAL LOGIN,LOGRE,LOGSUC
  53. REAL*8 XVALIN,XVALRE
  54. IOBRE =0
  55. IPCHE1=0
  56. IPCHE2=0
  57. IPCHE3=0
  58. IPCHE4=0
  59. IPCHE6=0
  60. IPCH1 =0
  61. IPCH2 =0
  62. IPCH3 =0
  63. c mistral :
  64. IPCH4 =0
  65. IPCH5 =0
  66. c mistral.
  67. ITHHER=0
  68. IPOI1 =0
  69. IPOI2 =0
  70. IPOI3 =0
  71. c mistral :
  72. IPOI4=0
  73. IPOI5=0
  74. c mistral.
  75. IPCAR=0
  76. IPTAB=0
  77. TYPOBJ=' '
  78. LOGSUC=.TRUE.
  79. *
  80. * LECTURE D'UN MODEL
  81. *
  82. CALL LIROBJ('MMODEL ',IPMODL,1,IRT1)
  83. CALL ACTOBJ('MMODEL ',IPMODL,1)
  84. IF(IERR.NE.0)RETURN
  85. *
  86. * CHAMPS DE CONTRAINTES
  87. *
  88. CALL LIROBJ('MCHAML ',IPIN,1,IRT)
  89. CALL ACTOBJ('MCHAML ',IPIN,1)
  90. IF(IERR.NE.0)RETURN
  91. CALL REDUAF(IPIN,IPMODL,IPCHE1,0,IR,KER)
  92. IF(IR .NE. 1) CALL ERREUR(KER)
  93. IF(IERR .NE. 0) RETURN
  94.  
  95. MCHELM=IPCHE1
  96. SEGACT MCHELM
  97. IF(TITCHE.NE.'CONTRAINTES')THEN
  98. MOTERR(1:32)='CONTRAIN'
  99. CALL ERREUR(565)
  100. RETURN
  101. ENDIF
  102. *
  103. * CHAMPS DE VARIABLES INTERNES
  104. *
  105. CALL LIROBJ('MCHAML ',IPIN,1,IRT)
  106. CALL ACTOBJ('MCHAML ',IPIN,1)
  107. IF(IERR.NE.0)RETURN
  108. CALL REDUAF(IPIN,IPMODL,IPCHE2,0,IR,KER)
  109. IF(IR .NE. 1) CALL ERREUR(KER)
  110. IF(IERR .NE. 0) RETURN
  111.  
  112. MCHELM=IPCHE2
  113. SEGACT MCHELM
  114. IF(TITCHE.NE.'VARIABLES INTERNES')THEN
  115. MOTERR(1:32)='VARINTER'
  116. CALL ERREUR(565)
  117. RETURN
  118. ENDIF
  119. *
  120. * CHAMPS D'INCREMENTS DE DEFORMATIONS
  121. *
  122. CALL LIROBJ('MCHAML ',IPIN,1,IRT)
  123. CALL ACTOBJ('MCHAML ',IPIN,1)
  124. IF(IERR.NE.0)RETURN
  125. CALL REDUAF(IPIN,IPMODL,IPCHE4,0,IR,KER)
  126. IF(IR .NE. 1) CALL ERREUR(KER)
  127. IF(IERR .NE. 0) RETURN
  128.  
  129. MCHELM=IPCHE4
  130. SEGACT MCHELM
  131. IF(TITCHE.NE.'DEFORMATIONS')THEN
  132. MOTERR(1:32)='DEFORMAT'
  133. CALL ERREUR(565)
  134. RETURN
  135. ENDIF
  136. *
  137. * CHAMPS DE CARACTERISTIQUES (MATERIELLES ET GEOMETRIQUES)
  138. *
  139. CALL LIROBJ('MCHAML ',IPIN,1,IRT)
  140. CALL ACTOBJ('MCHAML ',IPIN,1)
  141. IF(IERR.NE.0)RETURN
  142. CALL REDUAF(IPIN,IPMODL,IPCAR,0,IR,KER)
  143. IF(IR .NE. 1) CALL ERREUR(KER)
  144. IF(IERR .NE. 0) RETURN
  145.  
  146. MCHELM=IPCAR
  147. SEGACT MCHELM
  148. IF(TITCHE.NE.'CARACTERISTIQUES')THEN
  149. MOTERR(1:32)='CARACTER'
  150. CALL ERREUR(565)
  151. RETURN
  152. ENDIF
  153. *
  154. * LECTURE D'UNE TABLE DE DONNEES SUPPLEMENTAIRE
  155. *
  156. CALL LIROBJ('TABLE ',IPTAB,0,IRETOU)
  157. IF(IERR.NE.0) RETURN
  158. IF(IRETOU.EQ.1)THEN
  159. *
  160. * RECHERCHE DU CHAMPS DE DEFORMATIONS INELASTIQUES INITIALES
  161. *
  162. CALL ACCTAB(IPTAB,'MOT ',IVALIN,XVALIN,'DEFI',
  163. . LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
  164. . IPCHE3)
  165. IF(TYPOBJ.EQ.'MCHAML ') THEN
  166. MCHELM=IPCHE3
  167. SEGACT MCHELM
  168. IF(TITCHE.NE.'DEFORMATIONS INELASTIQUES')THEN
  169. MOTERR(1:32)='DEFINELA'
  170. CALL ERREUR(565)
  171. RETURN
  172. ENDIF
  173. ENDIF
  174.  
  175. *
  176. * RECHERCHE DU CHAMPS DE DEFORMATIONS TOTALES INITIALES
  177. *
  178. CALL ACCTAB(IPTAB,'MOT ',IVALIN,XVALIN,'DEFT',
  179. . LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
  180. . IPCHE6)
  181. IF(TYPOBJ.EQ.'MCHAML ') THEN
  182. MCHELM=IPCHE6
  183. SEGACT MCHELM
  184. IF(TITCHE.NE.'DEFORMATIONS')THEN
  185. MOTERR(1:32)='DEFORMAT'
  186. CALL ERREUR(565)
  187. RETURN
  188. ENDIF
  189. ENDIF
  190.  
  191. ENDIF
  192. C
  193. C LECTURE EVENTUELLE DE LA PRECISION DES ITERATION INTERNES
  194. C
  195. CALL LIRREE(PRECIS,0,IRETPR)
  196. IF(IRETPR.EQ.0) PRECIS=REAL(1.D-3)
  197. *
  198. * LECTURE EVENTUELLE D'UN MOT SOIT POUR ACTION DANS ECOULE
  199. * SOIT POUR NE PAS AVOIR DE
  200. * MESSAGE D'ERREUR (NOID)
  201. *
  202. JECHER=0
  203. JNOID=0
  204. CALL LIRCHA(MOALIR,0,IRETOU)
  205. IF(IRETOU.NE.0) THEN
  206. IF(MOALIR.EQ.'AVANCER') THEN
  207. JECHER = 0
  208. ELSE IF (MOALIR.EQ.'RECHERCHER') THEN
  209. JECHER=1
  210. ELSE IF (MOALIR(1:4).EQ.'NOID') THEN
  211. JNOID=1
  212. ELSE
  213. CALL REFUS
  214. ENDIF
  215. ENDIF
  216. C
  217. C LECTURE EVENTUELLE DU STEP D'EXCUTION POUR LE NON LOCAL
  218. C
  219. CALL LIRENT(ISTEP,0,IRETOU)
  220. IF (IRETOU .EQ. 0) THEN
  221. ISTEP=0
  222. END IF
  223. C
  224. C LECTURE EVENTUELLE D'UN MOT QUI INDIQUE QUE LE MATERIAU VA DEPENDRE
  225. C DE LA TEMPERATURE POUR LES MODELES ENDOMMAGES DE LEMAITRE
  226. C ON LIT DANS LA TABLE LES CHAMPS (MCHAML OU CHPOINT) DE TEMPERATURE
  227. C AU DEBUT ET A LA FIN DU PAS ET DE REFERENCE. ILS SONT CONVERTIS EN
  228. C MCHAML AUX POINTS DE GAUSS POUR LES CONTRAINTES
  229. C
  230. IFI=0
  231. CALL LIRCHA(MOALIR,0,IRETOU)
  232. IF(IRETOU.NE.0) THEN
  233. IF (MOALIR.EQ.'CELSIUS') THEN
  234. ITHHER = 2
  235. ELSE IF (MOALIR.EQ.'KELVIN') THEN
  236. ITHHER = 1
  237. ELSE IF (MOALIR.EQ.'SUCCION') THEN
  238. ITHHER = 3
  239. c mistral :
  240. ELSE IF (MOALIR.EQ.'MISTRAL') THEN
  241. ITHHER = 2
  242. IFI = 1
  243. c mistral.
  244. ELSE
  245. CALL REFUS
  246. ENDIF
  247. *
  248. IF(ITHHER.NE.0) THEN
  249. *
  250. TYPOBJ=' '
  251. MOTSUC='TET1'
  252. IF(ITHHER.EQ.3) THEN
  253. TYPOBJ='CHPOINT '
  254. MOTSUC='SUC1'
  255. ENDIF
  256. CALL ACCTAB(IPTAB,'MOT ',IVALIN,XVALIN,MOTSUC,
  257. . LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
  258. . IPOI1)
  259. IF(TYPOBJ.EQ.'CHPOINT ') THEN
  260. CALL CHAME1(0,IPMODL,IPOI1,' ',IPCH1,5)
  261. IF (IERR.NE.0) RETURN
  262. ELSE
  263. CALL CHASUP(IPMODL,IPOI1,IPCH1,IRT2,5)
  264. IF(IRT2.NE.0) THEN
  265. CALL ERREUR(IRT2)
  266. RETURN
  267. ENDIF
  268. ENDIF
  269. C
  270. TYPOBJ=' '
  271. MOTSUC='TET2'
  272. IF(ITHHER.EQ.3) THEN
  273. TYPOBJ='CHPOINT '
  274. MOTSUC='SUC2'
  275. ENDIF
  276. CALL ACCTAB(IPTAB,'MOT ',IVALIN,XVALIN,MOTSUC,
  277. . LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
  278. . IPOI2)
  279. IF(TYPOBJ.EQ.'CHPOINT ') THEN
  280. CALL CHAME1(0,IPMODL,IPOI2,' ',IPCH2,5)
  281. IF (IERR.NE.0) RETURN
  282. ELSE
  283. CALL CHASUP(IPMODL,IPOI2,IPCH2,IRT2,5)
  284. IF(IRT2.NE.0) THEN
  285. CALL ERREUR(IRT2)
  286. RETURN
  287. ENDIF
  288. ENDIF
  289. C
  290. IF(ITHHER.LT.3) THEN
  291. TYPOBJ=' '
  292. CALL ACCTAB(IPTAB,'MOT ',IVALIN,XVALIN,
  293. . 'TEMPERATURE_REFERENCE',LOGIN,IOBIN,TYPOBJ,IVALRE,
  294. . XVALRE,CHARRE,LOGRE,IPOI3)
  295. IF(TYPOBJ.EQ.'CHPOINT ') THEN
  296. CALL CHAME1(0,IPMODL,IPOI3,' ',IPCH3,5)
  297. IF (IERR.NE.0) RETURN
  298. ELSE
  299. CALL CHASUP(IPMODL,IPOI3,IPCH3,IRT2,5)
  300. IF(IRT2.NE.0) THEN
  301. CALL ERREUR(IRT2)
  302. RETURN
  303. ENDIF
  304. ENDIF
  305. ENDIF
  306. ENDIF
  307. ENDIF
  308. *
  309. c mistral :
  310. IF(IFI.EQ.1) THEN
  311. * -----------------
  312. TYPOBJ=' '
  313. MOTSUC='PHI1'
  314. CALL ACCTAB(IPTAB,'MOT ',IVALIN,XVALIN,MOTSUC,
  315. . LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
  316. . IPOI4)
  317. IF(TYPOBJ.EQ.'CHPOINT ') THEN
  318. CALL CHAME1(0,IPMODL,IPOI4,' ',IPCH4,5)
  319. IF (IERR.NE.0) RETURN
  320. ELSE
  321. CALL CHASUP(IPMODL,IPOI4,IPCH4,IRT2,5)
  322. IF(IRT2.NE.0) THEN
  323. CALL ERREUR(IRT2)
  324. RETURN
  325. ENDIF
  326. ENDIF
  327. *
  328. TYPOBJ=' '
  329. MOTSUC='PHI2'
  330. CALL ACCTAB(IPTAB,'MOT ',IVALIN,XVALIN,MOTSUC,
  331. . LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
  332. . IPOI5)
  333. IF(TYPOBJ.EQ.'CHPOINT ') THEN
  334. CALL CHAME1(0,IPMODL,IPOI5,' ',IPCH5,5)
  335. IF (IERR.NE.0) RETURN
  336. ELSE
  337. CALL CHASUP(IPMODL,IPOI5,IPCH5,IRT2,5)
  338. IF(IRT2.NE.0) THEN
  339. CALL ERREUR(IRT2)
  340. RETURN
  341. ENDIF
  342. ENDIF
  343. ENDIF
  344. * -----
  345. c mistral.
  346. *
  347. *
  348. CALL ECOUL1(IPMODL,IPCHE1,IPCHE2,IPCHE3,IPCHE4,IPCHE6,IPCAR,
  349. & IPCH1,IPCH2,IPCH3,IPCH4,IPCH5,ITHHER,IFI,PRECIS,IPTAB,
  350. & JECHER,ISTEP,JNOID,LOGSUC,IPCHE7,IPCHE8,IPCHE9)
  351. *
  352. IF(IERR.EQ.0)THEN
  353. CALL ACTOBJ('MCHAML ',IPCHE9,1)
  354. CALL ACTOBJ('MCHAML ',IPCHE8,1)
  355. CALL ACTOBJ('MCHAML ',IPCHE7,1)
  356. CALL ECROBJ('MCHAML ',IPCHE9)
  357. CALL ECROBJ('MCHAML ',IPCHE8)
  358. CALL ECROBJ('MCHAML ',IPCHE7)
  359. *
  360. * SI JNOID = 1 : ON RENSEIGNE L'INDICE 'SUCCES' DANS LA TABLE
  361. *
  362. IF(JNOID.EQ.1.AND.IPTAB.NE.0) THEN
  363. CALL ECCTAB(IPTAB,'MOT ',IVALIN,XVALIN,'SUCCES',
  364. . LOGIN,IOBIN,'LOGIQUE ',IVALRE,XVALRE,CHARRE,
  365. . LOGSUC,IOBRE)
  366. ENDIF
  367. ENDIF
  368.  
  369. END
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  

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