Télécharger keule1.eso

Retour à la liste

Numérotation des lignes :

keule1
  1. C KEULE1 SOURCE MB234859 25/09/08 21:15:45 12358
  2. SUBROUTINE KEULE1 (IPMODL,IPCHE1,IPROTA,IPRIG,IFLAM,IRET)
  3. *
  4. *_______________________________________________________________________
  5. *
  6. * appelé par KEULER ( opérateur KEULER )
  7. *
  8. * Creation d'une matrice de raideur d'Euler dans le repère tournant
  9. * (éléments BARR, POUTR, TIMO, TUYAU, Massif, COQ3, DST,DKT,COQ6,COQ8)
  10. *
  11. * entrees :
  12. * ========
  13. *
  14. * ipmodl pointeur sur un mmodel
  15. * ipche1 pointeur sur un mchaml de caracteristique
  16. * iprota pointeur sur un point (vecteur vitesse de rotation)
  17. *
  18. * sorties :
  19. * =========
  20. *
  21. * iprig pointeur sur la matrice d'amortissement construite
  22. * iret 1 si ok, 0 sinon
  23. *
  24. * Didier COMBESCURE mars 2003
  25. *
  26. *_______________________________________________________________________
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8(A-H,O-Z)
  29.  
  30. -INC PPARAM
  31. -INC CCOPTIO
  32. -INC CCHAMP
  33. -INC CCGEOME
  34. -INC CCREEL
  35.  
  36. -INC SMRIGID
  37. -INC SMCHAML
  38. -INC SMELEME
  39. -INC SMCOORD
  40. -INC SMINTE
  41. -INC SMMODEL
  42.  
  43. -INC TMPTVAL
  44.  
  45. SEGMENT NOTYPE
  46. CHARACTER*16 TYPE(NBTYPE)
  47. ENDSEGMENT
  48.  
  49. CHARACTER*8 CMATE
  50. CHARACTER*(NCONCH) CONM
  51. PARAMETER (NINF=3)
  52. INTEGER INFOS(NINF)
  53. DIMENSION VROT(3)
  54. LOGICAL lsupfo,lsupdp
  55. C
  56. lsupfo=.false.
  57. lsupdp=.false.
  58. IRET = 0
  59. NHRM=NIFOUR
  60.  
  61. C Activation XCOOR
  62. SEGACT MCOORD
  63. C____________________________________________________________________
  64. C
  65. C LECTURE DU VECTEUR ROTATION
  66. C____________________________________________________________________
  67.  
  68. C
  69. C Cas 3D (idim=3)
  70. IF (IFOUR.EQ.2) THEN
  71. IF (IPROTA.EQ.0) THEN
  72. VROT(1) = 0.D0
  73. VROT(2) = 0.D0
  74. VROT(3) = 1.D0
  75. ELSE
  76. VROT(1) = XCOOR((4*IPROTA) - 3)
  77. VROT(2) = XCOOR((4*IPROTA) - 2)
  78. VROT(3) = XCOOR((4*IPROTA) - 1)
  79. ENDIF
  80. C Cas Axi et 2D Fourier (idim=2)
  81. ELSE IF ((IFOUR.EQ.0) .OR. (IFOUR.EQ.1)) THEN
  82. IF (IPROTA.EQ.0) THEN
  83. VROT(1) = 0.D0
  84. VROT(2) = 1.D0
  85. VROT(3) = 0.D0
  86. ELSE
  87. VROT(1) = 0.D0
  88. VROT(2) = XCOOR((3*IPROTA) - 1)
  89. VROT(3) = 0.D0
  90. ENDIF
  91. C Pas d'autres cas ...
  92. C --> ERREUR "Fonction indisponible pour ce mode de calcul"
  93. ELSE
  94. IPRIG=0
  95. CALL ERREUR(710)
  96. RETURN
  97. ENDIF
  98. *
  99. * verification du lieu support du mchaml de caracteristiques
  100. *
  101. * am 5/1/95 on remplace par un appel a quesuq plus
  102. * loin pour ne tester que sur les composantes ad hoc
  103. *
  104. * call quesup(ipmodl,ipche1,4,0,isup)
  105. * if(isup.gt.1) return
  106. C____________________________________________________________________
  107. C
  108. C ACTIVATION DU MODELE
  109. C____________________________________________________________________
  110. C
  111. MMODEL=IPMODL
  112. SEGACT MMODEL
  113. NSOUS=KMODEL(/1)
  114. C
  115. C____________________________________________________________________
  116. c
  117. C CREATION DE L'OBJET MATRICE D AMORTISSEMENT
  118. C____________________________________________________________________
  119. C
  120. NRIGEL=NSOUS
  121. SEGINI MRIGID
  122. IF (IFLAM.NE.0) THEN
  123. MTYMAT='MASSE'
  124. ELSE
  125. MTYMAT='RIGIDITE'
  126. ENDIF
  127. IFORIG=IFOUR
  128. ICHOLE=0
  129. IMGEO1=0
  130. IMGEO2=0
  131. ISUPEQ=0
  132. DO 499 ISOUS=1,NSOUS
  133. IRIGEL(4,ISOUS)=0
  134. COERIG(ISOUS)=1.D0
  135. 499 CONTINUE
  136. C
  137. C_______________________________________________________________________
  138. C
  139. C DEBUT DE LA BOUCLE SUR LES DIFFERENTES SOUS ZONES
  140. C_______________________________________________________________________
  141. C
  142. DO 500 ISOUS=1,NSOUS
  143. C
  144. C ON RECUPERE LINFORMATION GENERALES
  145. C
  146. IMODEL=KMODEL(ISOUS)
  147. SEGACT IMODEL
  148. IIPDPG = imodel.IPDPGE
  149. IIPDPG = IPTPOI(IIPDPG)
  150. IPMAIL = imodel.IMAMOD
  151. CONM = imodel.CONMOD
  152. C
  153. C TRAITEMENT DU MODELE
  154. C
  155. MELEME=IMAMOD
  156. MELE=NEFMOD
  157. NFOR=FORMOD(/2)
  158. NMAT=MATMOD(/2)
  159. npint = MAX(infmod(1),1)
  160. C
  161. C NATURE DU MATERIAU
  162. C
  163. CALL NOMATE(FORMOD,NFOR,MATMOD,NMAT,CMATE,MATE,INAT)
  164. IF (CMATE.EQ.' ') THEN
  165. CALL ERREUR(251)
  166. SEGDES MMODEL
  167. GOTO 9997
  168. ENDIF
  169. C Quelques initialisations :
  170. MOMATR=0
  171. IVAMAT=0
  172. MOCARA=0
  173. IVACAR=0
  174. C_______________________________________________________________________
  175. C
  176. C INFORMATION SUR L ELEMENT FINI
  177. C_______________________________________________________________________
  178. iplaz=4
  179. if (npint.eq.12345) iplaz=1
  180. MFR =INFELE(13)
  181. IF (IFOUR.NE.1) THEN
  182. NDDL =INFELE(15)
  183. LRE =INFELE(9)
  184. ELSE
  185. LRE =2*INFELE(9)
  186. NDDL =2*INFELE(15)
  187. ENDIF
  188. LW =INFELE(7)
  189. LHOOK =INFELE(10)
  190. IELE=INFELE(14)
  191. MINTE=INFMOD(2+iplaz)
  192. MINTE1=INFMOD(3)
  193. IPMINT=MINTE
  194. IPMIN1=MINTE1
  195. C
  196. C INITIALISATION DE MINTE
  197. C
  198. SEGACT MINTE
  199. NBPGAU=POIGAU(/1)
  200. C
  201. C CREATION DU TABLEAU INFOS
  202. C
  203. CALL IDENT(IPMAIL,CONM,IPCHE1,0,INFOS,IRTD)
  204. IF (IRTD.EQ.0) GOTO 9990
  205. C
  206. C ON RECUPERE LES MELVAL ET LES MELEME
  207. C
  208. MELEME=IPMAIL
  209. SEGACT MELEME
  210. *
  211. * modification du meleme pour le remplissage du segment descripteur
  212. * en deformations planes generalisees
  213. *
  214. NBNN =NUM(/1)
  215. NBELEM=NUM(/2)
  216. IPPORE=0
  217. IF(MFR.EQ.33) IPPORE=NBNN
  218. C
  219. C ---------------------------------------------------------*
  220. C INITIALISATION DU SEGMENT DESCR, SEGMENT DESCRIPTEUR DES *
  221. C DES INCONNUES RELATIVES A LA MATRICE DE RIGIDITE *
  222. C ---------------------------------------------------------*
  223. NLIGRP = LRE
  224. NLIGRD = LRE
  225. SEGINI DESCR
  226. IPDSCR=DESCR
  227. if(lnomid(1).ne.0) then
  228. nomid=lnomid(1)
  229. segact nomid
  230. modepl=nomid
  231. ndepl=lesobl(/2)
  232. ndum=lesfac(/2)
  233. lsupdp=.false.
  234. else
  235. lsupdp=.true.
  236. CALL IDPRIM(IMODEL,MFR,MODEPL,NDEPL,NDUM)
  237. endif
  238. if(lnomid(2).ne.0) then
  239. nomid=lnomid(2)
  240. segact nomid
  241. moforc=nomid
  242. nforc=lesobl(/2)
  243. lsupfo=.false.
  244. else
  245. lsupfo=.true.
  246. CALL IDDUAL(IMODEL,MFR,MOFORC,NFORC,NDUM)
  247. endif
  248. C
  249. IF (NDEPL.EQ.0.OR.NFORC.EQ.0.OR.NDEPL.NE.NFORC) THEN
  250. CALL ERREUR(5)
  251. SEGSUP DESCR
  252. GOTO 9990
  253. ENDIF
  254. C
  255. C REMPLISSAGE DU SEGMENT DESCRIPTEUR
  256. C
  257. IDDL=1
  258. NCOMP=NDEPL
  259. NBNNS=NBNN
  260. IF (MFR.EQ.33) NCOMP=NDEPL-1
  261. C IF (IFOUR.EQ.-3) THEN
  262. C NCOMP=NDEPL-3
  263. C NBNNS=NBNN-1
  264. C ENDIF
  265. IF (MFR.EQ.19.OR.MFR.EQ.21) NBNNS=NBNN/2
  266. NOMID=MODEPL
  267. SEGACT NOMID
  268. NOMID=MOFORC
  269. SEGACT NOMID
  270. DO 1004 INOEUD=1,NBNNS
  271. DO 1005 ICOMP=1,NCOMP
  272. IF (IFOUR.NE.1) THEN
  273. NOMID=MODEPL
  274. LISINC(IDDL)=LESOBL(ICOMP)
  275. NOMID=MOFORC
  276. LISDUA(IDDL)=LESOBL(ICOMP)
  277. NOELEP(IDDL)=INOEUD
  278. NOELED(IDDL)=INOEUD
  279. ELSE
  280. NOMID=MODEPL
  281. LISINC(2*IDDL-1)=LESOBL(ICOMP)
  282. IF (LESOBL(ICOMP).EQ.'UR ') THEN
  283. LISINC(2*IDDL)='IUR '
  284. ELSEIF (LESOBL(ICOMP).EQ.'UZ ') THEN
  285. LISINC(2*IDDL)='IUZ '
  286. ELSEIF (LESOBL(ICOMP).EQ.'UT ') THEN
  287. LISINC(2*IDDL)='IUT '
  288. ELSEIF (LESOBL(ICOMP).EQ.'RT ') THEN
  289. LISINC(2*IDDL)='IRT '
  290. ENDIF
  291. NOMID=MOFORC
  292. LISDUA(2*IDDL-1)=LESOBL(ICOMP)
  293. IF (LESOBL(ICOMP).EQ.'FR ') THEN
  294. LISDUA(2*IDDL)='IFR '
  295. ELSEIF (LESOBL(ICOMP).EQ.'FZ ') THEN
  296. LISDUA(2*IDDL)='IFZ '
  297. ELSEIF (LESOBL(ICOMP).EQ.'FT ') THEN
  298. LISDUA(2*IDDL)='IFT '
  299. ELSEIF (LESOBL(ICOMP).EQ.'MT ') THEN
  300. LISDUA(2*IDDL)='IMT '
  301. ENDIF
  302. NOELEP(2*IDDL-1)=INOEUD
  303. NOELED(2*IDDL-1)=INOEUD
  304. NOELEP(2*IDDL)=INOEUD
  305. NOELED(2*IDDL)=INOEUD
  306. ENDIF
  307. IDDL=IDDL+1
  308. 1005 CONTINUE
  309. 1004 CONTINUE
  310. *
  311. NOMID=MODEPL
  312. SEGDES NOMID
  313. NOMID=MOFORC
  314. SEGDES NOMID
  315. SEGDES DESCR
  316. C
  317. C ------------------------------------------------------------*
  318. C INITIALISATION DU SEGMENT xMATRI *
  319. C CONTENANT LES MATRICES DE RIGIDITE ELEMENTAIRES *
  320. C ------------------------------------------------------------*
  321. C NBELEM: NB D'ELEMENTS DANS LA SOUS ZONE
  322. NLIGRP=LRE
  323. NLIGRD=LRE
  324. C LVAL=(LRE*(LRE+1))/2
  325. C
  326. NELRIG=NBELEM
  327. SEGINI xMATRI
  328. IPMATR=xMATRI
  329. C
  330. C------------------------------------------------------*
  331. C
  332. C TRAITEMENT DU CHAPEAU DES RIGIDITES, SEGMENT MRIGID *
  333. C------------------------------------------------------*
  334. C
  335. IRIGEL(1,ISOUS)=IPMAIL
  336. IRIGEL(2,ISOUS)=0
  337. IRIGEL(3,ISOUS)=IPDSCR
  338. IRIGEL(4,ISOUS)=xMATRI
  339. IRIGEL(5,ISOUS)=NHRM
  340. C
  341. C MATRICE ANTI-SYMETRIQUE
  342. C
  343. IRIGEL(7,ISOUS)=1
  344. xmatri.symre=1
  345. C_______________________________________________________________________
  346. C
  347. C TRAITEMENT DES CHAMP MATERIAUX
  348. C_______________________________________________________________________
  349. C
  350. NOMID=0
  351. NOTYPE=0
  352. NBROBL=0
  353. NBRFAC=0
  354. LHOTRA=0
  355. *
  356. * rho dans les cas poutre,tuyau, massif, coque
  357. *
  358. IF (MFR.EQ.1.OR.MFR.EQ.27.OR.MFR.EQ.7.OR.MFR.EQ.13.OR.
  359. . MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
  360. *
  361. IF(CMATE.NE.'SECTION') THEN
  362. NBROBL=1
  363. C NBRFAC=0
  364. SEGINI NOMID
  365. LESOBL(1)='RHO '
  366. NBTYPE=1
  367. SEGINI NOTYPE
  368. TYPE(1)='REAL*8'
  369. ELSE
  370. LHOTRA=LHOOK
  371. NBROBL=2
  372. C NBRFAC=0
  373. SEGINI NOMID
  374. LESOBL(1)='MODS'
  375. LESOBL(2)='MATS'
  376. NBTYPE=2
  377. SEGINI NOTYPE
  378. TYPE(1)='POINTEURMMODEL'
  379. TYPE(2)='POINTEURMCHAML'
  380. ENDIF
  381. MOMATR=NOMID
  382. MOTYPE=NOTYPE
  383. ENDIF
  384. C
  385. NMATR=NBROBL
  386. NMATF=NBRFAC
  387. NMATT=NMATR+NMATF
  388. C
  389. IF (MOMATR.NE.0) THEN
  390. *
  391. * verification du support des composantes recherchees
  392. *
  393. CALL QUESUQ(IMODEL,IPCHE1,4,0,MOMATR,IPLAZ,ISUP,IRET1)
  394. IF(ISUP.GT.1)THEN
  395. SEGSUP NOTYPE
  396. GO TO 9990
  397. ENDIF
  398. *
  399. CALL KOMCHA(IPCHE1,IPMAIL,CONM,MOMATR,MOTYPE,1,INFOS,3,IVAMAT)
  400. SEGSUP NOTYPE
  401. IF (IERR.NE.0) GOTO 9996
  402. IF(ISUP.EQ.1)THEN
  403. CALL VALCHE(IVAMAT,NMATT,IPMINT,IPPORE,MOMATR,MELE)
  404. IF(IERR.NE.0)THEN
  405. ISUP=0
  406. GOTO 9990
  407. ENDIF
  408. ENDIF
  409. ENDIF
  410. C
  411. C____________________________________________________________________
  412. C
  413. C TRAITEMENT DES CHAMPS DE CARACTERISTIQUES
  414. C____________________________________________________________________
  415. C
  416. NBROBL=0
  417. NBRFAC=0
  418. NOMID=0
  419. NOTYPE=0
  420. IVECT=0
  421. *
  422. * caracteristiques pour les poutres
  423. *
  424. IF (MFR.EQ.7 ) THEN
  425. IF (CMATE.EQ.'SECTION') THEN
  426. NBROBL=0
  427. NBRFAC=4
  428. SEGINI NOMID
  429. LESFAC(1)='OMEG'
  430. LESFAC(2)='VX'
  431. LESFAC(3)='VY'
  432. LESFAC(4)='VZ'
  433. IVECT=1
  434. *
  435. NBTYPE=4
  436. SEGINI NOTYPE
  437. MOTYPE=NOTYPE
  438. TYPE(1)='REAL*8'
  439. TYPE(2)='REAL*8'
  440. TYPE(3)='REAL*8'
  441. TYPE(4)='REAL*8'
  442. *
  443. ELSE
  444. NBROBL=4
  445. NBRFAC=6
  446. SEGINI NOMID
  447. LESOBL(1)='TORS'
  448. LESOBL(2)='INRY'
  449. LESOBL(3)='INRZ'
  450. LESOBL(4)='SECT'
  451. LESFAC(1)='SECY'
  452. LESFAC(2)='SECZ'
  453. LESFAC(3)='OMEG'
  454. LESFAC(4)='VX'
  455. LESFAC(5)='VY'
  456. LESFAC(6)='VZ'
  457. IVECT=1
  458. *
  459. NBTYPE=10
  460. SEGINI NOTYPE
  461. MOTYPE=NOTYPE
  462. TYPE(1)='REAL*8'
  463. TYPE(2)='REAL*8'
  464. TYPE(3)='REAL*8'
  465. TYPE(4)='REAL*8'
  466. TYPE(5)='REAL*8'
  467. TYPE(6)='REAL*8'
  468. TYPE(7)='REAL*8'
  469. TYPE(8)='REAL*8'
  470. TYPE(9)='REAL*8'
  471. TYPE(10)='REAL*8'
  472. ENDIF
  473. *
  474. * caracteristiques pour les tuyaux
  475. *
  476. ELSE IF (MFR.EQ.13) THEN
  477. NBROBL=2
  478. NBRFAC=5
  479. SEGINI NOMID
  480. LESOBL(1)='EPAI'
  481. LESOBL(2)='RAYO'
  482. LESFAC(1)='RACO'
  483. LESFAC(2)='OMEG'
  484. LESFAC(3)='VX'
  485. LESFAC(4)='VY'
  486. LESFAC(5)='VZ'
  487. IVECT=1
  488. *
  489. NBTYPE=7
  490. SEGINI NOTYPE
  491. MOTYPE=NOTYPE
  492. TYPE(1)='REAL*8'
  493. TYPE(2)='REAL*8'
  494. TYPE(3)='REAL*8'
  495. TYPE(4)='REAL*8'
  496. TYPE(5)='REAL*8'
  497. TYPE(6)='REAL*8'
  498. TYPE(7)='REAL*8'
  499. *
  500. * caracteristiques pour les barres
  501. *
  502. ELSE IF (MFR.EQ.27) THEN
  503. NBRFAC=0
  504. NBROBL=1
  505. SEGINI NOMID
  506. LESOBL(1)='SECT'
  507. *
  508. NBTYPE=1
  509. SEGINI NOTYPE
  510. MOTYPE=NOTYPE
  511. TYPE(1)='REAL*8'
  512. *
  513. * epaisseur et excentrement dans le cas des coques
  514. *
  515. ELSEIF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
  516. NBROBL=1
  517. NBRFAC=1
  518. SEGINI NOMID
  519. LESOBL(1)='EPAI'
  520. LESFAC(1)='EXCE'
  521. *
  522. NBTYPE=1
  523. SEGINI NOTYPE
  524. MOTYPE=NOTYPE
  525. TYPE(1)='REAL*8'
  526. *
  527. ENDIF
  528. *
  529. NCARA=NBROBL
  530. NCARF=NBRFAC
  531. NCARR=NCARA+NCARF
  532. MOCARA=NOMID
  533. *
  534. IF (MOCARA.NE.0) THEN
  535. *
  536. * verification du support des composantes recherchees
  537. *
  538. CALL QUESUQ(IMODEL,IPCHE1,4,0,MOCARA,IPLAZ,ISUP,IRET2)
  539. IF(ISUP.GT.1)THEN
  540. SEGSUP NOTYPE
  541. GO TO 9990
  542. ENDIF
  543. *
  544. CALL KOMCHA(IPCHE1,IPMAIL,CONM,MOCARA,MOTYPE,1,INFOS,3,IVACAR)
  545. SEGSUP NOTYPE
  546. IF (IERR.NE.0) GOTO 9990
  547. IF(ISUP.EQ.1)THEN
  548. CALL VALCHE(IVACAR,NCARR,IPMINT,IPPORE,MOCARA,MELE)
  549. IF(IERR.NE.0)THEN
  550. ISUP=0
  551. GOTO 9990
  552. ENDIF
  553. ENDIF
  554. ENDIF
  555.  
  556. C
  557. C_______________________________________________________________________
  558. C
  559. C NUMERO DES ETIQUETTES :
  560. C ETIQUETTES DE 1 A 98 POUR TRAITEMENT SPECIFIQUE A L ELEMENT
  561. C LES ELEMENTS SONT GROUPES COMME SUIT :
  562. C - MASSIF,LIQUIDE 'SURFACE LIBRE' ----------------------> CORIO3
  563. C - COQ3/POUTRE,DKT,COQ4,COQ8,COQ2,DST ------------------> CORIO2
  564. C ET POUTRE DE TIMOSCHENKO
  565. C_______________________________________________________________________
  566. * CABL SEG2 SEG3 TRI3 TRI4 TRI6 TRI7 QUA4 QUA5 QUA8 QUA9
  567. GOTO ( 99, 99, 99, 11, 99, 11, 99, 11, 99, 11, 99
  568. * RAC2 RAC3 CUB8 CU20 PRI6 PR15 LIA3 LIA4 LIA6 LIA8 MULT
  569. & , 99, 99, 11, 11, 11, 11, 99, 99, 99, 99, 99
  570. * TET4 TE10 PYR5 PY13 COQ3 DKT POUT LISP FAC3 FAC4 FAC6
  571. & , 11, 11, 11, 11, 21, 21, 21, 99, 99, 99, 99
  572. * FAC8 LTR3 LQU4 LCU8 LPR6 LTE4 LPY5 COQ8 TUYA TUFI COQ2
  573. & , 99, 99, 99, 99, 99, 99, 99, 21, 21, 99, 21
  574. * POI1 BARR RACO LSU2 COQ4 LISM COF3 RES2 LSU3 LSU4 LICO
  575. & , 99, 21, 99, 99, 21, 99, 99, 99, 99, 99, 99
  576. * COQ6 CVS2 CVS3 CVT3 CVT6 CVQ4 CVQ8 THP5 TH13 THP6 TH15
  577. & , 21, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  578. * THC8 TH20 ICT3 ICQ4 ICT6 ICQ8 ICC8 ICT4 ICP6 IC20 IC10
  579. & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  580. * IC15 TRIP QUAP CUBP TETP PRIP TIMO JOI2 JOI3 JOT3 JOI4
  581. & , 99, 99, 99, 99, 99, 99, 21, 99, 99, 99, 99
  582. * JOI6 JOI8 LISC TRIH DST LIC4 CERC TUYO LSE2 LITU HYT3
  583. & , 99, 99, 99, 99, 21, 99, 99, 99, 99, 99, 99
  584. * HYQ4 HYT4 HYP6 HYC8 TRIS QUAS POIS FOR3 JOP3 JOP6 JOP8
  585. & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  586. * POL3 POL4 POL5 POL6 POL7 POL8 POL9 PO10 PO11 PO12 PO13
  587. & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  588. * PO14 BAR3 BAEX LIA2 QUAH CUBH ROT3 SEF2 TRF3 QUF4 CUF8
  589. & , 99, 21, 99, 99, 99, 99, 99, 99, 99, 99, 99
  590. * PRF6 TEF4 PYF5 MSE3 MTR6 MQU9 MC27 MP18 MT10 MP14 SEF3
  591. & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  592. * TRF7 QUF9 CF27 PF21 TF15 PF19 SEG6 TR21 QU36 C216 P126
  593. & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  594. * TE56 PY91 TRH6
  595. & , 99, 99, 99),MELE
  596. C
  597. 99 CONTINUE
  598. SEGSUP xMATRI
  599. IRIGEL(4,ISOUS)=0
  600. MOTERR(1:4)=NOMTP(MELE)
  601. MOTERR(5:12)='KEULE1'
  602. CALL ERREUR(86)
  603. GOTO 9990
  604. C_______________________________________________________________________
  605. C
  606. C MASSIF
  607. C_______________________________________________________________________
  608. C
  609. 11 CONTINUE
  610. CALL CORIO3 (IPMAIL,NDDL,LRE,NBPGAU,IPMINT,MELE,MFR,IVAMAT,
  611. &IVACAR,NMATT,IPMATR,VROT,0,IIPDPG)
  612. GOTO 510
  613. C_______________________________________________________________________
  614. C
  615. C POUTRE, POUTRE DE TIMOSCHENKO, COQUE, BARRE
  616. C_______________________________________________________________________
  617. C
  618. 21 CONTINUE
  619. CALL CORIO2(IPMAIL,LRE,LW,MELE,IVAMAT,NMATT,IVACAR,NCARR,
  620. &IVECT,ISOUS,NBPGAU,IPMINT,IPMIN1,NDDL,MATE,
  621. &CMATE,LHOTRA,IPMATR,VROT,0,IIPDPG)
  622. GOTO 510
  623. C_______________________________________________________________________
  624. C
  625. C DESACTIVATION DES SEGMENTS PROPRES A LA ZONE GEOMETRIQUE IA
  626. C_______________________________________________________________________
  627. C
  628. 510 CONTINUE
  629. SEGDES MINTE
  630. SEGDES MELEME
  631. SEGDES IMODEL
  632. C
  633. IF (ISUP.EQ.1) THEN
  634. CALL DTMVAL(IVAMAT,3)
  635. CALL DTMVAL(IVACAR,3)
  636. ELSE
  637. CALL DTMVAL(IVAMAT,1)
  638. CALL DTMVAL(IVACAR,1)
  639. ENDIF
  640. C
  641. NOMID=MOCARA
  642. IF (MOCARA.NE.0) SEGSUP NOMID
  643. NOMID=MOMATR
  644. IF (MOMATR.NE.0) SEGSUP NOMID
  645. NOMID=MOFORC
  646. if(lsupfo)SEGSUP NOMID
  647. NOMID=MODEPL
  648. if(lsupdp)SEGSUP NOMID
  649. C
  650. C ERREUR DANS LES S-P MASSE2 ,MASSE3 ,MASSE4
  651. C
  652. IF (IERR.NE.0) GOTO 9997
  653. C
  654. 500 CONTINUE
  655. C
  656. C FIN NORMALE
  657. IRET = 1
  658. SEGDES MRIGID
  659. C WRITE(*,*) 'Je desactive MRIGID'
  660. IPRIG = MRIGID
  661. GOTO 666
  662. C
  663. C ERREUR DANS UNE SOUS ZONE, DESACTIVATION ET RETOUR
  664. C
  665. 9990 CONTINUE
  666. IRET=0
  667. C
  668. IF (ISUP.EQ.1) THEN
  669. CALL DTMVAL(IVAMAT,3)
  670. CALL DTMVAL(IVACAR,3)
  671. ELSE
  672. CALL DTMVAL(IVAMAT,1)
  673. CALL DTMVAL(IVACAR,1)
  674. ENDIF
  675.  
  676. NOMID=MOMATR
  677. IF (MOMATR.NE.0) SEGSUP NOMID
  678. NOMID=MOCARA
  679. IF (MOCARA.NE.0) SEGSUP NOMID
  680. NOMID=MOFORC
  681. if(lsupfo)SEGSUP NOMID
  682. NOMID=MODEPL
  683. if(lsupdp)SEGSUP NOMID
  684. C
  685. 9996 CONTINUE
  686. SEGDES MELEME
  687. SEGDES MINTE
  688. SEGDES IMODEL
  689. C
  690. 9997 CONTINUE
  691. SEGSUP MRIGID
  692. IPRIG = 0
  693. C
  694. C Fin commune
  695. 666 CONTINUE
  696. SEGDES MMODEL
  697. C Desactivation XCOOR
  698. SEGDES MCOORD
  699.  
  700. RETURN
  701. END
  702.  
  703.  
  704.  
  705.  

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