Télécharger ameli2.eso

Retour à la liste

Numérotation des lignes :

  1. C AMELI2 SOURCE PV 07/11/23 21:15:18 5978
  2. SUBROUTINE AMELI2 (NUM,NSA,NBNN,NUMELG,NUMNP,NBVOIS,MAXVOI,KON)
  3. ************************************************************************
  4. *
  5. * A M E L I 2
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. *
  11. * AMELIORATION D'UN MAILLAGE DE "QUA4" ET/OU "TRI3" SANS
  12. * DEPLACEMENT DES NOEUDS.
  13. *
  14. * MODULES UTILISES:
  15. * -----------------
  16. *
  17. IMPLICIT INTEGER(I-N)
  18. implicit real*8 (a-h,o-z)
  19. -INC CCREEL
  20. -INC CCOPTIO
  21. *
  22. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  23. * -----------
  24. *
  25. * NUM(I,J) E/S NUMERO DU I-EME NOEUD DU J-EME ELEMENT.
  26. * - MELANGE "QUA4" ET "TRI3" DANS LE MEME TABLEAU,
  27. * - TABLEAU SURDIMENSIONNE.
  28. * - NUMEROTATION DES NOEUDS LOCALE A L'OPERATEUR.
  29. * NSA (E) TABLEAU DE CORRESPONDANCE ENTRE NUMEROS LOCAUX ET
  30. * GLOBAUX.
  31. * NBNN (E) NOMBRE MAXI DE NOEUDS PAR ELEMENT.
  32. * NUMELG E/S NOMBRE D'ELEMENTS DU MAILLAGE.
  33. * NUMNP (E) NOMBRE DE NOEUDS DU MAILLAGE.
  34. * NBVOIS (E) NOMBRE D'ELEMENTS APPUYES SUR UN NOEUD DONNE.
  35. * KON (E) TABLEAU DE CONNEXIONS DES NOEUDS.
  36. * KON(I, N.NOEUD - CSTE) = N.ELEMENT
  37. *
  38. INTEGER NUM(NBNN,*),NSA(*),NBVOIS(*),KON(MAXVOI,*)
  39. *
  40. * CONSTANTES:
  41. * -----------
  42. *
  43. PARAMETER (PI = XPI)
  44. PARAMETER (ANGMIN = 30.D0 * XPI/180.D0)
  45. PARAMETER (ANGMAX = XPI - ANGMIN)
  46. PARAMETER (QUAL0 = 0.3)
  47. *
  48. * VARIABLES:
  49. * ----------
  50. *
  51. * QUADRA = .TRUE. SI ON CHERCHE A MAILLER EN QUADRANGLES.
  52. *
  53. LOGICAL QUADRA
  54. *
  55. * FONCTIONS:
  56. * ----------
  57. *
  58. LOGICAL QUAD
  59. QUAD(I) = (NBNN.EQ.4).AND.(NUM(NBNN,I).NE.0)
  60. *
  61. * REMARQUES:
  62. * ----------
  63. *
  64. * CRITERES DE QUALITE:
  65. * - PLUS GRAND ANGLE DE QUADRANGLE (ANALOGUE AU S.P. "AMELIO"),
  66. * - PLUS PETIT ANGLE DE QUADRANGLE,
  67. * - SURFACE TRIANGLE PAR RAPPORT A EQUILATERAL (ANALOGUE AU S.P.
  68. * "AMELIO", LIMITE A 0.3 AU LIEU DE 0.4)
  69. * MAIS CALCUL DANS L'ESPACE GEOMETRIQUE REEL ET IMPOSSIBILITE DE
  70. * DEPLACER LES NOEUDS.
  71. *
  72. * AUTEUR, DATE DE CREATION:
  73. * -------------------------
  74. *
  75. * PASCAL MANIGOT 19 NOVEMBRE 1990
  76. *
  77. * LANGAGE:
  78. * --------
  79. *
  80. * FORTRAN77
  81. *
  82. ************************************************************************
  83. *
  84. IF (NUMELG.LE.1) RETURN
  85. *
  86. QUADRA = NBNN.EQ.4
  87. *
  88. *
  89. * 1) CONVERSION DES QUADRANGLES APLATIS EN COUPLES DE TRIANGLES
  90. *
  91. IF (QUADRA) THEN
  92. *
  93. NUMEL0 = NUMELG
  94. DO 100 L1=1,NUMEL0
  95. IF (.NOT. QUAD(L1)) GOTO 100
  96. *
  97. I1=NUM(1,L1)
  98. I2=NUM(2,L1)
  99. I3=NUM(3,L1)
  100. I4=NUM(4,L1)
  101. N1 = NSA(I1)
  102. N2 = NSA(I2)
  103. N3 = NSA(I3)
  104. N4 = NSA(I4)
  105. CALL ANGQUA (N1,N2,N3,N4, ANG1,ANG2,ANG3,ANG4)
  106. IF (ANG1.GT.ANGMAX .OR. ANG2.LT.ANGMIN
  107. & .OR. ANG3.GT.ANGMAX .OR. ANG4.LT.ANGMIN) THEN
  108. NUM(4,L1)=0
  109. NUMELG=NUMELG+1
  110. NUM(1,NUMELG)=I1
  111. NUM(2,NUMELG)=I3
  112. NUM(3,NUMELG)=I4
  113. NUM(4,NUMELG)=0
  114. ELSE IF (ANG1.LT.ANGMIN .OR. ANG2.GT.ANGMAX
  115. & .OR. ANG3.LT.ANGMIN .OR. ANG4.GT.ANGMAX) THEN
  116. NUM(4,L1)=0
  117. NUM(3,L1)=I4
  118. NUMELG=NUMELG+1
  119. NUM(1,NUMELG)=I2
  120. NUM(2,NUMELG)=I3
  121. NUM(3,NUMELG)=I4
  122. NUM(4,NUMELG)=0
  123. END IF
  124. 100 CONTINUE
  125. * END DO
  126. *
  127. IF (IIMPI .EQ. 1808) THEN
  128. WRITE (IOIMP,2100) (NUMELG - NUMEL0)
  129. 2100 FORMAT (1X,I5,' DECOUPAGES DE 1 QUADRANGLE EN 2 TRIANGLES.')
  130. END IF
  131. *
  132. END IF
  133. *
  134. *
  135. MODIF2 = 0
  136. MODIF4 = 0
  137. MODIF6 = 0
  138. * DO
  139. 400 CONTINUE
  140. MODIF1 = MODIF2
  141. MODIF3 = MODIF4
  142. MODIF5 = MODIF6
  143. *
  144. *
  145. * 2) RECHERCHE DE TRIANGLES ADJACENTS POUR:
  146. * - CREATION DE QUADRANGLE, OU
  147. * - INVERSION EVENTUELLE DE DIAGONALE.
  148. *
  149. *
  150. * DEFINITION DE LA TABLE DES CONNEXIONS:
  151. DO 200 I=1,NUMNP
  152. NBVOIS(I)=0
  153. 200 CONTINUE
  154. * END DO
  155. DO 202 L2=1,NUMELG
  156. DO 2021 I=1,NBNN
  157. IA = NUM(I,L2)
  158. IF (IA .NE. 0) THEN
  159. NBVOIS(IA)=NBVOIS(IA)+1
  160. KON(NBVOIS(IA),IA)=L2
  161. END IF
  162. 2021 CONTINUE
  163. 202 CONTINUE
  164. * END DO
  165. *
  166. L1 = 0
  167. 500 IF (L1.LT.NUMELG) THEN
  168. L1 = L1 + 1
  169. IF (QUAD(L1)) GOTO 500
  170. *
  171. I1=NUM(1,L1)
  172. I2=NUM(2,L1)
  173. I3=NUM(3,L1)
  174. N1 = NSA(I1)
  175. N2 = NSA(I2)
  176. N3 = NSA(I3)
  177. CALL VALTRI (N1,N2,N3, CAL1)
  178. *
  179. DO 540 IPOI=1,3
  180. *
  181. NODL1 = NUM(IPOI,L1)
  182. NM=NBVOIS(NODL1)
  183. *
  184. DO 520 IVOIS=1,NM
  185. *
  186. L2=KON(IVOIS,NODL1)
  187. IF (L2 .EQ. L1) GOTO 520
  188. IF (QUAD(L2)) GOTO 520
  189. *
  190. IF ((I1.EQ.NUM(1,L2)).AND.(I2.EQ.NUM(3,L2))) THEN
  191. I9=NUM(2,L2)
  192. ELSEIF((I1.EQ.NUM(2,L2)).AND.(I2.EQ.NUM(1,L2))) THEN
  193. I9=NUM(3,L2)
  194. ELSEIF((I1.EQ.NUM(3,L2)).AND.(I2.EQ.NUM(2,L2))) THEN
  195. I9=NUM(1,L2)
  196. *
  197. ELSEIF((I1.EQ.NUM(1,L2)).AND.(I3.EQ.NUM(2,L2))) THEN
  198. IAA=I1
  199. I1=I3
  200. I3=I2
  201. I2=IAA
  202. I9=NUM(3,L2)
  203. ELSEIF((I1.EQ.NUM(2,L2)).AND.(I3.EQ.NUM(3,L2))) THEN
  204. IAA=I1
  205. I1=I3
  206. I3=I2
  207. I2=IAA
  208. I9=NUM(1,L2)
  209. ELSEIF((I1.EQ.NUM(3,L2)).AND.(I3.EQ.NUM(1,L2))) THEN
  210. IAA=I1
  211. I1=I3
  212. I3=I2
  213. I2=IAA
  214. I9=NUM(2,L2)
  215. *
  216. ELSEIF((I2.EQ.NUM(1,L2)).AND.(I3.EQ.NUM(3,L2))) THEN
  217. IAA=I1
  218. I1=I2
  219. I2=I3
  220. I3=IAA
  221. I9=NUM(2,L2)
  222. ELSEIF((I2.EQ.NUM(2,L2)).AND.(I3.EQ.NUM(1,L2))) THEN
  223. IAA=I1
  224. I1=I2
  225. I2=I3
  226. I3=IAA
  227. I9=NUM(3,L2)
  228. ELSEIF((I2.EQ.NUM(3,L2)).AND.(I3.EQ.NUM(2,L2))) THEN
  229. IAA=I1
  230. I1=I2
  231. I2=I3
  232. I3=IAA
  233. I9=NUM(1,L2)
  234. ELSE
  235. * ITERATE
  236. GOTO 520
  237. END IF
  238. *
  239. N1 = NSA(I1)
  240. N9 = NSA(I9)
  241. N2 = NSA(I2)
  242. N3 = NSA(I3)
  243. CALL ANGQUA (N1,N9,N2,N3, ANG1,ANG2,ANG3,ANG4)
  244. *
  245. IF (QUADRA) THEN
  246. IF (MIN(ANG1,ANG2,ANG3,ANG4).GT.ANGMIN
  247. & .AND. MAX(ANG1,ANG2,ANG3,ANG4).LT.ANGMAX) THEN
  248. * ON PEUT ASSEMBLER UN QUADRANGLE:
  249. NUM(1,L1)=I1
  250. NUM(2,L1)=I9
  251. NUM(3,L1)=I2
  252. NUM(4,L1)=I3
  253. *
  254. * ON ENLEVE L'ELEMENT "L2":
  255. NUMELG=NUMELG-1
  256. DO 102 K=L2,NUMELG
  257. NUM(1,K)=NUM(1,K+1)
  258. NUM(2,K)=NUM(2,K+1)
  259. NUM(3,K)=NUM(3,K+1)
  260. NUM(4,K)=NUM(4,K+1)
  261. 102 CONTINUE
  262. * END DO
  263. IF (L1.GT.L2) L1 = L1 - 1
  264. DO 103 K1=1,MAXVOI
  265. DO 1031 K2=1,NUMNP
  266. IF (KON(K1,K2).GT.L2) THEN
  267. KON(K1,K2)=KON(K1,K2)-1
  268. ELSE IF (KON(K1,K2).EQ.L2) THEN
  269. NBVOIS(K2) = NBVOIS(K2) - 1
  270. DO 120 K1B = K1,NBVOIS(K2)
  271. KON(K1B,K2) = KON(K1B+1,K2)
  272. 120 CONTINUE
  273. * END DO
  274. END IF
  275. 1031 CONTINUE
  276. 103 CONTINUE
  277. * END DO
  278. * FIN DE LA SUPPRESSION DE L'ELEMENT "L2"
  279. *
  280. MODIF2 = MODIF2 + 1
  281. GOTO 500
  282. END IF
  283. END IF
  284. *
  285. IF (MAX(ANG1,ANG2,ANG3,ANG4) .LT. PI) THEN
  286. * INVERSION EVENTUELLE DE DIAGONALE POUR LES 2
  287. * TRIANGLES ADJACENTS:
  288. CALL VALTRI (N1,N9,N3, CAL2)
  289. IF (CAL2.GT.CAL1) THEN
  290. CALL VALTRI (N9,N2,N3, CAL2)
  291. IF (CAL2.GT.CAL1) THEN
  292. * ON PEUT COUPER SUIVANT LA DEUXIEME DIAGONALE
  293. NUM(1,L1)=I1
  294. NUM(2,L1)=I9
  295. NUM(3,L1)=I3
  296. NUM(1,L2)=I9
  297. NUM(2,L2)=I2
  298. NUM(3,L2)=I3
  299. MODIF4 = MODIF4 + 1
  300. GOTO 500
  301. END IF
  302. END IF
  303. END IF
  304. *
  305. 520 CONTINUE
  306. * END DO
  307. *
  308. 540 CONTINUE
  309. * END DO
  310. *
  311. GOTO 500
  312. END IF
  313. *
  314. IF (IIMPI .EQ. 1808) THEN
  315. WRITE (IOIMP,2000) (MODIF2 - MODIF1)
  316. 2000 FORMAT (1X,I5,
  317. & ' TRANSFORMATIONS DE 2 TRIANGLES EN 1 QUADRANGLE.')
  318. WRITE (IOIMP,2110) (MODIF4 - MODIF3)
  319. 2110 FORMAT (1X,I5,' INVERSIONS DE DIAGONALES.')
  320. END IF
  321. *
  322. IF (.NOT. QUADRA) THEN
  323. IF (MODIF4 .GT. MODIF3) GOTO 400
  324. RETURN
  325. END IF
  326. *
  327. *
  328. * 3) AMELIORATION DES QUADRANGLES PAR GLISSEMENT DES TRIANGLES
  329. *
  330. *
  331. IF ((MODIF2+MODIF4) .GT. (MODIF1+MODIF3)) THEN
  332. * REDEFINITION DE LA TABLE DES CONNEXIONS:
  333. DO 610 I=1,NUMNP
  334. NBVOIS(I)=0
  335. 610 CONTINUE
  336. * END DO
  337. DO 620 L2=1,NUMELG
  338. DO 6201 I=1,NBNN
  339. IA = NUM(I,L2)
  340. IF (IA .NE. 0) THEN
  341. NBVOIS(IA)=NBVOIS(IA)+1
  342. KON(NBVOIS(IA),IA)=L2
  343. END IF
  344. 6201 CONTINUE
  345. 620 CONTINUE
  346. * END DO
  347. END IF
  348. *
  349. L1 = 0
  350. 700 IF (L1.LT.NUMELG) THEN
  351. L1 = L1 + 1
  352. IF (QUAD(L1)) GOTO 700
  353. *
  354. I1=NUM(1,L1)
  355. I2=NUM(2,L1)
  356. I3=NUM(3,L1)
  357. PABO1 = ANGMAX * 1.01
  358. *
  359. DO 740 IPOI=1,3
  360. *
  361. NODL1 = NUM(IPOI,L1)
  362. NM=NBVOIS(NODL1)
  363. *
  364. DO 720 IVOIS=1,NM
  365. *
  366. L2=KON(IVOIS,NODL1)
  367. IF (.NOT.QUAD(L2)) GOTO 720
  368. *
  369. IF ((I1.EQ.NUM(1,L2)).AND.(I2.EQ.NUM(4,L2))) THEN
  370. II1 = I2
  371. II2 = I3
  372. II3 = I1
  373. II4 = NUM(2,L2)
  374. II5 = NUM(3,L2)
  375. ELSEIF((I1.EQ.NUM(2,L2)).AND.(I2.EQ.NUM(1,L2))) THEN
  376. II1 = I2
  377. II2 = I3
  378. II3 = I1
  379. II4 = NUM(3,L2)
  380. II5 = NUM(4,L2)
  381. ELSEIF((I1.EQ.NUM(3,L2)).AND.(I2.EQ.NUM(2,L2))) THEN
  382. II1 = I2
  383. II2 = I3
  384. II3 = I1
  385. II4 = NUM(4,L2)
  386. II5 = NUM(1,L2)
  387. ELSEIF((I1.EQ.NUM(4,L2)).AND.(I2.EQ.NUM(3,L2))) THEN
  388. II1 = I2
  389. II2 = I3
  390. II3 = I1
  391. II4 = NUM(1,L2)
  392. II5 = NUM(2,L2)
  393. *
  394. ELSEIF((I1.EQ.NUM(1,L2)).AND.(I3.EQ.NUM(2,L2))) THEN
  395. II1 = I1
  396. II2 = I2
  397. II3 = I3
  398. II4 = NUM(3,L2)
  399. II5 = NUM(4,L2)
  400. ELSEIF((I1.EQ.NUM(2,L2)).AND.(I3.EQ.NUM(3,L2))) THEN
  401. II1 = I1
  402. II2 = I2
  403. II3 = I3
  404. II4 = NUM(4,L2)
  405. II5 = NUM(1,L2)
  406. ELSEIF((I1.EQ.NUM(3,L2)).AND.(I3.EQ.NUM(4,L2))) THEN
  407. II1 = I1
  408. II2 = I2
  409. II3 = I3
  410. II4 = NUM(1,L2)
  411. II5 = NUM(2,L2)
  412. ELSEIF((I1.EQ.NUM(4,L2)).AND.(I3.EQ.NUM(1,L2))) THEN
  413. II1 = I1
  414. II2 = I2
  415. II3 = I3
  416. II4 = NUM(2,L2)
  417. II5 = NUM(3,L2)
  418. *
  419. ELSEIF((I2.EQ.NUM(1,L2)).AND.(I3.EQ.NUM(4,L2))) THEN
  420. II1 = I3
  421. II2 = I1
  422. II3 = I2
  423. II4 = NUM(2,L2)
  424. II5 = NUM(3,L2)
  425. ELSEIF((I2.EQ.NUM(2,L2)).AND.(I3.EQ.NUM(1,L2))) THEN
  426. II1 = I3
  427. II2 = I1
  428. II3 = I2
  429. II4 = NUM(3,L2)
  430. II5 = NUM(4,L2)
  431. ELSEIF((I2.EQ.NUM(3,L2)).AND.(I3.EQ.NUM(2,L2))) THEN
  432. II1 = I3
  433. II2 = I1
  434. II3 = I2
  435. II4 = NUM(4,L2)
  436. II5 = NUM(1,L2)
  437. ELSEIF((I2.EQ.NUM(4,L2)).AND.(I3.EQ.NUM(3,L2))) THEN
  438. II1 = I3
  439. II2 = I1
  440. II3 = I2
  441. II4 = NUM(1,L2)
  442. II5 = NUM(2,L2)
  443. ELSE
  444. * ITERATE
  445. GOTO 720
  446. END IF
  447. *
  448. N1 = NSA(II1)
  449. N2 = NSA(II2)
  450. N3 = NSA(II3)
  451. N4 = NSA(II4)
  452. N5 = NSA(II5)
  453. * TRIANGLE=1,2,3 QUADRANGLE=1,3,4,5
  454. *
  455. * QUALITE DU QUADRANGLE ACTUEL:
  456. CALL ANGQUA (N1,N3,N4,N5, ANG1,ANG2,ANG3,ANG4)
  457. AN1345 = MAX(ANG1,ANG2,ANG3,ANG4,
  458. & PI-ANG1,PI-ANG2,PI-ANG3,PI-ANG4)
  459. * 2 AUTRES QUADRANGLES POSSIBLES:
  460. CALL ANGQUA (N1,N2,N3,N4, ANG1,ANG2,ANG3,ANG4)
  461. AN1234 = MAX(ANG1,ANG2,ANG3,ANG4,
  462. & PI-ANG1,PI-ANG2,PI-ANG3,PI-ANG4)
  463. CALL ANGQUA (N1,N2,N3,N5, ANG1,ANG2,ANG3,ANG4)
  464. AN1235 = MAX(ANG1,ANG2,ANG3,ANG4,
  465. & PI-ANG1,PI-ANG2,PI-ANG3,PI-ANG4)
  466. *
  467. IF (AN1234 .LT. AN1345) THEN
  468. IF (AN1234 .LT. PABO1) THEN
  469. * 1ER NOUVEAU TRIANGLE POSSIBLE:
  470. CALL VALTRI (N1,N4,N5, CAL1)
  471. IF (CAL1 .GT. QUAL0) THEN
  472. PABO1 = AN1234
  473. L2BEST = L2
  474. III1 = II4
  475. III2 = II5
  476. III3 = II1
  477. III4 = II2
  478. III5 = II3
  479. END IF
  480. END IF
  481. END IF
  482. IF (AN1235 .LT. PI) THEN
  483. * 2EME NOUVEAU TRIANGLE POSSIBLE:
  484. CALL VALTRI (N1,N2,N5, CAL1)
  485. IF (CAL1 .GT. QUAL0) THEN
  486. CALL ANGQUA (N2,N3,N4,N5, ANG1,ANG2,ANG3,ANG4)
  487. PABO3 = MAX(ANG1,ANG2,ANG3,ANG4,
  488. & PI-ANG1,PI-ANG2,PI-ANG3,PI-ANG4)
  489. IF (PABO3 .LT. AN1345) THEN
  490. IF (PABO3 .LT. PABO1) THEN
  491. PABO1 = PABO3
  492. L2BEST = L2
  493. III1 = II5
  494. III2 = II1
  495. III3 = II2
  496. III4 = II3
  497. III5 = II4
  498. END IF
  499. END IF
  500. END IF
  501. END IF
  502. IF (AN1234 .LT. PI) THEN
  503. * 3EME NOUVEAU TRIANGLE POSSIBLE:
  504. CALL VALTRI (N2,N3,N4, CAL1)
  505. IF (CAL1 .GT. QUAL0) THEN
  506. CALL ANGQUA (N4,N5,N1,N2, ANG1,ANG2,ANG3,ANG4)
  507. PABO3 = MAX(ANG1,ANG2,ANG3,ANG4,
  508. & PI-ANG1,PI-ANG2,PI-ANG3,PI-ANG4)
  509. IF (PABO3 .LT. AN1345) THEN
  510. IF (PABO3 .LT. PABO1) THEN
  511. PABO1 = PABO3
  512. L2BEST = L2
  513. III1 = II2
  514. III2 = II3
  515. III3 = II4
  516. III4 = II5
  517. III5 = II1
  518. END IF
  519. END IF
  520. END IF
  521. END IF
  522. IF (AN1235 .LT. AN1345) THEN
  523. IF (AN1235 .LT. PABO1) THEN
  524. * 4EME NOUVEAU TRIANGLE POSSIBLE:
  525. CALL VALTRI (N3,N4,N5, CAL1)
  526. IF (CAL1 .GT. QUAL0) THEN
  527. PABO1 = AN1235
  528. L2BEST = L2
  529. III1 = II3
  530. III2 = II4
  531. III3 = II5
  532. III4 = II1
  533. III5 = II2
  534. END IF
  535. END IF
  536. END IF
  537. *
  538. 720 CONTINUE
  539. * END DO
  540. *
  541. 740 CONTINUE
  542. * END DO
  543. *
  544. IF (PABO1 .LT. ANGMAX) THEN
  545. * ON A TROUVE LE MOYEN DE MIEUX REPRESENTER UN ENSEMBLE
  546. * QUADRANGLE+TRIANGLE DANS UN POLYGONE DE 5 POINTS.
  547. MODIF6 = MODIF6 + 1
  548. L2 = MAX(L1,L2BEST)
  549. L1 = MIN(L1,L2BEST)
  550. NUM(1,L1) = III1
  551. NUM(2,L1) = III2
  552. NUM(3,L1) = III3
  553. NUM(4,L1) = 0
  554. NUM(1,L2) = III1
  555. NUM(2,L2) = III3
  556. NUM(3,L2) = III4
  557. NUM(4,L2) = III5
  558. L1 = L1 - 1
  559. END IF
  560. *
  561. GOTO 700
  562. END IF
  563. *
  564. IF (IIMPI .EQ. 1808) THEN
  565. WRITE (IOIMP,2010) (MODIF6 - MODIF5)
  566. 2010 FORMAT (1X,I5,' DEPLACEMENTS DE TRIANGLES.')
  567. END IF
  568. *
  569. IF ((MODIF4+MODIF6) .GT. (MODIF3+MODIF5)) GOTO 400
  570. * END DO
  571. *
  572. END
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  

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