Télécharger ella00.eso

Retour à la liste

Numérotation des lignes :

ella00
  1. C ELLA00 SOURCE CB215821 20/11/25 13:27:23 10792
  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 25 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. C
  530. DO 30 I = 1 , NSOUPO
  531. C
  532. MSOUP1 = MCHPO1.IPCHP(I)
  533. SEGACT MSOUP1
  534. C
  535. IPT2 = MSOUP1.IGEOC
  536. SEGACT IPT2
  537. C
  538. MPOVA2 = MSOUP1.IPOVAL
  539. SEGACT MPOVA2
  540. C
  541. NC = MSOUP1.NOCOMP(/2)
  542. N = MPOVA2.VPOCHA(/1)
  543. C
  544. DO 31 J = 1 , N
  545. C
  546. C -- ON CHERCHE NUM(1,J) CAR DANS UN CHAMP PAR POINTS, LES
  547. C -- ELEMENTS DES SOUS-MAILLAGES ELEMENTAIRES SONT LES POINTS
  548. C -- DE CES SOUS-MAILLAGES, ET CHAQUE ELEMENT CONTIENT DONC UN
  549. C -- SEUL NOEUD
  550. C
  551. NOEUD = IPT2.NUM(1,J)
  552. ISTOP = 0
  553. ISTO1 = 0
  554. C
  555. DO 33 K = 1 , NNT
  556. IF (MATRES.NUMERO(K).EQ.NOEUD) THEN
  557. NNOEUD = K
  558. END IF
  559. 33 CONTINUE
  560. C
  561. DO 32 K = 1 , NC
  562. COMP = MSOUP1.NOCOMP(K)
  563. CALL ELLA09(COMP,ICOMP,IERROR)
  564. IF (IERROR.NE.0) THEN
  565. RETURN
  566. END IF
  567. C
  568. C COMPTAGE DES MASSES
  569. C
  570. IF (ICOMP.GE.18.AND.ISTOP.EQ.0.AND.ICOMP.LE.21) THEN
  571. IMAS = IMAS + 1
  572. ISTOP = 1
  573. END IF
  574. C
  575. C COMPTAGE DES RAIDEURS
  576. C
  577. IF (ICOMP.GE.22.AND.ISTO1.EQ.0.AND.ICOMP.LE.27) THEN
  578. IRAIDE = IRAIDE + 1
  579. ISTO1 = 1
  580. ENDIF
  581. C
  582. C DETECTION DES MASSES ET AFFECTATION DES NUMEROS DE COLONNES
  583. C
  584. IF (ICOMP.EQ.18) THEN
  585. DO 35 II = 2*NP , 1 , -1
  586. IF (CORRES(II).EQ.NOEUD) THEN
  587. MATRES.MASS(1,IMAS) = II
  588. END IF
  589. 35 CONTINUE
  590. C
  591. MATRES.MASS(2,IMAS) = INT((MATRES.MASS(1,IMAS)+1)/2)
  592. II = MATRES.MASS(1,IMAS)
  593. JJ = INT(II/2)*2
  594. IF (II.EQ.JJ) THEN
  595. MATRES.MASS(3,IMAS) = 28*(MATRES.MASS(2,IMAS)-1)+15
  596. ELSE
  597. MATRES.MASS(3,IMAS) = 28*(MATRES.MASS(2,IMAS)-1)+1
  598. END IF
  599. C
  600. MATRES.RMAS(1,IMAS) = MPOVA2.VPOCHA(J,K)
  601. C
  602. ELSE IF (ICOMP.GT.18.AND.ICOMP.LE.21) THEN
  603. JMAS = ICOMP - 17
  604. MATRES.RMAS(JMAS,IMAS) = MPOVA2.VPOCHA(J,K)
  605. C
  606. ELSE IF (ICOMP.LT.18 ) THEN
  607. C
  608. MATRES.XCL(ICOMP,NNOEUD)=MPOVA2.VPOCHA(J,K)
  609. MATRES.FLAG((NNOEUD-1)*17+ICOMP)=NNOEUD
  610. C
  611. END IF
  612. C
  613. C DETECTION DES RAIDEURS ET AFFECTATION DES NUMEROS DE COLONNES
  614. C
  615. IF (ICOMP.EQ.22) THEN
  616. C
  617. NUMFIC = 0
  618. DO 60 II = 2*NP , 1 , -1
  619. C
  620. IF (CORRES(II).EQ.NOEUD) THEN
  621. NUMFIC = NUMFIC + 1
  622. C
  623. IF (NUMFIC.GT.3) THEN
  624. STOP
  625. ENDIF
  626. C
  627. MATRES.IRAILO(NUMFIC,IRAIDE) = II
  628. END IF
  629. 60 CONTINUE
  630. C
  631. MATRES.IRAILO(4,IRAIDE)= NUMFIC
  632. C
  633. MATRES.VALRAI(1,IRAIDE) = MPOVA2.VPOCHA(J,K)
  634. C
  635. ELSE IF (ICOMP.GT.22.AND.ICOMP.LE.27) THEN
  636. JRAIDE = ICOMP - 21
  637. C
  638. MATRES.VALRAI(JRAIDE,IRAIDE) = MPOVA2.VPOCHA(J,K)
  639. C
  640. ELSE IF (ICOMP.LT.18) THEN
  641. C
  642. MATRES.XCL(ICOMP,NNOEUD)=MPOVA2.VPOCHA(J,K)
  643. MATRES.FLAG((NNOEUD-1)*17+ICOMP)=NNOEUD
  644. C
  645. END IF
  646. C
  647. 32 CONTINUE
  648. 31 CONTINUE
  649. C
  650. C
  651. SEGDES IPT2
  652. SEGDES MPOVA2
  653. SEGDES MSOUP1
  654. C
  655. 30 CONTINUE
  656. C
  657. NMAS = IMAS
  658. NRAIDE = IRAIDE
  659. C
  660. C **********************************************************************
  661. C LECTURE DU NOUVEAU CHAMLEM (CARACTERISTIQUES DU MATERIAU
  662. C ET DU FLUIDE)
  663. C **********************************************************************
  664. C
  665. C
  666. NELEXP=0
  667. C
  668. C .................... CARACT : TABLEAU DES CARACTERISTIQUES
  669. C
  670. NN1 = MCHEL1.IMACHE(/1)
  671. C
  672. DO 700 I = 1 , NN1
  673. C
  674. IPT3 = MCHEL1.IMACHE(I)
  675. MCHAM1 = MCHEL1.ICHAML(I)
  676. C
  677. SEGACT IPT3
  678. NBE = IPT3.NUM(/2)
  679. C
  680. SEGACT MCHAM1
  681. NN2 = MCHAM1.IELVAL(/1)
  682. IF (NN2.EQ.1) THEN
  683. C
  684. C IL Y A UN SEUL MOT CLEF : C'EST VECT
  685. C ON A UN ELEMENT EXPERIMENTAL
  686. C
  687. CALL ELLA08(MCHAM1.NOMCHE(NN2),ICARAC,IERROR)
  688. IF (IERROR.NE.0) THEN
  689. RETURN
  690. END IF
  691. C
  692. IF (ICARAC.NE.11) THEN
  693. RETURN
  694. END IF
  695. C
  696. IF (NBE.GT.1) THEN
  697. RETURN
  698. END IF
  699. C
  700. MELVA1 = MCHAM1.IELVAL(NN2)
  701. SEGACT MELVA1
  702. IPP = MELVA1.IELCHE(1,1)
  703. X1 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+1)
  704. X2 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+2)
  705. X3 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+3)
  706. SEGDES MELVA1
  707. C
  708. INU1 = IPT3.NUM(1,NBE)
  709. INU2 = IPT3.NUM(2,NBE)
  710. NCARAC = 0
  711. DO 720 III = 1 , NP2 , 2
  712. IN1 = MATRES.CORRES(III )
  713. IN2 = MATRES.CORRES(III+1)
  714. IF (INU1.EQ.IN1.AND.INU2.EQ.IN2) THEN
  715. NCARAC = INT(III/2) + 1
  716. END IF
  717. IF (INU1.EQ.IN2.AND.INU2.EQ.IN1) THEN
  718. NCARAC = INT(III/2) + 1
  719. END IF
  720. 720 CONTINUE
  721. C
  722. NELEXP=NELEXP+1
  723. MATRES.IEXPER(NCARAC)=1
  724. MATRES.GAMA(1,NCARAC) = X1
  725. MATRES.GAMA(2,NCARAC) = X2
  726. MATRES.GAMA(3,NCARAC) = X3
  727. C
  728. C********************************
  729. C
  730. ELSE
  731. C
  732. C ON LIT LES CARACTERISTIQUES D'UNE POUTRE FORMULATION
  733. C INTEGRALE
  734. C
  735. DO 713 II = 1,NN2
  736. C
  737. CALL ELLA08(MCHAM1.NOMCHE(II),ICARAC,IERROR)
  738. IF (IERROR.NE.0) THEN
  739. RETURN
  740. END IF
  741. C
  742. IF (ICARAC.NE.11) THEN
  743. MELVA1 = MCHAM1.IELVAL(II)
  744. SEGACT MELVA1
  745. XCARAC = MELVA1.VELCHE(1,1)
  746. SEGDES MELVA1
  747. ELSE
  748. MELVA1 = MCHAM1.IELVAL(II)
  749. SEGACT MELVA1
  750. IPP = MELVA1.IELCHE(1,1)
  751. X1 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+1)
  752. X2 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+2)
  753. X3 = MCOORD.XCOOR((IPP-1)*(IDIM+1)+3)
  754. SEGDES MELVA1
  755. END IF
  756. C
  757. DO 716 IE = 1 , NBE
  758. INU1 = IPT3.NUM(1,IE)
  759. INU2 = IPT3.NUM(2,IE)
  760. C
  761. NCARAC = 0
  762. C
  763. DO 717 III = 1 , NP2 , 2
  764. IN1 = MATRES.CORRES(III )
  765. IN2 = MATRES.CORRES(III+1)
  766. IF (INU1.EQ.IN1.AND.INU2.EQ.IN2) THEN
  767. NCARAC = INT(III/2) + 1
  768. END IF
  769. C
  770. IF (INU1.EQ.IN2.AND.INU2.EQ.IN1) THEN
  771. NCARAC = INT(III/2) + 1
  772. END IF
  773. C
  774. 717 CONTINUE
  775. C
  776. IF (ICARAC.NE.11) THEN
  777. MATRES.CARACT(ICARAC,NCARAC) = XCARAC
  778. ELSE
  779. MATRES.GAMA(1,NCARAC) = X1
  780. MATRES.GAMA(2,NCARAC) = X2
  781. MATRES.GAMA(3,NCARAC) = X3
  782. END IF
  783. C
  784. 716 CONTINUE
  785. C
  786. 713 CONTINUE
  787. C
  788. END IF
  789. C
  790. SEGDES MCHAM1
  791. SEGDES IPT3
  792. C
  793. 700 CONTINUE
  794. C
  795. C LECTURE DE LA TABLE DES ELEMENTS EXPERIMENTAUX
  796. C
  797. IF (NELEXP.GT.0) THEN
  798. CALL ELLA01(NELEXP,NP2,NFRQ,ITEXP,MATRES)
  799. END IF
  800. C
  801. C -------------------------- CALCUL DE LA VALEUR REEL DE NPOI
  802. C --------------------------------
  803. DO 50 I = 1 , NNT
  804. IF (MATRES.NUMERO(I).EQ.NPOI) THEN
  805. NNPOI = I
  806. END IF
  807. 50 CONTINUE
  808. C
  809. SEGDES IPT1
  810. SEGDES MCHPO1
  811. SEGDES MCHEL1
  812. C
  813. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  814. C
  815. IF (IMP.NE.0) THEN
  816. C
  817. C ----------------------------------------------------------------------
  818. C
  819. C IMPRESSION DES TABLEAUX CREES A L'INTERFACE
  820. C
  821. C - COOR ( 3 , 2*NP )
  822. C - CORRES ( 2*NP )
  823. C - GAMA ( 3 , NP )
  824. C - CARACT (10 , NP )
  825. C - XCL (17 , NNT )
  826. C - FLAG ( 17*NNT )
  827. C - NUMERO ( NNT )
  828. C - MASS ( 3 , NMAS )
  829. C - RMAS ( 4 , NMAS )
  830. C - IRAILO ( 4 , NRAIDE )
  831. C - VALRAI ( 6 , NRAIDE )
  832. C
  833. C ----------------------------------------------------------------------
  834. C
  835. WRITE (IMP,*) 'TABLEAU COOR :'
  836. WRITE (IMP,*) '************'
  837. C
  838. DO 980 I = 1 , 2*NP
  839. WRITE (IMP,*) 'NOEUD ',I,':',
  840. * MATRES.COOR(1,I),MATRES.COOR(2,I),MATRES.COOR(3,I)
  841. 980 CONTINUE
  842. C
  843. WRITE (IMP,*) 'TABLEAU CORRES :'
  844. WRITE (IMP,*) '**************'
  845. C
  846. DO 981 I = 1 , 2*NP
  847. WRITE (IMP,*) 'NOEUD ',I,':',MATRES.CORRES(I)
  848. 981 CONTINUE
  849. C
  850. C
  851. WRITE (IMP,*) 'TABLEAU NUMERO :'
  852. WRITE (IMP,*) '**************'
  853. C
  854. DO 987 I = 1 , NNT
  855. WRITE (IMP,*) 'NOEUD ',I,':',MATRES.NUMERO(I)
  856. 987 CONTINUE
  857. C
  858. WRITE (IMP,*) 'TABLEAU GAMA :'
  859. WRITE (IMP,*) '************'
  860. C
  861. DO 982 I = 1 , NP
  862. WRITE (IMP,*) 'POUTRE ',I,':',
  863. * MATRES.GAMA(1,I),MATRES.GAMA(2,I),MATRES.GAMA(3,I)
  864. 982 CONTINUE
  865. C
  866. WRITE (IMP,*) 'TABLEAU CARACT :'
  867. WRITE (IMP,*) '**************'
  868. C
  869. DO 983 I = 1 , NP
  870. WRITE (IMP,*) 'E : ',MATRES.CARACT ( 1 , I)
  871. WRITE (IMP,*) 'NU : ',MATRES.CARACT ( 2 , I)
  872. WRITE (IMP,*) 'RHO : ',MATRES.CARACT ( 3 , I)
  873. WRITE (IMP,*) 'RINT : ',MATRES.CARACT ( 4 , I)
  874. WRITE (IMP,*) 'REXT : ',MATRES.CARACT ( 5 , I)
  875. WRITE (IMP,*) 'KCYZ : ',MATRES.CARACT ( 6 , I)
  876. WRITE (IMP,*) 'CAM : ',MATRES.CARACT ( 7 , I)
  877. WRITE (IMP,*) 'ETA : ',MATRES.CARACT ( 8 , I)
  878. WRITE (IMP,*) 'RHOF : ',MATRES.CARACT ( 9 , I)
  879. WRITE (IMP,*) 'CSON : ',MATRES.CARACT (10 , I)
  880. 983 CONTINUE
  881. C
  882. WRITE (IMP,*) 'TABLEAU XCL :'
  883. WRITE (IMP,*) '***********'
  884. C
  885. DO 984 I = 1 , 17
  886. DO 985 J = 1 , NNT
  887. WRITE (IMP,*) I , J,':',MATRES.XCL (I,J)
  888. 985 CONTINUE
  889. 984 CONTINUE
  890. C
  891. WRITE (IMP,*) 'TABLEAU FLAG :'
  892. WRITE (IMP,*) '************'
  893. C
  894. DO 986 I = 1 , 17*NNT
  895. WRITE (IMP,*) 'VAL ',I,':',MATRES.FLAG ( I )
  896. 986 CONTINUE
  897. C
  898. WRITE(IMP,*) 'TABLEAU POUR LES MASSES :'
  899. WRITE(IMP,*) '***********************'
  900. C
  901. WRITE(IMP,*)'NMAS : ',NMAS
  902. C
  903. IF (NMAS.GT.0) THEN
  904. C
  905. DO 988 I = 1 , NMAS
  906. WRITE (IMP,*) 'MASS (1,',I,') :',MATRES.MASS(1,I)
  907. WRITE (IMP,*) 'MASS (2,',I,') :',MATRES.MASS(2,I)
  908. WRITE (IMP,*) 'MASS (3,',I,') :',MATRES.MASS(3,I)
  909. WRITE (IMP,*) 'MASS (4,',I,') :',MATRES.MASS(4,I)
  910. 988 CONTINUE
  911. C
  912. DO 989 I = 1 , NMAS
  913. WRITE (IMP,*) 'RMAS (1,',I,') :',MATRES.RMAS(1,I)
  914. WRITE (IMP,*) 'RMAS (2,',I,') :',MATRES.RMAS(2,I)
  915. WRITE (IMP,*) 'RMAS (3,',I,') :',MATRES.RMAS(3,I)
  916. WRITE (IMP,*) 'RMAS (4,',I,') :',MATRES.RMAS(4,I)
  917. 989 CONTINUE
  918. END IF
  919. C
  920. WRITE(IMP,*) 'TABLEAU POUR LES RAIDEURS :'
  921. WRITE(IMP,*) '*************************'
  922. C
  923. WRITE(IMP,*) 'NRAIDE : ',NRAIDE
  924. C
  925. IF (NRAIDE.GT.0) THEN
  926. DO 800 I = 1 , NRAIDE
  927. WRITE(IMP,*) 'IRAILO(1,',I,') :',MATRES.IRAILO(1,I)
  928. WRITE(IMP,*) 'IRAILO(2,',I,') :',MATRES.IRAILO(2,I)
  929. WRITE(IMP,*) 'IRAILO(3,',I,') :',MATRES.IRAILO(3,I)
  930. WRITE(IMP,*) 'IRAILO(4,',I,') :',MATRES.IRAILO(4,I)
  931. C
  932. 800 CONTINUE
  933. C
  934. DO 810 I = 1 , NRAIDE
  935. WRITE(IMP,*) 'VALRAI(1,',I,') :',MATRES.VALRAI(1,I)
  936. WRITE(IMP,*) 'VALRAI(2,',I,') :',MATRES.VALRAI(2,I)
  937. WRITE(IMP,*) 'VALRAI(3,',I,') :',MATRES.VALRAI(3,I)
  938. WRITE(IMP,*) 'VALRAI(4,',I,') :',MATRES.VALRAI(4,I)
  939. WRITE(IMP,*) 'VALRAI(5,',I,') :',MATRES.VALRAI(5,I)
  940. WRITE(IMP,*) 'VALRAI(6,',I,') :',MATRES.VALRAI(6,I)
  941. C
  942. 810 CONTINUE
  943. END IF
  944. C
  945. C DO 820 I=1,NFRQ
  946. C WRITE(IMP,*) 'MLREE1.PROG(',I,')= ',MLREE1.PROG(I)
  947. C 820 CONTINUE
  948. C
  949. C
  950. WRITE(IMP,*) 'NOMBRE D''ELEMENTS EXPERIMENTAUX NELEXP ',NELEXP
  951. DO 830 I=1,NP
  952. WRITE(IMP,*) 'IEXPER(',I,')= ',MATRES.IEXPER(I)
  953. 830 CONTINUE
  954. C
  955. DO 870 K=1,NP
  956. C
  957. IF (MATRES.IEXPER(K).NE.0) THEN
  958. DO 840 L=1,NFRQ
  959. DO 850 I=1,14
  960. DO 860 J=1,28
  961. C WRITE(IMP,*) MATRES.ALPHAI(I,J,K,L)
  962. IF (ABS(ALPHAI(I,J,K,L)).GE.1.0D-10) THEN
  963. WRITE(IMP,871) I,J,K,L,MATRES.ALPHAI(I,J,K,L)
  964. 871 FORMAT(1X,'ALPHAI(',I2,',',I2,',',I2,',',I2,')= ',2(1X,E12.5))
  965. END IF
  966. 860 CONTINUE
  967. 850 CONTINUE
  968. 840 CONTINUE
  969. C
  970. END IF
  971. 870 CONTINUE
  972. C
  973. END IF
  974. C
  975. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  976. C
  977. C ----------------------------------------------------------------------
  978. C
  979. C APPEL DU PROGRAMME FORTRAN POUR LA RESOLUTION DU PROBLEME
  980. C
  981. C TABLEAUX D'ENTREE :
  982. C
  983. C COOR(3,2*NP), CORRES(2*NP), GAMA(3,NP), CARACT(10,NP),
  984. C XCL(17,NNT) , FLAG (17*NNT), NUMERO (NNT) (NP NOMBRE DE POUTRES
  985. C NNT NOMBRE REEL DE NOEUDS)
  986. C IRAILO(4,NNT), VALRAI(6,NNT)
  987. C
  988. C TABLEAUX DE SORTIE :
  989. C
  990. C ZA1(28*NP,28*NP) , ZSM (28*NP) , ZXX (28*NP)
  991. C
  992. C ----------------------------------------------------------------------
  993. C
  994. DO 141 I = 1 , NFRQ
  995. DO 142 J = 1 , NNT14
  996. MATRES.ZSOL(J,I) = CMPLX(0.D0,0.D0)
  997. 142 CONTINUE
  998. 141 CONTINUE
  999. C
  1000. CALL ELLA11(MATRES.COOR , MATRES.CORRES , MATRES.GAMA ,
  1001. * MATRES.CARACT , MATRES.XCL , MATRES.FLAG ,
  1002. * MATRES.NUMERO , MATRES.ZA1 , MATRES.ZSM ,
  1003. * MATRES.ZXX , MATRES.ZSOL , MATRES.MASS ,
  1004. * MATRES.RMAS , NMAS , MATRES.IPIVO ,
  1005. * MATRES.JPIVO , MATRES.IAUX , MLREE1.PROG ,
  1006. & MATRES.IRAILO , MATRES.VALRAI , NRAIDE ,
  1007. & MATRES.IEXPER , MATRES.ALPHAI ,NELEXP, NP , NP28 ,
  1008. & NNT , NNT14 , NFRQ ,
  1009. & S0 , XPI , METH , IMP)
  1010. C
  1011. ZS = S0 + (0.D0 , 1.D0 ) * 2. * XPI * MLREE1.PROG(1)
  1012. C
  1013. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  1014. IF (IMP.NE.0) THEN
  1015. WRITE (IMP,*)'VECTEUR SOLUTION ZSOL : ( PREMIERE FREQUENCE ) '
  1016. DO 42 J = 1 , NNT14
  1017. WRITE (IMP,*) J,MATRES.ZSOL(J,1)
  1018. 42 CONTINUE
  1019. C
  1020. END IF
  1021. C IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  1022. C
  1023. IF (IDEPL.EQ.0) THEN
  1024. C
  1025. JG = NFRQ
  1026. SEGINI MLREE2
  1027. SEGINI MLREE3
  1028. C
  1029. DO 100 I = 1 , NFRQ
  1030. C
  1031. MLREE2.PROG(I) = ABS(MATRES.ZSOL((NNPOI-1)*14+ICHAR,I))
  1032. C
  1033. ZT = MATRES.ZSOL((NNPOI-1)*14+ICHAR,I)
  1034. PRZT = ZT
  1035. PIZT = ZT*(0.D0,-1.D0)
  1036. C
  1037. IF (ABS(PRZT).LT.XPETIT.AND.ABS(PIZT).LT.XPETIT) THEN
  1038. MLREE3.PROG(I) = 0.D0
  1039. ELSE
  1040. MLREE3.PROG(I) = ATAN2(PIZT,PRZT)*180.D0/XPI
  1041. END IF
  1042. C
  1043. 100 CONTINUE
  1044. C
  1045. C ------------------- OUVERTURE DU SEGMENT RESULTAT TYPE EVOLUTION
  1046. C --------------------------------------------
  1047. C
  1048. N = 2
  1049. SEGINI MEVOL1
  1050. SEGINI KEVOL1
  1051. SEGINI KEVOL2
  1052. C
  1053. MEVOL1.ITYEVO = 'COMPLEXE'
  1054. C MEVOL1.IEVTEX = 'OPERATEUR ELFE LAPLACE POUTRE'
  1055. MEVOL1.IEVOLL(1) = KEVOL1
  1056. MEVOL1.IEVOLL(2) = KEVOL2
  1057. C
  1058. C
  1059. KEVOL1.IPROGX = MLREE1
  1060. KEVOL1.IPROGY = MLREE2
  1061. KEVOL1.NUMEVY = 'MODU'
  1062. KEVOL1.TYPX = 'LISTREEL'
  1063. KEVOL1.TYPY = 'LISTREEL'
  1064. KEVOL1.NOMEVX = 'FREQ (HZ)'
  1065. KEVOL1.NOMEVY = CHAR
  1066. C KEVOL1.KEVTEX = '********'
  1067. C
  1068. C
  1069. KEVOL2.IPROGX = MLREE1
  1070. KEVOL2.IPROGY = MLREE3
  1071. KEVOL2.NUMEVY = 'PHAS'
  1072. KEVOL2.TYPX = 'LISTREEL'
  1073. KEVOL2.TYPY = 'LISTREEL'
  1074. KEVOL2.NOMEVX = 'FREQ (HZ)'
  1075. KEVOL2.NOMEVY = CHAR
  1076. C KEVOL2.KEVTEX = '********'
  1077. C
  1078. C
  1079. CALL ECROBJ('EVOLUTION',MEVOL1)
  1080. C
  1081. SEGDES KEVOL1
  1082. SEGDES KEVOL2
  1083. SEGDES MEVOL1
  1084. SEGDES MLREE2
  1085. SEGDES MLREE3
  1086. C
  1087. ELSE
  1088. C
  1089. DO 230 I = 1 , 2
  1090. DO 240 J = 1 , NBELEM
  1091. IP1 = IPT4.NUM(I,J)
  1092. MATRES.XCOR(I,1,J) = MCOORD.XCOOR((IP1-1)*(IDIM+1)+1)
  1093. MATRES.XCOR(I,2,J) = MCOORD.XCOOR((IP1-1)*(IDIM+1)+2)
  1094. MATRES.XCOR(I,3,J) = MCOORD.XCOOR((IP1-1)*(IDIM+1)+3)
  1095. 240 CONTINUE
  1096. 230 CONTINUE
  1097. C
  1098. CALL ELLA23(MATRES.CARACT , MATRES.COOR , MATRES.GAMA ,
  1099. * MATRES.ZXX , MATRES.XCOR , MATRES.VALDE1,
  1100. * MATRES.VALDE2 , MATRES.VALDE3 , MATRES.VALDE4 ,
  1101. * ZS , NP , NBELEM , XPI )
  1102. C
  1103. N1 = 1
  1104. N2 = 8
  1105. L1= 0
  1106. N3= 0
  1107. SEGINI MCHEL1
  1108. SEGINI MCHAM1
  1109. MCHEL1.IMACHE(1) = IPT4
  1110. MCHEL1.ICHAML(1) = MCHAM1
  1111. C
  1112. MCHAM1.NOMCHE(1) = 'UXM'
  1113. MCHAM1.NOMCHE(2) = 'UYM'
  1114. MCHAM1.NOMCHE(3) = 'UZM'
  1115. MCHAM1.NOMCHE(4) = 'UXP'
  1116. MCHAM1.NOMCHE(5) = 'UYP'
  1117. MCHAM1.NOMCHE(6) = 'UZP'
  1118. MCHAM1.NOMCHE(7) = 'PM'
  1119. MCHAM1.NOMCHE(8) = 'PP'
  1120. MCHAM1.TYPCHE(1) = 'REAL*8'
  1121. MCHAM1.TYPCHE(2) = 'REAL*8'
  1122. MCHAM1.TYPCHE(3) = 'REAL*8'
  1123. MCHAM1.TYPCHE(4) = 'REAL*8'
  1124. MCHAM1.TYPCHE(5) = 'REAL*8'
  1125. MCHAM1.TYPCHE(6) = 'REAL*8'
  1126. MCHAM1.TYPCHE(7) = 'REAL*8'
  1127. MCHAM1.TYPCHE(8) = 'REAL*8'
  1128. C
  1129. N1PTEL = 2
  1130. N1EL = NBELEM
  1131. N2PTEL = 0
  1132. N2EL = 0
  1133. C
  1134. SEGINI MELVA1
  1135. SEGINI MELVA2
  1136. SEGINI MELVA3
  1137. SEGINI MELVA4
  1138. SEGINI MELVA5
  1139. SEGINI MELVA6
  1140. C
  1141. MCHAM1.IELVAL(1) = MELVA1
  1142. MCHAM1.IELVAL(2) = MELVA2
  1143. MCHAM1.IELVAL(3) = MELVA3
  1144. MCHAM1.IELVAL(4) = MELVA4
  1145. MCHAM1.IELVAL(5) = MELVA5
  1146. MCHAM1.IELVAL(6) = MELVA6
  1147. C
  1148. DO 200 I = 1 , 2
  1149. DO 210 J = 1 , NBELEM
  1150. MELVA1.VELCHE(I,J) = VALDE1 ( I , J , 1 )
  1151. MELVA2.VELCHE(I,J) = VALDE1 ( I , J , 2 )
  1152. MELVA3.VELCHE(I,J) = VALDE1 ( I , J , 3 )
  1153. MELVA4.VELCHE(I,J) = VALDE2 ( I , J , 1 )
  1154. MELVA5.VELCHE(I,J) = VALDE2 ( I , J , 2 )
  1155. MELVA6.VELCHE(I,J) = VALDE2 ( I , J , 3 )
  1156. 210 CONTINUE
  1157. 200 CONTINUE
  1158. C
  1159. C MCHAM1.IELVAL(7) = MELVA1
  1160. C MCHAM1.IELVAL(8) = MELVA2
  1161. C
  1162. C DO 300 I = 1 , 2
  1163. C DO 310 J = 1 , NBELEM
  1164. C MELVA1.VELCHE(I,J) = VALDE3 ( I , J , 1 )
  1165. C MELVA2.VELCHE(I,J) = VALDE4 ( I , J , 1 )
  1166. C310 CONTINUE
  1167. C300 CONTINUE
  1168. C
  1169. * NSOUPO = 1
  1170. * NAT=1
  1171. * SEGINI MCHPO1
  1172. CALL CHAMPO(MCHEL1,1,MCHPO1,IRET)
  1173. CALL ECROBJ('CHPOINT',MCHPO1)
  1174. C
  1175. SEGDES MELVA1
  1176. SEGDES MELVA2
  1177. SEGDES MELVA3
  1178. SEGDES MELVA4
  1179. SEGDES MELVA5
  1180. SEGDES MELVA6
  1181. SEGDES MCHAM1
  1182. SEGDES MCHEL1
  1183. SEGDES MCHPO1
  1184. C
  1185. C
  1186. END IF
  1187. C
  1188. SEGDES MLREE1
  1189. SEGSUP MATRES
  1190. C
  1191. END
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  

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