Télécharger epsi1.eso

Retour à la liste

Numérotation des lignes :

epsi1
  1. C EPSI1 SOURCE OF166741 24/05/06 21:15:05 11082
  2.  
  3. SUBROUTINE EPSI1(IDERI,MODORI,IPCHP1,IPCHA1,IPCHA2,
  4. 1 IMAT,IPEPSI,IRET,ipchp2,noer,kerr)
  5. C_______________________________________________________________________
  6. C
  7. C OPERATEUR DEFORMATIONS APPELE PAR EPSI
  8. C
  9. C ENTREES :
  10. C _________
  11. C
  12. c IDERI = | 1 si deformations LINEaires
  13. c | 2 si QUADratiques
  14. c | 3 si TRUEsdell,
  15. c | 4 si JAUMann
  16. c | 5 si UTILisateur
  17. C MODORI POINTEUR SUR UN MMODEL
  18. C IPCHP1 POINTEUR SUR UN CHAMPOINT DEPLACEMENT
  19. C IPCHA1 POINTEUR SUR UN MCHAML DE CARACTERISTIQUE (FACULTATIF)
  20. C IPCHA2 POINTEUR SUR UN MCHAML DE HOOKE (FACULTATIF)
  21. C IMAT Flag de HOOKE (2 si oui, 1 sinon)
  22. C
  23. C SORTIES :
  24. C _________
  25. C
  26. C IPEPSI POINTEUR SUR UN MCHAML DE DEFORMATION
  27. C IRET 1 OU 0 SUIVANT SUCCES OU PAS
  28. C
  29. C-----------------------------------------------------------------------
  30.  
  31. IMPLICIT INTEGER(I-N)
  32. IMPLICIT REAL*8(A-H,O-Z)
  33.  
  34. -INC PPARAM
  35. -INC CCOPTIO
  36. -INC CCREEL
  37. -INC CCHAMP
  38. C==DEB= FORMULATION HHO == INCLUDE =====================================
  39. -INC CCHHOPA
  40. C==FIN= FORMULATION HHO ================================================
  41.  
  42. -INC SMCHAML
  43. -INC SMCHPOI
  44. -INC SMELEME
  45. -INC SMCOORD
  46. -INC SMMODEL
  47. -INC SMINTE
  48. -INC SMLREEL
  49.  
  50. SEGMENT NOTYPE
  51. CHARACTER*16 TYPE(NBTYPE)
  52. ENDSEGMENT
  53. C
  54. SEGMENT MPTVAL
  55. INTEGER IPOS(NS),NSOF(NS)
  56. INTEGER IVAL(NCOSOU)
  57. CHARACTER*16 TYVAL(NCOSOU)
  58. ENDSEGMENT
  59.  
  60. CHARACTER*8 CMATE
  61. CHARACTER*16 MO16
  62. CHARACTER*(NCONCH) CONM
  63. PARAMETER (NINF=3)
  64. INTEGER INFOS(NINF)
  65. INTEGER ISUP1
  66. LOGICAL LDPGE,lsupde,lsupdp,lsupma,dcmate
  67. C
  68. ISUP1=0
  69. IRET = 0
  70. IPEPSI = 0
  71. kerr = 0
  72. c on calcule les termes quadratiques seulement si deformations QUAD
  73. IF(IDERI.EQ.2) THEN
  74. IREPS2=1
  75. ELSE
  76. IREPS2=0
  77. ENDIF
  78. NHRM=NIFOUR
  79. C
  80. C ON VERIFIE QUE LE MCHAML DE CARACTERISTIQUES EST SUR SON SUPPORT
  81. C
  82. IF (IPCHA1.NE.0) THEN
  83. CALL QUESUP (MODORI,IPCHA1,5,0,ISUP1,IRET0)
  84. IF (ISUP1.GT.1) RETURN
  85. ELSE
  86. C SI massif jaumann et truesdel ==> manque un argument
  87. C IF() THEN
  88. C CALL ERREUR(404)
  89. C RETURN
  90. C ENDIF
  91. ENDIF
  92. C
  93. C ON VERIFIE QUE LE MCHAML DE HOOKE EST SUR SON SUPPORT
  94. C
  95. IF (IPCHA2.NE.0) THEN
  96. CALL QUESUP (MODORI,IPCHA2,5,1,ISUP2,IRET0)
  97. IF (ISUP2.NE.0) RETURN
  98. ENDIF
  99. C
  100. C ACTIVATION DU MODELE
  101. C
  102. C MODORI = Modele initial complet
  103. C IPMODL = Modele "deroule" (uniquement "MECANIQUE", "LIQUIDE" ou "POREUX")
  104. CALL PIMODL(MODORI,IPMODL,2)
  105. IF (IPMODL.EQ.0) RETURN
  106. C IPMODL est ACTIF en retour (nouveau pointeur pouvant etre detruit)
  107. MMODEL=IPMODL
  108. NSOUS = KMODEL(/1)
  109.  
  110. C==DEB= FORMULATION HHO ================================================
  111. IF (IDERI.NE.1) THEN
  112. DO IJKL=1,NSOUS
  113. imodel = KMODEL(IJKL)
  114. IF (imodel.NEFMOD.EQ.HHO_NUM_ELEMENT) THEN
  115. write(ioimp,*) 'HHO EPSI: IDERI not compatible'
  116. call erreur(21)
  117. return
  118. END IF
  119. END DO
  120. END IF
  121. C==FIN= FORMULATION HHO ================================================
  122.  
  123. C_______________________________________________________________________
  124. C
  125. C ON CONVERTIT LE CHAMP POINT EN CHAMP PAR ELEMENT idem pour le 2eme
  126. C_______________________________________________________________________
  127. CALL CHAME1 (0,IPMODL,IPCHP1,' ',IPCH1,1)
  128. IF (IERR.NE.0) RETURN
  129. ipch2=0
  130. IF (ipchp2.ne.0) then
  131. call CHAME1 (0,IPMODL,IPCHP2,' ',IPCH2,1)
  132. IF (IERR.NE.0) RETURN
  133. ENDIF
  134. C
  135. C CREATION DU MCHELM
  136. C
  137. KNB22=0
  138. DO IJKL=1,NSOUS
  139. IMODEL=KMODEL(IJKL)
  140. IF (NEFMOD.EQ.22.OR.NEFMOD.EQ.259) KNB22=KNB22+1
  141. END DO
  142. N1=NSOUS-KNB22
  143. L1=12
  144. N3=6
  145. SEGINI MCHELM
  146. TITCHE='DEFORMATIONS'
  147. IFOCHE=IFOUR
  148.  
  149. C Un petit segment utile :
  150. NBTYPE = 1
  151. SEGINI NOTYPE
  152. TYPE(1)='REAL*8'
  153. MOTYR8 = NOTYPE
  154. C_______________________________________________________________________
  155. C
  156. C DEBUT DE LA BOUCLE SUR LES DIFFERENTES SOUS ZONES
  157. C_______________________________________________________________________
  158. C
  159. ISOUS=0
  160. DO 500 KISOUS=1,NSOUS
  161. C
  162. IMODEL=KMODEL(KISOUS)
  163. C* SEGACT IMODEL
  164. MELE=NEFMOD
  165. IF (MELE.EQ.22.OR.MELE.EQ.259) GOTO 9992
  166. C
  167. ISOUS=ISOUS+1
  168. C
  169. C INITIALISATION
  170. C
  171. IVAMAT=0
  172. IVACAR=0
  173. IVADEP=0
  174. IVADE2=0
  175. IVAEPS=0
  176. IPMINT=0
  177. MOMATR=0
  178. MOCARA=0
  179. MOEPSI=0
  180. MODEPL=0
  181. lsupma=.true.
  182. lsupde=.true.
  183. lsupdp=.true.
  184. dcmate = .false.
  185. C
  186. C ON RECUPERE L INFORMATION GENERALE
  187. C
  188. IPMAIL=IMAMOD
  189. CONM =CONMOD
  190. c IDERI=ideriv
  191. c if( ireps3.eq.4) then
  192. c ideri=1
  193. c ireps2=0
  194. c else
  195. c if(ideriv.eq.2) then
  196. c ireps2=1
  197. c else
  198. c ireps2=0
  199. c endif
  200. c endif
  201. cbp,2020-12-10 : ideriv n'est plus utilise -> IDERI en argument (cf + haut)
  202. C
  203. C CREATION DE TABLEAU INFOS
  204. C
  205. CALL IDENT(IPMAIL,CONM,IPCH1,IPCHA1,INFOS,IRTD)
  206. IF (IRTD.EQ.0) GOTO 9992
  207. C
  208. C TRAITEMENT DU MODELE
  209. C
  210. MELEME=IPMAIL
  211. IMACHE(ISOUS)=IPMAIL
  212. CONCHE(ISOUS)=CONMOD
  213.  
  214. if (formod(1).eq.'MELANGE'.and.CMATEE.EQ.'PARALLEL') then
  215. IF (IVAMOD(/1).GE.1) THEN
  216. DO j = 1,IVAMOD(/1)
  217. IF (TYMODE(j).EQ.'IMODEL ') THEN
  218. IMODE1 = IVAMOD(j)
  219. IF (IMODE1.FORMOD(1)(1:10).EQ.'MECANIQUE ' .OR.
  220. & IMODE1.FORMOD(1)(1:10).EQ.'POREUX ' .OR.
  221. & IMODE1.FORMOD(1)(1:16).EQ.'ELECTROSTATIQUE ' .OR.
  222. & IMODE1.FORMOD(1)(1:10).EQ.'LIQUIDE ' ) THEN
  223. imodel = imode1
  224. goto 30
  225. ENDIF
  226. ENDIF
  227. ENDDO
  228. ENDIF
  229. endif
  230.  
  231. 30 continue
  232. C
  233. C NATURE DU MATERIAU
  234. C
  235. CMATE = CMATEE
  236. MATE = IMATEE
  237. INAT = INATUU
  238. C IF (CMATE.EQ.' ')THEN
  239. C CALL ERREUR(251)
  240. C GOTO 9992
  241. C ENDIF
  242. do im = 1,matmod(/2)
  243. C Pour optimisation et eviter _gfortran_compare_string inefficace
  244. MO16=matmod(im)
  245. if (MO16 .eq. 'IMPEDANCE ') dcmate =.true.
  246. enddo
  247. C_______________________________________________________________________
  248. C
  249. C INFORMATION SUR L ELEMENT FINI
  250. C_______________________________________________________________________
  251. C
  252. IF (INFMOD(/1).NE.0) THEN
  253. NPINT=INFMOD(1)
  254. ELSE
  255. NPINT=0
  256. ENDIF
  257. MFR =INFELE(13)
  258. IELE =INFELE(14)
  259. IPORE =INFELE(8)
  260. C NBG =INFELE(6)
  261. NBGS =INFELE(4)
  262. NSTRS =INFELE(16)
  263. LRE =INFELE(9)
  264. LW =INFELE(7)
  265. LHOOK =INFELE(10)
  266. C LHOO2 =LHOOK*LHOOK
  267. C NDDL =INFELE(15)
  268. C MINTE =INFELE(11)
  269. MINTE=infmod(2+5)
  270. IPMINT=MINTE
  271. IPMIN1=INFMOD(8)
  272. C
  273. C ACTIVATION DE MELEME
  274. C
  275. C SEGACT MELEME
  276. if (dcmate) then
  277. if (itypel.eq.1) mele = 45
  278. if (itypel.eq.2) mele = 2
  279. endif
  280. NBNN =NUM(/1)
  281. C NBELEM=NUM(/2)
  282. IPPORE=0
  283. IF(MFR.EQ.33.OR.MFR.EQ.57.OR.MFR.EQ.59) IPPORE=NBNN
  284. IF((MFR.NE.1.AND.IPPORE.NE.1).AND.(IDERI.EQ.3.OR.IDERI.EQ.4))THEN
  285. call erreur (1013)
  286. return
  287. endif
  288. C
  289. C EXTRACTION DES DEPLACEMENTS DU NOEUD SUPPORT DE LA
  290. C DEFORMATION PLANE GENERALISEE (MECANIQUE) SI BESOIN
  291. C
  292. CALL INFDPG(MFR,IFOUR, LDPGE, ndpge)
  293. IF (LDPGE) THEN
  294. IIPDPG = imodel.IPDPGE
  295. IIPDPG = IPTPOI(IIPDPG)
  296. CALL DEPDPG(IPCHP1,UZDPG,RXDPG,RYDPG,IIPDPG)
  297. IF (IERR.NE.0) GOTO 9992
  298. ELSE
  299. IIPDPG = 0
  300. UZDPG=XZero
  301. RXDPG=XZero
  302. RYDPG=XZero
  303. ENDIF
  304. C
  305. INFCHE(ISOUS,1)=0
  306. INFCHE(ISOUS,2)=0
  307. INFCHE(ISOUS,3)=NHRM
  308. INFCHE(ISOUS,4)=IPMINT
  309. INFCHE(ISOUS,5)=0
  310. INFCHE(ISOUS,6)=5
  311. C
  312. C INITIALISATION DE MINTE
  313. C
  314. SEGACT MINTE
  315. NBPGAU=POIGAU(/1)
  316. C_______________________________________________________________________
  317. C
  318. C RECHERCHE DES NOMS COMPOSANTES
  319. C_______________________________________________________________________
  320. C
  321. if(lnomid(5).ne.0) then
  322. lsupde=.false.
  323. nomid=lnomid(5)
  324. segact nomid
  325. ndef=lesobl(/2)
  326. ndefac=lesfac(/2)
  327. moepsi=nomid
  328. else
  329. CALL IDDEFO(IMODEL,IFOUR,MOEPSI,NDEF,NDEFAC)
  330. endif
  331. C
  332. if(lnomid(1).ne.0) then
  333. lsupdp=.false.
  334. nomid=lnomid(1)
  335. segact nomid
  336. modepl=nomid
  337. ndep=lesobl(/2)
  338. nfac=lesfac(/2)
  339. else
  340. CALL IDPRIM(IMODEL,MFR,MODEPL,NDEP,NFAC)
  341. endif
  342. C
  343. C==DEB= FORMULATION HHO ================================================
  344. IF (MELE .EQ. HHO_NUM_ELEMENT) THEN
  345. N1PTEL = NBGS
  346. N1EL = MELEME.NUM(/2)
  347. GOTO 2750
  348. END IF
  349. C==FIN= FORMULATION HHO ================================================
  350. C_______________________________________________________________________
  351. C
  352. C VERIFICATION DE LEUR PRESENCE
  353. C_______________________________________________________________________
  354. C
  355. MOTYPE = MOTYR8
  356. CALL KOMCHA(IPCH1,IPMAIL,CONM,MODEPL,MOTYPE,1,INFOS,3,IVADEP)
  357. IF (IERR.NE.0) GOTO 9993
  358. if( ipch2.ne.0) then
  359. C traitement du 2e champ par point
  360. CALL KOMCHA(IPCH2,IPMAIL,CONM,MODEPL,MOTYPE,1,INFOS,3,IVADE2)
  361. IF (IERR.NE.0) GOTO 9993
  362. ENDIF
  363. C
  364. C RECHERCHE DE LA TAILLE DES MELVAL A ALLOUER
  365. C
  366. N1PTEL=0
  367. N1EL=0
  368. MPTVAL=IVADEP
  369. DO I0=1,NDEP
  370. MELVAL=IVAL(I0)
  371. N1PTEL=MAX(N1PTEL,VELCHE(/1))
  372. N1EL =MAX(N1EL,VELCHE(/2))
  373. ENDDO
  374.  
  375. C==DEB= FORMULATION HHO == Etiquette speciale ==========================
  376. 2750 CONTINUE
  377. C==FIN= FORMULATION HHO ================================================
  378. IF (N1PTEL.EQ.1.OR.NBGS.EQ.1) THEN
  379. N1PTEL=1
  380. ELSE
  381. N1PTEL=NBGS
  382. ENDIF
  383. NBPTEL=N1PTEL
  384. C NEL=N1EL
  385. C
  386. C CREATION DU MCHAML DE LA SOUS ZONE
  387. C
  388. if (ifomod.eq.6) then
  389. NSTRS = ndef + ndefac
  390. endif
  391. N2=NSTRS
  392. SEGINI MCHAML
  393. ICHAML(ISOUS)=MCHAML
  394. NS=1
  395. NCOSOU=NSTRS
  396. SEGINI MPTVAL
  397. IVAEPS=MPTVAL
  398. NOMID=MOEPSI
  399. SEGACT NOMID
  400. DO 100 ICOMP=1,NSTRS
  401. if (ifomod.eq.6) then
  402. if (icomp.le.ndef) then
  403. NOMCHE(ICOMP)=LESOBL(ICOMP)
  404. else
  405. NOMCHE(ICOMP)=LESFAC(ICOMP - ndef)
  406. endif
  407. else
  408. NOMCHE(ICOMP)=LESOBL(ICOMP)
  409. endif
  410. TYPCHE(ICOMP)='REAL*8'
  411. N2PTEL=0
  412. N2EL=0
  413. SEGINI MELVAL
  414. IELVAL(ICOMP)=MELVAL
  415. IVAL(ICOMP) =MELVAL
  416. 100 CONTINUE
  417. C
  418. C en cas de derive de truesdell et de Jaumann il faudra calculer des
  419. C des contraintes donc on a besoin de la loi de hooke ou des
  420. C caracteristiques materiau ( young ...)
  421. C
  422. C____________________________________________________________________
  423. C
  424. C RANGEMENT DE LA MATRICE DE HOOKE DANS UN TABLEAU DE TRAVAIL *
  425. C____________________________________________________________________
  426. C
  427. IF( IDERI.EQ.3.or.IDERI.eq.4) THEN
  428. C Cas de la derivee de Truesdell ou Jaumann
  429. IF (IPCHA1 .EQ. 0) THEN
  430. CALL ERREUR(404)
  431. RETURN
  432. ENDIF
  433.  
  434. IF(LNOMID(3).NE.0) then
  435. MOGRAD=LNOMID(3)
  436. NOMID=MOGRAD
  437. SEGACT,NOMID
  438. NGRA=LESOBL(/2)
  439. ELSE
  440. CALL IDGRAD(MFR,IFOUR,MOGRAD,NGRA,NFAC)
  441. NOMID=MOGRAD
  442. SEGACT,NOMID
  443. NGRA=LESOBL(/2)
  444. ENDIF
  445. if(lnomid(4).ne.0) then
  446. nomid=lnomid(4)
  447. segact nomid
  448. mostrs=nomid
  449. nstr=lesobl(/2)
  450. nfac=lesfac(/2)
  451. else
  452. CALL IDCONT(IMODEL,IFOUR,MOSTRS,NSTR,NFAC)
  453. endif
  454. nomid=mostrs
  455. segact nomid
  456. lsupma=.true.
  457. nbrobl=0
  458. nbrfac=0
  459. momatr=0
  460. IF (IMAT.EQ.2) THEN
  461. IF(MELE.EQ.93.AND.CMATE.NE.'ISOTROPE')THEN
  462. NBROBL=3
  463. NBRFAC=0
  464. SEGINI NOMID
  465. LESOBL(1)='MAHO'
  466. LESOBL(2)='V1X '
  467. LESOBL(3)='V1Y '
  468. NBTYPE=3
  469. SEGINI NOTYPE
  470. TYPE(1)='POINTEURLISTREEL'
  471. TYPE(2)='REAL*8'
  472. TYPE(3)='REAL*8'
  473. ELSE
  474. NBROBL=1
  475. NBRFAC=0
  476. SEGINI NOMID
  477. LESOBL(1)='MAHO'
  478. NBTYPE=1
  479. SEGINI NOTYPE
  480. TYPE(1)='POINTEURLISTREEL'
  481. ENDIF
  482. MOMATR=NOMID
  483. NMATR=NBROBL
  484. NMATF=NBRFAC
  485. MOTYPE=NOTYPE
  486. CALL KOMCHA(IPCHA2,IPMAIL,CONM,MOMATR,MOTYPE,1,INFOS,3,IVAMAT)
  487. SEGSUP NOTYPE
  488. IF (IERR.NE.0) GOTO 9990
  489. MPTVAL=IVAMAT
  490. MELVAL=IVAL(1)
  491. NBGMAT=IELCHE(/1)
  492. NELMAT=IELCHE(/2)
  493. NMATT=NMATR+NMATF
  494. ELSE
  495. C____________________________________________________________________
  496. C
  497. C SINON TRAITEMENT DES CHAMPS DE MATERIAU
  498. C aussi obligatoire en massifb pour truesdell et jaumann
  499. C____________________________________________________________________
  500. C
  501. C Pour optimisation et eviter _gfortran_compare_string inefficace
  502. MO16=FORMOD(1)
  503. C Sauf cas particuliers (aucun ici a ce jour), les composantes sont toutes de type REAL*8.
  504. NOTYPE = MOTYR8
  505. IF (MO16.EQ.'MECANIQUE '.AND.CMATE.EQ.'ISOTROPE') THEN
  506. NBROBL=2
  507. NBRFAC=0
  508. SEGINI NOMID
  509. MOMATR=NOMID
  510. IF (MFR.EQ.35.or.mfr.eq.78) THEN
  511. LESOBL(1)='KS '
  512. LESOBL(2)='KN '
  513. ELSE IF(MFR.EQ.53) THEN
  514. NBROBL=1
  515. SEGADJ,NOMID
  516. LESOBL(1)='KS '
  517. ELSE
  518. LESOBL(1)='YOUN'
  519. LESOBL(2)='NU '
  520. ENDIF
  521. NMATR=NBROBL
  522. NMATF=NBRFAC
  523.  
  524. ELSEIF(MO16.EQ.'MECANIQUE '.AND.CMATE.EQ.'UNIDIREC')THEN
  525. IF (MFR.EQ.1.AND.IDIM.EQ.3) THEN
  526. NBROBL=7
  527. NBRFAC=0
  528. SEGINI NOMID
  529. MOMATR=NOMID
  530. LESOBL(1)='YOUN'
  531. LESOBL(2)='V1X '
  532. LESOBL(3)='V1Y '
  533. LESOBL(4)='V1Z '
  534. LESOBL(5)='V2X '
  535. LESOBL(6)='V2Y '
  536. LESOBL(7)='V2Z '
  537. ELSE
  538. NBROBL=3
  539. NBRFAC=0
  540. SEGINI NOMID
  541. MOMATR=NOMID
  542. LESOBL(1)='YOUN'
  543. LESOBL(2)='V1X '
  544. LESOBL(3)='V1Y '
  545. ENDIF
  546. NMATR=NBROBL
  547. NMATF=NBRFAC
  548.  
  549. ELSEIF(MO16.EQ.'POREUX '.AND.CMATE.EQ.'ISOTROPE')THEN
  550. IF (MELE.GE.79.AND.MELE.LE.83) THEN
  551. NBROBL=4
  552. NBRFAC=0
  553. SEGINI NOMID
  554. MOMATR=NOMID
  555. LESOBL(1)='YOUN'
  556. LESOBL(2)='NU '
  557. LESOBL(3)='COB '
  558. LESOBL(4)='MOB '
  559. ELSE IF (MELE.GE.108.AND.MELE.LE.110) THEN
  560. NBROBL=4
  561. NBRFAC=0
  562. SEGINI NOMID
  563. MOMATR=NOMID
  564. LESOBL(1)='KS '
  565. LESOBL(2)='KN '
  566. LESOBL(3)='COB '
  567. LESOBL(4)='MOB '
  568. ELSE IF (MELE.GE.173.AND.MELE.LE.177) THEN
  569. NBROBL=10
  570. NBRFAC=0
  571. SEGINI NOMID
  572. MOMATR=NOMID
  573. LESOBL(1)='YOUN'
  574. LESOBL(2)='NU '
  575. LESOBL(3)='COP1'
  576. LESOBL(4)='COP2'
  577. LESOBL(5)='CPP1'
  578. LESOBL(6)='CPP2'
  579. LESOBL(7)='KK11'
  580. LESOBL(8)='KK12'
  581. LESOBL(9)='KK21'
  582. LESOBL(10)='KK22'
  583. ELSE IF (MELE.GE.178.AND.MELE.LE.182) THEN
  584. NBROBL=17
  585. NBRFAC=0
  586. SEGINI NOMID
  587. MOMATR=NOMID
  588. LESOBL(1)='YOUN'
  589. LESOBL(2)='NU '
  590. LESOBL(3)='COP1'
  591. LESOBL(4)='COP2'
  592. LESOBL(5)='COP3'
  593. LESOBL(6)='CPP1'
  594. LESOBL(7)='CPP2'
  595. LESOBL(8)='CPP3'
  596. LESOBL(9)='KK11'
  597. LESOBL(10)='KK12'
  598. LESOBL(11)='KK13'
  599. LESOBL(12)='KK21'
  600. LESOBL(13)='KK22'
  601. LESOBL(14)='KK23'
  602. LESOBL(15)='KK31'
  603. LESOBL(16)='KK32'
  604. LESOBL(17)='KK33'
  605. ELSE IF (MELE.GE.185.AND.MELE.LE.187) THEN
  606. NBROBL=10
  607. NBRFAC=0
  608. SEGINI NOMID
  609. MOMATR=NOMID
  610. LESOBL(1)='KS '
  611. LESOBL(2)='KN '
  612. LESOBL(3)='COP1'
  613. LESOBL(4)='COP2'
  614. LESOBL(5)='CPP1'
  615. LESOBL(6)='CPP2'
  616. LESOBL(7)='KK11'
  617. LESOBL(8)='KK12'
  618. LESOBL(9)='KK21'
  619. LESOBL(10)='KK22'
  620. ELSE IF (MELE.GE.188.AND.MELE.LE.190) THEN
  621. NBROBL=17
  622. NBRFAC=0
  623. SEGINI NOMID
  624. MOMATR=NOMID
  625. LESOBL(1)='KS '
  626. LESOBL(2)='KN '
  627. LESOBL(3)='COP1'
  628. LESOBL(4)='COP2'
  629. LESOBL(5)='COP3'
  630. LESOBL(6)='CPP1'
  631. LESOBL(7)='CPP2'
  632. LESOBL(8)='CPP3'
  633. LESOBL(9)='KK11'
  634. LESOBL(10)='KK12'
  635. LESOBL(11)='KK13'
  636. LESOBL(12)='KK21'
  637. LESOBL(13)='KK22'
  638. LESOBL(14)='KK23'
  639. LESOBL(15)='KK31'
  640. LESOBL(16)='KK32'
  641. LESOBL(17)='KK33'
  642. ENDIF
  643. NMATR=NBROBL
  644. NMATF=NBRFAC
  645. C
  646. ELSEIF(INAT.EQ.67.AND.CMATE.EQ.'ORTHOTRO') THEN
  647. NBROBL=6
  648. NBRFAC=0
  649. SEGINI NOMID
  650. MOMATR=NOMID
  651. LESOBL(1)='YG1 '
  652. LESOBL(2)='YG2 '
  653. LESOBL(3)='NU12'
  654. LESOBL(4)='G12 '
  655. LESOBL(5)='V1X '
  656. LESOBL(6)='V1Y '
  657. NMATR=NBROBL
  658. C Autres cas :
  659. ELSE
  660. if(lnomid(6).ne.0) then
  661. nomid=lnomid(6)
  662. segact nomid
  663. momatr=nomid
  664. nmatr=lesobl(/2)
  665. nmatf=lesfac(/2)
  666. lsupma=.false.
  667. else
  668. lsupma=.true.
  669. CALL IDMATR(MFR,IMODEL,MOMATR,NMATR,NMATF)
  670. endif
  671. ENDIF
  672. NMATT=NMATR+NMATF
  673. MOTYPE = NOTYPE
  674.  
  675. CALL KOMCHA(IPCHA1,IPMAIL,CONM,MOMATR,MOTYPE,1,INFOS,3,IVAMAT)
  676. c* IF (MOTYPE.NE.MOTYR8) SEGSUP,NOTYPE
  677. IF (IERR.NE.0) GOTO 9990
  678. C C
  679. IF(ISUP1.EQ.1)THEN
  680. CALL VALCHE(IVAMAT,NMATT,IPMINT,IPPORE,MOMATR,MELE)
  681. IF(IERR.NE.0)THEN
  682. ISUP1=0
  683. GOTO 9990
  684. ENDIF
  685. ENDIF
  686. MPTVAL=IVAMAT
  687. NBGMAT = 0
  688. NELMAT = 0
  689. DO 11081 IM=1,NMATT
  690. IF(IVAL(IM).NE.0)THEN
  691. MELVAL=IVAL(IM)
  692. IF (CMATE.EQ.'SECTION ') THEN
  693. NBGMAT=MAX(NBGMAT,IELCHE(/1))
  694. NELMAT=MAX(NELMAT,IELCHE(/2))
  695. ELSE
  696. NBGMAT=MAX(NBGMAT,VELCHE(/1))
  697. NELMAT=MAX(NELMAT,VELCHE(/2))
  698. ENDIF
  699. ENDIF
  700. 11081 CONTINUE
  701. ENDIF
  702. nmattd=nmatt
  703. ivamtd= ivamat
  704. ENDIF
  705. C_______________________________________________________________________
  706. C
  707. C TRAITEMENT DES CHAMP CARACTERISTIQUES
  708. C_______________________________________________________________________
  709. C
  710. NBROBL=0
  711. NBRFAC=0
  712. IVECT =0
  713. C Sauf cas particuliers, toutes les composantes sont de type REAL*8.
  714. notype = MOTYR8
  715. C
  716. C EPAISSEUR ET EXCENTREMENT DANS LE CAS DES COQUES
  717. C
  718. IF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
  719. NBROBL=1
  720. NBRFAC=1
  721. SEGINI NOMID
  722. MOCARA=NOMID
  723. LESOBL(1)='EPAI'
  724. LESFAC(1)='EXCE'
  725. C
  726. C SECTION POUR LES BARRES
  727. C
  728. ELSE IF (MFR.EQ.27) THEN
  729. IF(.NOT.dcmate) THEN
  730.  
  731. NBROBL=1
  732. SEGINI NOMID
  733. MOCARA=NOMID
  734. LESOBL(1)='SECT'
  735. ENDIF
  736. C
  737. C section, excentrements et orientation pour les barres excentrees
  738. C
  739. ELSE IF (MFR.EQ.49) THEN
  740. NBROBL=6
  741. SEGINI NOMID
  742. MOCARA=NOMID
  743. LESOBL(1)='SECT'
  744. LESOBL(2)='EXCZ'
  745. LESOBL(3)='EXCY'
  746. LESOBL(4)='VX '
  747. LESOBL(5)='VY '
  748. LESOBL(6)='VZ '
  749. C
  750. C raideurs locales et orientation pour l'element LIA2
  751. C de liaison a 2 noeuds
  752. C
  753. ELSE IF (MFR.EQ.51) THEN
  754. NBROBL=9
  755. SEGINI NOMID
  756. MOCARA=NOMID
  757. LESOBL(1)='RLUX'
  758. LESOBL(2)='RLUY'
  759. LESOBL(3)='RLUZ'
  760. LESOBL(4)='RLRX'
  761. LESOBL(5)='RLRY'
  762. LESOBL(6)='RLRZ'
  763. LESOBL(7)='VX '
  764. LESOBL(8)='VY '
  765. LESOBL(9)='VZ '
  766. C
  767. C CARACTERISTIQUE POUR LES POUTRES
  768. C
  769. ELSE IF (MFR.EQ.7) THEN
  770. IF(.NOT.dcmate) THEN
  771. IF (CMATE.EQ.'SECTION ') THEN
  772. NBROBL=0
  773. NBRFAC=3
  774. SEGINI NOMID
  775. MOCARA=NOMID
  776. LESFAC(1)='VX'
  777. LESFAC(2)='VY'
  778. LESFAC(3)='VZ'
  779. IVECT=1
  780. ELSE
  781. IF(IFOUR.EQ.2) THEN
  782. NBROBL=4
  783. NBRFAC=5
  784. SEGINI NOMID
  785. MOCARA=NOMID
  786. LESOBL(1)='TORS'
  787. LESOBL(2)='INRY'
  788. LESOBL(3)='INRZ'
  789. LESOBL(4)='SECT'
  790. LESFAC(1)='SECY'
  791. LESFAC(2)='SECZ'
  792. LESFAC(3)='VX'
  793. LESFAC(4)='VY'
  794. LESFAC(5)='VZ'
  795. IVECT=1
  796.  
  797. ELSEIF(IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.63) THEN
  798. NBRFAC=1
  799. NBROBL=2
  800. SEGINI NOMID
  801. MOCARA=NOMID
  802. LESOBL(1)= 'SECT'
  803. LESOBL(2)= 'INRZ'
  804. LESFAC(1)= 'SECY'
  805. ENDIF
  806. ENDIF
  807. ENDIF
  808. C
  809. C TIMO 2D
  810. C
  811. C ELSE IF ((MFR.EQ.7).AND.
  812. C & (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3)) THEN
  813. C
  814. C IF (CMATE.NE.'SECTION') THEN
  815. C ENDIF
  816. C
  817. C CARACTERISTIQUE POUR LES TUYAUX
  818. C
  819. ELSE IF (MFR.EQ.13) THEN
  820. NBROBL=2
  821. NBRFAC=5
  822. SEGINI NOMID
  823. MOCARA=NOMID
  824. LESOBL(1)='EPAI'
  825. LESOBL(2)='RAYO'
  826. LESFAC(1)='RACO'
  827. LESFAC(2)='CISA'
  828. LESFAC(3)='VX'
  829. LESFAC(4)='VY'
  830. LESFAC(5)='VZ'
  831. IVECT=1
  832. C
  833. C CARACTERISTIQUE POUR LES LINESPRING
  834. C
  835. ELSE IF (MFR.EQ.15) THEN
  836. NBROBL=5
  837. SEGINI NOMID
  838. MOCARA=NOMID
  839. LESOBL(1)='EPAI'
  840. LESOBL(2)='FISS'
  841. LESOBL(3)='VX '
  842. LESOBL(4)='VY '
  843. LESOBL(5)='VZ '
  844. C
  845. C CARACTERISTIQUE POUR LES TUYAUX FISSURES
  846. C
  847. ELSE IF (MFR.EQ.17) THEN
  848. NBROBL=9
  849. SEGINI NOMID
  850. MOCARA=NOMID
  851. LESOBL(1)='RAYO'
  852. LESOBL(2)='EPAI'
  853. LESOBL(3)='VX '
  854. LESOBL(4)='VY '
  855. LESOBL(5)='VZ '
  856. LESOBL(6)='VXF '
  857. LESOBL(7)='VYF '
  858. LESOBL(8)='VZF '
  859. LESOBL(9)='ANGL'
  860. C
  861. C CARACTERISTIQUE POUR LES ELEMENTS HOMOGENEISES
  862. C
  863. ELSE IF (MFR.EQ.37) THEN
  864. IF (IFOUR.EQ.1.OR.IFOUR.EQ.0) THEN
  865. NBROBL=4
  866. SEGINI NOMID
  867. MOCARA=NOMID
  868. LESOBL(1)='SCEL'
  869. LESOBL(2)='SFLU'
  870. LESOBL(3)='EPS '
  871. LESOBL(4)='XINE'
  872. ELSE
  873. NBROBL=3
  874. SEGINI NOMID
  875. MOCARA=NOMID
  876. LESOBL(1)='SCEL'
  877. LESOBL(2)='SFLU'
  878. LESOBL(3)='EPS '
  879. ENDIF
  880. C
  881. C CARACTERISTIQUE POUR LES JOINTS GENE
  882. C
  883. ELSE IF (MFR.EQ.55) THEN
  884. CcPPj NBROBL=1
  885. CcPPj NBRFAC=0
  886. CcPPj SEGINI NOMID
  887. CcPPj MOCARA=NOMID
  888. CcPPj LESOBL(1)='EPAI'
  889. NBROBL=0
  890. NBRFAC=1
  891. SEGINI NOMID
  892. MOCARA=NOMID
  893. LESFAC(1)='EPAI'
  894. C
  895. C==DEB= FORMULATION HHO ================================================
  896. ELSE IF (MFR.EQ.HHO_MFR_ELEMENT) THEN
  897. IF (MELE.EQ.HHO_NUM_ELEMENT) THEN
  898. nbrobl = 1
  899. nbrfac = 0
  900. SEGINI,nomid
  901. nomid.LESOBL(1) = 'BHHO'
  902. MOCARA = nomid
  903. nbtype = 1
  904. SEGINI,NOTYPE
  905. notype.TYPE(1) = 'POINTEURLISTREEL'
  906. END IF
  907. C==FIN= FORMULATION HHO ================================================
  908. ENDIF
  909. MOTYPE = notype
  910. C
  911. NCARA=NBROBL
  912. NCARF=NBRFAC
  913. NCARR=NCARA+NCARF
  914. C
  915. IF (MOCARA.NE.0) THEN
  916. IF (IPCHA1.EQ.0) THEN
  917. MOTERR(1:8)='CARACTER'
  918. MOTERR(9:12)=NOMTP(MELE)
  919. MOTERR(13:20)='EPSI'
  920. CALL ERREUR(145)
  921. GOTO 9990
  922. ENDIF
  923. CALL KOMCHA(IPCHA1,IPMAIL,CONM,MOCARA,MOTYPE,1,INFOS
  924. $ ,3,IVACAR)
  925. IF (IERR.NE.0) GOTO 9990
  926. IF(ISUP1.EQ.1)THEN
  927. CALL VALCHE(IVACAR,NCARR,IPMINT,IPPORE,MOCARA,MELE)
  928. IF(IERR.NE.0)THEN
  929. ISUP1=0
  930. GOTO 9990
  931. ENDIF
  932. ENDIF
  933. ENDIF
  934. IF (MOTYPE.NE.MOTYR8) SEGSUP,notype
  935. C____________________________________________________________________
  936. C
  937. C RANGEMENT DE LA MATRICE DE HOOKE DANS UN TABLEAU DE TRAVAIL *
  938. C UNIQUEMENT DANS LE CAS DE L'ELEMENT COQUE DST
  939. C____________________________________________________________________
  940. C
  941. NMATR=0
  942. NMATF=0
  943. NMATT=0
  944. NBGMAT=0
  945. NELMAT=0
  946. IF(MELE.EQ.93.and.IMAT.EQ.2) THEN
  947. IF(CMATE.NE.'ISOTROPE')THEN
  948. NBROBL=3
  949. NBRFAC=0
  950. SEGINI NOMID
  951. LESOBL(1)='MAHO'
  952. LESOBL(2)='V1X '
  953. LESOBL(3)='V1Y '
  954. ELSE
  955. NBROBL=1
  956. NBRFAC=0
  957. SEGINI NOMID
  958. LESOBL(1)='MAHO'
  959. ENDIF
  960. MOMATR=NOMID
  961. NMATR=NBROBL
  962. NMATF=NBRFAC
  963. NMATT=NMATR+NMATF
  964. IF(CMATE.NE.'ISOTROPE')THEN
  965. NBTYPE=3
  966. SEGINI NOTYPE
  967. TYPE(1)='POINTEURLISTREEL'
  968. TYPE(2)='REAL*8'
  969. TYPE(3)='REAL*8'
  970. ELSE
  971. NBTYPE=1
  972. SEGINI NOTYPE
  973. TYPE(1)='POINTEURLISTREEL'
  974. ENDIF
  975. MOTYPE=NOTYPE
  976. CALL KOMCHA(IPCHA2,IPMAIL,CONM,MOMATR,MOTYPE,1,INFOS,3,IVAMAT)
  977. SEGSUP NOTYPE
  978. IF (IERR.NE.0) GOTO 9990
  979. MPTVAL=IVAMAT
  980. MELVAL=IVAL(1)
  981. NBGMAT=IELCHE(/1)
  982. NELMAT=IELCHE(/2)
  983. ENDIF
  984. C____________________________________________________________________
  985. C
  986. C SINON TRAITEMENT DES CHAMPS DE MATERIAU
  987. C____________________________________________________________________
  988. C
  989. IF((MELE.EQ.93.and.IMAT.ne.2).or.
  990. $ (mfr.eq.7.and.CMATE.NE.'SECTION '.and.(.not.dcmate))
  991. $.or.mfr.eq.13)THEN
  992. C Pour optimisation et eviter _gfortran_compare_string inefficace
  993. MO16=FORMOD(1)
  994. IF ((MO16.EQ.'MECANIQUE '.AND.CMATE.EQ.'ISOTROPE')
  995. $ .or.mfr.eq.7) THEN
  996. NBROBL=2
  997. NBRFAC=0
  998. SEGINI NOMID
  999. MOMATR=NOMID
  1000. LESOBL(1)='YOUN'
  1001. LESOBL(2)='NU '
  1002. NMATR=NBROBL
  1003. NMATF=NBRFAC
  1004. ELSEIF(MO16.EQ.'MECANIQUE '.AND.(CMATE.EQ.'ORTHOTRO'))THEN
  1005. IF(INAT.EQ.67) THEN
  1006. NBROBL=6
  1007. NBRFAC=0
  1008. SEGINI NOMID
  1009. MOMATR=NOMID
  1010. LESOBL(1)='YG1 '
  1011. LESOBL(2)='YG2 '
  1012. LESOBL(3)='NU12'
  1013. LESOBL(4)='G12 '
  1014. LESOBL(5)='V1X '
  1015. LESOBL(6)='V1Y '
  1016. NMATR=NBROBL
  1017. NMATF=NBRFAC
  1018. ELSE
  1019. if(lnomid(6).ne.0) then
  1020. lsupma=.false.
  1021. nomid=lnomid(6)
  1022. segact nomid
  1023. momatr=nomid
  1024. nmatr=lesobl(/2)
  1025. nmatf=lesfac(/2)
  1026. else
  1027. CALL IDMATR(MFR,IMODEL,MOMATR,NMATR,NMATF)
  1028. nomid=MOMATR
  1029. endif
  1030. ENDIF
  1031. ELSE
  1032. CALL ERREUR(19)
  1033. GOTO 9990
  1034. ENDIF
  1035. NMATT=NMATR+NMATF
  1036.  
  1037. C Les composantes sont toutes de type 'REAL*8'.
  1038. MOTYPE=MOTYR8
  1039. C
  1040. CALL KOMCHA(IPCHA1,IPMAIL,CONM,MOMATR,MOTYPE,1,INFOS,3,IVAMAT)
  1041. IF (IERR.NE.0) GOTO 9990
  1042. C
  1043. IF(ISUP1.EQ.1)THEN
  1044. CALL VALCHE(IVAMAT,NMATT,IPMINT,IPPORE,MOMATR,MELE)
  1045. IF(IERR.NE.0)THEN
  1046. ISUP1=0
  1047. GOTO 9990
  1048. ENDIF
  1049. ENDIF
  1050. C
  1051. MPTVAL=IVAMAT
  1052. NBGMAT = 0
  1053. NELMAT = 0
  1054. DO IM=1,NMATT
  1055. IF(IVAL(IM).NE.0)THEN
  1056. MELVAL=IVAL(IM)
  1057. IF (CMATE.EQ.'SECTION ') THEN
  1058. NBGMAT=MAX(NBGMAT,IELCHE(/1))
  1059. NELMAT=MAX(NELMAT,IELCHE(/2))
  1060. ELSE
  1061. NBGMAT=MAX(NBGMAT,VELCHE(/1))
  1062. NELMAT=MAX(NELMAT,VELCHE(/2))
  1063. ENDIF
  1064. ENDIF
  1065. ENDDO
  1066. ENDIF
  1067. C================================================
  1068. C
  1069. C CAS D'UN JOINT UNIDIMENSIONNEL JOI1
  1070. C Chargement des vecteurs situes dans les caracteristiques materiau
  1071. C
  1072. C================================================
  1073. IF(MFR.EQ.75) THEN
  1074. IF(IDIM.EQ.3) THEN
  1075. NBROBL=6
  1076. NBRFAC=0
  1077. SEGINI NOMID
  1078. MOMATR=NOMID
  1079. LESOBL(1)='V1X'
  1080. LESOBL(2)='V1Y'
  1081. LESOBL(3)='V1Z'
  1082. LESOBL(4)='V2X'
  1083. LESOBL(5)='V2Y'
  1084. LESOBL(6)='V2Z'
  1085. NMATR=NBROBL
  1086. NMATF=NBRFAC
  1087. ELSE IF(IDIM.EQ.2) THEN
  1088. NBROBL=2
  1089. NBRFAC=0
  1090. SEGINI NOMID
  1091. MOMATR=NOMID
  1092. LESOBL(1)='V1X'
  1093. LESOBL(2)='V1Y'
  1094. NMATR=NBROBL
  1095. NMATF=NBRFAC
  1096. ENDIF
  1097. NMATT=NMATR+NMATF
  1098. MOTYPE = MOTYR8
  1099. C
  1100. CALL KOMCHA(IPCHA1,IPMAIL,CONM,MOMATR,MOTYPE,1,INFOS,3,IVAMAT)
  1101. IF (IERR.NE.0) GOTO 9990
  1102. C C
  1103. IF(ISUP1.EQ.1)THEN
  1104. CALL VALCHE(IVAMAT,NMATT,IPMINT,IPPORE,MOMATR,MELE)
  1105. IF(IERR.NE.0)THEN
  1106. ISUP1=0
  1107. GOTO 9990
  1108. ENDIF
  1109. ENDIF
  1110. MPTVAL=IVAMAT
  1111. NBGMAT = 0
  1112. NELMAT = 0
  1113. DO IM=1,NMATT
  1114. IF(IVAL(IM).NE.0)THEN
  1115. MELVAL=IVAL(IM)
  1116. IF (CMATE.EQ.'SECTION ') THEN
  1117. NBGMAT=MAX(NBGMAT,IELCHE(/1))
  1118. NELMAT=MAX(NELMAT,IELCHE(/2))
  1119. ELSE
  1120. NBGMAT=MAX(NBGMAT,VELCHE(/1))
  1121. NELMAT=MAX(NELMAT,VELCHE(/2))
  1122. ENDIF
  1123. ENDIF
  1124. ENDDO
  1125. nmattd=nmatt
  1126. ivamtd= ivamat
  1127. ENDIF
  1128. C
  1129. C=======================================================================
  1130. C NUMERO DES ETIQUETTES :
  1131. C ETIQUETTES DE 1 A 98 POUR TRAITEMENT SPECIFIQUE A L ELEMENT
  1132. C ON DIRIGE DANS 3 SOUS-PROGRAMMES SELON LES ELEMENTS
  1133. C
  1134. C - massif, poreux, joints poreux ------------------> epsi2
  1135. C - coq3,dkt,coq4,coq8,coq2,joints -----------------> epsi3
  1136. C - poutre,tuyau,linespring,tuyau fissure,barre ----> epsi4
  1137. C - elements XFEM (mfr = 63) -----------------------> epsix
  1138. C
  1139. C=======================================================================
  1140.  
  1141. IF(MELE.GE.1.AND.MELE.LE.100) THEN
  1142. C CABL SEG2 SEG3 TRI3 TRI4 TRI6 TRI7 QUA4 QUA5 QUA8
  1143. GOTO ( 99, 29, 99, 4, 99, 4, 99, 4, 99, 4
  1144. C QUA9 RAC2 RAC3 CUB8 CU20 PRI6 PR15 LIA3 LIA4 LIA6
  1145. 1 , 99, 99, 99, 4, 4, 4, 4, 99, 99, 99
  1146. C LIA8 MULT TET4 TE10 PYR5 PY13 COQ3 DKT POUT LISP
  1147. 2 , 99, 99, 4, 4, 4, 4, 27, 27, 27, 29
  1148. C FAC3 FAC4 FAC6 FAC8 LTR3 LQU4 LCU8 LPR6 LTE4 LPY5
  1149. 3 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  1150. C COQ8 TUYA TUFI COQ2 POI1 BARR RACO LSU2 COQ4 LISM
  1151. 4 , 27, 27, 29, 27, 29, 29, 99, 99, 27, 29
  1152. C COF3 RES2 LSU3 LSU4 LICO COQ6 CVS2 CVS3 CVT3 CVT6
  1153. 5 , 99, 99, 99, 99, 99, 27, 99, 99, 99, 99
  1154. C CVQ4 CVQ8 THP5 TH13 THP6 TH15 THC8 TH20 ICT3 ICQ4
  1155. 6 , 99, 99, 99, 99, 99, 99, 99, 99, 4, 4
  1156. C ICT6 ICQ8 ICC8 ICT4 ICP6 IC20 IC10 IC15 TRIP QUAP
  1157. 7 , 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
  1158. C CUBP TETP PRIP TIMO JOI2 JOI3 JOT3 JOI4 JOI6 JOI8
  1159. 8 , 4, 4, 4, 27, 27, 27, 27, 27, 99, 99
  1160. C LISC TRIH DST LIC4 CERC TUYO LSE2 LITU HYT3 HYQ4
  1161. 9 , 99, 99, 27, 99, 29, 29, 99, 99, 99, 99)
  1162. c cccccc
  1163. . ,MELE
  1164. ELSEIF(MELE.GE.101.AND.MELE.LE.200) THEN
  1165. C HYT4 HYP6 HYC8 TRIS QUAS POIS FOR3 JOP3 JOP6 JOP8
  1166. GOTO ( 99, 99, 99, 99, 99, 99, 99, 4, 4, 4
  1167. C POL3 POL4 POL5 POL6 POL7 POL8 POL9 PO10 PO11 PO12
  1168. 1 , 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
  1169. C PO13 PO14 BAR3 BAEX LIA2 QUAH CUBH ROT3 SEF2 TRF3
  1170. 2 , 4, 4, 29, 29, 29, 34, 34, 34, 34, 34
  1171. C QUF4 CUF8 PRF6 TEF4 PYF5 MSE3 MTR6 MQU9 MC27 MP18
  1172. 3 , 34, 34, 34, 34, 34, 34, 34, 34, 34, 34
  1173. C MT10 MP14 SEF3 TRF7 QUF9 CF27 PF21 TF15 PF19 SEG6
  1174. 4 , 34, 34, 34, 34, 34, 34, 34, 34, 34, 34
  1175. C TR21 QU36 C216 P126 TE56 PY91 TRH6 BSE2 BTR4 BQU5
  1176. 5 , 34, 34, 34, 34, 34, 34, 34, 34, 34, 34
  1177. C BCU9 BPR7 BTE5 BPY6 FRO4 SEGS POJS JCT3 JCI4 JGI2
  1178. 6 , 34, 34, 34, 34, 34, 34, 34, 27, 27, 27
  1179. C JGT3 JGI4 TRIQ QUAQ CUBQ TETQ PRIQ TRIR QUAR CUBR
  1180. 7 , 27, 27, 4, 4, 4, 4, 4, 4, 4, 4
  1181. C TETR PRIR Q4RI Q8RI JOQ3 JOQ6 JOQ8 JOR3 JOR6 JOR8
  1182. 8 , 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
  1183. C T1D2 T1D3 M1D2 M1D3 LC03 LC07 LC09 LC27 LC21 LC15
  1184. 9 , 34, 34, 4, 4, 34, 34, 34, 34, 34, 34)
  1185. c cccccc
  1186. . ,MELE-100
  1187. ELSEIF(MELE.GE.201.AND.MELE.LE.300) THEN
  1188. C LC19 LS03 LS07 LS09 LS27 LS21 LS15 LS19 BS03 BS07
  1189. GOTO ( 34, 34, 34, 34, 34, 34, 34, 34, 34, 34
  1190. C BS09 BS27 BS21 BS15 BS19 MC03 MC07 MC09 MC27 MC21
  1191. 1 , 34, 34, 34, 34, 34, 34, 34, 34, 34, 34
  1192. C MC15 MC19 M103 M107 M109 M127 M121 M115 M119 MS03
  1193. 2 , 34, 34, 34, 34, 34, 34, 34, 34, 34, 34
  1194. C MS07 MS09 MS27 MS21 MS15 MS19 QC03 QC07 QC09 QC27
  1195. 3 , 34, 34, 34, 34, 34, 34, 34, 34, 34, 34
  1196. C QC21 QC15 QC19 Q103 Q107 Q109 Q127 Q121 Q115 Q119
  1197. 4 , 34, 34, 34, 34, 34, 34, 34, 34, 34, 34
  1198. C QS03 QS07 QS09 QS27 QS21 QS15 QS19 CIFL SURE SHB8
  1199. 5 , 34, 34, 34, 34, 34, 34, 34, 27, 34, 27
  1200. C CAF2 CAF3 XQ4R XC8R JOI1 ZCO2 ZCO3 ZCO4 TUY2 TUY3
  1201. 6 , 34, 34, 63, 63, 29, 29, 29, 29, 99, 99
  1202. C COS2 COA2 ICY5 IC13 CU27 PR21 TE15 PY19 C20R P15R
  1203. 7 , 29, 29, 4, 4, 4, 4, 4, 4, 4, 4
  1204. C HHO .... .... .... .... .... .... .... .... ....
  1205. 8 , 281, 99, 99, 99, 99, 99, 99, 99, 99, 99
  1206. C .... .... .... .... .... .... .... .... .... ....
  1207. 9 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99)
  1208. c cccccc
  1209. . ,MELE-200
  1210. ENDIF
  1211. C
  1212. 34 CONTINUE
  1213. 99 CONTINUE
  1214. MOTERR(1:4) =NOMTP(MELE)
  1215. MOTERR(5:12)='EPSI'
  1216. CALL ERREUR(86)
  1217. GOTO 9990
  1218. C_______________________________________________________________________
  1219. C
  1220. C massifs, poreux et joints poreux
  1221. C_______________________________________________________________________
  1222. C
  1223. 4 CONTINUE
  1224. CALL EPSI2(IPMAIL,IPMINT,MELE,IELE,
  1225. & IVADEP,NBPTEL,LRE,NSTRS,LHOOK,
  1226. & MFR,NDEP,IPORE,IREPS2,NBPGAU,IVAEPS,UZDPG,RYDPG,RXDPG,IIPDPG,
  1227. & IDERI,IVAMTD,ivade2,mate,nmattD,cmate,ngra,noer,kerr)
  1228. GOTO 9990
  1229. C_______________________________________________________________________
  1230. C
  1231. C poutres,tuyau,coq3,dkt,coq4,coq8,coq2 ,dst,joint 3D,joints 2D
  1232. C_______________________________________________________________________
  1233. C
  1234. 27 CONTINUE
  1235. if (dcmate) goto 29
  1236. CALL EPSI3(IPMAIL,IVADEP,IVACAR,NELMAT,NBGMAT,IVECT,
  1237. & IVAMAT,LHOOK,IMAT,MATE,CMATE,NMATT,NSTRS,MFR,IPMINT,
  1238. & NCARR,NDEP,NBPGAU,NBPTEL,MELE,LRE,LW,IREPS2,IVAEPS,
  1239. & IPMIN1,UZDPG,RYDPG,RXDPG,NPINT,IIPDPG)
  1240. GOTO 9990
  1241. C_______________________________________________________________________
  1242. C
  1243. C linespring,tuyau fissure,barre,joi1,zone cohesive
  1244. C_______________________________________________________________________
  1245. C
  1246. 29 CONTINUE
  1247. CALL EPSI4(IPMAIL,IVADEP,NDEP,IVAMAT,NMATT,IVACAR,NCARR,IPMINT,
  1248. & IVECT,MELE,LHOOK,IREPS2,NBPTEL,NSTRS,MFR,
  1249. & NBPGAU,LRE,LW,IVAEPS,UZDPG,RYDPG,RXDPG,ISOUS,IIPDPG,cmate)
  1250. GOTO 9990
  1251. C_______________________________________________________________________
  1252. C
  1253. C Elements XFEM (MFR = 63)
  1254. C_______________________________________________________________________
  1255. C
  1256. 63 CONTINUE
  1257. CALL EPSIX (IMODEL,IREPS2,IVADEP,IVAEPS,
  1258. & UZDPG,RYDPG,RXDPG,IIPDPG,IRETER)
  1259. IF (IRETER.NE.0) RETURN
  1260. GO TO 9990
  1261.  
  1262. C==DEB= FORMULATION HHO ================================================
  1263. 281 CONTINUE
  1264. CALL HHOEPS('EPSI', IMODEL, IPCHP1,MODEPL,
  1265. & IIPDPG,UZDPG,RYDPG,RXDPG,
  1266. & IVACAR, NCARA, IPMINT,NBPTEL,
  1267. & IVAEPS,NSTRS, iret)
  1268. IF (iret.NE.0) THEN
  1269. CALL ERREUR(iret)
  1270. RETURN
  1271. END IF
  1272. GO TO 9990
  1273. C==FIN= FORMULATION HHO ================================================
  1274.  
  1275. C_______________________________________________________________________
  1276. C
  1277. C DESACTIVATION DES SEGMENTS PROPRES A LA ZONE GEOMETRIQUE IA
  1278. C_______________________________________________________________________
  1279. C
  1280. 9990 CONTINUE
  1281. C
  1282. IF(IMAT.NE.2.AND.ISUP1.EQ.1)THEN
  1283. CALL DTMVAL(IVAMAT,3)
  1284. ELSE
  1285. CALL DTMVAL(IVAMAT,1)
  1286. ENDIF
  1287. C
  1288. IF(ISUP1.EQ.1)THEN
  1289. CALL DTMVAL(IVACAR,3)
  1290. ELSE
  1291. CALL DTMVAL(IVACAR,1)
  1292. ENDIF
  1293. C
  1294. IF(IERR.NE.0)THEN
  1295. SEGSUP MCHAML
  1296. CALL DTMVAL(IVAEPS,3)
  1297. ELSE
  1298. mptval = ivaeps
  1299. do iv = 1, ival(/1)
  1300. ic1 = ival(iv)
  1301. call comred(ic1)
  1302. ival(iv)=ic1
  1303. enddo
  1304. CALL DTMVAL(IVAEPS,1)
  1305. ENDIF
  1306. C
  1307. c Utilite de ce compactage ?
  1308. IF (IVADEP.NE.0) THEN
  1309. mptval = ivadep
  1310. do iv = 1, ival(/1)
  1311. ic1 = ival(iv)
  1312. C test pour les melval ?? 0 (=ceux des composantes facultatives et absentes)
  1313. if(ic1 .ne. 0) then
  1314. call comred(ic1)
  1315. ival(iv)=ic1
  1316. endif
  1317. enddo
  1318. CALL DTMVAL(IVADEP,1)
  1319. END IF
  1320. IF (IVADE2.NE.0) CALL DTMVAL(IVADE2,1)
  1321. C
  1322. 9993 CONTINUE
  1323. IF(MOMATR.NE.0)THEN
  1324. NOMID=MOMATR
  1325. if(lsupma)SEGSUP NOMID
  1326. ENDIF
  1327. C
  1328. IF(MOCARA.NE.0)THEN
  1329. NOMID=MOCARA
  1330. SEGSUP NOMID
  1331. ENDIF
  1332. C
  1333. IF(MOEPSI.NE.0)THEN
  1334. NOMID=MOEPSI
  1335. if(lsupde)SEGSUP NOMID
  1336. ENDIF
  1337. C
  1338. IF(MODEPL.NE.0)THEN
  1339. NOMID=MODEPL
  1340. if(lsupdp)SEGSUP NOMID
  1341. ENDIF
  1342. 9992 CONTINUE
  1343. C
  1344. C DANS LE CAS D'ERREUR
  1345. C
  1346. IF (IERR.NE.0) GOTO 888
  1347. C
  1348. 500 CONTINUE
  1349. C
  1350. 888 CONTINUE
  1351. SEGSUP,MMODEL
  1352. C
  1353. IF(IERR.NE.0)THEN
  1354. IRET = 0
  1355. SEGSUP MCHELM
  1356. IPEPSI = 0
  1357. ELSE
  1358. IRET = 1
  1359. IPEPSI = MCHELM
  1360. ENDIF
  1361.  
  1362. NOTYPE = MOTYR8
  1363. SEGSUP,NOTYPE
  1364.  
  1365. c return
  1366. END
  1367.  
  1368.  
  1369.  

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