Télécharger vmispo.eso

Retour à la liste

Numérotation des lignes :

vmispo
  1. C VMISPO SOURCE CB215821 24/04/12 21:17:28 11897
  2. SUBROUTINE VMISPO(IPMODL,IPCHE1,IPCHE2,ICONV,IPCHE3,IRET,isouc)
  3. C_______________________________________________________________________
  4. C
  5. C Entrées:
  6. C ________
  7. C
  8. C IPMODL Pointeur sur un MMODEL
  9. C IPCHE1 Pointeur sur un MCHAML de contraintes
  10. C IPCHE2 Pointeur sur un MCHAML de caractéristiques
  11. C ICONV Flag précisant s'il y a eu conversion
  12. C
  13. C SORTIES:
  14. C ________
  15. C
  16. C IPCHE3 Pointeur sur un MCHAML de VONMISES
  17. C IRET =1 OU 0 suivant succes ou pas (Message d'erreur
  18. C imprimé dans ce cas)
  19. C
  20. C Passage aux nouveaux CHAMELEMs par I.Monnier le 13.06.90
  21. C
  22. *_______________________________________________________________________
  23. *
  24. IMPLICIT INTEGER(I-N)
  25. IMPLICIT REAL*8(A-H,O-Z)
  26. *
  27.  
  28. -INC PPARAM
  29. -INC CCOPTIO
  30. -INC CCHAMP
  31. -INC CCGEOME
  32. -INC SMCHAML
  33. -INC SMMODEL
  34. -INC SMCOORD
  35. -INC SMINTE
  36. *
  37. SEGMENT NOTYPE
  38. CHARACTER*16 TYPE(NBTYPE)
  39. ENDSEGMENT
  40. *
  41. SEGMENT MPTVAL
  42. INTEGER IPOS(NS) ,NSOF(NS)
  43. INTEGER IVAL(NCOSOU)
  44. CHARACTER*16 TYVAL(NCOSOU)
  45. ENDSEGMENT
  46. *
  47. CHARACTER*(NCONCH) CONM
  48. PARAMETER ( NINF=3 )
  49. DIMENSION SIG(9)
  50. DIMENSION CARAC(25),DIV(7)
  51. INTEGER INFOS(NINF)
  52. LOGICAL lsupco
  53. INTEGER ISUP1,ISUP2
  54. DATA ALPH1/.4444444444444444D0/
  55. DATA PI4,R33,R22/0.785398164D0,1.732050808D0,1.414213562D0/
  56.  
  57. * WRITE(*,*) 'Entrée dans VMISPO.'
  58. lsupco=.false.
  59. IRET = 0
  60. IPCHE3 = 0
  61. *
  62. * Verification du lieu support du MCHAML de CONTRAINTES
  63. *
  64. ISUP1 = 0
  65. ISUP2=0
  66. IRET1 = 0
  67. CALL QUESUP (IPMODL,IPCHE1,0,0,ISUP1,IRET1)
  68. * IF (ISUP1.GT.0) RETURN
  69. *
  70. * Verification du lieu support du MCHAML de CARACTERISTIQUES
  71. *
  72. IF (IPCHE2.NE.0) THEN
  73. ISUP2 = 0
  74. IRET2 = 0
  75. CALL QUESUP (IPMODL,IPCHE2,IRET1,1,ISUP2,IRET2)
  76. IF (ISUP2.GT.0) RETURN
  77. ENDIF
  78.  
  79. *_______________________________________________________________________
  80. *
  81. * ACTIVATION DU MODELE
  82. *_______________________________________________________________________
  83. *
  84. MMODEL=IPMODL
  85. SEGACT,MMODEL
  86. NSOUS=KMODEL(/1)
  87. KEL22 = 0
  88. DO ISOUS = 1, NSOUS
  89. IMODEL=KMODEL(ISOUS)
  90. SEGACT,IMODEL
  91. IF (formod(1).ne.'MECANIQUE'.OR.NEFMOD.EQ.22.or.nefmod.eq.259)
  92. > KEL22 = KEL22 + 1
  93. ENDDO
  94. *
  95. * ACTIVATION DES CONTRAINTES
  96. *
  97. IRET=1
  98. MCHEL1=IPCHE1
  99. SEGACT MCHEL1
  100. *
  101. * INITIALISATION DU MCHELM DE VON MISES
  102. *
  103. L1=9
  104. N1=NSOUS - KEL22
  105. N3=6
  106. SEGINI MCHELM
  107. IFOCHE=IFOUR
  108. TITCHE='VON MISES'
  109.  
  110. *_______________________________________________________________________
  111. *
  112. * BOUCLE SUR LES SOUS ZONES
  113. *_______________________________________________________________________
  114. *
  115. isouss=0
  116. DO 200 ISOUS=1,NSOUS
  117. C
  118. C QUELQUES INITIALISATIONS
  119. C
  120. MOSTRS = 0
  121. MOCARA = 0
  122. IVASTR = 0
  123. IVACAR = 0
  124. IVAMIS = 0
  125. C
  126. C TRAITEMENT DU MODELE
  127. C
  128. IMODEL=KMODEL(ISOUS)
  129. C* SEGACT IMODEL
  130. MELE=NEFMOD
  131. IF (NEFMOD.EQ.22.or.nefmod.eq.259) goto 200
  132. IF (formod(1).ne.'MECANIQUE') goto 200
  133. ISOUSS=ISOUSS+1
  134. *
  135. IPMAIL=IMAMOD
  136. CONM =CONMOD
  137. C
  138. C CREATION DU TABLEAU INFOS
  139. C
  140. CALL IDENT(IPMAIL,CONM,IPCHE1,IPCHE2,INFOS,IRTD)
  141. IF (IRTD.EQ.0) GOTO 9990
  142. C
  143. C COQUE INTEGREE OU PAS ?
  144. C
  145. IF(INFMOD(/1).NE.0)THEN
  146. NPINT=INFMOD(1)
  147. ELSE
  148. NPINT=0
  149. ENDIF
  150.  
  151. C_______________________________________________________________________
  152. C
  153. C INFORMATIONS SUR L'ELEMENT FINI
  154. C_______________________________________________________________________
  155. C
  156. * CALL ELQUOI(MELE,0,IRET1,IPINF,IMODEL)
  157. * IF (IERR.NE.0) THEN
  158. * SEGDES IMODEL,MMODEL
  159. * SEGSUP MCHELM
  160. * SEGDES MCHEL1
  161. * RETURN
  162. * ENDIF
  163. * INFO=IPINF
  164. MFR =INFELE(13)
  165. NSTRS =INFELE(16)
  166. NBPGAU=INFELE( 4)
  167. * MINTE =INFELE(11)
  168. MINTE=INFMOD(iret1+2)
  169. IPPORE=0
  170. IF(MFR.EQ.33)IPPORE=NBNNE(NUMGEO(MELE))
  171. IPMINT=MINTE
  172. SEGACT,MINTE
  173. * SEGSUP INFO
  174. C
  175. C RECOPIE DU MCHELM
  176. C
  177. ** write(6,*) 'isouss ',isouss
  178. ** write(6,*) 'imache ',imache(/1)
  179. IMACHE(ISOUSS)=IPMAIL
  180. CONCHE(ISOUSS)=CONMOD
  181. C
  182. INFCHE(ISOUSS,1)=0
  183. INFCHE(ISOUSS,2)=0
  184. INFCHE(ISOUSS,3)=NIFOUR
  185. INFCHE(ISOUSS,4)=MINTE
  186. INFCHE(ISOUSS,5)=0
  187. INFCHE(ISOUSS,6)=IRET1
  188. C
  189. C CREATION DU MCHAML
  190. C
  191. N2=1
  192. SEGINI MCHAML
  193. ICHAML(ISOUSS)=MCHAML
  194. NOMCHE(1)='SCAL'
  195. TYPCHE(1)='REAL*8'
  196.  
  197. C_______________________________________________________________________
  198. C
  199. C NOMS DE COMPOSANTES DE CONTRAINTES NECESSAIRES
  200. C_______________________________________________________________________
  201. C
  202. if(lnomid(4).ne.0) then
  203. nomid=lnomid(4)
  204. segact nomid
  205. mostrs=nomid
  206. nstr=lesobl(/2)
  207. nfac=lesfac(/2)
  208. lsupco=.false.
  209. else
  210. lsupco=.true.
  211. CALL IDCONT(IMODEL,IFOUR,MOSTRS,NSTR,NFAC)
  212. endif
  213. C
  214. C VERIFICATION DE LEUR PRESENCE
  215. C
  216. NBTYPE=1
  217. SEGINI NOTYPE
  218. MOTYPE=NOTYPE
  219. TYPE(1)='REAL*8'
  220. C
  221. CALL KOMCHA(IPCHE1,IPMAIL,CONM,MOSTRS,MOTYPE,1,INFOS,3,IVASTR)
  222. SEGSUP NOTYPE
  223. IF (IERR.NE.0) GOTO 9990
  224. *
  225. IF (ISUP1.EQ.1) CALL VALCHE (IVASTR,NSTR,IPMINT,IPPORE,
  226. & MOSTRS,MELE)
  227. C
  228. C RECHERCHE DES TAILLES DE MELVAL
  229. C
  230. N1EL=0
  231. N1PTEL=0
  232. MPTVAL=IVASTR
  233. DO 20 IO=1,NSTRS
  234. MELVAL=IVAL(IO)
  235. N1PTEL=MAX(N1PTEL,VELCHE(/1))
  236. N1EL =MAX(N1EL ,VELCHE(/2))
  237. 20 CONTINUE
  238. IF (N1PTEL.EQ.1.OR.NBPGAU.EQ.1) THEN
  239. N1PTEL=1
  240. ELSE
  241. *PVPVPV N1PTEL=NBPGAU
  242. ENDIF
  243. NBPTEL=N1PTEL
  244. NEL =N1EL
  245. C
  246. C CREATION DU MELVAL VMISES
  247. C
  248. N2PTEL=0
  249. N2EL=0
  250. SEGINI MELVAL
  251. IELVAL(1)=MELVAL
  252. IVAMIS =MELVAL
  253. *
  254. * ON TRAITE LES COQUES INTEGREES COMME LES MASSIFS
  255. *
  256. IF(NPINT.NE.0)THEN
  257. MFR1=1
  258. ELSE
  259. MFR1=MFR
  260. ENDIF
  261.  
  262. C_______________________________________________________________________
  263. C
  264. C TRAITEMENT DES CHAMPS DE CARACTERISTIQUES
  265. C_______________________________________________________________________
  266. *
  267. NBROBL=0
  268. NBRFAC=0
  269. MOCARA=0
  270. IVECT=0
  271. *
  272. * EPAISSEUR ET ALFA DANS LE CAS DES COQUES
  273. *
  274. IF (MFR1.EQ.3.OR.MFR1.EQ.5.OR.MFR1.EQ.9) THEN
  275. NBROBL=1
  276. NBRFAC=1
  277. SEGINI NOMID
  278. MOCARA=NOMID
  279. LESOBL(1)='EPAI'
  280. LESFAC(1)='CALF'
  281. *
  282. NBTYPE=1
  283. SEGINI NOTYPE
  284. TYPE(1)='REAL*8'
  285. *
  286. * CARACTERISTIQUES POUR LES POUTRES
  287. *
  288. ELSE IF (MFR1.EQ.7 ) THEN
  289. IF(IFOUR.EQ.2) THEN
  290. NBROBL=4
  291. NBRFAC=3
  292. SEGINI NOMID
  293. MOCARA=NOMID
  294. LESOBL(1)='TORS'
  295. LESOBL(2)='INRY'
  296. LESOBL(3)='INRZ'
  297. LESOBL(4)='SECT'
  298. LESFAC(1)='DX '
  299. LESFAC(2)='DZ '
  300. LESFAC(3)='DY '
  301. ELSE
  302. NBROBL=2
  303. NBRFAC=1
  304. SEGINI NOMID
  305. MOCARA=NOMID
  306. LESOBL(1)='SECT'
  307. LESOBL(2)='INRZ'
  308. LESFAC(1)='DY '
  309. ENDIF
  310. *
  311. NBTYPE=1
  312. SEGINI NOTYPE
  313. TYPE(1)='REAL*8'
  314. *
  315. * CARACTERISTIQUES POUR LES TUYAUX
  316. *
  317. ELSE IF (MFR1.EQ.13) THEN
  318. NBROBL=2
  319. NBRFAC=9
  320. SEGINI NOMID
  321. MOCARA=NOMID
  322. LESOBL(1)='EPAI'
  323. LESOBL(2)='RAYO'
  324. LESFAC(1)='RACO'
  325. LESFAC(2)='PRES'
  326. LESFAC(3)='CISA'
  327. LESFAC(4)='CFFX'
  328. LESFAC(5)='CFMX'
  329. LESFAC(6)='CFMY'
  330. LESFAC(7)='CFMZ'
  331. LESFAC(8)='CFPR'
  332. c LESFAC(9)='VECT'
  333. c IVECT=1
  334. c BP, 2016-10-17: pour le calcul de VMISES, on se fiche de l'orientation
  335. c du repere local car les composantes sont deja toutes locales !
  336. c Afin d'utiliser tuycar, on met des valeurs de VX VY et VZ bidons
  337. *
  338. NBTYPE=11
  339. SEGINI NOTYPE
  340. TYPE(1)='REAL*8'
  341. TYPE(2)='REAL*8'
  342. TYPE(3)='REAL*8'
  343. TYPE(4)='REAL*8'
  344. TYPE(5)='REAL*8'
  345. TYPE(6)='REAL*8'
  346. TYPE(7)='REAL*8'
  347. TYPE(8)='REAL*8'
  348. TYPE(9)='REAL*8'
  349. TYPE(10)='REAL*8'
  350. TYPE(11)='POINTEURPOINT '
  351. ENDIF
  352. *
  353. NCARA=NBROBL
  354. NCARF=NBRFAC
  355. NCARR=NCARA+NCARF
  356. IF (MOCARA.NE.0) THEN
  357. MOTYPE=NOTYPE
  358. IF (IPCHE2.NE.0) THEN
  359. CALL KOMCHA(IPCHE2,IPMAIL,CONM,MOCARA,MOTYPE,
  360. 1 1,INFOS,3,IVACAR)
  361. SEGSUP NOTYPE
  362. IF (IERR.NE.0) GOTO 9990
  363. ELSE
  364. SEGSUP NOTYPE
  365. MOTERR(1:8)='CARACTER'
  366. MOTERR(9:12)=NOMTP(MELE)
  367. MOTERR(13:20)='VMIS'
  368. CALL ERREUR(145)
  369. GOTO 9990
  370. ENDIF
  371. *
  372. IF (ISUP2.EQ.1) THEN
  373. CALL VALCHE(IVACAR,NCARR,IPMINT,IPPORE,MOCARA,MELE)
  374. IF(IERR.NE.0)THEN
  375. ISUP2=0
  376. GOTO 9990
  377. ENDIF
  378. ENDIF
  379. ENDIF
  380. *
  381. C_______________________________________________________________________
  382. C
  383. C BRANCHEMENT SUIVANT LA FORMULATION
  384. C_______________________________________________________________________
  385. C
  386. C MASSI COQUE COQEP POUT CIST THER TUYA LISP
  387. GOTO (30,22,60,22,80,22,100,22,70,22,22,22,120,22,90,22,22,
  388. C INCO PORE
  389. . 22,22,22,22,22,22,22,22,22,22,22,22,22,30,22,30),MFR1
  390. c cas XFEM : identique au cas massif
  391. IF(MFR.EQ.63) goto 30
  392. C
  393. 22 CONTINUE
  394. MOTERR(1:8)=NOMFR(MFR1/2+1)
  395. if (isouc.eq.1) then
  396. call SOUCIS(193)
  397. else
  398. call ERREUR(193)
  399. endif
  400. GOTO 150
  401. GOTO 9990
  402.  
  403. C_______________________________________________________________________
  404. C
  405. C FORMULATION MASSIVE
  406. C_______________________________________________________________________
  407. C
  408. 30 CONTINUE
  409. DO IB=1,NEL
  410. DO IGAU=1,NBPTEL
  411. MPTVAL=IVASTR
  412. DO 35 ICOMP=1,NSTRS
  413. MELVAL=IVAL(ICOMP)
  414. IGMN=MIN(IGAU,VELCHE(/1))
  415. IBMN=MIN(IB ,VELCHE(/2))
  416. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  417. 35 CONTINUE
  418. VONMIS=SIG(1)*SIG(1)+SIG(2)*SIG(2)+SIG(3)*SIG(3)-SIG(1)*SIG(2)
  419. + -SIG(1)*SIG(3)-SIG(2)*SIG(3)
  420. C
  421. IF (IDIM.NE.1) THEN
  422. DO 33 IE=4,NSTRS
  423. VONMIS=VONMIS+3.D0*(SIG(IE)*SIG(IE))
  424. 33 CONTINUE
  425. ENDIF
  426. C
  427. XXXX=SQRT(ABS(VONMIS))
  428. MELVAL=IVAMIS
  429. VELCHE(IGAU,IB)=XXXX
  430. enddo
  431. enddo
  432. GOTO 150
  433.  
  434. C_______________________________________________________________________
  435. C
  436. C FORMULATION COQUE MINCE
  437. C_______________________________________________________________________
  438. C
  439. 60 CONTINUE
  440. C
  441. DO IB=1,NEL
  442. DO IGAU=1,NBPTEL
  443. MPTVAL=IVASTR
  444. DO 62 ICOMP=1,NSTRS
  445. MELVAL=IVAL(ICOMP)
  446. IGMN=MIN(IGAU,VELCHE(/1))
  447. IBMN=MIN(IB ,VELCHE(/2))
  448. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  449. 62 CONTINUE
  450. C
  451. MPTVAL=IVACAR
  452. MELVAL=IVAL(1)
  453. IGMN=MIN(IGAU,VELCHE(/1))
  454. IBMN=MIN(IB ,VELCHE(/2))
  455. EPAIST=VELCHE(IGMN,IBMN)
  456. *
  457. CALL EFCONT(EPAIST,0.D0,NSTRS,SIG)
  458. MPTVAL=IVACAR
  459. MELVAL=IVAL(2)
  460. IF (MELVAL.NE.0) THEN
  461. IGMN=MIN(IGAU,VELCHE(/1))
  462. IBMN=MIN(IB ,VELCHE(/2))
  463. ALPHA=VELCHE(IGMN,IBMN)
  464. ELSE
  465. ALPHA=0.666666666666666666D0
  466. ENDIF
  467. C
  468. IF(IFOUR.GT.0) THEN
  469. VONMIS=SQRT(ABS(SIG(1)*SIG(1)+SIG(2)*SIG(2)-SIG(1)*SIG(2)+
  470. + 3.D0*SIG(3)*SIG(3)+ALPHA*(SIG(4)*SIG(4)+SIG(5)*SIG(5)-
  471. + SIG(4)*SIG(5)+3.D0*SIG(6)*SIG(6))))
  472. ELSE IF(IFOUR.LE.0) THEN
  473. VONMIS= SIG(1)*SIG(1)+SIG(2)*SIG(2)-SIG(1)*SIG(2)+
  474. + ALPHA*(SIG(3)*SIG(3)+SIG(4)*SIG(4)-SIG(3)*SIG(4))
  475. VONMIS=SQRT(VONMIS)
  476. ENDIF
  477. C
  478. MELVAL=IVAMIS
  479. VELCHE(IGAU,IB)=VONMIS
  480. enddo
  481. enddo
  482. GOTO 150
  483.  
  484. C_______________________________________________________________________
  485. C
  486. C FORMULATION COQUE AVEC CISAILLEMENT TRANSVERSE (COQ4)
  487. C_______________________________________________________________________
  488. C
  489. 70 CONTINUE
  490. C
  491. DO IB=1,NEL
  492. DO IGAU=1,NBPTEL
  493. MPTVAL=IVASTR
  494. DO 72 ICOMP=1,NSTRS
  495. MELVAL=IVAL(ICOMP)
  496. IGMN=MIN(IGAU,VELCHE(/1))
  497. IBMN=MIN(IB ,VELCHE(/2))
  498. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  499. 72 CONTINUE
  500. C
  501. MPTVAL=IVACAR
  502. MELVAL=IVAL(1)
  503. IGMN=MIN(IGAU,VELCHE(/1))
  504. IBMN=MIN(IB ,VELCHE(/2))
  505. EPAIST=VELCHE(IGMN,IBMN)
  506. *
  507. CALL EFCONT(EPAIST,0.D0,NSTRS,SIG)
  508. MPTVAL=IVACAR
  509. MELVAL=IVAL(2)
  510. IF (MELVAL.NE.0) THEN
  511. IGMN=MIN(IGAU,VELCHE(/1))
  512. IBMN=MIN(IB ,VELCHE(/2))
  513. ALPHA=VELCHE(IGMN,IBMN)
  514. ELSE
  515. ALPHA=0.666666666666666666D0
  516. ENDIF
  517. C
  518. VONMIS=SQRT(ABS(SIG(1)*SIG(1)+SIG(2)*SIG(2)-SIG(1)*SIG(2)+
  519. + 3.D0*SIG(7)*SIG(7)+3.D0*SIG(8)*SIG(8)+
  520. + 3.D0*SIG(3)*SIG(3)+ALPHA*(SIG(4)*SIG(4)+SIG(5)*SIG(5)-
  521. + SIG(4)*SIG(5)+3.D0*SIG(6)*SIG(6))))
  522. C
  523. MELVAL=IVAMIS
  524. VELCHE(IGAU,IB)=VONMIS
  525. enddo
  526. enddo
  527. GOTO 150
  528.  
  529. C_______________________________________________________________________
  530. C
  531. C FORMULATION COQUE EPAISSE
  532. C_______________________________________________________________________
  533. C
  534. 80 CONTINUE
  535. DO IB=1,NEL
  536. DO IGAU=1,NBPTEL
  537. MPTVAL=IVASTR
  538. DO 85 ICOMP=1,NSTRS
  539. MELVAL=IVAL(ICOMP)
  540. IGMN=MIN(IGAU,VELCHE(/1))
  541. IBMN=MIN(IB ,VELCHE(/2))
  542. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  543. 85 CONTINUE
  544. VONMIS=SIG(1)*SIG(1)+SIG(2)*SIG(2)-SIG(1)*SIG(2)
  545. 1 + 3.D0*(SIG(3)*SIG(3)+SIG(4)*SIG(4)+SIG(5)*SIG(5))
  546. C
  547. XXXX=SQRT(ABS(VONMIS))
  548. MELVAL=IVAMIS
  549. VELCHE(IGAU,IB)=XXXX
  550. enddo
  551. enddo
  552. GOTO 150
  553.  
  554. C_______________________________________________________________________
  555. C
  556. C FORMULATION LINESPRING
  557. C_______________________________________________________________________
  558. C
  559. 90 CONTINUE
  560. DO IB=1,NEL
  561. DO IGAU=1,NBPTEL
  562. MPTVAL=IVASTR
  563. DO 95 ICOMP=1,NSTRS
  564. MELVAL=IVAL(ICOMP)
  565. IGMN=MIN(IGAU,VELCHE(/1))
  566. IBMN=MIN(IB ,VELCHE(/2))
  567. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  568. 95 CONTINUE
  569. VONMIS=SQRT(ABS(SIG(1)*SIG(1)+ALPH1*SIG(4)*SIG(4)))
  570. C
  571. MELVAL=IVAMIS
  572. VELCHE(IGAU,IB)=VONMIS
  573. enddo
  574. enddo
  575. GOTO 150
  576.  
  577. C_______________________________________________________________________
  578. C
  579. C FORMULATION POUTRE 2D ET 3D
  580. C_______________________________________________________________________
  581. C
  582. 100 CONTINUE
  583.  
  584. C____ FORMULATION POUTRE 3D = idem TUYAU 3D --> GOTO 120 _______________
  585. IF (IFOUR.EQ.2) GOTO 120
  586. C
  587. C____ FORMULATION POUTRE 2D ____________________________________________
  588. C
  589. c -- boucle sur les pt de Gauss --
  590. DO IB=1,NEL
  591. DO IGAU=1,NBPTEL
  592.  
  593. c CONTRAINTES --> SIG() : EFFX,EFFY,MOMZ
  594. MPTVAL=IVASTR
  595. DO 102 ICOMP=1,NSTRS
  596. MELVAL=IVAL(ICOMP)
  597. IGMN=MIN(IGAU,VELCHE(/1))
  598. IBMN=MIN(IB ,VELCHE(/2))
  599. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  600. 102 CONTINUE
  601. C
  602. c CARACTERISTIQUES --> CARAC() : SECT, INRZ, (DZ)
  603. MPTVAL=IVACAR
  604. DO 103 ICOMP=1,NCARR
  605. MELVAL=IVAL(ICOMP)
  606. IF (MELVAL.NE.0) THEN
  607. IGMN=MIN(IGAU,VELCHE(/1))
  608. IBMN=MIN(IB ,VELCHE(/2))
  609. CARAC(ICOMP)=VELCHE(IGMN,IBMN)
  610. ELSE
  611. CARAC(ICOMP)=0.D0
  612. ENDIF
  613. 103 CONTINUE
  614. C
  615. DIV(1)=1.D0/CARAC(1)
  616. DIV(3)=CARAC(3)/CARAC(2)
  617. C
  618. VONMIS=SQRT(ABS((SIG(1)*DIV(1))**2+(SIG(3)*DIV(3))**2))
  619. C
  620. MELVAL=IVAMIS
  621. VELCHE(IGAU,IB)=VONMIS
  622. C
  623. enddo
  624. enddo
  625. GOTO 150
  626.  
  627. C_______________________________________________________________________
  628. C
  629. C FORMULATION POUTRE 3D et TUYAU 3D
  630. C_______________________________________________________________________
  631. C
  632. 120 CONTINUE
  633.  
  634. c initialisations bidons
  635. DIV(1)=0.D0
  636. DIV(2)=0.D0
  637. DIV(3)=0.D0
  638. c vecteur bidon
  639. VX = 1.D0
  640. VY = 1.D0
  641. VZ = 1.D0
  642.  
  643. c -- boucle sur les pt de Gauss --
  644. DO IB=1,NEL
  645. DO IGAU=1,NBPTEL
  646.  
  647. c CONTRAINTES --> SIG()
  648. MPTVAL=IVASTR
  649. DO 122 ICOMP=1,NSTRS
  650. MELVAL=IVAL(ICOMP)
  651. IGMN=MIN(IGAU,VELCHE(/1))
  652. IBMN=MIN(IB ,VELCHE(/2))
  653. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  654. 122 CONTINUE
  655.  
  656. c CARACTERISTIQUES --> CARAC()
  657. MPTVAL=IVACAR
  658. c NCARR1=NCARR
  659. c IF(IVECT.EQ.1) NCARR1=NCARR-1
  660. c DO 123 ICOMP=1,NCARR1
  661. DO 123 ICOMP=1,NCARR
  662. MELVAL=IVAL(ICOMP)
  663. IF (MELVAL.NE.0) THEN
  664. IGMN=MIN(IGAU,VELCHE(/1))
  665. IBMN=MIN(IB ,VELCHE(/2))
  666. CARAC(ICOMP)=VELCHE(IGMN,IBMN)
  667. ELSE
  668. CARAC(ICOMP)=0.D0
  669. ENDIF
  670. 123 CONTINUE
  671. C
  672. c C CAS OU ON A LU LE MOT VECTEUR
  673. c C
  674. c IF (IVECT.EQ.1) THEN
  675. c IF (IVAL(NCARR).NE.0) THEN
  676. c MELVAL=IVAL(NCARR)
  677. c IBMN=MIN(IB,IELCHE(/2))
  678. c IP=IELCHE(1,IBMN)
  679. c IREF=(IP-1)*(IDIM+1)
  680. c DO 124 IC=1,IDIM
  681. c CARAC(NCARR+IC-1)=XCOOR(IREF+IC)
  682. c 124 CONTINUE
  683. c ELSE
  684. c DO 125 IC=1,IDIM
  685. c CARAC(NCARR+IC-1)=0.D0
  686. c 125 CONTINUE
  687. c ENDIF
  688. c ENDIF
  689. C
  690. SIGPRE=0.D0
  691. IF(MFR1.EQ.7) THEN
  692. DIV(1)=1.D0/CARAC(4)
  693. c DIV(2)=1.D0
  694. c DIV(3)=1.D0
  695. DIV(4)=CARAC(5)/CARAC(1)
  696. DIV(5)=CARAC(6)/CARAC(2)
  697. DIV(6)=CARAC(7)/CARAC(3)
  698. ELSE IF(MFR1.EQ.13) THEN
  699. EPAIS=CARAC(1)
  700. REXT =CARAC(2)
  701. RMOY =REXT-EPAIS*0.5D0
  702. RACO =CARAC(3)
  703. PRES =CARAC(4)
  704. CISA =CARAC(5)
  705. C
  706. GAM=1.D0
  707. IF(RACO.EQ.0.D0) GO TO 126
  708. XLAM=RMOY*RMOY/EPAIS/RACO
  709. GAM=0.8888888888888889D0*(XLAM)**0.6666666666666667D0
  710. IF(GAM.LT.1.D0) GAM=1.D0
  711. 126 CONTINUE
  712. C
  713. C NB 23/09/98
  714. C VALEURS PAR DEFAUT POUR LES CFFX CFMX CFMY
  715. C CFMZ CFPR ( COEFFICIENTS POUR CALCULER LES
  716. C CONTRAINTES DE MEMBRANE, TORSION, FLEXIONS
  717. C DANS LE PLAN, HORS PLAN ET CIRCONFERENTIELLE
  718. C DUE A LA PRESSION )
  719. C
  720. c DIV(1)=1.D0
  721. c DIV(2)=1.D0
  722. DIV(3)=1.D0
  723. DIV(4)=R33
  724. DIV(5)=PI4*GAM
  725. DIV(6)=DIV(5)
  726. DIV(7)=0.D0
  727. C
  728. DO 127 ICOMP=6,10
  729. MELVAL=IVAL(ICOMP)
  730. IF (MELVAL.NE.0) DIV(ICOMP-3)=CARAC(ICOMP)
  731. 127 CONTINUE
  732. C
  733. C NB 23/09/98
  734. C TRANSFERT DE CFFX DANS DIV(1) ET REMISE A
  735. C 1.D0 DE DIV(3)
  736. DIV(1)=DIV(3)
  737. c DIV(3)=1.D0
  738. C
  739. C RE-ARRANGEMENT DE CARAC POUR TUYCAR
  740. C
  741. CISA=CARAC(5)
  742. c CARAC(4)=CARAC(11)
  743. c CARAC(5)=CARAC(12)
  744. c CARAC(6)=CARAC(13)
  745. c VX=CARAC(4)
  746. c VY=CARAC(5)
  747. c VZ=CARAC(6)
  748. CALL TUYCAR(CARAC,CISA,VX,VY,VZ,KERRE,1)
  749. DIV(1)=DIV(1)/CARAC(4)
  750. DIV(4)=DIV(4)*RMOY/CARAC(1)
  751. DIV(5)=DIV(5)*RMOY/CARAC(2)
  752. DIV(6)=DIV(6)*RMOY/CARAC(3)
  753. SIGPRE=DIV(7)*RMOY*PRES/EPAIS
  754. ENDIF
  755. C
  756. VONMIS=SQRT(ABS((SIG(1)*DIV(1))**2+(SIG(4)*DIV(4))**2+
  757. . (SIG(5)*DIV(5))**2+(SIG(6)*DIV(6))**2+
  758. . SIGPRE**2 ))
  759. C
  760. MELVAL=IVAMIS
  761. VELCHE(IGAU,IB)=VONMIS
  762. C
  763. enddo
  764. enddo
  765. GOTO 150
  766. C
  767. C_______________________________________________________________________
  768. C
  769. C AUTRE FORMULATION
  770. C_______________________________________________________________________
  771. C
  772. 150 CONTINUE
  773. C
  774. C DESACTIVATION DES SEGMENTS PROPRES A LA ZONE GEOMETRIQUE ISOUS
  775. C
  776. IF(ISUP1.EQ.1)THEN
  777. CALL DTMVAL(IVASTR,3)
  778. ELSE
  779. CALL DTMVAL(IVASTR,1)
  780. ENDIF
  781. *
  782. MELVAL=IVAMIS
  783. *
  784. IF(ISUP2.EQ.1)THEN
  785. CALL DTMVAL(IVACAR,3)
  786. ELSE
  787. CALL DTMVAL(IVACAR,1)
  788. ENDIF
  789. *
  790. NOMID =MOSTRS
  791. if(lsupco)SEGSUP NOMID
  792. NOMID =MOCARA
  793. IF (MOCARA.NE.0) SEGSUP NOMID
  794. *
  795. 201 CONTINUE
  796. C
  797. 200 CONTINUE
  798.  
  799. IRET = 1
  800. IPCHE3 = MCHELM
  801. GOTO 888
  802. *
  803. * ERREUR DANS UNE SOUS ZONE, DESACTIVATION ET RETOUR
  804. *
  805. 9990 CONTINUE
  806. *
  807. IF(ISUP1.EQ.1)THEN
  808. CALL DTMVAL(IVASTR,3)
  809. ELSE
  810. CALL DTMVAL(IVASTR,1)
  811. ENDIF
  812. *
  813. IF(ISUP2.EQ.1)THEN
  814. CALL DTMVAL(IVACAR,3)
  815. ELSE
  816. CALL DTMVAL(IVACAR,1)
  817. ENDIF
  818. *
  819. NOMID =MOSTRS
  820. if(lsupco)SEGSUP NOMID
  821. NOMID =MOCARA
  822. IF (MOCARA.NE.0) SEGSUP NOMID
  823. *
  824. IF (IVAMIS.NE.0) THEN
  825. MELVAL=IVAMIS
  826. SEGSUP MELVAL
  827. ENDIF
  828. *
  829. SEGSUP MCHAML
  830. SEGSUP MCHELM
  831.  
  832. IRET = 0
  833. IPCHE3 = 0
  834. *
  835. 888 CONTINUE
  836. END
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  

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