Télécharger keule1.eso

Retour à la liste

Numérotation des lignes :

keule1
  1. C KEULE1 SOURCE PV090527 26/04/30 21:15:44 12529
  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. RIGREL=0
  328. SEGINI xMATRI
  329. IPMATR=xMATRI
  330. C
  331. C------------------------------------------------------*
  332. C
  333. C TRAITEMENT DU CHAPEAU DES RIGIDITES, SEGMENT MRIGID *
  334. C------------------------------------------------------*
  335. C
  336. IRIGEL(1,ISOUS)=IPMAIL
  337. IRIGEL(2,ISOUS)=0
  338. IRIGEL(3,ISOUS)=IPDSCR
  339. IRIGEL(4,ISOUS)=xMATRI
  340. IRIGEL(5,ISOUS)=NHRM
  341. C
  342. C MATRICE ANTI-SYMETRIQUE
  343. C
  344. IRIGEL(7,ISOUS)=1
  345. xmatri.symre=1
  346. C_______________________________________________________________________
  347. C
  348. C TRAITEMENT DES CHAMP MATERIAUX
  349. C_______________________________________________________________________
  350. C
  351. NOMID=0
  352. NOTYPE=0
  353. NBROBL=0
  354. NBRFAC=0
  355. LHOTRA=0
  356. *
  357. * rho dans les cas poutre,tuyau, massif, coque
  358. *
  359. IF (MFR.EQ.1.OR.MFR.EQ.27.OR.MFR.EQ.7.OR.MFR.EQ.13.OR.
  360. . MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
  361. *
  362. IF(CMATE.NE.'SECTION') THEN
  363. NBROBL=1
  364. C NBRFAC=0
  365. SEGINI NOMID
  366. LESOBL(1)='RHO '
  367. NBTYPE=1
  368. SEGINI NOTYPE
  369. TYPE(1)='REAL*8'
  370. ELSE
  371. LHOTRA=LHOOK
  372. NBROBL=2
  373. C NBRFAC=0
  374. SEGINI NOMID
  375. LESOBL(1)='MODS'
  376. LESOBL(2)='MATS'
  377. NBTYPE=2
  378. SEGINI NOTYPE
  379. TYPE(1)='POINTEURMMODEL'
  380. TYPE(2)='POINTEURMCHAML'
  381. ENDIF
  382. MOMATR=NOMID
  383. MOTYPE=NOTYPE
  384. ENDIF
  385. C
  386. NMATR=NBROBL
  387. NMATF=NBRFAC
  388. NMATT=NMATR+NMATF
  389. C
  390. IF (MOMATR.NE.0) THEN
  391. *
  392. * verification du support des composantes recherchees
  393. *
  394. CALL QUESUQ(IMODEL,IPCHE1,4,0,MOMATR,IPLAZ,ISUP,IRET1)
  395. IF(ISUP.GT.1)THEN
  396. SEGSUP NOTYPE
  397. GO TO 9990
  398. ENDIF
  399. *
  400. CALL KOMCHA(IPCHE1,IPMAIL,CONM,MOMATR,MOTYPE,1,INFOS,3,IVAMAT)
  401. SEGSUP NOTYPE
  402. IF (IERR.NE.0) GOTO 9996
  403. IF(ISUP.EQ.1)THEN
  404. CALL VALCHE(IVAMAT,NMATT,IPMINT,IPPORE,MOMATR,MELE)
  405. IF(IERR.NE.0)THEN
  406. ISUP=0
  407. GOTO 9990
  408. ENDIF
  409. ENDIF
  410. ENDIF
  411. C
  412. C____________________________________________________________________
  413. C
  414. C TRAITEMENT DES CHAMPS DE CARACTERISTIQUES
  415. C____________________________________________________________________
  416. C
  417. NBROBL=0
  418. NBRFAC=0
  419. NOMID=0
  420. NOTYPE=0
  421. IVECT=0
  422. *
  423. * caracteristiques pour les poutres
  424. *
  425. IF (MFR.EQ.7 ) THEN
  426. IF (CMATE.EQ.'SECTION') THEN
  427. NBROBL=0
  428. NBRFAC=4
  429. SEGINI NOMID
  430. LESFAC(1)='OMEG'
  431. LESFAC(2)='VX'
  432. LESFAC(3)='VY'
  433. LESFAC(4)='VZ'
  434. IVECT=1
  435. *
  436. NBTYPE=4
  437. SEGINI NOTYPE
  438. MOTYPE=NOTYPE
  439. TYPE(1)='REAL*8'
  440. TYPE(2)='REAL*8'
  441. TYPE(3)='REAL*8'
  442. TYPE(4)='REAL*8'
  443. *
  444. ELSE
  445. NBROBL=4
  446. NBRFAC=6
  447. SEGINI NOMID
  448. LESOBL(1)='TORS'
  449. LESOBL(2)='INRY'
  450. LESOBL(3)='INRZ'
  451. LESOBL(4)='SECT'
  452. LESFAC(1)='SECY'
  453. LESFAC(2)='SECZ'
  454. LESFAC(3)='OMEG'
  455. LESFAC(4)='VX'
  456. LESFAC(5)='VY'
  457. LESFAC(6)='VZ'
  458. IVECT=1
  459. *
  460. NBTYPE=10
  461. SEGINI NOTYPE
  462. MOTYPE=NOTYPE
  463. TYPE(1)='REAL*8'
  464. TYPE(2)='REAL*8'
  465. TYPE(3)='REAL*8'
  466. TYPE(4)='REAL*8'
  467. TYPE(5)='REAL*8'
  468. TYPE(6)='REAL*8'
  469. TYPE(7)='REAL*8'
  470. TYPE(8)='REAL*8'
  471. TYPE(9)='REAL*8'
  472. TYPE(10)='REAL*8'
  473. ENDIF
  474. *
  475. * caracteristiques pour les tuyaux
  476. *
  477. ELSE IF (MFR.EQ.13) THEN
  478. NBROBL=2
  479. NBRFAC=5
  480. SEGINI NOMID
  481. LESOBL(1)='EPAI'
  482. LESOBL(2)='RAYO'
  483. LESFAC(1)='RACO'
  484. LESFAC(2)='OMEG'
  485. LESFAC(3)='VX'
  486. LESFAC(4)='VY'
  487. LESFAC(5)='VZ'
  488. IVECT=1
  489. *
  490. NBTYPE=7
  491. SEGINI NOTYPE
  492. MOTYPE=NOTYPE
  493. TYPE(1)='REAL*8'
  494. TYPE(2)='REAL*8'
  495. TYPE(3)='REAL*8'
  496. TYPE(4)='REAL*8'
  497. TYPE(5)='REAL*8'
  498. TYPE(6)='REAL*8'
  499. TYPE(7)='REAL*8'
  500. *
  501. * caracteristiques pour les barres
  502. *
  503. ELSE IF (MFR.EQ.27) THEN
  504. NBRFAC=0
  505. NBROBL=1
  506. SEGINI NOMID
  507. LESOBL(1)='SECT'
  508. *
  509. NBTYPE=1
  510. SEGINI NOTYPE
  511. MOTYPE=NOTYPE
  512. TYPE(1)='REAL*8'
  513. *
  514. * epaisseur et excentrement dans le cas des coques
  515. *
  516. ELSEIF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
  517. NBROBL=1
  518. NBRFAC=1
  519. SEGINI NOMID
  520. LESOBL(1)='EPAI'
  521. LESFAC(1)='EXCE'
  522. *
  523. NBTYPE=1
  524. SEGINI NOTYPE
  525. MOTYPE=NOTYPE
  526. TYPE(1)='REAL*8'
  527. *
  528. ENDIF
  529. *
  530. NCARA=NBROBL
  531. NCARF=NBRFAC
  532. NCARR=NCARA+NCARF
  533. MOCARA=NOMID
  534. *
  535. IF (MOCARA.NE.0) THEN
  536. *
  537. * verification du support des composantes recherchees
  538. *
  539. CALL QUESUQ(IMODEL,IPCHE1,4,0,MOCARA,IPLAZ,ISUP,IRET2)
  540. IF(ISUP.GT.1)THEN
  541. SEGSUP NOTYPE
  542. GO TO 9990
  543. ENDIF
  544. *
  545. CALL KOMCHA(IPCHE1,IPMAIL,CONM,MOCARA,MOTYPE,1,INFOS,3,IVACAR)
  546. SEGSUP NOTYPE
  547. IF (IERR.NE.0) GOTO 9990
  548. IF(ISUP.EQ.1)THEN
  549. CALL VALCHE(IVACAR,NCARR,IPMINT,IPPORE,MOCARA,MELE)
  550. IF(IERR.NE.0)THEN
  551. ISUP=0
  552. GOTO 9990
  553. ENDIF
  554. ENDIF
  555. ENDIF
  556.  
  557. C
  558. C_______________________________________________________________________
  559. C
  560. C NUMERO DES ETIQUETTES :
  561. C ETIQUETTES DE 1 A 98 POUR TRAITEMENT SPECIFIQUE A L ELEMENT
  562. C LES ELEMENTS SONT GROUPES COMME SUIT :
  563. C - MASSIF,LIQUIDE 'SURFACE LIBRE' ----------------------> CORIO3
  564. C - COQ3/POUTRE,DKT,COQ4,COQ8,COQ2,DST ------------------> CORIO2
  565. C ET POUTRE DE TIMOSCHENKO
  566. C_______________________________________________________________________
  567. * CABL SEG2 SEG3 TRI3 TRI4 TRI6 TRI7 QUA4 QUA5 QUA8 QUA9
  568. GOTO ( 99, 99, 99, 11, 99, 11, 99, 11, 99, 11, 99
  569. * RAC2 RAC3 CUB8 CU20 PRI6 PR15 LIA3 LIA4 LIA6 LIA8 MULT
  570. & , 99, 99, 11, 11, 11, 11, 99, 99, 99, 99, 99
  571. * TET4 TE10 PYR5 PY13 COQ3 DKT POUT LISP FAC3 FAC4 FAC6
  572. & , 11, 11, 11, 11, 21, 21, 21, 99, 99, 99, 99
  573. * FAC8 LTR3 LQU4 LCU8 LPR6 LTE4 LPY5 COQ8 TUYA TUFI COQ2
  574. & , 99, 99, 99, 99, 99, 99, 99, 21, 21, 99, 21
  575. * POI1 BARR RACO LSU2 COQ4 LISM COF3 RES2 LSU3 LSU4 LICO
  576. & , 99, 21, 99, 99, 21, 99, 99, 99, 99, 99, 99
  577. * COQ6 CVS2 CVS3 CVT3 CVT6 CVQ4 CVQ8 THP5 TH13 THP6 TH15
  578. & , 21, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  579. * THC8 TH20 ICT3 ICQ4 ICT6 ICQ8 ICC8 ICT4 ICP6 IC20 IC10
  580. & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  581. * IC15 TRIP QUAP CUBP TETP PRIP TIMO JOI2 JOI3 JOT3 JOI4
  582. & , 99, 99, 99, 99, 99, 99, 21, 99, 99, 99, 99
  583. * JOI6 JOI8 LISC TRIH DST LIC4 CERC TUYO LSE2 LITU HYT3
  584. & , 99, 99, 99, 99, 21, 99, 99, 99, 99, 99, 99
  585. * HYQ4 HYT4 HYP6 HYC8 TRIS QUAS POIS FOR3 JOP3 JOP6 JOP8
  586. & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  587. * POL3 POL4 POL5 POL6 POL7 POL8 POL9 PO10 PO11 PO12 PO13
  588. & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  589. * PO14 BAR3 BAEX LIA2 QUAH CUBH ROT3 SEF2 TRF3 QUF4 CUF8
  590. & , 99, 21, 99, 99, 99, 99, 99, 99, 99, 99, 99
  591. * PRF6 TEF4 PYF5 MSE3 MTR6 MQU9 MC27 MP18 MT10 MP14 SEF3
  592. & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  593. * TRF7 QUF9 CF27 PF21 TF15 PF19 SEG6 TR21 QU36 C216 P126
  594. & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
  595. * TE56 PY91 TRH6
  596. & , 99, 99, 99),MELE
  597. C
  598. 99 CONTINUE
  599. SEGSUP xMATRI
  600. IRIGEL(4,ISOUS)=0
  601. MOTERR(1:4)=NOMTP(MELE)
  602. MOTERR(5:12)='KEULE1'
  603. CALL ERREUR(86)
  604. GOTO 9990
  605. C_______________________________________________________________________
  606. C
  607. C MASSIF
  608. C_______________________________________________________________________
  609. C
  610. 11 CONTINUE
  611. CALL CORIO3 (IPMAIL,NDDL,LRE,NBPGAU,IPMINT,MELE,MFR,IVAMAT,
  612. &IVACAR,NMATT,IPMATR,VROT,0,IIPDPG)
  613. GOTO 510
  614. C_______________________________________________________________________
  615. C
  616. C POUTRE, POUTRE DE TIMOSCHENKO, COQUE, BARRE
  617. C_______________________________________________________________________
  618. C
  619. 21 CONTINUE
  620. CALL CORIO2(IPMAIL,LRE,LW,MELE,IVAMAT,NMATT,IVACAR,NCARR,
  621. &IVECT,ISOUS,NBPGAU,IPMINT,IPMIN1,NDDL,MATE,
  622. &CMATE,LHOTRA,IPMATR,VROT,0,IIPDPG)
  623. GOTO 510
  624. C_______________________________________________________________________
  625. C
  626. C DESACTIVATION DES SEGMENTS PROPRES A LA ZONE GEOMETRIQUE IA
  627. C_______________________________________________________________________
  628. C
  629. 510 CONTINUE
  630. SEGDES MINTE
  631. SEGDES MELEME
  632. SEGDES IMODEL
  633. C
  634. IF (ISUP.EQ.1) THEN
  635. CALL DTMVAL(IVAMAT,3)
  636. CALL DTMVAL(IVACAR,3)
  637. ELSE
  638. CALL DTMVAL(IVAMAT,1)
  639. CALL DTMVAL(IVACAR,1)
  640. ENDIF
  641. C
  642. NOMID=MOCARA
  643. IF (MOCARA.NE.0) SEGSUP NOMID
  644. NOMID=MOMATR
  645. IF (MOMATR.NE.0) SEGSUP NOMID
  646. NOMID=MOFORC
  647. if(lsupfo)SEGSUP NOMID
  648. NOMID=MODEPL
  649. if(lsupdp)SEGSUP NOMID
  650. C
  651. C ERREUR DANS LES S-P MASSE2 ,MASSE3 ,MASSE4
  652. C
  653. IF (IERR.NE.0) GOTO 9997
  654. C
  655. 500 CONTINUE
  656. C
  657. C FIN NORMALE
  658. IRET = 1
  659. SEGDES MRIGID
  660. C WRITE(*,*) 'Je desactive MRIGID'
  661. IPRIG = MRIGID
  662. GOTO 666
  663. C
  664. C ERREUR DANS UNE SOUS ZONE, DESACTIVATION ET RETOUR
  665. C
  666. 9990 CONTINUE
  667. IRET=0
  668. C
  669. IF (ISUP.EQ.1) THEN
  670. CALL DTMVAL(IVAMAT,3)
  671. CALL DTMVAL(IVACAR,3)
  672. ELSE
  673. CALL DTMVAL(IVAMAT,1)
  674. CALL DTMVAL(IVACAR,1)
  675. ENDIF
  676.  
  677. NOMID=MOMATR
  678. IF (MOMATR.NE.0) SEGSUP NOMID
  679. NOMID=MOCARA
  680. IF (MOCARA.NE.0) SEGSUP NOMID
  681. NOMID=MOFORC
  682. if(lsupfo)SEGSUP NOMID
  683. NOMID=MODEPL
  684. if(lsupdp)SEGSUP NOMID
  685. C
  686. 9996 CONTINUE
  687. SEGDES MELEME
  688. SEGDES MINTE
  689. SEGDES IMODEL
  690. C
  691. 9997 CONTINUE
  692. SEGSUP MRIGID
  693. IPRIG = 0
  694. C
  695. C Fin commune
  696. 666 CONTINUE
  697. SEGDES MMODEL
  698. C Desactivation XCOOR
  699. SEGDES MCOORD
  700.  
  701. RETURN
  702. END
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  

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