Télécharger ottose.eso

Retour à la liste

Numérotation des lignes :

  1. C OTTOSE SOURCE CB215821 16/04/21 21:17:53 8920
  2. SUBROUTINE OTTOSE(MATEPL,SIG0,NSTRS,DEPST,VAR0,XMAT,IVAL,NCOMAT,
  3. & XCAR,ICARA,NVARI,SIGF,VARF,DEFP,MFR,KERRE,
  4. & IB,IGAU)
  5. C
  6. C ==================================================================
  7. C CE SOUS-PROGRAMME EST APPELE DANS "ECOUL2".
  8. C IL PREPARE L'INTEGRATION DE LA LOI DE OTTOSEN
  9. C DE TYPE RETOUR RADIAL
  10. C
  11. C
  12. C ENTREES:
  13. C -------
  14. C NSTRS = NBR. DE COMPOSANTES DES CONTR. OU DES DEFORM.
  15. C SIG0(NSTRS) = CONTR. AU DEBUT DU PAS D'INTEGRATION
  16. C DEPST(NSTRS) = INCREMENT DES DEFORM. TOTALES
  17. C NVARI = NBR. DE VARIABLES INTERNES
  18. C VAR0(NVARI) = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION
  19. C
  20. C NCOMAT = NBR. DE CARACTERISTIQUES MECANIQUES DU MATERIAU
  21. C IVAL(NCOMAT) = INDICE DES COMPOSANTES DE MATERIAU
  22. C XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU
  23. C MFR = INDICE DE LA FORMULATION MECANIQUE; SEULEMENT
  24. C MASSIF OU COQUE POUR LES MATERIAUX ENDOMMAGEABLES
  25. C ICARA = NBR. DE CARACT. GEOMETRIQUES DES ELEMENTS FINIS
  26. C XCAR(ICARA) = CARACT. GEOMETRIQUES DES ELEMENTS FINIS
  27. C
  28. C SORTIES:
  29. C -------
  30. C SIGF(NSTRS)= CONTR. A LA FIN DU PAS D'INTEGRATION
  31. C VARF(NVARI)= VARIABLES INTERNES A LA FIN DU PAS D'INTEGRATION
  32. C DEFP(NSTRS)= INCREMENT DES DEFORM. PLASTIQUES A LA FIN DU PAS
  33. C D'INTEGRATION
  34. C KERRE = INDICE QUI REGIT LES ERREURS
  35. C = 99 SI LA FORMULATION MECANIQUE N'EST PAS DISPONIBLE
  36. C POUR LE MODELE CONSIDERE OU S'IL Y A INCOMPATIBILITE
  37. C ENTRE MFR ET IFOUR
  38. C
  39. C ==================================================================
  40. C ICI IL FAUT PROGRAMMER EN FORTRAN PUR
  41. C ===================================================================
  42. C
  43. IMPLICIT INTEGER(I-N)
  44. IMPLICIT REAL*8(A-H,O-Z)
  45. -INC CCOPTIO
  46. -INC CCREEL
  47. C
  48. PARAMETER (XZER=0.D0,UNDEMI=.5D0,UN=1.D0,DEUX=2.D0,TROIS=3.D0)
  49. C
  50. DIMENSION SIG0(*),DEPST(*),VAR0(*),XMAT(*),XCAR(*),SIGF(*),
  51. & IVAL(*),VARF(*),DEFP(*)
  52. C
  53. DIMENSION SIGMA0(6),DSIGMA(6),DDEF0(6),DDEFP0(6),SIGF0(6)
  54. C
  55. DIMENSION SIGMA(6),DDEF(6),DDEFP(6),SIGMAF(6),DDEFPT(6)
  56. C
  57. DIMENSION WMAX(3),SMAX(7),W(3),WMAX0(3),SMAX0(6),W0(3),
  58. & GFTR(3),GS(3),XLTR(3),XCOMP(18),XINVL(3),WRUPT(3),
  59. & VF(3),XVF(3,3),VF1(3),VF2(3),VF3(3),VCA1(3),VCA2(3),VCA3(3),
  60. & BILIN(3),SBILI(3)
  61. C
  62. DIMENSION TAIL(6),P(6)
  63. DIMENSION IRESU(20)
  64. C
  65. DIMENSION D(18)
  66. DIMENSION WREOUV(3),PENTE(3)
  67. C
  68. C*******************************************************************
  69. C
  70. JEBOUC=0
  71. IIMPI0=IIMPI
  72. *
  73. * PROVISOIRE
  74. *
  75. * IF(IIMPI.EQ.1042.AND.IB.EQ.11.AND.IGAU.EQ.4) THEN
  76. * IIMPI=42
  77. * ENDIF
  78. *
  79.  
  80. *
  81. 2020 JEBOUC=JEBOUC+1
  82. KERRE=0
  83. CALL ZDANUL(SMAX,7)
  84. C
  85. C===================================================================
  86. C TEST DE COMPATIBILITE CALCUL/FORMULATION
  87. C===================================================================
  88. C
  89. C------UNIQUEMENT EN MASSIF OU EN COQUES MINCES
  90. C PAS DE FORMULATION DE FOURIER-----------
  91. C
  92. IF ((MFR.NE.1.AND.MFR.NE.3.AND.MFR.NE.9)
  93. . .OR.IFOUR.EQ.1) THEN
  94. KERRE=99
  95. GO TO 9999
  96. ENDIF
  97. C
  98. C===================================================================
  99. C INITIALISATION DES VARIABLES INTERNES ET DES CARACTERISTIQUES
  100. C===================================================================
  101. C
  102. C
  103. C###################################################################
  104. C===================================================================
  105. C INITIALISATION DES CARACTERISTIQUES
  106. C===================================================================
  107. C###################################################################
  108. C
  109. C Les 2 eres valeurs de Xmat_OBLIGATOIRES sont reservees pour des MOOBL
  110. C Les 2 eres valeurs de Xmat_FACULTATIF sont reservees pour des MOFAC
  111. C et la 3 eme en cas de contraintes planes (DIM3)
  112. C
  113. YOUN=XMAT(1)
  114. XNU =XMAT(2)
  115. G = UNDEMI*YOUN/(UN+XNU)
  116. PRECIE=1.D-10
  117. PRECIZ=YOUN*PRECIE
  118. IF (IFOMOD.EQ.2.AND.MFR.EQ.1) THEN
  119. NOBL=16
  120. ELSE
  121. NOBL=11
  122. IF(MFR.EQ.1.AND.IFOUR.EQ.-2) THEN
  123. NOBL=12
  124. ENDIF
  125. ENDIF
  126. *
  127. * modif pour le modèle ceramique
  128. IF(MATEPL.EQ.65) NOBL = NOBL + 6
  129. * modif pour le modele maxott
  130. IF(MATEPL.EQ.106) NOBL = NOBL + 9
  131. * modif pour le modele UO2_DCN
  132. IF(MATEPL.EQ.108) NOBL = NOBL + 23
  133. *+DC
  134. * à cause de VISQ...
  135. NOBL = NOBL + 1
  136. C
  137. C===================================================
  138. C----------------TRACTION SIMPLE--------------------
  139. C===================================================
  140. C
  141. XDLTR=XMAT(2+NOBL)
  142. DEFOTR=1.2D-4
  143. IF (IVAL(2+NOBL).EQ.0) XDLTR=YOUN*DEFOTR
  144. XDGFTR=XMAT(1+NOBL)
  145. IF (IVAL(1+NOBL).EQ.0) XDGFTR=XDLTR*3.9D-5
  146. BTR=XMAT(6+NOBL)
  147. IF (IVAL(6+NOBL).EQ.0) BTR=0.2D0
  148. *
  149. * PETIT TEST SUR BTR
  150. *
  151. BTR=MIN(BTR,UN)
  152.  
  153. XDWRUP=XMAT(8+NOBL)
  154. XDBILI=XMAT(9+NOBL)
  155. C
  156. C__________________________________________________________
  157. C en defo planes ou axis
  158. C les caracteristiques dans la direction normale au plan
  159. C sont traitees particulierement
  160. C----------------------------------------------------------
  161. C
  162. XDEPSR=0.D0
  163. IF (IFOUR.EQ.0.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN
  164. XDEPSR=XMAT(10+NOBL)
  165. IF (IVAL(10+NOBL).EQ.0) XDEPSR=TROIS*XDLTR/YOUN
  166. ENDIF
  167. C
  168. C===================================================
  169. C------------------CISAILLEMENT---------------------
  170. C===================================================
  171. C
  172. XDGS=XMAT(5+NOBL)
  173. IF (IVAL(5+NOBL).EQ.0) XDGS=YOUN*1.8D-4
  174. C------------------------------------------------
  175. C la resistance au cisaillement
  176. C est la meme pour toutes les fissures
  177. C------------------------------------------------
  178. XGS=XDGS
  179. C
  180. C===================================================
  181. C----------------COMPRESSION SIMPLE-----------------
  182. C===================================================
  183. C
  184. GFCS=XMAT(3+NOBL)
  185. XLCS=XMAT(4+NOBL)
  186. IF (IVAL(4+NOBL).EQ.0) XLCS=1.D10*XDLTR
  187. BCS=XMAT(7+NOBL)
  188. IF (IVAL(7+NOBL).EQ.0) BCS=0.2D0
  189. C
  190. C###################################################################
  191. C===================================================================
  192. C INITIALISATION DES VARIABLES INTERNES
  193. C===================================================================
  194. C###################################################################
  195. C
  196. IF(MATEPL.EQ.65.OR.MATEPL.EQ.108) THEN
  197. VARF(NVARI) = XZER
  198. ENDIF
  199. C======================================
  200. C---------CAS TRIDIMENSIONNEL MASSIF---
  201. C======================================
  202. C
  203. C NVARI=20 cf. IDVAR6
  204. C
  205. IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  206. DO 10 IC=1,3
  207. ICN=IC+NOBL
  208. WMAX(IC)=VAR0(IC+1)
  209. W(IC)=VAR0(IC+4)
  210. GFTR(IC)=XMAT(ICN+9)
  211. IF (GFTR(IC).EQ.XZER) GFTR(IC)=XDGFTR
  212. GS(IC)=XMAT(ICN+12)
  213. IF (GS(IC).EQ.XZER) GS(IC)=XDGS
  214. XLTR(IC)=XMAT(ICN+15)
  215. IF (XLTR(IC).EQ.XZER) XLTR(IC)=XDLTR
  216. XCOMP(IC)=XMAT(ICN+18)
  217. XCOMP(IC+3)=XMAT(ICN+21)
  218. VF1(IC)=VAR0(IC+7)
  219. VF2(IC)=VAR0(IC+10)
  220. VF3(IC)=VAR0(IC+13)
  221. XINVL(IC)=VAR0(IC+16)
  222. WRUPT(IC)=XMAT(ICN+24)
  223. BILIN(IC)=XMAT(ICN+27)
  224. IF (BILIN(IC).EQ.XZER.OR.WRUPT(IC).EQ.XZER) THEN
  225. IF(XDBILI.EQ.XZER.OR.XDWRUP.EQ.XZER) THEN
  226. WRUPT(IC)=DEUX*GFTR(IC)/XLTR(IC)
  227. BILIN(IC)=XZER
  228. SBILI(IC)=XLTR(IC)
  229. ELSE
  230. WRUPT(IC)=XDWRUP
  231. BILIN(IC)=XDBILI
  232. SBILI(IC)=(DEUX*GFTR(IC)-XLTR(IC)*XDBILI)/XDWRUP
  233. ENDIF
  234. ELSE
  235. SBILI(IC)=(DEUX*GFTR(IC)-XLTR(IC)*BILIN(IC))/WRUPT(IC)
  236. ENDIF
  237. 10 CONTINUE
  238. XLAMC=VAR0(20)
  239. ENDIF
  240. C
  241. C======================================
  242. C-----------CAS CONT PLANE-------------
  243. C---- OU TRIDIM COQUES MINCES ---------
  244. C======================================
  245. C
  246. C NVARI=12 cf. IDVAR6
  247. C
  248. IF (IFOUR.EQ.-2.OR.
  249. . (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9))) THEN
  250. DO 11 IC=1,2
  251. ICN=IC+NOBL
  252. WMAX(IC+1)=VAR0(IC+1)
  253. W(IC+1)=VAR0(IC+3)
  254. GFTR(IC+1)=XMAT(ICN+9)
  255. IF (GFTR(IC+1).EQ.XZER) GFTR(IC+1)=XDGFTR
  256. GS(IC+1)=XMAT(ICN+11)
  257. IF (GS(IC+1).EQ.XZER) GS(IC+1)=XDGS
  258. XLTR(IC+1)=XMAT(ICN+13)
  259. IF (XLTR(IC+1).EQ.XZER) XLTR(IC+1)=XDLTR
  260. XCOMP(IC)=XMAT(ICN+15)
  261. XCOMP(IC+3)=XMAT(ICN+18)
  262. VF2(IC)=VAR0(IC+5)
  263. VF3(IC)=VAR0(IC+7)
  264. XINVL(IC+1)=VAR0(IC+9)
  265. WRUPT(IC+1)=XMAT(ICN+21)
  266. BILIN(IC+1)=XMAT(ICN+23)
  267. IF (BILIN(IC+1).EQ.XZER.OR.WRUPT(IC+1).EQ.XZER) THEN
  268. IF(XDBILI.EQ.XZER.OR.XDWRUP.EQ.XZER) THEN
  269. WRUPT(IC+1)=DEUX*GFTR(IC+1)/XLTR(IC+1)
  270. BILIN(IC+1)=XZER
  271. SBILI(IC+1)=XLTR(IC+1)
  272. ELSE
  273. WRUPT(IC+1)=XDWRUP
  274. BILIN(IC+1)=XDBILI
  275. SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*XDBILI)
  276. & /XDWRUP
  277. ENDIF
  278. ELSE
  279. SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*BILIN(IC+1))
  280. & /WRUPT(IC+1)
  281. ENDIF
  282. 11 CONTINUE
  283. XCOMP(3)=XMAT(NOBL+18)
  284. XCOMP(6)=XMAT(NOBL+21)
  285. XLAMC=VAR0(12)
  286. C
  287. C------------------------------------------------------------
  288. C La direction normale au plan est une direction principale
  289. C elle est definie par VF1 et indice par 1
  290. C------------------------------------------------------------
  291. C
  292. WMAX(1)=XZER
  293. W(1)=XZER
  294. GFTR(1)=XDGFTR
  295. GS(1)=XDGS
  296. XLTR(1)=XDLTR
  297. VF1(1)=XZER
  298. VF1(2)=XZER
  299. VF1(3)=UN
  300. XINVL(1)=XZER
  301. VF2(3)=XZER
  302. VF3(3)=XZER
  303. WRUPT(1)=DEUX*GFTR(1)/XLTR(1)
  304. BILIN(1)=XZER
  305. SBILI(1)=XLTR(1)
  306. ENDIF
  307. C
  308. C===========================================
  309. C-----------CAS DEFO PLANE/AXIS-------------
  310. C===========================================
  311. C
  312. C NVARI=15 cf. IDVARI
  313. C
  314. IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-3.OR.IFOUR.EQ.0) THEN
  315. DO 12 IC=1,2
  316. ICN=IC+NOBL
  317. WMAX(IC+1)=VAR0(IC+1)
  318. W(IC+1)=VAR0(IC+4)
  319. GFTR(IC+1)=XMAT(ICN+10)
  320. IF (GFTR(IC+1).EQ.XZER) GFTR(IC+1)=XDGFTR
  321. GS(IC+1)=XMAT(ICN+13)
  322. IF (GS(IC+1).EQ.XZER) GS(IC+1)=XDGS
  323. XLTR(IC+1)=XMAT(ICN+16)
  324. IF (XLTR(IC+1).EQ.XZER) XLTR(IC+1)=XDLTR
  325. XCOMP(IC)=XMAT(ICN+19)
  326. XCOMP(IC+3)=XMAT(ICN+22)
  327. VF2(IC)=VAR0(IC+7)
  328. VF3(IC)=VAR0(IC+9)
  329. XINVL(IC+1)=VAR0(IC+11)
  330. WRUPT(IC+1)=XMAT(ICN+25)
  331. BILIN(IC+1)=XMAT(ICN+27)
  332. IF (BILIN(IC+1).EQ.XZER.OR.WRUPT(IC+1).EQ.XZER) THEN
  333. IF(XDBILI.EQ.XZER.OR.XDWRUP.EQ.XZER) THEN
  334. WRUPT(IC+1)=DEUX*GFTR(IC+1)/XLTR(IC+1)
  335. BILIN(IC+1)=XZER
  336. SBILI(IC+1)=XLTR(IC+1)
  337. ELSE
  338. WRUPT(IC+1)=XDWRUP
  339. BILIN(IC+1)=XDBILI
  340. SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*XDBILI)
  341. & /XDWRUP
  342. ENDIF
  343. ELSE
  344. SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*BILIN(IC+1))
  345. & /WRUPT(IC+1)
  346. ENDIF
  347. 12 CONTINUE
  348. XCOMP(3)=XMAT(NOBL+22)
  349. XCOMP(6)=XMAT(NOBL+25)
  350. XLAMC=VAR0(15)
  351. C
  352. C------------------------------------------------------------
  353. C La direction normale au plan est une direction principale
  354. C elle est definie par VF1 et indice par 1
  355. C------------------------------------------------------------
  356. C
  357. WMAX(1)=VAR0(4)
  358. W(1)=VAR0(7)
  359. XLTR(1)=XMAT(NOBL+19)
  360. IF (XLTR(1).EQ.XZER) XLTR(1)=XDLTR
  361. EPSR=XDEPSR
  362. GS(1)=XMAT(NOBL+16)
  363. IF (GS(1).EQ.XZER) GS(1)=XDGS
  364. XINVL(1)=VAR0(14)
  365. WRUPT(1)=EPSR
  366. BILIN(1)=XMAT(NOBL+30)
  367. GFTR(1)=XMAT(NOBL+13)
  368. IF (BILIN(1).EQ.XZER.OR.GFTR(1).EQ.XZER) THEN
  369. *
  370. * MLR : ICI ON NE PEUT PAS FAIRE MIEUX CAR ON VEUT
  371. * DES DEFORMATIONS DANS LA DIRECTION ETUDIEE
  372. *
  373. IF (GFTR(1).EQ.XZER) GFTR(1)=UNDEMI*XLTR(1)*EPSR
  374. BILIN(1)=XZER
  375. SBILI(1)=XLTR(1)
  376. ELSE
  377. SBILI(1)=(DEUX*GFTR(1)-XLTR(1)*BILIN(1))/WRUPT(1)
  378. ENDIF
  379. C
  380. VF1(1)=XZER
  381. VF1(2)=XZER
  382. VF1(3)=UN
  383. C
  384. VF2(3)=XZER
  385. VF3(3)=XZER
  386. ENDIF
  387. *
  388.  
  389. IZOB=0
  390. ************************************
  391.  
  392. IF(IZOB.EQ.0) THEN
  393. *************************************
  394. * CAS 1
  395. *
  396. *
  397. * VALEURS PAR DEFAUT POUR LES PARAMETRES DE COMPRESSION
  398. *
  399. * XCOMP(1) : EPCM
  400. IF(XCOMP(1).EQ.XZER) XCOMP(1)=(4.D0*XLCS)/(3.D0*YOUN)
  401. * XCOMP(2) : EPCU
  402. IF(XCOMP(2).EQ.XZER) XCOMP(2)=5.D0*XCOMP(1)
  403. * XCOMP(3) : LCBI
  404. IF(XCOMP(3).EQ.XZER) XCOMP(3)=1.15D0*XLCS
  405. * XCOMP(4) : XK2
  406. IF(XCOMP(4).EQ.XZER) XCOMP(4)=0.985D0
  407. * XCOMP(5) : XGB
  408. IF(XCOMP(5).EQ.XZER) XCOMP(5)=1.75D0
  409. * XCOMP(6) : XPA
  410. IF(XCOMP(6).EQ.XZER) XCOMP(6)=1.D0
  411.  
  412. *
  413. * ICI ON COMPLETE LES XCOMP ET ON FAIT DES TESTS
  414. *
  415. XCOMP(7)=XLCS
  416. IF(XCOMP(4).GT.UN) THEN
  417. PRINT *,' K2 =',XCOMP(4)
  418. KERRE=67
  419. RETURN
  420. ENDIF
  421. *
  422. AK2=ACOS(XCOMP(4))
  423. XCC=COS((XPI-AK2)/TROIS)
  424. XCT=COS(AK2/TROIS)
  425. RORO=XCOMP(3)/XLCS
  426. IF(RORO.EQ.XCT/XCC) THEN
  427. PRINT *,' RO =',RORO,' CC=',XCC,' CT=',XCT
  428. KERRE=67
  429. RETURN
  430. ENDIF
  431. *
  432. XTRA=XCC*(RORO*RORO-UN)/RORO/(DEUX*XCC-XCT)
  433. IF(XCOMP(5).LE.XTRA) THEN
  434. PRINT *,' XGB=',XCOMP(5),' XTRA=',XTRA
  435. KERRE=67
  436. RETURN
  437. ENDIF
  438. *
  439. XK1=UN+DEUX*RORO*XCOMP(5)-RORO*RORO*(XCOMP(5)+UN)
  440. XK1=XK1*SQRT(TROIS)/RORO/(XCT-RORO*XCC)
  441. XCOMP(8)=XK1
  442. *
  443. XGA=(UN+XCOMP(5))*RORO*XCT-(UN+DEUX*RORO*XCOMP(5))*XCC
  444. XGA=XGA*TROIS/RORO/(XCT-RORO*XCC)
  445. IF(XGA.LE.XZER.OR.XGA.GE.TROIS) THEN
  446. PRINT *,' XGA=',XGA
  447. KERRE=67
  448. RETURN
  449. ENDIF
  450. XCOMP(9)=XGA
  451. *
  452. XGB=XCOMP(5)
  453. XPA=XCOMP(6)
  454. AL =(UN+XGB*(UN+XPA) -XGA/TROIS/TROIS)/(4.D0*XGA/9.D0)
  455. BE=UNDEMI*(8.D0*XGA/9.D0 - XGB*(UN+XPA))/(4.D0*XGA/9.D0)
  456. GAMA=SQRT(AL+BE*BE)
  457. DELT=(GAMA-BE)/(GAMA+BE)
  458. XCOMP(10)=AL
  459. XCOMP(11)=BE
  460. XCOMP(12)=GAMA
  461. XCOMP(13)=DELT
  462. XMU1=8.D0*XGA*GAMA/9.D0/XCOMP(1)
  463. XCOMP(14)=XMU1
  464. *
  465. DELTAP=XCOMP(2)-XCOMP(1)
  466. XLCMAX=XCOMP(1)*9.D0/(8.D0*XGA*GAMA)
  467. XLCMAX=XLCMAX*LOG((GAMA+UN-BE)/(GAMA-UN+BE)/DELT)
  468. XCOMP(15)=XLCMAX
  469.  
  470. A2=SQRT(1.5D0/XGA + 0.5D0)
  471. XMU2=4.D0*A2*XGA/TROIS/DELTAP
  472. XCOMP(16)=A2
  473. XCOMP(17)=XMU2
  474. XLCULT=XLCMAX+LOG((A2+UN)/(A2-UN))/XMU2
  475. XCOMP(18)=XLCULT
  476.  
  477. ENDIF
  478. *************************************
  479. * FIN DU CAS 1
  480. *************************************
  481. *
  482.  
  483.  
  484. ************************************
  485.  
  486. IF(IZOB.EQ.1) THEN
  487. *************************************
  488. * CAS 2
  489. *
  490. *
  491. * VALEURS PAR DEFAUT POUR LES PARAMETRES DE COMPRESSION
  492. *
  493. * XCOMP(1) : EPCM
  494. IF(XCOMP(1).EQ.XZER) XCOMP(1)=(4.D0*XLCS)/(3.D0*YOUN)
  495. * XCOMP(2) : EPCU
  496. IF(XCOMP(2).EQ.XZER) XCOMP(2)=5.D0*XCOMP(1)
  497. * XCOMP(3) : LCBI
  498. IF(XCOMP(3).EQ.XZER) XCOMP(3)=1.16D0*XLCS
  499. * XCOMP(4) : XK2 ( REPS)
  500. IF(XCOMP(4).EQ.XZER) XCOMP(4)=1.1D0
  501. * XCOMP(5) : XGB
  502. IF(XCOMP(5).EQ.XZER) XCOMP(5)=1.75D0
  503. * XCOMP(6) : XPA ( A0)
  504. IF(XCOMP(6).EQ.XZER) XCOMP(6)=1.583D0
  505. *
  506. * ZZZZ CETTE VALEUR DE 1.583 EST A GENERALISER
  507. *
  508.  
  509.  
  510.  
  511. *
  512. * ICI ON COMPLETE LES XCOMP ET ON FAIT DES TESTS
  513. *
  514. XCOMP(7)=XLCS
  515. *
  516. RORO=XCOMP(3)/XLCS
  517. REPS=XCOMP(4)
  518. *
  519. *
  520. AA=XCOMP(6)/3.D0
  521. AA=(AA+SQRT(AA*AA+12.D0))/6.D0
  522. XCOMP(8)=AA
  523. *
  524. C0=3.D0*AA*(2.D0*REPS-RORO)**2
  525. C0=(C0+XCOMP(6)*(1.D0-REPS)/3.D0)*9.D0/AA**2
  526. C0=C0/(6.D0*AA*(2.D0*RORO**3-REPS)
  527. & +XCOMP(6)*(REPS-4.D0*RORO**2)/3.D0)
  528. XCOMP(9)=C0
  529. *
  530. FAC=2.D0/(1.D0+AA*AA*C0/9.D0)/(6.D0*AA-XCOMP(6)/3.D0)
  531. XLCMAX=XCOMP(1)*FAC
  532. XCOMP(10)=FAC
  533.  
  534.  
  535.  
  536. ENDIF
  537. *************************************
  538. * FIN DU CAS 2
  539. *************************************
  540. *
  541.  
  542. *
  543. C
  544. C CALCUL DE SMAX
  545. C
  546. DO IC=1,3
  547. CALL OTTOFU(XINVL,XLTR,WRUPT,BTR,BILIN,SBILI,W,WMAX,
  548. & SMAX,PENTE,IC)
  549. ENDDO
  550. C
  551. C
  552. C#######################################
  553. C=======================================
  554. C---------PARAMETRES DE TAILLE----------
  555. C=======================================
  556. C#######################################
  557. C
  558. IF (MATEPL.EQ.108) NTAIL=27
  559. IF (MATEPL.NE.108) NTAIL=2
  560. IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  561. C
  562. C-----------TRIDIM MASSIF------------------
  563. C
  564. DO 15 IC=1,6
  565. TAIL(IC)=XMAT(IC+NTAIL)
  566. P(IC)=XMAT(IC+NTAIL+6)
  567. 15 CONTINUE
  568.  
  569. ELSE
  570. C
  571. C------AXIS/DEF/CONT PLANES/COQUES MINCES---------
  572. C
  573.  
  574. TAIL(1)=XMAT(1+NTAIL)
  575. TAIL(2)=XMAT(2+NTAIL)
  576. TAIL(3)=XMAT(4+NTAIL)
  577. TAIL(4)=XMAT(3+NTAIL)
  578. TAIL(5)=XZER
  579. TAIL(6)=XZER
  580. P(1)=XMAT(5+NTAIL)
  581. P(2)=XMAT(6+NTAIL)
  582. P(3)=UN
  583. P(4)=XMAT(7+NTAIL)
  584. P(5)=XZER
  585. P(6)=XZER
  586. ENDIF
  587. C
  588. C
  589. C IMPRESSION DES DONNEES MATERIAU ,TAILLE ET VARIABLES INTERNES
  590. C --------------------------------------------------------------
  591. C
  592. IF(IIMPI.EQ.42) THEN
  593. WRITE(IOIMP,77000) IB,IGAU
  594. 77000 FORMAT(////////2X,' IB=',I4,2X,'IGAU=',I3//)
  595. ENDIF
  596. IF(IIMPI.EQ.42) THEN
  597. WRITE(IOIMP,77001) YOUN,XNU,XDLTR,XDGFTR,BTR,XDEPSR,XDGS,
  598. . XDWRUP,XDBILI,GFCS,XLCS
  599. 77001 FORMAT(///2X,' YUNG=',1PE12.5,2X,'XNU=',1PE12.5/
  600. . 2X,'LTR=',1PE12.5,2X,'GF=',1PE12.5,2X,'BETA=',1PE12.5/
  601. . 2X,'EPSR=',1PE12.5,2X,'GS=',1PE12.5,2X,'WRUP=',1PE12.5/
  602. . 2X,'BILI=',1PE12.5,2X,'GC=',1PE12.5,2X,'LCS=',1PE12.5///)
  603. *
  604. WRITE(IOIMP,77002) (WMAX(I),I=1,3),(SMAX(I),I=1,3)
  605. 77002 FORMAT('0 WMAX '/3(1X,1PE12.5)/
  606. . 2X,'SMAX'/3(1X,1PE12.5)/)
  607. *
  608. WRITE(IOIMP,77003) (W(I),I=1,3),(GFTR(I),I=1,3)
  609. 77003 FORMAT('0 W '/3(1X,1PE12.5)/
  610. . 2X,'GFTR'/3(1X,1PE12.5)/)
  611. *
  612. WRITE(IOIMP,77004) (GS(I),I=1,3),(XLTR(I),I=1,3)
  613. 77004 FORMAT('0 GS '/3(1X,1PE12.5)/
  614. . 2X,'XLTR'/3(1X,1PE12.5)/)
  615. *
  616. WRITE(IOIMP,77005) (VF1(I),I=1,3),(VF2(I),I=1,3)
  617. 77005 FORMAT('0 VF1 '/3(1X,1PE12.5)/
  618. . 2X,'VF2 '/3(1X,1PE12.5)/)
  619. *
  620. WRITE(IOIMP,77006) (VF3(I),I=1,3),(XINVL(I),I=1,3)
  621. 77006 FORMAT('0 VF3 '/3(1X,1PE12.5)/
  622. . 2X,'XINVL'/3(1X,1PE12.5)/)
  623. *
  624. WRITE(IOIMP,77007) (WRUPT(I),I=1,3),(BILIN(I),I=1,3)
  625. 77007 FORMAT('0 WRUPT'/3(1X,1PE12.5)/
  626. . 2X,'BILIN'/3(1X,1PE12.5)/)
  627. *
  628. WRITE(IOIMP,77008) (SBILI(I),I=1,3)
  629. 77008 FORMAT('0 SBILI'/3(1X,1PE12.5)/)
  630. *
  631. WRITE(IOIMP,77009) (TAIL(I),I=1,6),(P(I),I=1,6)
  632. 77009 FORMAT('0 TAIL '/6(1X,1PE12.5)/
  633. . 2X,'P '/6(1X,1PE12.5)/)
  634. *
  635. WRITE(IOIMP,77090) (XCOMP(I),I=1,18)
  636. 77090 FORMAT('0 XCOMP'/6(1X,1PE12.5)/)
  637. WRITE(IOIMP,77091) XLAMC
  638. 77091 FORMAT('0 XLAMC = ',1PE12.5/)
  639. *
  640. WRITE(IOIMP,17009) (SIG0(I),I=1,NSTRS)
  641. 17009 FORMAT('0 SIG0 EN ENTREE '/8(1X,1PE12.5)/)
  642. WRITE(IOIMP,18009) (DEPST(I),I=1,NSTRS)
  643. 18009 FORMAT('0 DEPST EN ENTREE '/8(1X,1PE12.5)/)
  644. ENDIF
  645.  
  646. * AM 3/12/15 TEST SUR DEPST EN ENTREE
  647.  
  648. DO I=1,NSTRS
  649. IF(ABS(DEPST(I)).GT.1.D-1) THEN
  650. PRINT *,' DEFORMATIONS TROP GRANDES EN ENTREE '
  651. KERRE=99
  652. RETURN
  653. ENDIF
  654. ENDDO
  655.  
  656. C
  657. C========================================================================
  658. C ADAPTATION DE L'OPTION DE CALCUL VERS LE 3D MASSIF
  659. C DE SIG0 A SIGMA0
  660. C
  661. C************************************************************************
  662. C A T T E N T I O N
  663. C
  664. C DANS LA SUITE ON TRAVAILLE SUR EPSXY AU LIEU DE GAMXY !!!!
  665. C
  666. C************************************************************************
  667. C
  668. C========================================================================
  669. C
  670. IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  671. C
  672. C-----------------------MASSIF 3D----NSTRS=6-----------------------------
  673. C
  674. DO 20 IC=1,6
  675. SIGMA0(IC)=SIG0(IC)
  676. IF(IC.LE.3) THEN
  677. DSIGMA(IC)=DEPST(IC)
  678. ELSE
  679. DSIGMA(IC)=DEPST(IC)*UNDEMI
  680. ENDIF
  681. 20 CONTINUE
  682. C
  683. ELSEIF (IFOUR.NE.2.AND.MFR.EQ.1) THEN
  684. C
  685. C-----CALCUL AXISYMETRQUE/DEF PLANES/CONT PLANES/DEF PLANES GENER.-------
  686. C
  687. DO 30 IC=1,4
  688. SIGMA0(IC)=SIG0(IC)
  689. IF(IC.LE.3) THEN
  690. DSIGMA(IC)=DEPST(IC)
  691. ELSE
  692. DSIGMA(IC)=DEPST(IC)*UNDEMI
  693. ENDIF
  694. 30 CONTINUE
  695. SIGMA0(5)=XZER
  696. SIGMA0(6)=XZER
  697. DSIGMA(5)=XZER
  698. DSIGMA(6)=XZER
  699. C
  700. ELSEIF (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)) THEN
  701. C
  702. C-----CALCUL TRIDIM COQUES MINCES -------
  703. C ON NE PREND QUE LA PARTIE MEMBRANE
  704. C
  705. EPAI=XCAR(1)
  706. SIGMA0(1)=SIG0(1)/EPAI
  707. SIGMA0(2)=SIG0(2)/EPAI
  708. SIGMA0(3)=0.D0
  709. SIGMA0(4)=SIG0(3)/EPAI
  710. DSIGMA(1)=DEPST(1)
  711. DSIGMA(2)=DEPST(2)
  712. DSIGMA(3)=0.D0
  713. DSIGMA(4)=DEPST(3)*UNDEMI
  714. SIGMA0(5)=XZER
  715. SIGMA0(6)=XZER
  716. DSIGMA(5)=XZER
  717. DSIGMA(6)=XZER
  718. ENDIF
  719. C
  720. C########################################################################
  721. C========================================================================
  722. C CALCUL DES PARAMETRES POUR UN MATERIAU PRE-FISSURE
  723. C========================================================================
  724. C########################################################################
  725. C
  726. XNF1=VF1(1)*VF1(1)+VF1(2)*VF1(2)+VF1(3)*VF1(3)
  727. XNF2=VF2(1)*VF2(1)+VF2(2)*VF2(2)+VF2(3)*VF2(3)
  728. XNF3=VF3(1)*VF3(1)+VF3(2)*VF3(2)+VF3(3)*VF3(3)
  729. C
  730. C========================================================================
  731. C CALCUL DES PARAMETRES DE TAILLE POUR UN MATERIAU PRE-FISSURE
  732. C========================================================================
  733. C
  734. C---on calcule la parametre de taille si la fissure est ouverte--
  735. C---------------et le parametre de taille nul--------------------
  736. C
  737. IF (XNF1.NE.XZER.AND.W(1).NE.XZER.AND.XINVL(1).EQ.XZER) THEN
  738. C
  739. C------------FISSURE 1 OUVERTE---------------
  740. C
  741. XL1=TAIL(1)*VF1(1)*VF1(1)+TAIL(2)*VF1(2)*VF1(2)
  742. XL1=XL1+TAIL(3)*VF1(3)*VF1(3)+DEUX*TAIL(4)*VF1(2)*VF1(1)
  743. XL1=XL1+DEUX*TAIL(5)*VF1(1)*VF1(3)
  744. XL1=XL1+DEUX*TAIL(6)*VF1(2)*VF1(3)
  745. P1=P(1)*VF1(1)*VF1(1)+P(2)*VF1(2)*VF1(2)+P(3)*VF1(3)*VF1(3)
  746. P1=P1+DEUX*P(4)*VF1(2)*VF1(1)+DEUX*P(5)*VF1(1)*VF1(3)
  747. P1=P1+DEUX*P(6)*VF1(2)*VF1(3)
  748. SMAX(1)=XLTR(1)
  749. WMAX(1)=W(1)
  750. IF (XL1.NE.XZER) THEN
  751. XINVL(1)=ABS(P1/XL1)
  752. IF (XINVL(1).LE
  753. & .((UN+XNU)*XLTR(1)*XLTR(1)/(DEUX*GFTR(1)*YOUN))) THEN
  754. KERRE=61
  755. GO TO 2021
  756. ENDIF
  757. ELSE
  758. XINVL(1)=UN
  759. ENDIF
  760. ENDIF
  761. C
  762. C---------FISSURE 2 OUVERTE-----------
  763. C
  764. IF (XNF2.NE.XZER.AND.W(2).NE.XZER.AND.XINVL(2).EQ.XZER) THEN
  765. XL2=TAIL(1)*VF2(1)*VF2(1)+TAIL(2)*VF2(2)*VF2(2)
  766. XL2=XL2+TAIL(3)*VF2(3)*VF2(3)+DEUX*TAIL(4)*VF2(2)*VF2(1)
  767. XL2=XL2+DEUX*TAIL(5)*VF2(1)*VF2(3)
  768. XL2=XL2+DEUX*TAIL(6)*VF2(2)*VF2(3)
  769. P2=P(1)*VF2(1)*VF2(1)+P(2)*VF2(2)*VF2(2)+P(3)*VF2(3)*VF2(3)
  770. P2=P2+DEUX*P(4)*VF2(2)*VF2(1)+DEUX*P(5)*VF2(1)*VF2(3)
  771. P2=P2+DEUX*P(6)*VF2(2)*VF2(3)
  772. SMAX(2)=XLTR(2)
  773. WMAX(2)=W(2)
  774. IF (XL2.NE.XZER) THEN
  775. XINVL(2)=ABS(P2/XL2)
  776. IF (XINVL(2).LE
  777. & .((UN+XNU)*XLTR(2)*XLTR(2)/(DEUX*GFTR(2)*YOUN))) THEN
  778. KERRE=61
  779. GO TO 2021
  780. ENDIF
  781. ELSE
  782. XINVL(2)=UN
  783. ENDIF
  784. ENDIF
  785. C
  786. C---------FISSURE 3 OUVERTE-----------
  787. C
  788. IF (XNF3.NE.XZER.AND.W(3).NE.XZER.AND.XINVL(3).EQ.XZER) THEN
  789. XL3=TAIL(1)*VF3(1)*VF3(1)+TAIL(2)*VF3(2)*VF3(2)
  790. XL3=XL3+TAIL(3)*VF3(3)*VF3(3)+DEUX*TAIL(4)*VF3(2)*VF3(1)
  791. XL3=XL3+DEUX*TAIL(5)*VF3(1)*VF3(3)
  792. XL3=XL3+DEUX*TAIL(6)*VF3(2)*VF3(3)
  793. P3=P(1)*VF3(1)*VF3(1)+P(2)*VF3(2)*VF3(2)+P(3)*VF3(3)*VF3(3)
  794. P3=P3+DEUX*P(4)*VF3(2)*VF3(1)+DEUX*P(5)*VF3(1)*VF3(3)
  795. P3=P3+DEUX*P(6)*VF3(2)*VF3(3)
  796. SMAX(3)=XLTR(3)
  797. WMAX(3)=W(3)
  798. IF (XL3.NE.XZER) THEN
  799. XINVL(3)=ABS(P3/XL3)
  800. IF (XINVL(3).LE
  801. & .((UN+XNU)*XLTR(3)*XLTR(3)/(DEUX*GFTR(3)*YOUN))) THEN
  802. KERRE=61
  803. GO TO 2021
  804. ENDIF
  805. ELSE
  806. XINVL(3)=UN
  807. ENDIF
  808. ENDIF
  809. C
  810. C======================================================================
  811. C CALCUL DU NOMBRE DE FISSURE
  812. C======================================================================
  813. C
  814. NFISSU=0
  815. IF (XINVL(1).NE.XZER) NFISSU=NFISSU+1
  816. IF (XINVL(2).NE.XZER) NFISSU=NFISSU+1
  817. IF (XINVL(3).NE.XZER) NFISSU=NFISSU+1
  818. C
  819. C================================================================
  820. C CALCUL DU NOMBRE DE DIRECTION IMPOSEE
  821. C qui ne sont pas des directions de fissuration
  822. C================================================================
  823. C
  824. NVF=0
  825. IF (XNF1.NE.XZER.AND.XINVL(1).EQ.XZER) NVF=NVF+1
  826. IF (XNF2.NE.XZER.AND.XINVL(2).EQ.XZER) NVF=NVF+1
  827. IF (XNF3.NE.XZER.AND.XINVL(3).EQ.XZER) NVF=NVF+1
  828. C
  829. C--remarque : en 2D NVF la direction (0 0 1) est toujours imposee--
  830. C
  831. C========================================================================
  832. C-------------test la consistance des vecteurs VF1 VF2 VF3---------------
  833. C VF1 VF2 et VF3 sont dans l ordre d apparition 1 2 3
  834. C========================================================================
  835. C
  836. IF (XNF1.EQ.XZER.AND.(XNF2+XNF3).NE.XZER) THEN
  837. KERRE=66
  838. GO TO 2021
  839. ENDIF
  840. C
  841. IF (XNF2.EQ.XZER.AND.XNF3.NE.XZER) THEN
  842. KERRE=66
  843. GO TO 2021
  844. ENDIF
  845. C
  846. PRDT=VF1(1)*VF2(1)+VF1(2)*VF2(2)+VF1(3)*VF2(3)
  847. PRDT=PRDT+VF1(1)*VF3(1)+VF1(2)*VF3(2)+VF1(3)*VF3(3)
  848. PRDT=PRDT+VF2(1)*VF3(1)+VF2(2)*VF3(2)+VF2(3)*VF3(3)
  849. PRDT=ABS(PRDT)
  850. C
  851. IF (PRDT.GE.1D-3) THEN
  852. KERRE=67
  853. GO TO 2021
  854. ENDIF
  855. C
  856. C########################################################################
  857. C========================================================================
  858. C INCREMENT DE DEFORMATION
  859. C========================================================================
  860. C########################################################################
  861. C
  862. IF (IFOUR.EQ.-2.OR.
  863. . (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9))) THEN
  864. C
  865. C----------------CONT PLANES---------------
  866. C--------- OU TRIDIM COQUES MINCES -------
  867. C
  868. DO 33 I=1,4
  869. DDEF0(I)=DSIGMA(I)
  870. 33 CONTINUE
  871. DDEF0(5)=XZER
  872. DDEF0(6)=XZER
  873. ELSE
  874. C
  875. C-------------3D MASSIF / DEFO PLANES-------------
  876. C
  877. DO 34 I=1,6
  878. DDEF0(I)=DSIGMA(I)
  879. 34 CONTINUE
  880. ENDIF
  881. C
  882. C
  883. C IMPRESSION DES INCREMENTS DE DEFORMATION ET ETAT INITIAL
  884. C --------------------------------------------------------
  885. C
  886. IF(IIMPI.EQ.42) THEN
  887. WRITE(IOIMP,77010) (SIGMA0(I),I=1,6)
  888. 77010 FORMAT('0 SIGMA0 EN REPERE GENERAL '/6(1X,1PE12.5)/)
  889. *
  890. WRITE(IOIMP,77011) (DDEF0(I),I=1,6)
  891. 77011 FORMAT('0 DDEF0 EN REPERE GENERAL '/6(1X,1PE12.5)/)
  892. *
  893. WRITE(IOIMP,77012) NFISSU,NVF,(XINVL(I),I=1,3)
  894. 77012 FORMAT('0 NFISSU=',I3,2X,'NVF=',I3/
  895. . '0 XINVL '/3(1X,1PE12.5)/)
  896. ENDIF
  897. C
  898. C
  899. C
  900. C########################################################################
  901. C========================================================================
  902. C
  903. C LES CHOSES SERIEUSES COMMENCENT : ITERATIONS INTERNES
  904. C
  905. C========================================================================
  906. C########################################################################
  907. C
  908. C========================================================================
  909. C INITIALISATION DES VARIABLES GLOBALES AUX ITERATIONS INTERNES
  910. C========================================================================
  911. C
  912. PSOM=0.D0
  913. DO 334 I=1,6
  914. PSOM=PSOM+ABS(DDEF0(I))
  915. 334 CONTINUE
  916. PSOM=PSOM/(3.D0*DEFOTR)
  917. * MLR 22/11/96
  918. PSOM=MIN(PSOM,1.D6)
  919. *
  920. * AM 30/04/96 ON MODULE LA PRECISION SELON LA VALEUR DE PSOM
  921. *
  922. * PRECIS = MIN (1.D-4,1.D-4/PSOM)
  923. * EPSILO = MIN (1.D-2,1.D-2/PSOM)
  924. EPSIL2 = MIN (1.D-4,1.D-4/PSOM)
  925. TAURES=UN
  926. ITER=0
  927. DO 25 I=1,6
  928. DDEFPT(I)=XZER
  929. 25 CONTINUE
  930. C
  931. C========================================================================
  932. C LABEL DE DEBUT DES ITERATIONS INTERNES
  933. C========================================================================
  934. C
  935. 31 CONTINUE
  936. C
  937. ITER=ITER+1
  938. C
  939. IF(IIMPI.EQ.42) THEN
  940. WRITE(IOIMP,77015) ITER,TAURES
  941. 77015 FORMAT(//////2X,' >>>>>>>>> ITERATION INTERNE ',
  942. & I3,2X,'TAURES=',1PE12.5/)
  943. WRITE(IOIMP,77615) XNF1,XNF2,XNF3
  944. 77615 FORMAT(/2X,'XNF1 =',1PE12.5,2X,'XNF2 =',1PE12.5,
  945. & 2X,'XNF3 =',1PE12.5/)
  946. ENDIF
  947. C
  948. IF (ITER.GE.25) THEN
  949. C------non convergence des iterations internes------
  950. KERRE=62
  951. GO TO 2021
  952. ENDIF
  953. C
  954. C
  955. C========================================================================
  956. C INITIALISATION DES VARIABLES POUR GESTION DES SOUS ITERATIONS
  957. C========================================================================
  958. C---nous prenons en compte la totalite du reste de l increment de def---
  959. C------------IRESU garde en memoire la derniere non linearite----------
  960. C------------prise en compte lors des sous iterations internes----------
  961. C
  962. C
  963. TAU=UN
  964. C
  965. DO IC=1,3
  966. W0(IC)=W(IC)
  967. WMAX0(IC)=WMAX(IC)
  968. ENDDO
  969. DO IC=1,6
  970. SMAX0(IC)=SMAX(IC)
  971. ENDDO
  972. *
  973. IF(IIMPI.EQ.42) THEN
  974. WRITE(IOIMP,73032) (W0(I),I=1,3),(WMAX0(I),I=1,3)
  975. 73032 FORMAT(' W0 '/3(1X,1PE12.5)/' WMAX0 '/3(1X,1PE12.5)/)
  976. *
  977. WRITE(IOIMP,73630) (SMAX0(I),I=1,3)
  978. 73630 FORMAT(' SMAX0'/3(1X,1PE12.5)/)
  979. *
  980. WRITE(IOIMP,73034) (WRUPT(I),I=1,3),(XINVL(I),I=1,3)
  981. 73034 FORMAT(' WRUPT'/3(1X,1PE12.5)/' XINVL'/3(1X,1PE12.5)/)
  982. WRITE(IOIMP,73934) XNF1, XNF2,XNF3
  983. 73934 FORMAT(/// 2X, 'XNF1 XNF2 XNF3 = ',3(1X,1PE12.5)/)
  984. ENDIF
  985. C
  986. C
  987. C========================================================================
  988. C REPERE DE CALCUL
  989. C========================================================================
  990. C
  991. C
  992. IF (XNF1.NE.XZER) THEN
  993. C
  994. C------------DIRECTION 1 IMPOSEE---------------
  995. C
  996. VCA1(1)=VF1(1)
  997. VCA1(2)=VF1(2)
  998. VCA1(3)=VF1(3)
  999. IF (XNF3.NE.XZER) THEN
  1000. C
  1001. C---------DIRECTION 1 2 3 IMPOSEES-----------
  1002. C
  1003. VCA2(1)=VF2(1)
  1004. VCA2(2)=VF2(2)
  1005. VCA2(3)=VF2(3)
  1006. VCA3(1)=VF3(1)
  1007. VCA3(2)=VF3(2)
  1008. VCA3(3)=VF3(3)
  1009. ELSEIF (XNF2.NE.XZER) THEN
  1010. C
  1011. C----------DIRECTION 1 ET 2 IMPOSEES------------
  1012. C
  1013. VCA2(1)=VF2(1)
  1014. VCA2(2)=VF2(2)
  1015. VCA2(3)=VF2(3)
  1016. VCA3(1)=VF1(2)*VF2(3)-VF1(3)*VF2(2)
  1017. VCA3(2)=VF1(3)*VF2(1)-VF1(1)*VF2(3)
  1018. VCA3(3)=VF1(1)*VF2(2)-VF1(2)*VF2(1)
  1019. SMAX(3)=XLTR(3)
  1020. ELSE
  1021. C
  1022. C-------------UNIQUEMENT LA DIRECTION 1 IMPOSEE--------------
  1023. C
  1024. IF (VCA1(2).NE.XZER.OR.VCA1(3).NE.XZER) THEN
  1025. VCA2(1)=XZER
  1026. VCA2(2)=-VCA1(3)
  1027. VCA2(3)=VCA1(2)
  1028. XVCA=SQRT(VCA2(1)*VCA2(1)+VCA2(2)*VCA2(2)
  1029. . +VCA2(3)*VCA2(3))
  1030. VCA2(1)=VCA2(1)/XVCA
  1031. VCA2(2)=VCA2(2)/XVCA
  1032. VCA2(3)=VCA2(3)/XVCA
  1033. ELSE
  1034. VCA2(1)=XZER
  1035. VCA2(2)=UN
  1036. VCA2(3)=XZER
  1037. ENDIF
  1038. VCA3(1)=VF1(2)*VCA2(3)-VF1(3)*VCA2(2)
  1039. VCA3(2)=VF1(3)*VCA2(1)-VF1(1)*VCA2(3)
  1040. VCA3(3)=VF1(1)*VCA2(2)-VF1(2)*VCA2(1)
  1041. SMAX(2)=XLTR(2)
  1042. SMAX(3)=XLTR(3)
  1043. ENDIF
  1044. ELSE
  1045. C
  1046. C------------PAS DE DIRECTION IMPOSEE----------
  1047. C
  1048. VCA1(1)=UN
  1049. VCA1(2)=XZER
  1050. VCA1(3)=XZER
  1051. VCA2(1)=XZER
  1052. VCA2(2)=UN
  1053. VCA2(3)=XZER
  1054. VCA3(1)=XZER
  1055. VCA3(2)=XZER
  1056. VCA3(3)=UN
  1057. SMAX(1)=XLTR(1)
  1058. SMAX(2)=XLTR(2)
  1059. SMAX(3)=XLTR(3)
  1060. ENDIF
  1061. C
  1062. C========================================================================
  1063. C CALCUL DE DDEF0 ET SIGMA0
  1064. C DANS LE REPERE DE CALCUL
  1065. C RESULTAT NOTE : DDEF ET SIGMA
  1066. C========================================================================
  1067. C
  1068. LECAS=1
  1069. CALL OTTROT(SIGMA0,DDEF0,SIGMA,DDEF,VCA1,VCA2,VCA3,LECAS)
  1070. C
  1071. IF(IIMPI.EQ.42) THEN
  1072. WRITE(IOIMP,70016) (VCA1(I),I=1,3),(VCA2(I),I=1,3),
  1073. & (VCA3(I),I=1,3)
  1074. 70016 FORMAT(2X,'VECTEUR VCA1 ',3(1X,1PE12.5)/
  1075. & 2X,'VECTEUR VCA2 ',3(1X,1PE12.5)/
  1076. & 2X,'VECTEUR VCA3 ',3(1X,1PE12.5)//)
  1077. *
  1078. WRITE(IOIMP,77016) (SIGMA(I),I=1,6)
  1079. 77016 FORMAT(2X,'SIGMA0 EN REPERE CALCUL '/6(1X,1PE12.5)/)
  1080. *
  1081. WRITE(IOIMP,77017) (DDEF(I),I=1,6)
  1082. 77017 FORMAT(2X,'DDEF0 EN REPERE CALCUL '/6(1X,1PE12.5)/)
  1083. *
  1084. WRITE(IOIMP,73017) PRECIZ
  1085. 73017 FORMAT(2X,'PRECIZ = ',1PE12.5/)
  1086. WRITE(IOIMP,77417) (SMAX(I),I=1,3)
  1087. 77417 FORMAT(2X,' SMAX ',3(1X,1PE12.5)//)
  1088. ENDIF
  1089. C
  1090. C------------------------------------------------------------------------
  1091. C
  1092. C VERIFICATIONS SUR L'ETAT INITIAL
  1093. C ZZZZ A COMPLETER
  1094. C------------------------------------------------------------------------
  1095. C
  1096. ICAZ=1
  1097. CALL OTTEST(XINVL,W0,WMAX0,SMAX,SIGMA,XLTR,PRECIZ,
  1098. & BTR,WRUPT,IB,IGAU,ICAZ,KERRE)
  1099. IF(KERRE.EQ.70) GO TO 2021
  1100.  
  1101. C
  1102. C
  1103. C========================================================================
  1104. C LABEL DE DEBUT DES SOUS ITERATIONS INTERNES
  1105. C
  1106. C CES SOUS-ITERATIONS DOIVENT REDUIRE L INCREMENT DE DEF DE MANIERE
  1107. C A ANNULER TOUTES LES NON LINEARITES EVENTUELLES
  1108. C========================================================================
  1109. C
  1110. CALL IANUL(IRESU,20)
  1111. *
  1112. DO IC=1,3
  1113. W(IC)=W0(IC)
  1114. WMAX(IC)=WMAX0(IC)
  1115. SMAX(IC)=SMAX0(IC)
  1116. ENDDO
  1117. C
  1118. C========================================================================
  1119. C
  1120. C---------------------------ECOULEMENT-----------------------------------
  1121. C
  1122. C========================================================================
  1123. C
  1124. CALL OTTOCA(SIGMA,DDEF,W,WMAX,XLAMC,
  1125. & SMAX,WRUPT,BILIN,SBILI,XLTR,XLCS,XINVL,
  1126. & WREOUV,YOUN,XNU,GFTR,GFCS,G,GS,BTR,XCOMP,
  1127. & NFISSU,NVF,XVF,TAU,IRESU,NRESU,
  1128. & SIGMAF,DDEFP,PRECIE,PRECIZ,MFR,KERRE)
  1129. IF (KERRE.NE.0) THEN
  1130. PRINT *,'IB=',IB,' IGAU=',IGAU
  1131. GO TO 2021
  1132. ENDIF
  1133.  
  1134.  
  1135. *
  1136. IF(IIMPI.EQ.42) THEN
  1137. WRITE(IOIMP,77031)
  1138. 77031 FORMAT(' SORTIE D OTTOCA ' /)
  1139. *
  1140. WRITE(IOIMP,77032) (W(I),I=1,3),(WMAX(I),I=1,3)
  1141. 77032 FORMAT(' W '/3(1X,1PE12.5)/' WMAX '/3(1X,1PE12.5)/)
  1142. *
  1143. WRITE(IOIMP,75630) (SMAX(I),I=1,3)
  1144. 75630 FORMAT(' SMAX'/3(1X,1PE12.5)/)
  1145. *
  1146. WRITE(IOIMP,75631) NFISSU,NVF,NRESU,XLAMC
  1147. 75631 FORMAT(' NFISSU = ',I3,2X,'NVF = ',I3,2X,'NRESU=',I3/
  1148. & 2X,'XLAMC=',1PE12.5//)
  1149. WRITE(IOIMP,75632) (IRESU(I),I=1,NRESU)
  1150. 75632 FORMAT(' IRESU = ',10I4/)
  1151. WRITE(IOIMP,75633) ((XVF(I,J),I=1,3),J=1,3)
  1152. 75633 FORMAT(' TABLEAU XVF '/(3(1X,1PE12.5)/))
  1153. ENDIF
  1154. *
  1155. C
  1156. C
  1157. C========================================================================
  1158. C CALCUL DU RESTE DE L'INCREMENT DE DEFORMATION
  1159. C ET MISE A JOUR DES VARIABLES INTERNES
  1160. C========================================================================
  1161. C
  1162. *
  1163. TAURES=(UN-TAU)*TAURES
  1164. C
  1165. IF(IIMPI.EQ.42) THEN
  1166. WRITE(IOIMP,77039) TAU,TAURES
  1167. 77039 FORMAT(//2X,'VALEUR DE L INCREMENT ECOULEE ' /
  1168. & /2X,' TAU = ',1PE12.5,2X,'TAURES=',1PE12.5/)
  1169. ENDIF
  1170. *
  1171. *ZZZZZZZZZZZZZZZZ
  1172. * EVENTUELLEMENT TESTER L'EGALITE DE TAU A 0. AUSSI
  1173. *ZZZZZZZZZZZZZZZZ
  1174.  
  1175. IF(TAU.LT.0.D0) THEN
  1176. WRITE(IOIMP,70069)
  1177. 70069 FORMAT(////2X,'########### TAU NEGATIF ###########'////)
  1178. KERRE=72
  1179. GO TO 2021
  1180. ENDIF
  1181. C
  1182. C---------------------------------------------------------------------
  1183. C TEST SUR IRESU
  1184. C---------------------------------------------------------------------
  1185. C
  1186. IF(NRESU.GT.1) THEN
  1187. DO 43 IR=1,NRESU
  1188. JRESU=IRESU(IR)
  1189. DO 44 KR=1,NRESU
  1190. KRESU=IRESU(KR)
  1191. IF(KR.NE.IR.AND.JRESU.EQ.KRESU) THEN
  1192. WRITE(IOIMP,20069)
  1193. 20069 FORMAT(////2X,
  1194. & '########### 2 IRESU IDENTIQUES ###########'////)
  1195. KERRE=73
  1196. GO TO 2021
  1197. ENDIF
  1198. 44 CONTINUE
  1199. 43 CONTINUE
  1200. ENDIF
  1201.  
  1202. C
  1203. C
  1204. C========================================================================
  1205. C
  1206. C-------------PRISE EN COMPTE DE LA NOUVELLE NON LINEARITE---------------
  1207. C
  1208. C========================================================================
  1209. C
  1210. C
  1211. DO 55 IR=1,NRESU
  1212. JRESU=IRESU(IR)
  1213. *
  1214. IF(IIMPI.EQ.42) THEN
  1215. WRITE(IOIMP,74401) JRESU
  1216. 74401 FORMAT(/2X,'MISE A JOUR POUR JRESU = ',I4/)
  1217. ENDIF
  1218.  
  1219. C
  1220. C-----------------FISSURATION---------------
  1221. C
  1222. IF (JRESU.GE.1.AND.JRESU.LE.3) THEN
  1223. C
  1224. NFISSU=NFISSU+1
  1225. C
  1226. C----------CALCUL DE VF , XINVL , SMAX DANS LE REPERE GLOBAL-------------
  1227. C
  1228. XVFN=XVF(1,JRESU)**2 + XVF(2,JRESU)**2
  1229. & + XVF(3,JRESU)**2
  1230. IF(XVFN.EQ.XZER) THEN
  1231. WRITE(IOIMP,77027) JRESU
  1232. 77027 FORMAT(2X,' ******** PB AVEC UN VECTEUR XVF !!!! ' /
  1233. & 2X,' DIRECTION = ',I3//)
  1234. KERRE=70
  1235. GO TO 2021
  1236. ENDIF
  1237. *
  1238. *
  1239. VF(1)=VCA1(1)*XVF(1,JRESU)+VCA2(1)*XVF(2,JRESU)
  1240. & +VCA3(1)*XVF(3,JRESU)
  1241. VF(2)=VCA1(2)*XVF(1,JRESU)+VCA2(2)*XVF(2,JRESU)
  1242. & +VCA3(2)*XVF(3,JRESU)
  1243. VF(3)=VCA1(3)*XVF(1,JRESU)+VCA2(3)*XVF(2,JRESU)
  1244. & +VCA3(3)*XVF(3,JRESU)
  1245. XNF=VF(1)*VF(1)+VF(2)*VF(2)+VF(3)*VF(3)
  1246. XL=TAIL(1)*VF(1)*VF(1)+TAIL(2)*VF(2)*VF(2)
  1247. XL=XL+TAIL(3)*VF(3)*VF(3)+DEUX*TAIL(4)*VF(2)*VF(1)
  1248. XL=XL+DEUX*TAIL(5)*VF(1)*VF(3)
  1249. XL=XL+DEUX*TAIL(6)*VF(2)*VF(3)
  1250. PASS=P(1)*VF(1)*VF(1)+P(2)*VF(2)*VF(2)+P(3)*VF(3)*VF(3)
  1251. PASS=PASS+DEUX*P(4)*VF(2)*VF(1)+DEUX*P(5)*VF(1)*VF(3)
  1252. PASS=PASS+DEUX*P(6)*VF(2)*VF(3)
  1253. IF (XL.NE.XZER) THEN
  1254. XTAILLE=ABS(PASS/XL)
  1255. IF (XTAILLE.LE.((UN+XNU)*XLTR(JRESU)*XLTR(JRESU)
  1256. & /(DEUX*GFTR(JRESU)*YOUN))) THEN
  1257. KERRE=61
  1258. GO TO 2021
  1259. ENDIF
  1260. ELSE
  1261. XTAILLE=UN
  1262. ENDIF
  1263. C
  1264. ********* SMAX(JRESU) =XLTR(JRESU)
  1265. ********* WMAX(JRESU) =W(JRESU)
  1266. XINVL(JRESU)=XTAILLE
  1267. C
  1268. C MISE A JOUR DES DIRECTIONS DE FISSURE DANS LES VARIABLES INTERNES
  1269. C
  1270. C----------------------------------------
  1271. C MATERIAU NON FISSURE
  1272. C----------------------------------------
  1273. C
  1274. IF (NFISSU.EQ.1) THEN
  1275. IF (NVF.EQ.0) THEN
  1276. VF1(1)=VF(1)
  1277. VF1(2)=VF(2)
  1278. VF1(3)=VF(3)
  1279. XNF1=XNF
  1280. GOTO 55
  1281. ENDIF
  1282. IF (NVF.EQ.1.AND.JRESU.EQ.1) THEN
  1283. NVF=NVF-1
  1284. GOTO 55
  1285. ENDIF
  1286. IF (NVF.EQ.1.AND.JRESU.NE.1) THEN
  1287. VF2(1)=VF(1)
  1288. VF2(2)=VF(2)
  1289. VF2(3)=VF(3)
  1290. XNF2=XNF
  1291. GOTO 55
  1292. ENDIF
  1293. IF (NVF.EQ.2.AND.JRESU.EQ.3) THEN
  1294. VF3(1)=VF(1)
  1295. VF3(2)=VF(2)
  1296. VF3(3)=VF(3)
  1297. XNF3=XNF
  1298. GOTO 55
  1299. ENDIF
  1300. IF (NVF.EQ.2.AND.JRESU.NE.3) THEN
  1301. NVF=NVF-1
  1302. GOTO 55
  1303. ENDIF
  1304. IF (NVF.EQ.3) THEN
  1305. NVF=NVF-1
  1306. GOTO 55
  1307. ENDIF
  1308. ENDIF
  1309. C
  1310. C------------------------------------------
  1311. C UNE FISSURE AU PREALABLE
  1312. C------------------------------------------
  1313. C
  1314. IF (NFISSU.EQ.2) THEN
  1315. IF (NVF.EQ.0) THEN
  1316. VF2(1)=VF(1)
  1317. VF2(2)=VF(2)
  1318. VF2(3)=VF(3)
  1319. XNF2=XNF
  1320. GOTO 55
  1321. ENDIF
  1322. IF (NVF.EQ.1.AND.JRESU.EQ.3) THEN
  1323. VF3(1)=VF(1)
  1324. VF3(2)=VF(2)
  1325. VF3(3)=VF(3)
  1326. XNF3=XNF
  1327. GOTO 55
  1328. ENDIF
  1329. IF (NVF.EQ.1.AND.JRESU.NE.3) THEN
  1330. NVF=NVF-1
  1331. GOTO 55
  1332. ENDIF
  1333. IF (NVF.EQ.2) THEN
  1334. NVF=NVF-1
  1335. GOTO 55
  1336. ENDIF
  1337. ENDIF
  1338. C
  1339. C------------------------------------------
  1340. C DEUX FISSURES PRE EXISTANTES
  1341. C------------------------------------------
  1342. C
  1343. IF (NFISSU.EQ.3) THEN
  1344. IF (NVF.EQ.1) THEN
  1345. NVF=0
  1346. GOTO 55
  1347. ENDIF
  1348. IF (JRESU.EQ.1) THEN
  1349. VF1(1)=VF(1)
  1350. VF1(2)=VF(2)
  1351. VF1(3)=VF(3)
  1352. XNF1=XNF
  1353. GOTO 55
  1354. ENDIF
  1355. IF (JRESU.EQ.2) THEN
  1356. VF2(1)=VF(1)
  1357. VF2(2)=VF(2)
  1358. VF2(3)=VF(3)
  1359. XNF2=XNF
  1360. GOTO 55
  1361. ENDIF
  1362. IF (JRESU.EQ.3) THEN
  1363. VF3(1)=VF(1)
  1364. VF3(2)=VF(2)
  1365. VF3(3)=VF(3)
  1366. XNF3=XNF
  1367. GOTO 55
  1368. ENDIF
  1369. ENDIF
  1370. ENDIF
  1371. C
  1372. C#################################################################
  1373. C TRAITEMENT DES AUTRES NON LINEARITES POSSIBLES
  1374. C#################################################################
  1375. C
  1376. C-------------------RUPTURE-----------------
  1377. C
  1378. C IF (JRESU.GE.4.AND.JRESU.LE.6) THEN
  1379. C WMAX(JRESU-3)=WRUPT(JRESU-3)
  1380. C SMAX(JRESU-3)=XZER
  1381. C W(JRESU-3)=WMAX(JRESU-3)
  1382. C GOTO 55
  1383. C ENDIF
  1384. C
  1385. C------------------BETON FIBRE--------------
  1386. C
  1387. C IF (JRESU.GE.7.AND.JRESU.LE.9) THEN
  1388. C WMAX(JRESU-6)=BILIN(JRESU-6)
  1389. C SMAX(JRESU-6)=SBILI(JRESU-6)
  1390. C W(JRESU-6)=WMAX(JRESU-6)
  1391. C GOTO 55
  1392. C ENDIF
  1393. C
  1394. C------------------OUVERTURE----------------
  1395. C
  1396. C IF (JRESU.GE.10.AND.JRESU.LE.12) THEN
  1397. C WMAX(JRESU-9)=WMAX0(JRESU-9)
  1398. C SMAX(JRESU-9)=SMAX0(JRESU-9)
  1399. CC W(JRESU-9)=WMAX(JRESU-9)
  1400. CC GOTO 55
  1401. C ENDIF
  1402. C
  1403. C-----------------COMPRESSION---------------
  1404. C
  1405. C IF (JRESU.GE.13.AND.JRESU.LE.15) THEN
  1406. C MLR 13/12/94
  1407. C W(JRESU-12)=BTR*MIN(WMAX0(JRESU-12),WRUPT(JRESU-12))
  1408. C MLR 16/4/98
  1409. C SIGMAF(JRESU-12)=XZER
  1410. C GOTO 55
  1411. CC ENDIF
  1412. C
  1413. C-----------------REOUVERTURE---------------
  1414. C
  1415. C IF (JRESU.GE.16.AND.JRESU.LE.18) THEN
  1416. * MLR 13/12/94
  1417. C W(JRESU-15)=BTR*MIN(WMAX0(JRESU-15),WRUPT(JRESU-15))
  1418. C SIGMAF(JRESU-15)=XZER
  1419. C GOTO 55
  1420. C ENDIF
  1421. C
  1422. C
  1423. C
  1424. C========================================================================
  1425. C FIN DU TEST DE CONSISTANCE
  1426. C========================================================================
  1427. C
  1428.  
  1429. 55 CONTINUE
  1430.  
  1431. C
  1432. C QUELQUES TESTS SUPPLEMENTAIRES
  1433. C
  1434.  
  1435. IF(IIMPI.EQ.42) THEN
  1436. WRITE(IOIMP,77441) (SMAX(I),I=1,3)
  1437. 77441 FORMAT('0 SMAX '/3(1X,1PE12.5)/)
  1438. ENDIF
  1439.  
  1440. *
  1441. * AFFINAGE DE WMAX ( CF TEST OTTOFU )
  1442. * MLR 8/7/98
  1443.  
  1444. DO I=1,3
  1445. IF(ABS(WMAX(I)-WRUPT(I)).LT.WRUPT(I)*PRECIE) THEN
  1446. WMAX(I)=WRUPT(I)
  1447. ENDIF
  1448. ENDDO
  1449. *
  1450. ICAZ=2
  1451. CALL OTTEST(XINVL,W,WMAX,SMAX,SIGMAF,XLTR,PRECIZ,
  1452. & BTR,WRUPT,IB,IGAU,ICAZ,KERRE)
  1453. IF(KERRE.EQ.70) GO TO 2021
  1454. *
  1455. DO 202 I=1,3
  1456. IF(WMAX(I).GE.WRUPT(I)) THEN
  1457. IF(W(I).GE.WREOUV(I)) THEN
  1458. IF(SIGMAF(I).GT.0.D0) THEN
  1459. IF(SIGMAF(I).GT.PRECIZ*10.D0) THEN
  1460. WRITE(IOIMP,77202) SIGMAF(I)
  1461. 77202 FORMAT(2X,' ******** SIGMA TROP FORT = ',1PE12.5/)
  1462. ENDIF
  1463. SIGMAF(I)=0.D0
  1464. ENDIF
  1465. ENDIF
  1466. * MLR 22/11/96
  1467. IF(DDEFP(I).GT.0.D0) THEN
  1468. IF(ABS(SIGMAF(I)).LT.PRECIZ) SIGMAF(I)=0.D0
  1469. ENDIF
  1470. ENDIF
  1471. 202 CONTINUE
  1472.  
  1473. *
  1474. C
  1475. C
  1476. C=======================================================================
  1477. C CALCUL DE SIGMAF ET DDEFP DANS LE REPERE GLOBAL
  1478. C RESULTAT NOTE : SIGF0 ET DDEFP0
  1479. C=======================================================================
  1480. C
  1481. LECAS=2
  1482. CALL OTTROT(SIGMAF,DDEFP,SIGF0,DDEFP0,VCA1,VCA2,VCA3,LECAS)
  1483. C
  1484. IF(IIMPI.EQ.42) THEN
  1485. WRITE(IOIMP,77040) (SIGF0(I),I=1,6)
  1486. 77040 FORMAT('0 SIGF EN REPERE GLOBAL '/6(1X,1PE12.5)/)
  1487. *
  1488. WRITE(IOIMP,77041) (DDEFP0(I),I=1,6)
  1489. 77041 FORMAT('0 DDEFP EN REPERE GLOBAL '/6(1X,1PE12.5)/)
  1490. ENDIF
  1491. C
  1492. C
  1493. C========================================================================
  1494. C MISE A JOUR DE L ETAT DU MATERIAU POUR UN NOUVEL INCREMENT INTERNE
  1495. C========================================================================
  1496. C
  1497. DO 54 IC=1,6
  1498. SIGMA0(IC)=SIGF0(IC)
  1499. DDEF0(IC)=(UN-TAU)*DDEF0(IC)
  1500. DDEFPT(IC)=DDEFPT(IC)+DDEFP0(IC)
  1501. 54 CONTINUE
  1502.  
  1503. C
  1504. C
  1505. C========================================================================
  1506. C TEST L ADMISSIBILITE DU DERNIER ECOULEMENT
  1507. C========================================================================
  1508. C
  1509. C AM 30/04/96 REMPLACEMENT DE EPSILO PAR EPSIL2
  1510. C
  1511. IF (TAURES.GT.EPSIL2) GOTO 31
  1512. C
  1513. C########################################################################
  1514. C========================================================================
  1515. C
  1516. C C EST FINI, LES DEF PLASTIQUES SONT DONNEES PAR : DDEFPT
  1517. C LES CONTRAINTES FINALES SONT DONNEES PAR : SIGMA0
  1518. C
  1519. C========================================================================
  1520. C########################################################################
  1521. C
  1522. C------------------------------------------------------------------------
  1523.  
  1524. *
  1525.  
  1526. DO 658 I=1,3
  1527. IF(XINVL(I).NE.0.D0) THEN
  1528. WREOUV(I)=BTR*MIN(WMAX(I),WRUPT(I))
  1529. IF(W(I).LT.WREOUV(I)-1.D-10*WRUPT(I)) THEN
  1530. WRITE(IOIMP,67676) I,W(I),WMAX(I)
  1531. 67676 FORMAT(2X,'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$' /
  1532. & 4X,'ATTENTION FINALE I=',I4,2X,'W=',1PE12.5,2X,
  1533. & 'WMAX=',1PE12.5/
  1534. & 2X,'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'/)
  1535. ENDIF
  1536. ENDIF
  1537.  
  1538. 658 CONTINUE
  1539.  
  1540. C------------------------------------------------------------------------
  1541. C
  1542. C########################################################################
  1543. C========================================================================
  1544. C MISE A JOUR DES VARIABLES INTERNES
  1545. C========================================================================
  1546. C########################################################################
  1547. C
  1548. C============================================
  1549. C-------CAS TRIDIMENSIONNEL MASSIF-----------
  1550. C============================================
  1551. C
  1552. C NVARI=20 cf. IDVAR6
  1553. C
  1554. IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  1555. DO 60 IC=1,3
  1556. VARF(IC+1) =WMAX(IC)
  1557. VARF(IC+4) =W(IC)
  1558. VARF(IC+7) =VF1(IC)
  1559. VARF(IC+10)=VF2(IC)
  1560. VARF(IC+13)=VF3(IC)
  1561. VARF(IC+16)=XINVL(IC)
  1562. 60 CONTINUE
  1563. *
  1564. VARF(20)=XLAMC
  1565. *
  1566. C DANS LE CAS DU MODELE CERAMIQUE ON NE TOUCHE PAS AUX VARIABLES
  1567. C INTERNES CORRESPONDANT AU FLUAGE
  1568. IF (MATEPL.EQ.65) THEN
  1569. DO 160 I=21,NVARI
  1570. VARF(I)=VAR0(I)
  1571. 160 CONTINUE
  1572. ENDIF
  1573. C DANS LE CAS DU MODELE UO2_DCN ON NE TOUCHE PAS AUX VARIABLES
  1574. C INTERNES CORRESPONDANT AU FLUAGE
  1575. IF (MATEPL.EQ.108) THEN
  1576. VARF(NVARI-2)=VAR0(NVARI-2)
  1577. VARF(NVARI-1)=VAR0(NVARI-1)
  1578. VARF(NVARI)=VAR0(NVARI)
  1579. ENDIF
  1580. *
  1581. ENDIF
  1582. C
  1583. C============================================
  1584. C-------------CAS CONT PLANE-----------------
  1585. C---------OU TRIDIM COQUES MINCES -----------
  1586. C============================================
  1587. C
  1588. C NVARI=12 cf. IDVAR6
  1589. C
  1590. IF (IFOUR.EQ.-2.OR.
  1591. . (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)))THEN
  1592. DO 62 IC=1,2
  1593. VARF(IC+1) =WMAX(IC+1)
  1594. VARF(IC+3) =W(IC+1)
  1595. VARF(IC+5) =VF2(IC)
  1596. VARF(IC+7) =VF3(IC)
  1597. VARF(IC+9) =XINVL(IC+1)
  1598. 62 CONTINUE
  1599. *
  1600. VARF(12)=XLAMC
  1601. *
  1602. C DANS LE CAS DU MODELE CERAMIQUE ON NE TOUCHE PAS AUX VARIABLES
  1603. C INTERNES CORRESPONDANT AU FLUAGE
  1604. IF (MATEPL.EQ.65) THEN
  1605. DO 162 I=13,NVARI
  1606. VARF(I)=VAR0(I)
  1607. 162 CONTINUE
  1608. ENDIF
  1609. C DANS LE CAS DU MODELE UO2_DCN ON NE TOUCHE PAS AUX VARIABLES
  1610. C INTERNES CORRESPONDANT AU FLUAGE
  1611. IF (MATEPL.EQ.108) THEN
  1612. VARF(NVARI-2)=VAR0(NVARI-2)
  1613. VARF(NVARI-1)=VAR0(NVARI-1)
  1614. VARF(NVARI)=VAR0(NVARI)
  1615. ENDIF
  1616. *
  1617. ENDIF
  1618. C
  1619. C============================================
  1620. C-----------CAS DEFO PLANE/AXIS--------------
  1621. C============================================
  1622. C
  1623. C NVARI=15 cf. IDVAR6
  1624. C
  1625. IF (IFOUR.EQ.0.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN
  1626. DO 64 IC=1,2
  1627. VARF(IC+1) =WMAX(IC+1)
  1628. VARF(IC+4) =W(IC+1)
  1629. VARF(IC+7) =VF2(IC)
  1630. VARF(IC+9) =VF3(IC)
  1631. VARF(IC+11)=XINVL(IC+1)
  1632. 64 CONTINUE
  1633. VARF(4) =WMAX(1)
  1634. VARF(7) =W(1)
  1635. VARF(14)=XINVL(1)
  1636. VARF(15)=XLAMC
  1637. *
  1638. C DANS LE CAS DU MODELE CERAMIQUE ON NE TOUCHE PAS AUX VARIABLES
  1639. C INTERNES CORRESPONDANT AU FLUAGE
  1640. IF (MATEPL.EQ.65) THEN
  1641. DO 164 I=16,NVARI
  1642. VARF(I)=VAR0(I)
  1643. 164 CONTINUE
  1644. ENDIF
  1645. C DANS LE CAS DU MODELE UO2_DCN ON NE TOUCHE PAS AUX VARIABLES
  1646. C INTERNES CORRESPONDANT AU FLUAGE
  1647. IF (MATEPL.EQ.108) THEN
  1648. VARF(NVARI-2)=VAR0(NVARI-2)
  1649. VARF(NVARI-1)=VAR0(NVARI-1)
  1650. VARF(NVARI)=VAR0(NVARI)
  1651. ENDIF
  1652. *
  1653. ENDIF
  1654. C
  1655. VARF(1)=W(1)+W(2)+W(3)
  1656. C
  1657. C========================================================================
  1658. C---------PASSAGE A L'OPTION DE CALCUL POUR LES CONTRAINTES--------------
  1659. C========================================================================
  1660. C
  1661. IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  1662. C
  1663. C----------MASSIF 3D----------------
  1664. C
  1665. DO 70 I=1,6
  1666. SIGF(I)=SIGMA0(I)
  1667. IF(I.LE.3) THEN
  1668. DEFP(I)=DDEFPT(I)
  1669. ELSE
  1670. DEFP(I)=DDEFPT(I)*DEUX
  1671. ENDIF
  1672. 70 CONTINUE
  1673. ELSE IF (IFOUR.NE.2.AND.MFR.EQ.1) THEN
  1674. C
  1675. C---AXISYMETRQUE/DEF/CONT PLANES----
  1676. C
  1677. DO 80 I=1,4
  1678. SIGF(I)=SIGMA0(I)
  1679. IF(I.LE.3) THEN
  1680. DEFP(I)=DDEFPT(I)
  1681. ELSE
  1682. DEFP(I)=DDEFPT(I)*DEUX
  1683. ENDIF
  1684. 80 CONTINUE
  1685. IF (ABS(SIGMA0(5)).GT.(YOUN*1.D-15).OR.
  1686. & ABS(SIGMA0(6)).GT.(YOUN*1.D-15)) THEN
  1687. C
  1688. C SMRT OU SMTZ NON NULLES APRES ECOULEMENT
  1689. C
  1690. KERRE=68
  1691. GO TO 2021
  1692. ENDIF
  1693. C
  1694. ELSEIF (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)) THEN
  1695. C
  1696. C-----CALCUL TRIDIM COQUES MINCES -------
  1697. C
  1698. C ON MET A JOUR DE FACON NON LINEAIRE LA PARTIE MEMBRANE
  1699. C ET DE FACON LINEAIRE, LES PARTIES FLEXION ET EFFORTS
  1700. C TRANCHANTS LE CAS ECHEANT
  1701. C
  1702. FAC=(EPAI**3)/12.D0
  1703. AUX =FAC*YOUN/(UN-XNU*XNU)
  1704. AUX1=FAC*YOUN*UNDEMI/(UN+XNU)
  1705. SIGF(1)=SIGMA0(1)*EPAI
  1706. SIGF(2)=SIGMA0(2)*EPAI
  1707. SIGF(3)=SIGMA0(4)*EPAI
  1708. SIGF(4)=SIG0(4)+AUX*(DEPST(4)+XNU*DEPST(5))
  1709. SIGF(5)=SIG0(5)+AUX*(DEPST(5)+XNU*DEPST(4))
  1710. SIGF(6)=SIG0(6)+AUX1*DEPST(6)
  1711. DEFP(1)=DDEFPT(1)
  1712. DEFP(2)=DDEFPT(2)
  1713. DEFP(3)=DDEFPT(4)
  1714. DEFP(4)=0.D0
  1715. DEFP(5)=0.D0
  1716. DEFP(6)=0.D0
  1717. IF(MFR.EQ.9) THEN
  1718. XK=1.2D0
  1719. AUX2=EPAI*YOUN*UNDEMI/(UN+XNU)/XK
  1720. SIGF(7)=SIG0(7)+AUX2*DEPST(7)
  1721. SIGF(8)=SIG0(8)+AUX2*DEPST(8)
  1722. DEFP(7)=0.D0
  1723.  
  1724. DEFP(8)=0.D0
  1725. ENDIF
  1726. ENDIF
  1727. C
  1728. IF(IIMPI.EQ.42) THEN
  1729. WRITE(IOIMP,77051) (SIGF(I),I=1,NSTRS)
  1730. 77051 FORMAT('0 SIGF '/8(1X,1PE12.5)/)
  1731. *
  1732. WRITE(IOIMP,77052) (DEFP(I),I=1,NSTRS)
  1733. 77052 FORMAT('0 DEFP '/8(1X,1PE12.5)/)
  1734. ENDIF
  1735. C
  1736. 2021 CONTINUE
  1737. IF(KERRE.EQ.0) GO TO 9999
  1738. C
  1739. IF(JEBOUC.EQ.1.AND.IIMPI.EQ.1042) THEN
  1740. IIMPI=42
  1741. WRITE(IOIMP,70901) IB,IGAU
  1742. 70901 FORMAT(2X,'>>>>>>>> OTTOSEN IB=',I7,2X,'IGAU=',I3/)
  1743. GO TO 2020
  1744. ENDIF
  1745. C
  1746. 9999 CONTINUE
  1747. IIMPI=IIMPI0
  1748. *
  1749. IF(KERRE.NE.0.AND.IIMPI.EQ.42) THEN
  1750. WRITE(IOIMP,70902) IB,IGAU
  1751. 70902 FORMAT(2X,'SORTIE OTTOSEN '////)
  1752. ENDIF
  1753. C
  1754. RETURN
  1755. END
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  

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