Télécharger dyne19.eso

Retour à la liste

Numérotation des lignes :

  1. C DYNE19 SOURCE BP208322 18/01/25 21:15:44 9710
  2. SUBROUTINE DYNE19(ILIA,KCPR,PDT,KTLIAA,IALGO)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. *--------------------------------------------------------------------*
  6. * *
  7. * Operateur DYNE : *
  8. * ________________________________________________ *
  9. * *
  10. * Remplissage des tableaux de description des liaisons sur *
  11. * la base a partir des informations contenues dans la *
  12. * table ILIA. *
  13. * *
  14. * Parametres: *
  15. * *
  16. * e ILIA Table rassemblant la description des liaisons *
  17. * e KCPR Segment descriptif des points. *
  18. * e PDT Pas de temps. *
  19. * es KTLIAA Segment descriptif des liaisons sur la base A. *
  20. * *
  21. * Parametres de dimensionnement pour une liaison sur base: *
  22. * *
  23. * NIPALA : nombre de parametres pour definir le type des *
  24. * liaisons (NIPALA est fixe a 3). *
  25. * NXPALA : nombre maxi de parametres internes pour definir *
  26. * les liaisons. *
  27. * NPLAA : nombre maxi de points intervenant dans une liaison. *
  28. * *
  29. * NPLA : nombre total de points. *
  30. * NLIAA : nombre total de liaisons. *
  31. * *
  32. * *
  33. * Tableaux fortran pour les liaisons sur base: *
  34. * *
  35. * XPALA(NLIAA,NXPALA) : parametres de la liaison. *
  36. * IPALA(NLIAA,NIPALA) : renseigne sur le type de liaison. *
  37. * JPLIA(NPLA) : numero global des points. *
  38. * IPLIA(NLIAA,NPLAA) : numeros locaux des points concernes par *
  39. * la liaison. *
  40. * *
  41. * Auteur, date de creation: *
  42. * *
  43. * Lionel VIVAN, le 21 aout 1989. *
  44. * *
  45. *--------------------------------------------------------------------*
  46. *
  47. -INC CCOPTIO
  48. -INC CCNOYAU
  49. -INC SMCOORD
  50. -INC SMTABLE
  51. -INC CCASSIS
  52. -INC SMLREEL
  53. *
  54. SEGMENT,ICPR(XCOOR(/1)/(IDIM+1))
  55. *
  56. SEGMENT MTLIAA
  57. INTEGER IPALA(NLIAA,NIPALA),IPLIA(NLIAA,NPLAA),JPLIA(NPLA)
  58. REAL*8 XPALA(NLIAA,NXPALA)
  59. ENDSEGMENT
  60. SEGMENT icorres (nliaa)
  61. *
  62. LOGICAL L0,L1
  63. CHARACTER*8 MONAMO,MONOBJ,TYPIND,TYPOBJ,CHARRE
  64. CHARACTER*40 CMOT,MONMOT,CMOT2
  65. CHARACTER*(20) CHAI1
  66. CHARACTER*(18) CHAI2
  67. CHARACTER*(15) CHAI3
  68. CHARACTER*(16) CHAI4
  69. CHARACTER*(14) CHAI5
  70. CHARACTER*(11) CHAI6
  71. PARAMETER (XZERO = 0.D0)
  72. DATA CHAI1 /'EXPOSANT_DEPLACEMENT'/
  73. DATA CHAI2 /'RETARD_DEPLACEMENT'/
  74. DATA CHAI3 /'JEU_DEPLACEMENT'/
  75. DATA CHAI4 /'EXPOSANT_VITESSE'/
  76. DATA CHAI5 /'RETARD_VITESSE'/
  77. DATA CHAI6 /'JEU_VITESSE'/
  78. *
  79. ICPR = KCPR
  80. MTLIAA = KTLIAA
  81. NLIAA = IPALA(/1)
  82. NXPALA = XPALA(/2)
  83. NIPALA = IPALA(/2)
  84. NPLAA = IPLIA(/2)
  85. NPLA = JPLIA(/1)
  86. XPDTS2 = 0.5 * PDT
  87.  
  88. segini icorres
  89. *
  90. * Boucle sur le nombre de liaisons
  91. *
  92. II = 0
  93. DO 10 I = 1,NLIAA
  94. CALL ACCTAB(ILIA,'ENTIER',I,X0,' ',L0,IP0,
  95. & 'TABLE',I0,X0,' ',L1,ITLIAI)
  96. IF (IERR.NE.0) RETURN
  97. icorres ( i ) = itliai
  98.  
  99. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'SOUSTYPE',L0,IP0,
  100. & 'MOT',I1,X0,MONMOT,L1,IP1)
  101. IF (IERR.NE.0) RETURN
  102. *
  103. * Liaison elementaire
  104. *
  105. IF (MONMOT(1:19).EQ.'LIAISON_ELEMENTAIRE') THEN
  106. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'TYPE_LIAISON',L0,IP0,
  107. & 'MOT',I1,X0,CMOT,L1,IP1)
  108. IF (IERR.NE.0) RETURN
  109. *
  110. IF (CMOT(1:17).EQ.'POINT_PLAN_FLUIDE') THEN
  111. *
  112. * ------------ choc POINT_PLAN_FLUIDE
  113. *
  114. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'SUPPORT',L0,IP0,
  115. & 'POINT',I1,X1,' ',L1,IMOD)
  116. IF (IERR.NE.0) RETURN
  117. CALL ACCTAB(ITLIAI,'MOT',I1,X0,'COEFFICIENT_INERTIE',
  118. & L0,IP0,'FLOTTANT',I0,XINER,' ',L1,IP1)
  119. IF (IERR.NE.0) RETURN
  120. CALL ACCTAB(ITLIAI,'MOT',I1,X0,'COEFFICIENT_CONVECTION',
  121. & L0,IP0,'FLOTTANT',I0,XCONV,' ',L1,IP1)
  122. IF (IERR.NE.0) RETURN
  123. CALL ACCTAB(ITLIAI,'MOT',I1,X0,'COEFFICIENT_VISCOSITE',
  124. & L0,IP0,'FLOTTANT',I0,XVISC,' ',L1,IP1)
  125. IF (IERR.NE.0) RETURN
  126. CALL ACCTAB(ITLIAI,'MOT',I1,X0,
  127. & 'COEFFICIENT_P_D_C_ELOIGNEMENT',L0,IP0,
  128. & 'FLOTTANT',I0,XPCEL,' ',L1,IP1)
  129. IF (IERR.NE.0) RETURN
  130. CALL ACCTAB(ITLIAI,'MOT',I1,X0,
  131. & 'COEFFICIENT_P_D_C_RAPPROCHEMENT',L0,IP0,
  132. & 'FLOTTANT',I0,XPCRA,' ',L1,IP1)
  133. IF (IERR.NE.0) RETURN
  134. CALL ACCTAB(ITLIAI,'MOT',I1,X0,'JEU_FLUIDE',L0,IP0,
  135. & 'FLOTTANT',I0,XJEU,' ',L1,IP1)
  136. IF (IERR.NE.0) RETURN
  137. *
  138. IPALA(I,1) = 3
  139. XPALA(I,1) = XINER
  140. XPALA(I,2) = XCONV
  141. XPALA(I,3) = XVISC
  142. XPALA(I,4) = XPCEL
  143. XPALA(I,5) = XPCRA
  144. XPALA(I,6) = XJEU
  145. IK = ICPR(IMOD)
  146. IPLIA(I,1) = IK
  147. JPLIA(IK) = IMOD
  148. ELSE IF (CMOT(1:10).EQ.'POINT_PLAN') THEN
  149. MONAMO = ' '
  150. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'AMORTISSEMENT',L0,IP0,
  151. & MONAMO,I1,XAMO,CHARRE,L1,IP1)
  152. IF (IERR.NE.0) RETURN
  153. *
  154. * ------------ choc POINT_PLAN avec amortissement
  155. *
  156. IF (MONAMO.EQ.'FLOTTANT') THEN
  157. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'SUPPORT',L0,IP0,
  158. & 'POINT',I1,X1,' ',L1,IMOD)
  159. IF (IERR.NE.0) RETURN
  160. CALL ACCTAB(ITLIAI,'MOT',I1,X0,'RAIDEUR',L0,IP0,
  161. & 'FLOTTANT',I0,XRAID,' ',L1,IP1)
  162. IF (IERR.NE.0) RETURN
  163. CALL ACCTAB(ITLIAI,'MOT',I1,X0,'JEU',L0,IP0,
  164. & 'FLOTTANT',I0,XJEU,' ',L1,IP1)
  165. IF (IERR.NE.0) RETURN
  166. *
  167. IPALA(I,1) = 2
  168. XPALA(I,1) = XRAID
  169. XPALA(I,2) = XJEU
  170. XPALA(I,3) = XAMO
  171. IK = ICPR(IMOD)
  172. IPLIA(I,1) = IK
  173. JPLIA(IK) = IMOD
  174. *
  175. * ------------ choc POINT_PLAN sans amortissement
  176. *
  177. ELSE
  178. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'SUPPORT',L0,IP0,
  179. & 'POINT',I1,X1,' ',L1,IMOD)
  180. IF (IERR.NE.0) RETURN
  181. CALL ACCTAB(ITLIAI,'MOT',I1,X0,'RAIDEUR',L0,IP0,
  182. & 'FLOTTANT',I0,XRAID,' ',L1,IP1)
  183. IF (IERR.NE.0) RETURN
  184. CALL ACCTAB(ITLIAI,'MOT',I1,X0,'JEU',L0,IP0,
  185. & 'FLOTTANT',I0,XJEU,' ',L1,IP1)
  186. IF (IERR.NE.0) RETURN
  187. *
  188. IPALA(I,1) = 1
  189. XPALA(I,1) = XRAID
  190. XPALA(I,2) = XJEU
  191. IK = ICPR(IMOD)
  192. IPLIA(I,1) = IK
  193. JPLIA(IK) = IMOD
  194. ENDIF
  195. *
  196. * --------- liaison de couplage en vitesse
  197. *
  198. ELSE IF (CMOT(1:16).EQ.'COUPLAGE_VITESSE') THEN
  199. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'SUPPORT',L0,IP0,
  200. & 'POINT',I1,X1,' ',L1,ISUPP)
  201. IF (IERR.NE.0) RETURN
  202. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'ORIGINE',L0,IP0,
  203. & 'POINT',I1,X1,' ',L1,IORIG)
  204. IF (IERR.NE.0) RETURN
  205. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'COEFFICIENT',L0,IP0,
  206. & 'FLOTTANT',I1,XCPLGE,' ',L1,IP1)
  207. IF (IERR.NE.0) RETURN
  208. *
  209. IPALA(I,1) = 4
  210. XPALA(I,1) = XCPLGE
  211. IKX = ICPR(ISUPP)
  212. IPLIA(I,1) = IKX
  213. JPLIA(IKX) = ISUPP
  214. IKY = ICPR(IORIG)
  215. IPLIA(I,2) = IKY
  216. JPLIA(IKY) = IORIG
  217. *
  218. * --------- liaison de couplage en deplacement
  219. *
  220. ELSE IF (CMOT(1:20).EQ.'COUPLAGE_DEPLACEMENT') THEN
  221. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'SUPPORT',L0,IP0,
  222. & 'POINT',I1,X1,' ',L1,ISUPP)
  223. IF (IERR.NE.0) RETURN
  224. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'ORIGINE',L0,IP0,
  225. & 'POINT',I1,X1,' ',L1,IORIG)
  226. IF (IERR.NE.0) RETURN
  227. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'COEFFICIENT',L0,IP0,
  228. & 'FLOTTANT',I1,XCPLGE,' ',L1,IP1)
  229. IF (IERR.NE.0) RETURN
  230. *
  231. IPALA(I,1) = 5
  232. XPALA(I,1) = XCPLGE
  233. IKX = ICPR(ISUPP)
  234. IPLIA(I,1) = IKX
  235. JPLIA(IKX) = ISUPP
  236. IKY = ICPR(IORIG)
  237. IPLIA(I,2) = IKY
  238. JPLIA(IKY) = IORIG
  239. *
  240. * lectures facultatives EXPOSANT OU FONCTION
  241. TYPOBJ = ' '
  242. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'EXPOSANT',L0,IP0,
  243. & TYPOBJ,I1,XEXPO,' ',L1,IP1)
  244. IF (IERR.NE.0) RETURN
  245. IF(TYPOBJ.EQ.'ENTIER') THEN
  246. XPALA(I,2) = DBLE(I1)
  247. ELSEIF(TYPOBJ.EQ.'FLOTTANT') THEN
  248. XPALA(I,2) = XEXPO
  249. ELSE
  250. XPALA(I,2) = 1.D0
  251. * lectures facultatives FONCTION
  252. TYPOBJ = ' '
  253. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'FONCTION',L0,IP0,
  254. & TYPOBJ,I1,X1,CHARRE,L1,IP1)
  255. IF (IERR.NE.0) RETURN
  256. IF(TYPOBJ.EQ.'MOT') THEN
  257. IF(CHARRE.EQ.'COS') THEN
  258. IPALA(I,3) = 1
  259. ELSEIF(CHARRE.EQ.'SIN') THEN
  260. IPALA(I,3) = 2
  261. ELSE
  262. WRITE(IOIMP,*) 'FONCTION non reconnue !'
  263. CALL ERREUR(21)
  264. RETURN
  265. ENDIF
  266. IF(IPALA(I,3).EQ.1.OR.IPALA(I,3).EQ.2) THEN
  267. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'FREQUENCE',L0,IP0,
  268. & 'FLOTTANT',I1,XFREQ,' ',L1,IP1)
  269. IF (IERR.NE.0) RETURN
  270. XPALA(I,2) = XFREQ
  271. ENDIF
  272. ENDIF
  273. ENDIF
  274. *
  275. * lectures facultatives FONCTION_CONVOLUTION
  276. TYPOBJ = ' '
  277. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'FONCTION_CONVOLUTION',
  278. & L0,IP0,TYPOBJ,I1,X1,CMOT2,L1,IP1)
  279. IF (IERR.NE.0) RETURN
  280. IF(TYPOBJ.EQ.'LISTREEL') THEN
  281. c write(*,*) 'dyne19: FONCTION_CONVOLUTION+LISTREEL'
  282. c on signale le type de fonction
  283. IPALA(I,3) = 100
  284. c on recupere et active le listreel h(\tau_k)
  285. IPALA(I,4)=IP1
  286. MLREE1=IP1
  287. segact,MLREE1
  288. c on cree et initialise le listreel x(t-\tau_k)
  289. JG=MLREE1.PROG(/1)
  290. c write(*,*) 'dyne19: LISTREEL=',(MLREE1.PROG(iou),iou=1,3)
  291. c & ,'...',JG
  292. segini,MLREE2
  293. IP2=MLREE2
  294. IPALA(I,5)=IP2
  295. c + listreel des demi-pas x(t-\tau_k) avec t={t_n+1/2 ...}
  296. segini,MLREE3
  297. IP3=MLREE3
  298. IPALA(I,6)=IP3
  299. c si reprise, on remplira ces 2 derniers listreels dans dyna14
  300. ELSEIF(TYPOBJ.EQ.'MOT') THEN
  301. IF (CMOT2.EQ.'GRANGER_PAIDOUSSIS') THEN
  302. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'VITESSE',L0,IP0,
  303. & 'FLOTTANT',I1,XVIT1,CMOT2,L1,IP1)
  304. IF (IERR.NE.0) RETURN
  305. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'DIAMETRE',L0,IP0,
  306. & 'FLOTTANT',I1,XDIA1,CMOT2,L1,IP1)
  307. IF (IERR.NE.0) RETURN
  308. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'ALPHA',L0,IP0,
  309. & 'LISTREEL',I1,X1,CMOT2,L1,IP1)
  310. IF (IERR.NE.0) RETURN
  311. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'DELTA',L0,IP0,
  312. & 'LISTREEL',I1,X1,CMOT2,L1,IP2)
  313. IF (IERR.NE.0) RETURN
  314. c write(*,*) '>dyne19: FONCTION_CONVOLUTION+GRANGER'
  315. c on signale le type de fonction
  316. IPALA(I,3) = 101
  317. c on recupere et active les listreel alpha_i et delta_i
  318. MLREE1=IP1
  319. segact,MLREE1
  320. JG1=MLREE1.PROG(/1)
  321. MLREE2=IP2
  322. segact,MLREE2
  323. JG2=MLREE2.PROG(/1)
  324. IF(JG1.NE.JG2) THEN
  325. MOTERR(1:8)='LISTREEL'
  326. CALL ERREUR(1015)
  327. RETURN
  328. ENDIF
  329. c IPALA(I,4)=IP1
  330. c IPALA(I,5)=IP2
  331. c --> optimisation par precalcul :
  332. c on cree 1 listreel + efficace que alpha et delta
  333. c contenant a_i*d_i , EXP(+AUX) et EXP(-AUX)
  334. c ok tant que le PDT est constant
  335. JG=3*JG1
  336. segini,MLREEL
  337. do ig1=1,jg1
  338. XALPH=MLREE1.PROG(ig1)
  339. XDELT=MLREE2.PROG(ig1)
  340. prog(ig1)=XALPH*XDELT
  341. c pour differences_centrees:
  342. AUX=XDELT*XVIT1/XDIA1*PDT
  343. c pour de_vogelaere on prend dt/2:
  344. if (IALGO.EQ.1) AUX=AUX*0.5D0
  345. prog(ig1+JG1)=EXP(AUX)
  346. prog(ig1+2*JG1)=EXP(-1.D0*AUX)
  347. enddo
  348. IPALA(I,4)=MLREEL
  349. IPALA(I,5)=0
  350. c on cree et initialise le listreel y(t_n-1)_i
  351. JG=JG1
  352. segini,MLREEL
  353. c IPALA(I,6)=MLREEL
  354. IPALA(I,5)=MLREEL
  355. c + listreel de S_i(t_n-1) = integrale de y(t_n-1)_i
  356. segini,MLREEL
  357. c IPALA(I,7)=MLREEL
  358. IPALA(I,6)=MLREEL
  359. c si reprise, on remplira ces 2 derniers listreels dans dyna14
  360. c il reste le rapport V/D
  361. XPALA(I,2)=XVIT1/XDIA1
  362. c et la constante alpha0 = 1 - \sum_i alpha_i
  363. XALPH0=1.D0
  364. DO IG1=1,JG1
  365. XALPH0=XALPH0-MLREE1.PROG(IG1)
  366. ENDDO
  367. XPALA(I,3)=XALPH0
  368. ENDIF
  369. ENDIF
  370.  
  371. *
  372. * --------- liaison de type force POLYNOMIALE
  373. *
  374. ELSE IF (CMOT(1:11).EQ.'POLYNOMIALE') THEN
  375. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'SUPPORT',L0,IP0,
  376. & 'POINT',I1,X1,' ',L1,ISUPP)
  377. IF (IERR.NE.0) RETURN
  378. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'COEFFICIENT',L0,IP0,
  379. & 'FLOTTANT',I1,XCOEF,' ',L1,IP1)
  380. IF (IERR.NE.0) RETURN
  381. * on met un flag reconnaissable ( cf dypol1) pour
  382. * reconnaissance du temps de demmarrage de la liaison
  383. do 101 ip = 1 , nxpala
  384. xpala(i,ip) = 123456.7
  385. 101 continue
  386.  
  387. IPALA(I,1) = 6
  388. IKX = ICPR(ISUPP)
  389. IPLIA(I,1) = IKX
  390. JPLIA(IKX) = ISUPP
  391. XPALA(I,1) = XCOEF
  392. MTABLE = ITLIAI
  393. SEGACT MTABLE
  394. NIND1 = MLOTAB
  395. *
  396. * contributions des autres modes
  397. *
  398. K1 = 2
  399. K2 = 1
  400. if(nbesc.ne.0) segact ipiloc
  401. DO 20 J=1,NIND1
  402. * -- valeurs nulles par defaut
  403. XPALA(I,K1) = 0d0
  404. XPALA(I,K1+1) = 0d0
  405. XPALA(I,K1+2) = 0d0
  406. XPALA(I,K1+3) = 0d0
  407. XPALA(I,K1+4) = 0d0
  408. XPALA(I,K1+5) = 0d0
  409. TYPIND = MTABTI(J)
  410. IF (TYPIND.EQ.'POINT ') THEN
  411. TYPOBJ = MTABTV(J)
  412. IF (TYPOBJ.EQ.'TABLE ') THEN
  413. K2 = K2 + 1
  414. IORIG = MTABII(J)
  415. IKX = ICPR(IORIG)
  416. IPLIA(I,K2) = IKX
  417. JPLIA(IKX) = IORIG
  418. MTAB1 = MTABIV(J)
  419. SEGACT MTAB1
  420. NIND2 = MTAB1.MLOTAB
  421. RD = XZERO
  422. RV = XZERO
  423. DO 30 K=1,NIND2
  424. TYPIND = MTAB1.MTABTI(K)
  425. IF (TYPIND.EQ.'MOT ') THEN
  426. IP = MTAB1.MTABII(K)
  427. ID = IPCHAR(IP)
  428. IFI = IPCHAR(IP+1)
  429. IL1 = IFI - ID
  430. IF (IL1.EQ.20) THEN
  431. IF (CHAI1.EQ.ICHARA(ID:ID+19)) THEN
  432. TYPOBJ = MTAB1.MTABTV(K)
  433. IF (TYPOBJ.EQ.'FLOTTANT') THEN
  434. XPALA(I,K1) = MTAB1.RMTABV(K)
  435. ENDIF
  436. ENDIF
  437. ELSE IF (IL1.EQ.18) THEN
  438. IF (CHAI2.EQ.ICHARA(ID:ID+17)) THEN
  439. TYPOBJ = MTAB1.MTABTV(K)
  440. IF (TYPOBJ.EQ.'FLOTTANT') THEN
  441. RD = MTAB1.RMTABV(K)
  442. XPALA(I,K1+1) = RD
  443. ENDIF
  444. ENDIF
  445. ELSE IF (IL1.EQ.15) THEN
  446. IF (CHAI3.EQ.ICHARA(ID:ID+14)) THEN
  447. TYPOBJ = MTAB1.MTABTV(K)
  448. IF (TYPOBJ.EQ.'FLOTTANT') THEN
  449. XPALA(I,K1+2) = MTAB1.RMTABV(K)
  450. ENDIF
  451. ENDIF
  452. ELSE IF (IL1.EQ.16) THEN
  453. IF (CHAI4.EQ.ICHARA(ID:ID+15)) THEN
  454. TYPOBJ = MTAB1.MTABTV(K)
  455. IF (TYPOBJ.EQ.'FLOTTANT') THEN
  456. XPALA(I,K1+3) = MTAB1.RMTABV(K)
  457. ENDIF
  458. ENDIF
  459. ELSE IF (IL1.EQ.14) THEN
  460. IF (CHAI5.EQ.ICHARA(ID:ID+13)) THEN
  461. TYPOBJ = MTAB1.MTABTV(K)
  462. IF (TYPOBJ.EQ.'FLOTTANT') THEN
  463. RV = MTAB1.RMTABV(K)
  464. XPALA(I,K1+4) = RV
  465. ENDIF
  466. ENDIF
  467. ELSE IF (IL1.EQ.11) THEN
  468. IF (CHAI6.EQ.ICHARA(ID:ID+10)) THEN
  469. TYPOBJ = MTAB1.MTABTV(K)
  470. IF (TYPOBJ.EQ.'FLOTTANT') THEN
  471. XPALA(I,K1+5) = MTAB1.RMTABV(K)
  472. ENDIF
  473. ENDIF
  474. ENDIF
  475. ENDIF
  476. 30 CONTINUE
  477. ND = INT(RD/XPDTS2) + 1
  478. NV = INT(RV/XPDTS2) + 2
  479. NMAX = MAX(ND,NV)
  480. K1 = K1 + 6 + NMAX
  481. ENDIF
  482. ENDIF
  483. 20 CONTINUE
  484. if(nbesc.ne.0)segdes ipiloc
  485. SEGDES MTABLE
  486. *
  487. * Nombre de modes "origine"
  488. *
  489. IPALA(I,2) = K2 - 1
  490. *
  491. * --------- choc ...........
  492. *
  493. * ELSE IF (CMOT(1: ).EQ.' ') THEN
  494. * .......
  495. * .......
  496. *
  497. ELSE
  498. CALL ERREUR(490)
  499. RETURN
  500. ENDIF
  501. *
  502. * Liaison ...........
  503. *
  504. * ELSE IF (MONMOT(1: ).EQ.' ') THEN
  505. * .......
  506. * .......
  507. *
  508. ELSE
  509. CALL ERREUR(489)
  510. RETURN
  511. ENDIF
  512. 10 CONTINUE
  513. *
  514. *
  515. *
  516. * ----- liaisons conditionnelles ?
  517. *
  518. *
  519. DO 11 I = 1,NLIAA
  520. ksi = 0
  521. CALL ACCTAB(ILIA,'ENTIER',I,X0,' ',L0,IP0,
  522. & 'TABLE',I0,X0,' ',L1,ITLIAI)
  523.  
  524. DO 111 j = 1,NLIAA
  525. jtliai = icorres ( j )
  526. monmot = ' '
  527. CALL ACCTAB(ITLIAI,'TABLE',I0,x0,' ',L0,jtliai,
  528. & monmot,I1,X0,CHARRE,L1,IP1)
  529. IF (IERR.NE.0) RETURN
  530. * ------- si on trouve un logique en face d'une table
  531. * de liaison , c'est bon
  532. IF (MONMOT.EQ.'LOGIQUE ') THEN
  533. ksi = ksi + 1
  534. ipala(i,2) = 1
  535. IF (L1 ) tHEN
  536. ipala (i,3+ksi) = j
  537. ELSE IF (.NOT. L1) THEN
  538. ipala (i,3+ksi) = -1 * j
  539. ENDIF
  540. ENDIF
  541. 111 CONTINUE
  542. 11 CONTINUE
  543. *
  544. *
  545. *
  546. *
  547. * end do
  548. IF (IIMPI.EQ.333) THEN
  549. DO 1000 IN = 1,NLIAA
  550. DO 1002 II = 1,NIPALA
  551. WRITE(IOIMP,*)'DYNE19 : IPALA(',IN,',',II,') =',IPALA(IN,II)
  552. 1002 CONTINUE
  553. DO 1004 IX = 1,NXPALA
  554. WRITE(IOIMP,*)'DYNE19 : XPALA(',IN,',',IX,') =',XPALA(IN,IX)
  555. 1004 CONTINUE
  556. DO 1006 IP = 1,NPLAA
  557. WRITE(IOIMP,*)'DYNE19 : IPLIA(',IN,',',IP,') =',IPLIA(IN,IP)
  558. 1006 CONTINUE
  559. 1000 CONTINUE
  560. DO 1008 IP = 1,NPLA
  561. WRITE(IOIMP,*)'DYNE19 : JPLIA(',IP,') =',JPLIA(IP)
  562. 1008 CONTINUE
  563. ENDIF
  564. *
  565. END
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  

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