Télécharger ella00.eso

Retour à la liste

Numérotation des lignes :

ella00
  1. C ELLA00 SOURCE CB215821 25/04/24 21:15:07 12248
  2. SUBROUTINE ELLA00
  3. C
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8 (A-H,O-Y)
  6. IMPLICIT COMPLEX*16 (Z)
  7. C
  8. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  9. C A 11 27 04 4 90
  10. C OPERATEUR ELFE LAPLACE ACOU
  11. C
  12. C CALCUL DES FONCTIONS DE TRANSFERT D'UN RESEAU DE TUYAUTERIES
  13. C CONTENANT UN FLUIDE SANS ECOULEMENT PAR LA METHODE DITE "INTEGRALE".
  14. C LA SYNTAXE EST LA SUIVANTE :
  15. C
  16. C EVOL = ELFE LAPLACE POUTRE ACOU GEO1 (GEO2) CHP1 CHAM1 LFR S0 PT
  17. C COMP IMETH (IMP)
  18. C
  19. C
  20. C ELFE .............. MOT DESIGNANT L'OPERATEUR
  21. C
  22. C LAPLACE, ACOU ..... MOTS CLES POUR L'OPTION DE ELFE( CALCUL ACOUSTO-
  23. C MECANIQUE)
  24. C
  25. C GEO1 .............. OBJET TYPE MAILLAGE DONNANT LE RESEAU DE POUTRES
  26. C
  27. C GEO2 (FACULTATIF).. OBJET TYPE MAILLAGE POUR L'OPTION DONNANT LE
  28. C CHPOINT CONTENANT DEFORMATIONS ET PRESSIONS
  29. C
  30. C CHP1 .............. OBJET TYPE CHPOINT DONNANT LES COND. AUX LIMITES
  31. C
  32. C CHAM1 ............. OBJET TYPE NOUVEAU CHAMELEM POUR LES CARACT.
  33. C DU MATERIAU ET DU FLUIDE
  34. C
  35. C LFR ............... OBJET TYPE LISTREEL DEFINISSANT LES FREQUENCES
  36. C
  37. C S0 ............... OBJET TYPE REEL POUR LA TRANSFORMEE DE LAPLACE
  38. C
  39. C PT ................ OBJET TYPE POINT OU L'ON DESIRE LE DEPLACEMENT
  40. C
  41. C COMP .............. OBJET TYPE CHAR*2 DESIGNANT 'UX','UY' OU 'UZ'
  42. C 'RX','RY' OU 'RZ'
  43. C
  44. C IMETH ............. ENTIER : CHOIX DE LA METHODE DE RESOLUTION
  45. C
  46. C IMP (FALCULTATIF).. ENTIER : <>0 POUR IMPRESSION INTERMEDIAIRE
  47. C
  48. C
  49. C PARAMETRES :
  50. C ('NEANT')
  51. C
  52. C SORTIES :
  53. C
  54. C EVOLUTION --------> SI ON DESIRE LA FONCTION DE TRANSFERT
  55. C
  56. C CHAMPOINT --------> SI ON DESIRE LES VALEURS -DES DEPLACEMENTS
  57. C -DES PRESSIONS
  58. C EN MODULE ET EN PHASE AUX DIFFERENTS NOEUDS.
  59. C
  60. C
  61. C *****************************************************
  62. C * *
  63. C * Organigramme d'appel des diff{rentes SUBROUTINE *
  64. C * *
  65. C *****************************************************
  66. C
  67. C
  68. C ELLA00 (INTERFACE ESOPE <--> FORTRAN)
  69. C |
  70. C |
  71. C |-----> ELLA09 (CONVERSION DE UX , UY ... EN 1 , 2 , ...
  72. C |
  73. C |-----> ELLA08 (CONVERSION DE YOUN , NU ... EN 1 , 2 , ...)
  74. C |
  75. C |
  76. C |-----> ELLA11 (PROGRAMME PRINCIPAL FORTRAN)
  77. C |
  78. C |
  79. C |-----> ELLA12 (REMPLISSAGE DE LA 2}ME PARTIE DE ZA1
  80. C | qui ne d{pend pas de w)
  81. C |
  82. C |-----> ELLA21 (DETERMINATION, POUR CHAQUE POUTRE ET
  83. C | chaque frequence, de la matrice ZC1)
  84. C |
  85. C |
  86. C |-----> ELLA31 (VALEUR DES FCTS DE GREEN)
  87. C |
  88. C |<--------|
  89. C |
  90. C |
  91. C |-----> ELLA51 (RESOLUTION DU SYSTEME LIN{AIRE)
  92. C | (ELLA53)
  93. C |
  94. C |
  95. C |<--------|
  96. C |
  97. C |-----> ELLA23 (D{TERMINATION DES D{PLACEMENTS AUX NOEUDS DU
  98. C | sous-maillage dans le cas du calcul de la
  99. C | d{form{e )
  100. C |
  101. C | -------------
  102. C | | |
  103. C |--------------->| FIN |
  104. C | |
  105. C -------------
  106. C
  107. C AUTEURS : SAINT-DIZIER ET GORCY
  108. C DATE : 23 JANVIER 1991
  109. C
  110. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  111. C
  112. -INC CCREEL
  113. -INC PPARAM
  114. -INC CCOPTIO
  115. -INC SMCOORD
  116. -INC SMELEME
  117. -INC SMCHPOI
  118. -INC SMCHAML
  119. -INC SMLREEL
  120. -INC SMEVOLL
  121.  
  122. CHARACTER*(LOCOMP) COMP,CHAR
  123. C
  124. C ------------------- DIMENSIONNEMENT DES MATRICES CREEES LORS DE
  125. C CETTE INTERFACE FORTRAN <--> ESOPE
  126. C
  127. SEGMENT MATRES
  128. COMPLEX*16 ZA1 (NP28,NP28)
  129. COMPLEX*16 ZSM (NP28)
  130. COMPLEX*16 ZXX (NP28)
  131. COMPLEX*16 ZSOL (NNT14,NFRQ)
  132. REAL*8 COOR (3 ,NP2)
  133. REAL*8 GAMA (3 ,NP)
  134. REAL*8 CARACT(10,NP)
  135. REAL*8 XCL (17 ,NNT)
  136. REAL*8 XCOR (2 , 3 , NBELEM )
  137. REAL*8 VALDE1(2 , NBELEM , 3 )
  138. REAL*8 VALDE2(2 , NBELEM , 3 )
  139. REAL*8 VALDE3(2 , NBELEM , 1 )
  140. REAL*8 VALDE4(2 , NBELEM , 1 )
  141. INTEGER FLAG (NNT17)
  142. INTEGER CORRES(NP2)
  143. INTEGER NUMERO(NNT)
  144. INTEGER MASS (4,NNT)
  145. REAL*8 RMAS (4,NNT)
  146. INTEGER IRAILO(4,NNT)
  147. REAL*8 VALRAI(6,NNT)
  148. INTEGER IPIVO(NP28)
  149. INTEGER JPIVO(NP28)
  150. INTEGER IAUX(NP28)
  151. INTEGER IEXPER(NP)
  152. COMPLEX*16 ALPHAI(14,28,NP,NFRQ)
  153. ENDSEGMENT
  154. C
  155. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  156. C
  157. C EXPLICATION DE CES VARIABLES
  158. C ----------------------------
  159. C
  160. C NP : NOMBRE TOTAL DE POUTRES DU MAILLAGE
  161. C
  162. C NP2 : NP * 2
  163. C
  164. C NP10 : NP * 10
  165. C
  166. C NP28 : NP * 28
  167. C
  168. C NNT : NOMBRE TOTAL DE NOEUDS DU MAILLAGE
  169. C
  170. C NNT14 : NNT * 14
  171. C
  172. C NNT17 : NNT * 17
  173. C
  174. C NFRQ : NOMBRE DE POINTS DE CALCUL EN FREQUENCE
  175. C
  176. C ---------------------------------------------------------------------
  177. C
  178. C .................... ZA1 : MATRICE DE RESOLUTION
  179. C
  180. C .................... ZSM : VECTEUR SECOND MEMBRE
  181. C
  182. C .................... ZXX : VECTEUR INCONNU
  183. C
  184. C ZXX CONTIENT, POUR LES 2NP NOEUDS, DANS L'ORDRE SUIVANT :
  185. C
  186. C UX UY UZ RX RY RZ FX FY FZ MX MY MZ P Q
  187. C
  188. C
  189. C .................... ZSOL : TABLEAU SOLUTION POUR TOUTES LES FREQ.
  190. C
  191. C
  192. C .................... COOR : TABLEAU DES COORDONNEES
  193. C
  194. C UNE POUTRE COMPORTE 2 NOEUDS (P1 ET P2) --> 2*NP NOEUDS FICTIFS
  195. C
  196. C | COOR(1,2*INP-1) | COOR(1,2*INP)
  197. C P1 | COOR(2,2*INP-1) P2 | COOR(2,2*INP)
  198. C | COOR(3,2*INP-1) | COOR(3,2*INP)
  199. C
  200. C ---------------------------------------------------------------------
  201. C
  202. C .................... GAMA : VECTEUR DEFINISSANT L'AXE OY
  203. C POUR CHAQUE POUTRE
  204. C
  205. C
  206. C .................... CARACT : TABLEAU DES CARACTERISTIQUES
  207. C
  208. C CARACT EST UNE MATRICE (10,NP) QUI, POUR TOUTES LES NP POUTRES,
  209. C DONNE LES CARACTERISTIQUES GEOMETRIQUES ET PHYSIQUE DE LA POUTRE :
  210. C
  211. C CARACT( 1,INP) --> MODULE D'YOUNG : E
  212. C CARACT( 2,INP) --> COEFICIENT DE POISSON : NU
  213. C CARACT( 3,INP) --> MASSE VOLUMIQUE DU MATERIAU : RHO
  214. C CARACT( 4,INP) --> RAYON INTERIEUR : RINT
  215. C CARACT( 5,INP) --> RAYON EXTERIEUR : REXT
  216. C CARACT( 6,INP) --> CONSTANTE DE TIMOSHENKO : KCYZ
  217. C CARACT( 7,INP) --> COEFF. D'AMORTISSEMENT EXTERNE : CAM
  218. C CARACT( 8,INP) --> COEFF. D'AMORTISSEMENT INTERNE : ETA
  219. C CARACT( 9,INP) --> MASSE VOLUMIQUE DU FLUIDE : RHOF
  220. C CARACT(10,INP) --> VITESSE DU SON : CSON
  221. C
  222. C ---------------------------------------------------------------------
  223. C
  224. C .................... XCL + FLAG : TABLEAU DONNANT LES CONDITIONS
  225. C AUX LIMITES POUR CHAQUE NOEUD.
  226. C
  227. C XCL (K,NN) = VALEUR DE LA CONDITION K AU NOEUD REEL NN
  228. C LES CONDITIONS K CORRESPONDENT RESPECTIVEMENT A UX, UY, UZ, RX,
  229. C RY, RZ, FX, FY, FZ, MX, MY, MZ, DP, DQ, A, B, R
  230. C ( IMPEDANCE ACOUSTIQUE: AP + BQ = R )
  231. C
  232. C CHAQUE NOEUD AYANT SOIT LES DEPLACEMENTS, SOIT LES EFFORTS, SOIT
  233. C UNE SOURCE OU UNE IMPEDANCE ACOUSTIQUE, SOIT RIEN DU TOUTD'IMPOSE,
  234. C IL CONVIENT DE DEFINIR UN VECTEUR JOUANT LE ROLE DEPOINTEUR SUR
  235. C XCL QUE L'ON APPELLE FLAG DE LONGUEUR 17*NNT.
  236. C
  237. C LES DIFFERENTS BLOCS DE 17 VALEURS POINTENT SUR LE NOEUD CORRES-
  238. C PONDANT :
  239. C
  240. C LA VALEUR DE FLAG VAUT LE NUMERO DU NOEUD SI ON IMPOSE LA CONDITION
  241. C ELLE VAUT 0 SINON.
  242. C
  243. C ---------------------------------------------------------------------
  244. C
  245. C .................... CORRES : TABLEAU POUR CONNAITRE LES LIAISONS
  246. C
  247. C CHAQUE NOEUD FICTIF EST ASSOCIE A UN NOEUD REEL ; LE TABLEAU CORRES
  248. C DONNE, POUR CHAQUE NOEUD FICTIF (2*NP), LE NUMERO DU NOEUD REEL AS-
  249. C SOCIE.
  250. C
  251. C ---------------------------------------------------------------------
  252. C
  253. C
  254. C .................... NUMERO : TABLEAU DE NUMERO DE NOEUDS
  255. C
  256. C NUMERO (I) = NUMERO GIBI DU IEME NOEUD ( 1 < I < N )
  257. C
  258. C LA NUMEROTATION DE 1 A N EST ARBITRAIREMENT SELON LES NUMEROS
  259. C CROISSANTS DANS GIBI.
  260. C
  261. C
  262. C .................... MASS : TABLEAU DONNANT POUR CHAQUE MASSE
  263. C PONCTUELLE :
  264. C
  265. C - MASS(1,NNT) ... NUMERO DU NOEUD OU S'APPLIQUE LA MASSE
  266. C - MASS(2,NNT) ... NUMERO DE LA POUTREASSOCIEE
  267. C - MASS(3,NNT) ... NUMERO DU DEPLACEMENT UX CORRESPONDANT
  268. C DANS LE VECTEUR DES INCONNUS
  269. C - MASS(4,NNT) ... NUMERO DE LIGNE DE LA COMPOSANTE FX DU
  270. C NOEUD OU S'APPLIQUE LA MASSE
  271. C
  272. C .................... RMAS : TABLEAU DONNANT POUR LE NOEUD
  273. C CORRESPONDANT LA VALEUR DE LA MASSE
  274. C DE J0X
  275. C DE J0Y
  276. C DE J0Z
  277. C-----------------------------------------------------------------------
  278. C
  279. C...................... IRAILO : TABLEAU DONNANT POUR CHAQUE RAIDEUR
  280. C LOCALISEE
  281. C
  282. C - IRAILO(1,NNT) ... NUMERO DU NOEUD OU S'APPLIQUE LA RAIDEUR
  283. C - IRAILO(2,NNT) ... NUMERO DE LA POUTRE ASSOCIEE
  284. C - IRAILO(3,NNT) ... NUMERO DU DEPLACEMENT UX CORRESPONDANT
  285. C DANS LE VECTEUR DES INCONNUES
  286. C - IRAILO(4,NNT) ... NUMERO DE LIGNE DE LA COMPOSANTE FX DU
  287. C NOEUD OU S'APPLIQUE LA RAIDEUR
  288. C
  289. C...................... VALRAI : TABLEAU DONNANT LA VALEUR DES RAIDEURS
  290. C LOCALISEES
  291. C
  292. C - VALRAI(1,NNT) ... KX
  293. C - VALRAI(2,NNT) ... KY
  294. C - VALRAI(3,NNT) ... KZ
  295. C - VALRAI(4,NNT) ... CX RAISEUR EN TORSION
  296. C - VALRAI(5,NNT) ... CY RAIDEUR EN FLEXION SUIVANT OY
  297. C - VALRAI(6,NNT) ... CZ RAIDEUR EN FLEXION SUIVANT OZ
  298. C
  299. C ........... IPIVO,JPIVO,IAUX : TABLEAU INTERMEDIAIRE DE MEMORISATION
  300. C DE LA TRIANGULARISATION DE GAUSS
  301. C
  302. C
  303. C ..................... VALDE1 : TABLEAU DONNANT POUR CHAQUE ELEMENT
  304. C DU SOUS MAILLAGE LE MODULE DU DEPLA-
  305. C CEMENT
  306. C
  307. C ..................... VALDE2 : TABLEAU DONNANT POUR CHAQUE ELEMENT
  308. C DU SOUS MAILLAGE LA PHASE DU DEPLA-
  309. C CEMENT
  310. C
  311. C
  312. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  313. C
  314. C ------------------- DIMENSIONNEMENT DES MATRICES AUXILIAIRES
  315. C ----------------------------------------
  316. C
  317. SEGMENT AUXI
  318. INTEGER IAUXI(NNNP)
  319. ENDSEGMENT
  320. C
  321. C -------------------- LECTURE DES OBJETS MAILLAGE CHPOINT ET LISTREEL
  322. C -----------------------------------------------
  323. C
  324. CALL LIROBJ('MAILLAGE',IPT1,1,IRETOU)
  325. IF (IERR.NE.0) RETURN
  326. C
  327. CALL LIROBJ('MAILLAGE',IPT4,0,IRETOU)
  328. IF (IERR.NE.0) RETURN
  329. IF (IRETOU.NE.0) THEN
  330. IDEPL = 1
  331. SEGACT IPT4
  332. NBELEM = IPT4.NUM(/2)
  333. ELSE
  334. IDEPL = 0
  335. NBELEM = 1
  336. END IF
  337. C
  338. CALL LIROBJ('CHPOINT',MCHPO1,1,IRETOU)
  339. IF (IERR.NE.0) RETURN
  340. C
  341. CALL LIROBJ('MCHAML',MCHEL1,1,IRETOU)
  342. IF (IERR.NE.0) RETURN
  343. C
  344. C DECODAGE DE LA TABLE TEXP
  345. C
  346. CALL LIRTAB('TAB_EXPERIMENTALE',ITEXP,0,IRETOU)
  347. IF (IERR.NE.0) RETURN
  348. C
  349. CALL LIROBJ('LISTREEL',MLREE1,1,IRETOU)
  350. IF (IERR.NE.0) RETURN
  351. C
  352. CALL LIRREE(S0,1,IRETOU)
  353. IF (IERR.NE.0) RETURN
  354. C
  355. CALL LIROBJ('POINT',NPOI,1,IRETOU)
  356. IF (IERR.NE.0) RETURN
  357. C
  358. CALL LIRCHA(CHAR,1,LCHAR)
  359. IF (IERR.NE.0) RETURN
  360. C
  361. CALL ELLA09(CHAR,ICHAR,IERROR)
  362. C
  363. C
  364. METH= 2
  365. C
  366. imp = 0
  367. IF (iimpi .eq. 333) imp = ioimp
  368. C
  369. C
  370. C -------------------- ACTIVATION DES SEGMENTS
  371. C -----------------------
  372. SEGACT IPT1
  373. SEGACT MLREE1
  374. SEGACT MCHPO1
  375. SEGACT MCHEL1
  376. C
  377. C
  378. C **********************************************************************
  379. C LECTURE DU MAILLAGE
  380. C **********************************************************************
  381. C
  382. C ..................NP : NOMBRE DE POUTRES DU MAILLAGE
  383. C
  384. NP = IPT1.NUM(/2)
  385. C
  386. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  387. C
  388. IF (IMP.NE.0) THEN
  389. WRITE (IMP,*) 'NOMBRE DE POUTRES DU MAILLAGE :',NP
  390. END IF
  391. C
  392. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  393. C
  394. NN = IPT1.NUM(/1)
  395. C
  396. C --------------------- NFRQ : NOMBRE DE POINTS DE CALCUL EN FREQUENCE
  397. C
  398. NFRQ = MLREE1.PROG(/1)
  399. C
  400. IF (IDEPL.EQ.1.AND.NFRQ.NE.1) THEN
  401. RETURN
  402. END IF
  403. C
  404. C
  405. C --------------------- DETERMINATION DU NOMBRE DE NOEUDS DU MAILLAGE
  406. C ---------------------------------------------
  407. NNNP = NN*NP
  408. SEGINI AUXI
  409. ICOMP = 0
  410. DO 10 I = 1 , NP
  411. DO 11 J = 1 , NN
  412. AUXI.IAUXI(ICOMP+1) = IPT1.NUM(J,I)
  413. C
  414. IF (ICOMP.LT.1) THEN
  415. ITEST = 0
  416. GOTO 13
  417. END IF
  418. C
  419. ITEST = 0
  420. DO 12 K = 1 , ICOMP
  421. IF (AUXI.IAUXI(K).EQ.IPT1.NUM(J,I)) ITEST = 1
  422. 12 CONTINUE
  423. C
  424. 13 IF (ITEST.EQ.0) ICOMP = ICOMP + 1
  425. C
  426. 11 CONTINUE
  427. C
  428. 10 CONTINUE
  429. C
  430. SEGSUP AUXI
  431. C
  432. NNT = ICOMP
  433. C
  434. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  435. C
  436. IF (IMP.NE.0) THEN
  437. WRITE (IMP,*) 'NOMBRE TOTAL DE NOEUD DU MAILLAGE :',NNT
  438. END IF
  439. C
  440. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  441. C
  442. C --------------------- INITIALISATION DES TABLEAUX DE TRAVAIL
  443. C --------------------------------------
  444. NP2 = NP * 2
  445. NP10 = NP * 10
  446. NP28 = NP * 28
  447. NNT14 = NNT * 14
  448. NNT17 = NNT * 17
  449. C
  450. SEGINI MATRES
  451. C
  452. NUMP = 0
  453. C
  454. DO 20 INP = 1 , NP
  455. C
  456. IP1 = IPT1.NUM(1,INP)
  457. C
  458. C ---------------------- TRADUCTION NUMERO GLOBAL NUMERO LOCAL
  459. C -------------------------------------
  460. IF (NUMP.EQ.0) THEN
  461. NUMP = NUMP + 1
  462. MATRES.NUMERO ( NUMP ) = IP1
  463. ELSE
  464. NON = 0
  465. DO 21 I = 1 , NUMP
  466. IF (MATRES.NUMERO(I).EQ.IP1) THEN
  467. NON = 1
  468. END IF
  469. 21 CONTINUE
  470. C
  471. IF (NON.EQ.0) THEN
  472. NUMP = NUMP + 1
  473. MATRES.NUMERO ( NUMP ) = IP1
  474. END IF
  475. END IF
  476. C
  477. IP2 = IPT1.NUM(2,INP)
  478. C
  479. C ---------------------- TRADUCTION NUMERO GLOBAL NUMERO LOCAL
  480. C -------------------------------------
  481. NON = 0
  482. DO 22 I = 1 , NUMP
  483. IF (MATRES.NUMERO(I).EQ.IP2) THEN
  484. NON = 1
  485. END IF
  486. 22 CONTINUE
  487. C
  488. IF (NON.EQ.0) THEN
  489. NUMP = NUMP + 1
  490. MATRES.NUMERO ( NUMP ) = IP2
  491. END IF
  492. C
  493. C
  494. C -------------------- COOR : TABLEAU DES COORDONNEES
  495. C --------------------------------
  496. MATRES.COOR(1,2*INP-1) = MCOORD.XCOOR((IP1-1)*(IDIM+1)+1)
  497. MATRES.COOR(2,2*INP-1) = MCOORD.XCOOR((IP1-1)*(IDIM+1)+2)
  498. MATRES.COOR(3,2*INP-1) = MCOORD.XCOOR((IP1-1)*(IDIM+1)+3)
  499. MATRES.COOR(1,2*INP ) = MCOORD.XCOOR((IP2-1)*(IDIM+1)+1)
  500. MATRES.COOR(2,2*INP ) = MCOORD.XCOOR((IP2-1)*(IDIM+1)+2)
  501. MATRES.COOR(3,2*INP ) = MCOORD.XCOOR((IP2-1)*(IDIM+1)+3)
  502. C
  503. C -------------------- CORRES : TABLEAU POUR CONNAITRE LES LIAISONS
  504. C --------------------------------------------
  505. C
  506. MATRES.CORRES(2*INP-1) = IP1
  507. MATRES.CORRES(2*INP ) = IP2
  508. C
  509. 20 CONTINUE
  510. C
  511. C
  512. C **********************************************************************
  513. C LECTURE DU CHPOINT (CONDITIONS AUX LIMITES)
  514. C **********************************************************************
  515. C
  516. C -------------------- XCL + FLAG : TABLEAU DONNANT LES CONDITIONS
  517. C ---------- AUX LIMITES POUR CHAQUE NOEUD.
  518. C
  519. NSOUPO = MCHPO1.IPCHP(/1)
  520. C
  521. IMAS = 0
  522. IRAIDE = 0
  523. C
  524. DO 26 I = 1 , NNT
  525. DO 25 J = 1 , 17
  526. MATRES.XCL(J,I) = 0.E0
  527. MATRES.FLAG((I-1)*17+J) = 0
  528. 25 CONTINUE
  529. 26 CONTINUE
  530. C
  531. DO 30 I = 1 , NSOUPO
  532. C
  533. MSOUP1 = MCHPO1.IPCHP(I)
  534. SEGACT MSOUP1
  535. C
  536. IPT2 = MSOUP1.IGEOC
  537. SEGACT IPT2
  538. C
  539. MPOVA2 = MSOUP1.IPOVAL
  540. SEGACT MPOVA2
  541. C
  542. NC = MSOUP1.NOCOMP(/2)
  543. N = MPOVA2.VPOCHA(/1)
  544. C
  545. DO 31 J = 1 , N
  546. C
  547. C -- ON CHERCHE NUM(1,J) CAR DANS UN CHAMP PAR POINTS, LES
  548. C -- ELEMENTS DES SOUS-MAILLAGES ELEMENTAIRES SONT LES POINTS
  549. C -- DE CES SOUS-MAILLAGES, ET CHAQUE ELEMENT CONTIENT DONC UN
  550. C -- SEUL NOEUD
  551. C
  552. NOEUD = IPT2.NUM(1,J)
  553. ISTOP = 0
  554. ISTO1 = 0
  555. C
  556. DO 33 K = 1 , NNT
  557. IF (MATRES.NUMERO(K).EQ.NOEUD) THEN
  558. NNOEUD = K
  559. END IF
  560. 33 CONTINUE
  561. C
  562. DO 32 K = 1 , NC
  563. COMP = MSOUP1.NOCOMP(K)
  564. CALL ELLA09(COMP,ICOMP,IERROR)
  565. IF (IERROR.NE.0) THEN
  566. RETURN
  567. END IF
  568. C
  569. C COMPTAGE DES MASSES
  570. C
  571. IF (ICOMP.GE.18.AND.ISTOP.EQ.0.AND.ICOMP.LE.21) THEN
  572. IMAS = IMAS + 1
  573. ISTOP = 1
  574. END IF
  575. C
  576. C COMPTAGE DES RAIDEURS
  577. C
  578. IF (ICOMP.GE.22.AND.ISTO1.EQ.0.AND.ICOMP.LE.27) THEN
  579. IRAIDE = IRAIDE + 1
  580. ISTO1 = 1
  581. ENDIF
  582. C
  583. C DETECTION DES MASSES ET AFFECTATION DES NUMEROS DE COLONNES
  584. C
  585. IF (ICOMP.EQ.18) THEN
  586. DO 35 II = 2*NP , 1 , -1
  587. IF (CORRES(II).EQ.NOEUD) THEN
  588. MATRES.MASS(1,IMAS) = II
  589. END IF
  590. 35 CONTINUE
  591. C
  592. MATRES.MASS(2,IMAS) = INT((MATRES.MASS(1,IMAS)+1)/2)
  593. II = MATRES.MASS(1,IMAS)
  594. JJ = INT(II/2)*2
  595. IF (II.EQ.JJ) THEN
  596. MATRES.MASS(3,IMAS) = 28*(MATRES.MASS(2,IMAS)-1)+15
  597. ELSE
  598. MATRES.MASS(3,IMAS) = 28*(MATRES.MASS(2,IMAS)-1)+1
  599. END IF
  600. C
  601. MATRES.RMAS(1,IMAS) = MPOVA2.VPOCHA(J,K)
  602. C
  603. ELSE IF (ICOMP.GT.18.AND.ICOMP.LE.21) THEN
  604. JMAS = ICOMP - 17
  605. MATRES.RMAS(JMAS,IMAS) = MPOVA2.VPOCHA(J,K)
  606. C
  607. ELSE IF (ICOMP.LT.18 ) THEN
  608. C
  609. MATRES.XCL(ICOMP,NNOEUD)=MPOVA2.VPOCHA(J,K)
  610. MATRES.FLAG((NNOEUD-1)*17+ICOMP)=NNOEUD
  611. C
  612. END IF
  613. C
  614. C DETECTION DES RAIDEURS ET AFFECTATION DES NUMEROS DE COLONNES
  615. C
  616. IF (ICOMP.EQ.22) THEN
  617. C
  618. NUMFIC = 0
  619. DO 60 II = 2*NP , 1 , -1
  620. C
  621. IF (CORRES(II).EQ.NOEUD) THEN
  622. NUMFIC = NUMFIC + 1
  623. C
  624. IF (NUMFIC.GT.3) THEN
  625. STOP
  626. ENDIF
  627. C
  628. MATRES.IRAILO(NUMFIC,IRAIDE) = II
  629. END IF
  630. 60 CONTINUE
  631. C
  632. MATRES.IRAILO(4,IRAIDE)= NUMFIC
  633. C
  634. MATRES.VALRAI(1,IRAIDE) = MPOVA2.VPOCHA(J,K)
  635. C
  636. ELSE IF (ICOMP.GT.22.AND.ICOMP.LE.27) THEN
  637. JRAIDE = ICOMP - 21
  638. C
  639. MATRES.VALRAI(JRAIDE,IRAIDE) = MPOVA2.VPOCHA(J,K)
  640. C
  641. ELSE IF (ICOMP.LT.18) THEN
  642. C
  643. MATRES.XCL(ICOMP,NNOEUD)=MPOVA2.VPOCHA(J,K)
  644. MATRES.FLAG((NNOEUD-1)*17+ICOMP)=NNOEUD
  645. C
  646. END IF
  647. C
  648. 32 CONTINUE
  649. 31 CONTINUE
  650. C
  651. C
  652. SEGDES IPT2
  653. SEGDES MPOVA2
  654. SEGDES MSOUP1
  655. C
  656. 30 CONTINUE
  657. C
  658. NMAS = IMAS
  659. NRAIDE = IRAIDE
  660. C
  661. C **********************************************************************
  662. C LECTURE DU NOUVEAU CHAMLEM (CARACTERISTIQUES DU MATERIAU
  663. C ET DU FLUIDE)
  664. C **********************************************************************
  665. C
  666. C
  667. NELEXP=0
  668. C
  669. C .................... CARACT : TABLEAU DES CARACTERISTIQUES
  670. C
  671. NN1 = MCHEL1.IMACHE(/1)
  672. C
  673. DO 700 I = 1 , NN1
  674. C
  675. IPT3 = MCHEL1.IMACHE(I)
  676. MCHAM1 = MCHEL1.ICHAML(I)
  677. C
  678. SEGACT IPT3
  679. NBE = IPT3.NUM(/2)
  680. C
  681. SEGACT MCHAM1
  682. NN2 = MCHAM1.IELVAL(/1)
  683. IF (NN2.EQ.1) THEN
  684. C
  685. C IL Y A UN SEUL MOT CLEF : C'EST VECT
  686. C ON A UN ELEMENT EXPERIMENTAL
  687. C
  688. CALL ELLA08(MCHAM1.NOMCHE(NN2),ICARAC,IERROR)
  689. IF (IERROR.NE.0) THEN
  690. RETURN
  691. END IF
  692. C
  693. IF (ICARAC.NE.11) THEN
  694. RETURN
  695. END IF
  696. C
  697. IF (NBE.GT.1) THEN
  698. RETURN
  699. END IF
  700. C
  701. MELVA1 = MCHAM1.IELVAL(NN2)
  702. SEGACT MELVA1
  703. IPP = MELVA1.IELCHE(1,1)
  704. X1 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+1)
  705. X2 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+2)
  706. X3 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+3)
  707. SEGDES MELVA1
  708. C
  709. INU1 = IPT3.NUM(1,NBE)
  710. INU2 = IPT3.NUM(2,NBE)
  711. NCARAC = 0
  712. DO 720 III = 1 , NP2 , 2
  713. IN1 = MATRES.CORRES(III )
  714. IN2 = MATRES.CORRES(III+1)
  715. IF (INU1.EQ.IN1.AND.INU2.EQ.IN2) THEN
  716. NCARAC = INT(III/2) + 1
  717. END IF
  718. IF (INU1.EQ.IN2.AND.INU2.EQ.IN1) THEN
  719. NCARAC = INT(III/2) + 1
  720. END IF
  721. 720 CONTINUE
  722. C
  723. NELEXP=NELEXP+1
  724. MATRES.IEXPER(NCARAC)=1
  725. MATRES.GAMA(1,NCARAC) = X1
  726. MATRES.GAMA(2,NCARAC) = X2
  727. MATRES.GAMA(3,NCARAC) = X3
  728. C
  729. C********************************
  730. C
  731. ELSE
  732. C
  733. C ON LIT LES CARACTERISTIQUES D'UNE POUTRE FORMULATION
  734. C INTEGRALE
  735. C
  736. DO 713 II = 1,NN2
  737. C
  738. CALL ELLA08(MCHAM1.NOMCHE(II),ICARAC,IERROR)
  739. IF (IERROR.NE.0) THEN
  740. RETURN
  741. END IF
  742. C
  743. IF (ICARAC.NE.11) THEN
  744. MELVA1 = MCHAM1.IELVAL(II)
  745. SEGACT MELVA1
  746. XCARAC = MELVA1.VELCHE(1,1)
  747. SEGDES MELVA1
  748. ELSE
  749. MELVA1 = MCHAM1.IELVAL(II)
  750. SEGACT MELVA1
  751. IPP = MELVA1.IELCHE(1,1)
  752. X1 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+1)
  753. X2 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+2)
  754. X3 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+3)
  755. SEGDES MELVA1
  756. END IF
  757. C
  758. DO 716 IE = 1 , NBE
  759. INU1 = IPT3.NUM(1,IE)
  760. INU2 = IPT3.NUM(2,IE)
  761. C
  762. NCARAC = 0
  763. C
  764. DO 717 III = 1 , NP2 , 2
  765. IN1 = MATRES.CORRES(III )
  766. IN2 = MATRES.CORRES(III+1)
  767. IF (INU1.EQ.IN1.AND.INU2.EQ.IN2) THEN
  768. NCARAC = INT(III/2) + 1
  769. END IF
  770. C
  771. IF (INU1.EQ.IN2.AND.INU2.EQ.IN1) THEN
  772. NCARAC = INT(III/2) + 1
  773. END IF
  774. C
  775. 717 CONTINUE
  776. C
  777. IF (ICARAC.NE.11) THEN
  778. MATRES.CARACT(ICARAC,NCARAC) = XCARAC
  779. ELSE
  780. MATRES.GAMA(1,NCARAC) = X1
  781. MATRES.GAMA(2,NCARAC) = X2
  782. MATRES.GAMA(3,NCARAC) = X3
  783. END IF
  784. C
  785. 716 CONTINUE
  786. C
  787. 713 CONTINUE
  788. C
  789. END IF
  790. C
  791. SEGDES MCHAM1
  792. SEGDES IPT3
  793. C
  794. 700 CONTINUE
  795. C
  796. C LECTURE DE LA TABLE DES ELEMENTS EXPERIMENTAUX
  797. C
  798. IF (NELEXP.GT.0) THEN
  799. CALL ELLA01(NELEXP,NP2,NFRQ,ITEXP,MATRES)
  800. END IF
  801. C
  802. C -------------------------- CALCUL DE LA VALEUR REEL DE NPOI
  803. C --------------------------------
  804. DO 50 I = 1 , NNT
  805. IF (MATRES.NUMERO(I).EQ.NPOI) THEN
  806. NNPOI = I
  807. END IF
  808. 50 CONTINUE
  809. C
  810. SEGDES IPT1
  811. SEGDES MCHPO1
  812. SEGDES MCHEL1
  813. C
  814. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  815. C
  816. IF (IMP.NE.0) THEN
  817. C
  818. C ----------------------------------------------------------------------
  819. C
  820. C IMPRESSION DES TABLEAUX CREES A L'INTERFACE
  821. C
  822. C - COOR ( 3 , 2*NP )
  823. C - CORRES ( 2*NP )
  824. C - GAMA ( 3 , NP )
  825. C - CARACT (10 , NP )
  826. C - XCL (17 , NNT )
  827. C - FLAG ( 17*NNT )
  828. C - NUMERO ( NNT )
  829. C - MASS ( 3 , NMAS )
  830. C - RMAS ( 4 , NMAS )
  831. C - IRAILO ( 4 , NRAIDE )
  832. C - VALRAI ( 6 , NRAIDE )
  833. C
  834. C ----------------------------------------------------------------------
  835. C
  836. WRITE (IMP,*) 'TABLEAU COOR :'
  837. WRITE (IMP,*) '************'
  838. C
  839. DO 980 I = 1 , 2*NP
  840. WRITE (IMP,*) 'NOEUD ',I,':',
  841. * MATRES.COOR(1,I),MATRES.COOR(2,I),MATRES.COOR(3,I)
  842. 980 CONTINUE
  843. C
  844. WRITE (IMP,*) 'TABLEAU CORRES :'
  845. WRITE (IMP,*) '**************'
  846. C
  847. DO 981 I = 1 , 2*NP
  848. WRITE (IMP,*) 'NOEUD ',I,':',MATRES.CORRES(I)
  849. 981 CONTINUE
  850. C
  851. C
  852. WRITE (IMP,*) 'TABLEAU NUMERO :'
  853. WRITE (IMP,*) '**************'
  854. C
  855. DO 987 I = 1 , NNT
  856. WRITE (IMP,*) 'NOEUD ',I,':',MATRES.NUMERO(I)
  857. 987 CONTINUE
  858. C
  859. WRITE (IMP,*) 'TABLEAU GAMA :'
  860. WRITE (IMP,*) '************'
  861. C
  862. DO 982 I = 1 , NP
  863. WRITE (IMP,*) 'POUTRE ',I,':',
  864. * MATRES.GAMA(1,I),MATRES.GAMA(2,I),MATRES.GAMA(3,I)
  865. 982 CONTINUE
  866. C
  867. WRITE (IMP,*) 'TABLEAU CARACT :'
  868. WRITE (IMP,*) '**************'
  869. C
  870. DO 983 I = 1 , NP
  871. WRITE (IMP,*) 'E : ',MATRES.CARACT ( 1 , I)
  872. WRITE (IMP,*) 'NU : ',MATRES.CARACT ( 2 , I)
  873. WRITE (IMP,*) 'RHO : ',MATRES.CARACT ( 3 , I)
  874. WRITE (IMP,*) 'RINT : ',MATRES.CARACT ( 4 , I)
  875. WRITE (IMP,*) 'REXT : ',MATRES.CARACT ( 5 , I)
  876. WRITE (IMP,*) 'KCYZ : ',MATRES.CARACT ( 6 , I)
  877. WRITE (IMP,*) 'CAM : ',MATRES.CARACT ( 7 , I)
  878. WRITE (IMP,*) 'ETA : ',MATRES.CARACT ( 8 , I)
  879. WRITE (IMP,*) 'RHOF : ',MATRES.CARACT ( 9 , I)
  880. WRITE (IMP,*) 'CSON : ',MATRES.CARACT (10 , I)
  881. 983 CONTINUE
  882. C
  883. WRITE (IMP,*) 'TABLEAU XCL :'
  884. WRITE (IMP,*) '***********'
  885. C
  886. DO 984 I = 1 , 17
  887. DO 985 J = 1 , NNT
  888. WRITE (IMP,*) I , J,':',MATRES.XCL (I,J)
  889. 985 CONTINUE
  890. 984 CONTINUE
  891. C
  892. WRITE (IMP,*) 'TABLEAU FLAG :'
  893. WRITE (IMP,*) '************'
  894. C
  895. DO 986 I = 1 , 17*NNT
  896. WRITE (IMP,*) 'VAL ',I,':',MATRES.FLAG ( I )
  897. 986 CONTINUE
  898. C
  899. WRITE(IMP,*) 'TABLEAU POUR LES MASSES :'
  900. WRITE(IMP,*) '***********************'
  901. C
  902. WRITE(IMP,*)'NMAS : ',NMAS
  903. C
  904. IF (NMAS.GT.0) THEN
  905. C
  906. DO 988 I = 1 , NMAS
  907. WRITE (IMP,*) 'MASS (1,',I,') :',MATRES.MASS(1,I)
  908. WRITE (IMP,*) 'MASS (2,',I,') :',MATRES.MASS(2,I)
  909. WRITE (IMP,*) 'MASS (3,',I,') :',MATRES.MASS(3,I)
  910. WRITE (IMP,*) 'MASS (4,',I,') :',MATRES.MASS(4,I)
  911. 988 CONTINUE
  912. C
  913. DO 989 I = 1 , NMAS
  914. WRITE (IMP,*) 'RMAS (1,',I,') :',MATRES.RMAS(1,I)
  915. WRITE (IMP,*) 'RMAS (2,',I,') :',MATRES.RMAS(2,I)
  916. WRITE (IMP,*) 'RMAS (3,',I,') :',MATRES.RMAS(3,I)
  917. WRITE (IMP,*) 'RMAS (4,',I,') :',MATRES.RMAS(4,I)
  918. 989 CONTINUE
  919. END IF
  920. C
  921. WRITE(IMP,*) 'TABLEAU POUR LES RAIDEURS :'
  922. WRITE(IMP,*) '*************************'
  923. C
  924. WRITE(IMP,*) 'NRAIDE : ',NRAIDE
  925. C
  926. IF (NRAIDE.GT.0) THEN
  927. DO 800 I = 1 , NRAIDE
  928. WRITE(IMP,*) 'IRAILO(1,',I,') :',MATRES.IRAILO(1,I)
  929. WRITE(IMP,*) 'IRAILO(2,',I,') :',MATRES.IRAILO(2,I)
  930. WRITE(IMP,*) 'IRAILO(3,',I,') :',MATRES.IRAILO(3,I)
  931. WRITE(IMP,*) 'IRAILO(4,',I,') :',MATRES.IRAILO(4,I)
  932. C
  933. 800 CONTINUE
  934. C
  935. DO 810 I = 1 , NRAIDE
  936. WRITE(IMP,*) 'VALRAI(1,',I,') :',MATRES.VALRAI(1,I)
  937. WRITE(IMP,*) 'VALRAI(2,',I,') :',MATRES.VALRAI(2,I)
  938. WRITE(IMP,*) 'VALRAI(3,',I,') :',MATRES.VALRAI(3,I)
  939. WRITE(IMP,*) 'VALRAI(4,',I,') :',MATRES.VALRAI(4,I)
  940. WRITE(IMP,*) 'VALRAI(5,',I,') :',MATRES.VALRAI(5,I)
  941. WRITE(IMP,*) 'VALRAI(6,',I,') :',MATRES.VALRAI(6,I)
  942. C
  943. 810 CONTINUE
  944. END IF
  945. C
  946. C DO 820 I=1,NFRQ
  947. C WRITE(IMP,*) 'MLREE1.PROG(',I,')= ',MLREE1.PROG(I)
  948. C 820 CONTINUE
  949. C
  950. C
  951. WRITE(IMP,*) 'NOMBRE D''ELEMENTS EXPERIMENTAUX NELEXP ',NELEXP
  952. DO 830 I=1,NP
  953. WRITE(IMP,*) 'IEXPER(',I,')= ',MATRES.IEXPER(I)
  954. 830 CONTINUE
  955. C
  956. DO 870 K=1,NP
  957. C
  958. IF (MATRES.IEXPER(K).NE.0) THEN
  959. DO 840 L=1,NFRQ
  960. DO 850 I=1,14
  961. DO 860 J=1,28
  962. C WRITE(IMP,*) MATRES.ALPHAI(I,J,K,L)
  963. IF (ABS(ALPHAI(I,J,K,L)).GE.1.0D-10) THEN
  964. WRITE(IMP,871) I,J,K,L,MATRES.ALPHAI(I,J,K,L)
  965. 871 FORMAT(1X,'ALPHAI(',I2,',',I2,',',I2,',',I2,')= ',2(1X,E12.5))
  966. END IF
  967. 860 CONTINUE
  968. 850 CONTINUE
  969. 840 CONTINUE
  970. C
  971. END IF
  972. 870 CONTINUE
  973. C
  974. END IF
  975. C
  976. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  977. C
  978. C ----------------------------------------------------------------------
  979. C
  980. C APPEL DU PROGRAMME FORTRAN POUR LA RESOLUTION DU PROBLEME
  981. C
  982. C TABLEAUX D'ENTREE :
  983. C
  984. C COOR(3,2*NP), CORRES(2*NP), GAMA(3,NP), CARACT(10,NP),
  985. C XCL(17,NNT) , FLAG (17*NNT), NUMERO (NNT) (NP NOMBRE DE POUTRES
  986. C NNT NOMBRE REEL DE NOEUDS)
  987. C IRAILO(4,NNT), VALRAI(6,NNT)
  988. C
  989. C TABLEAUX DE SORTIE :
  990. C
  991. C ZA1(28*NP,28*NP) , ZSM (28*NP) , ZXX (28*NP)
  992. C
  993. C ----------------------------------------------------------------------
  994. C
  995. DO 141 I = 1 , NFRQ
  996. DO 142 J = 1 , NNT14
  997. MATRES.ZSOL(J,I) = CMPLX(0.D0,0.D0)
  998. 142 CONTINUE
  999. 141 CONTINUE
  1000. C
  1001. CALL ELLA11(MATRES.COOR , MATRES.CORRES , MATRES.GAMA ,
  1002. * MATRES.CARACT , MATRES.XCL , MATRES.FLAG ,
  1003. * MATRES.NUMERO , MATRES.ZA1 , MATRES.ZSM ,
  1004. * MATRES.ZXX , MATRES.ZSOL , MATRES.MASS ,
  1005. * MATRES.RMAS , NMAS , MATRES.IPIVO ,
  1006. * MATRES.JPIVO , MATRES.IAUX , MLREE1.PROG ,
  1007. & MATRES.IRAILO , MATRES.VALRAI , NRAIDE ,
  1008. & MATRES.IEXPER , MATRES.ALPHAI ,NELEXP, NP , NP28 ,
  1009. & NNT , NNT14 , NFRQ ,
  1010. & S0 , XPI , METH , IMP)
  1011. C
  1012. ZS = S0 + CMPLX(0.D0 , 1.D0 ) * 2. * XPI * MLREE1.PROG(1)
  1013. C
  1014. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  1015. IF (IMP.NE.0) THEN
  1016. WRITE (IMP,*)'VECTEUR SOLUTION ZSOL : ( PREMIERE FREQUENCE ) '
  1017. DO 42 J = 1 , NNT14
  1018. WRITE (IMP,*) J,MATRES.ZSOL(J,1)
  1019. 42 CONTINUE
  1020. C
  1021. END IF
  1022. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  1023. C
  1024. IF (IDEPL.EQ.0) THEN
  1025. C
  1026. JG = NFRQ
  1027. SEGINI MLREE2
  1028. SEGINI MLREE3
  1029. C
  1030. DO 100 I = 1 , NFRQ
  1031. C
  1032. MLREE2.PROG(I) = ABS(MATRES.ZSOL((NNPOI-1)*14+ICHAR,I))
  1033. C
  1034. ZT = MATRES.ZSOL((NNPOI-1)*14+ICHAR,I)
  1035. PRZT = ZT
  1036. PIZT = ZT*CMPLX(0.D0,-1.D0)
  1037. C
  1038. IF (ABS(PRZT).LT.XPETIT.AND.ABS(PIZT).LT.XPETIT) THEN
  1039. MLREE3.PROG(I) = 0.D0
  1040. ELSE
  1041. MLREE3.PROG(I) = ATAN2(PIZT,PRZT)*180.D0/XPI
  1042. END IF
  1043. C
  1044. 100 CONTINUE
  1045. C
  1046. C ------------------- OUVERTURE DU SEGMENT RESULTAT TYPE EVOLUTION
  1047. C --------------------------------------------
  1048. C
  1049. N = 2
  1050. SEGINI MEVOL1
  1051. SEGINI KEVOL1
  1052. SEGINI KEVOL2
  1053. C
  1054. MEVOL1.ITYEVO = 'COMPLEXE'
  1055. C MEVOL1.IEVTEX = 'OPERATEUR ELFE LAPLACE POUTRE'
  1056. MEVOL1.IEVOLL(1) = KEVOL1
  1057. MEVOL1.IEVOLL(2) = KEVOL2
  1058. C
  1059. C
  1060. KEVOL1.IPROGX = MLREE1
  1061. KEVOL1.IPROGY = MLREE2
  1062. KEVOL1.NUMEVY = 'MODU'
  1063. KEVOL1.TYPX = 'LISTREEL'
  1064. KEVOL1.TYPY = 'LISTREEL'
  1065. KEVOL1.NOMEVX = 'FREQ (HZ)'
  1066. KEVOL1.NOMEVY = CHAR
  1067. C KEVOL1.KEVTEX = '********'
  1068. C
  1069. C
  1070. KEVOL2.IPROGX = MLREE1
  1071. KEVOL2.IPROGY = MLREE3
  1072. KEVOL2.NUMEVY = 'PHAS'
  1073. KEVOL2.TYPX = 'LISTREEL'
  1074. KEVOL2.TYPY = 'LISTREEL'
  1075. KEVOL2.NOMEVX = 'FREQ (HZ)'
  1076. KEVOL2.NOMEVY = CHAR
  1077. C KEVOL2.KEVTEX = '********'
  1078. C
  1079. C
  1080. CALL ECROBJ('EVOLUTION',MEVOL1)
  1081. C
  1082. SEGDES KEVOL1
  1083. SEGDES KEVOL2
  1084. SEGDES MEVOL1
  1085. SEGDES MLREE2
  1086. SEGDES MLREE3
  1087. C
  1088. ELSE
  1089. C
  1090. DO 230 I = 1 , 2
  1091. DO 240 J = 1 , NBELEM
  1092. IP1 = IPT4.NUM(I,J)
  1093. MATRES.XCOR(I,1,J) = MCOORD.XCOOR((IP1-1)*(IDIM+1)+1)
  1094. MATRES.XCOR(I,2,J) = MCOORD.XCOOR((IP1-1)*(IDIM+1)+2)
  1095. MATRES.XCOR(I,3,J) = MCOORD.XCOOR((IP1-1)*(IDIM+1)+3)
  1096. 240 CONTINUE
  1097. 230 CONTINUE
  1098. C
  1099. CALL ELLA23(MATRES.CARACT , MATRES.COOR , MATRES.GAMA ,
  1100. * MATRES.ZXX , MATRES.XCOR , MATRES.VALDE1,
  1101. * MATRES.VALDE2 , MATRES.VALDE3 , MATRES.VALDE4 ,
  1102. * ZS , NP , NBELEM , XPI )
  1103. C
  1104. N1 = 1
  1105. N2 = 8
  1106. L1= 0
  1107. N3= 0
  1108. SEGINI MCHEL1
  1109. SEGINI MCHAM1
  1110. MCHEL1.IMACHE(1) = IPT4
  1111. MCHEL1.ICHAML(1) = MCHAM1
  1112. C
  1113. MCHAM1.NOMCHE(1) = 'UXM'
  1114. MCHAM1.NOMCHE(2) = 'UYM'
  1115. MCHAM1.NOMCHE(3) = 'UZM'
  1116. MCHAM1.NOMCHE(4) = 'UXP'
  1117. MCHAM1.NOMCHE(5) = 'UYP'
  1118. MCHAM1.NOMCHE(6) = 'UZP'
  1119. MCHAM1.NOMCHE(7) = 'PM'
  1120. MCHAM1.NOMCHE(8) = 'PP'
  1121. MCHAM1.TYPCHE(1) = 'REAL*8'
  1122. MCHAM1.TYPCHE(2) = 'REAL*8'
  1123. MCHAM1.TYPCHE(3) = 'REAL*8'
  1124. MCHAM1.TYPCHE(4) = 'REAL*8'
  1125. MCHAM1.TYPCHE(5) = 'REAL*8'
  1126. MCHAM1.TYPCHE(6) = 'REAL*8'
  1127. MCHAM1.TYPCHE(7) = 'REAL*8'
  1128. MCHAM1.TYPCHE(8) = 'REAL*8'
  1129. C
  1130. N1PTEL = 2
  1131. N1EL = NBELEM
  1132. N2PTEL = 0
  1133. N2EL = 0
  1134. C
  1135. SEGINI MELVA1
  1136. SEGINI MELVA2
  1137. SEGINI MELVA3
  1138. SEGINI MELVA4
  1139. SEGINI MELVA5
  1140. SEGINI MELVA6
  1141. C
  1142. MCHAM1.IELVAL(1) = MELVA1
  1143. MCHAM1.IELVAL(2) = MELVA2
  1144. MCHAM1.IELVAL(3) = MELVA3
  1145. MCHAM1.IELVAL(4) = MELVA4
  1146. MCHAM1.IELVAL(5) = MELVA5
  1147. MCHAM1.IELVAL(6) = MELVA6
  1148. C
  1149. DO 200 I = 1 , 2
  1150. DO 210 J = 1 , NBELEM
  1151. MELVA1.VELCHE(I,J) = VALDE1 ( I , J , 1 )
  1152. MELVA2.VELCHE(I,J) = VALDE1 ( I , J , 2 )
  1153. MELVA3.VELCHE(I,J) = VALDE1 ( I , J , 3 )
  1154. MELVA4.VELCHE(I,J) = VALDE2 ( I , J , 1 )
  1155. MELVA5.VELCHE(I,J) = VALDE2 ( I , J , 2 )
  1156. MELVA6.VELCHE(I,J) = VALDE2 ( I , J , 3 )
  1157. 210 CONTINUE
  1158. 200 CONTINUE
  1159. C
  1160. C MCHAM1.IELVAL(7) = MELVA1
  1161. C MCHAM1.IELVAL(8) = MELVA2
  1162. C
  1163. C DO 300 I = 1 , 2
  1164. C DO 310 J = 1 , NBELEM
  1165. C MELVA1.VELCHE(I,J) = VALDE3 ( I , J , 1 )
  1166. C MELVA2.VELCHE(I,J) = VALDE4 ( I , J , 1 )
  1167. C310 CONTINUE
  1168. C300 CONTINUE
  1169. C
  1170. * NSOUPO = 1
  1171. * NAT=1
  1172. * SEGINI MCHPO1
  1173. CALL CHAMPO(MCHEL1,1,MCHPO1,IRET)
  1174. CALL ECROBJ('CHPOINT',MCHPO1)
  1175. C
  1176. SEGDES MELVA1
  1177. SEGDES MELVA2
  1178. SEGDES MELVA3
  1179. SEGDES MELVA4
  1180. SEGDES MELVA5
  1181. SEGDES MELVA6
  1182. SEGDES MCHAM1
  1183. SEGDES MCHEL1
  1184. SEGDES MCHPO1
  1185. C
  1186. C
  1187. END IF
  1188. C
  1189. SEGDES MLREE1
  1190. SEGSUP MATRES
  1191. C
  1192. END
  1193.  
  1194.  

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