Télécharger addite.eso

Retour à la liste

Numérotation des lignes :

  1. C ADDITE SOURCE CHAT 09/04/08 21:15:08 6355
  2.  
  3. C Sous-programme elementaire pour effectuer la translation, la rotation
  4. C ou l'affinite d'un objet
  5. C 10/2003 : Prise en compte cas IDIM=1.
  6.  
  7. SUBROUTINE ADDITE(X,IPT1,IPT2,ICPR,IARG)
  8.  
  9. IMPLICIT INTEGER(I-N)
  10. IMPLICIT REAL*8 (A-H,O-Z)
  11.  
  12. -INC CCOPTIO
  13. -INC SMELEME
  14. -INC SMCOORD
  15.  
  16. DIMENSION X(*)
  17. SEGMENT ICPR(XCOOR(/1)/(IDIM+1))
  18.  
  19. COMMON / CTOURN / XPT1,YPT1,ZPT1,XV1,YV1,ZV1,XV2,YV2,ZV2,
  20. . XVEC,YVEC,ZVEC,ANGLE,ICLE
  21.  
  22. idimp1=IDIM+1
  23. XVECS=XVEC
  24. YVECS=YVEC
  25. ZVECS=ZVEC
  26. COSA=COS(ANGLE)
  27. SINA=SIN(ANGLE)
  28. ANG2=ANGLE*ANGLE
  29.  
  30. C Initialisation du maillage IPT2 transforme de IPT1
  31. NBSOUS=0
  32. IF (IARG.EQ.0) THEN
  33. NBREF=0
  34. ELSE
  35. NBREF=IPT1.LISREF(/1)
  36. ENDIF
  37. NBNN=IPT1.NUM(/1)
  38. NBELEM=IPT1.NUM(/2)
  39. SEGINI IPT2
  40. IPT2.ITYPEL=IPT1.ITYPEL
  41. DO i=1,NBELEM
  42. IPT2.ICOLOR(i)=IPT1.ICOLOR(i)
  43. ENDDO
  44.  
  45. C ICLE / KCLE : indique la transformation a realiser
  46. C KCLE = 1 : translation (operateurs PLUS,MOIN,DEDU 'TRAN')
  47. C KCLE = 2 : rotation (operateurs TOUR,DEDU 'ROTA')
  48. C KCLE = 3 : homothetie (operateur HOMO)
  49. C KCLE = 4 : affinite (operateur AFFI)
  50. C KCLE = 5 : symetrie point (operateur SYME 'POINT')
  51. C KCLE = 6 : symetrie droite (operateur SYME 'DROIT')
  52. C KCLE = 7 : symetrie plan (operateur SYME 'PLAN')
  53. C KCLE = 8 : projection plan (operateur PROJ 'PLAN')
  54. C KCLE = 9 : projection sphere (operateur PROJ 'SPHE')
  55. C KCLE = 10 : projection cylindre (operateur PROJ 'CYLI')
  56. C KCLE = 11 : projection conique (operateur PROJ 'CONI')
  57. C KCLE = 12 : projection torique (operateur PROJ 'TORI')
  58. C KCLE = 13 : projection droite (operateur PROJ 'DROI')
  59. C KCLE = 14 : projection cercle (operateur PROJ 'CERC')
  60. KCLE=ICLE
  61. IF (ICLE.GE.10000) KCLE=ICLE-10000
  62.  
  63. C Reservation de la place dans XCOOR
  64. segdes mcoord
  65. SEGACT MCOORD
  66. NPACT=XCOOR(/1)/idimp1
  67. NXCOUR=NPACT*idimp1
  68. NBPTS=NPACT+NBELEM*NBNN
  69. SEGADJ MCOORD
  70.  
  71. C Boucle sur les noeuds du maillage
  72. C Creation du noeud de IPT2 image de IPT1.NUM(i,j) et stocke dans ICPR
  73. DO 10 j=1,NBELEM
  74. DO 10 i=1,NBNN
  75. C L'image de IPT1.NUM(i,j) a-t-elle deja ete creee ?
  76. IF (ICPR(IPT1.NUM(i,j)).EQ.0) THEN
  77. IREF=(IPT1.NUM(i,j)-1)*idimp1
  78. GOTO (51,52,53,54,55,56,57,58,59,60,61,62,63,64),KCLE
  79. C Translation de vecteur X :
  80. 51 DO k=1,IDIM
  81. XCOOR(NXCOUR+k)=X(k)+XCOOR(IREF+k)
  82. ENDDO
  83. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  84. GOTO 70
  85. C Rotation (2D/3D) :
  86. 52 XD=XCOOR(IREF+1)-XPT1
  87. YD=XCOOR(IREF+2)-YPT1
  88. ZD=0.
  89. IF (IDIM.GE.3) ZD=XCOOR(IREF+3)-ZPT1
  90. XE=XD*XV1+YD*YV1+ZD*ZV1
  91. YE=XD*XV2+YD*YV2+ZD*ZV2
  92. ZE=XD*XVEC+YD*YVEC+ZD*ZVEC
  93. XD=XE*COSA-YE*SINA
  94. YD=XE*SINA+YE*COSA
  95. ZD=ZE
  96. XCOOR(NXCOUR+1)=XD*XV1+YD*XV2+ZD*XVEC+XPT1
  97. XCOOR(NXCOUR+2)=XD*YV1+YD*YV2+ZD*YVEC+YPT1
  98. IF (IDIM.GE.3) XCOOR(NXCOUR+3)=XD*ZV1+YD*ZV2+ZD*ZVEC+ZPT1
  99. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  100. GOTO 70
  101. C Homothetie :
  102. 53 XCOOR(NXCOUR+1)=(XCOOR(IREF+1)-XPT1)*ANGLE+XPT1
  103. IF (IDIM.GE.2) XCOOR(NXCOUR+2)=(XCOOR(IREF+2)-YPT1)*ANGLE+YPT1
  104. IF (IDIM.GE.3) XCOOR(NXCOUR+3)=(XCOOR(IREF+3)-ZPT1)*ANGLE+ZPT1
  105. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)*ANGLE
  106. GOTO 70
  107. C Affinite (2D/3D) :
  108. 54 XD=XCOOR(IREF+1)-XPT1
  109. YD=XCOOR(IREF+2)-YPT1
  110. ZD=0.
  111. IF (IDIM.GE.3) ZD=XCOOR(IREF+3)-ZPT1
  112. XE=XD*XV1+YD*YV1+ZD*ZV1
  113. YE=XD*XV2+YD*YV2+ZD*ZV2
  114. ZE=(XD*XVEC+YD*YVEC+ZD*ZVEC)*ANGLE
  115. XCOOR(NXCOUR+1)=XE*XV1+YE*XV2+ZE*XVEC+XPT1
  116. XCOOR(NXCOUR+2)=XE*YV1+YE*YV2+ZE*YVEC+YPT1
  117. IF (IDIM.GE.3) XCOOR(NXCOUR+3)=XE*ZV1+YE*ZV2+ZE*ZVEC+ZPT1
  118. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  119. GOTO 70
  120. C Symetrie par rapport a un point :
  121. 55 XCOOR(NXCOUR+1)=2*XPT1-XCOOR(IREF+1)
  122. IF (IDIM.GE.2) XCOOR(NXCOUR+2)=2*YPT1-XCOOR(IREF+2)
  123. IF (IDIM.GE.3) XCOOR(NXCOUR+3)=2*ZPT1-XCOOR(IREF+3)
  124. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  125. GOTO 70
  126. C Symetrie par rapport a une droite (2D/3D) :
  127. 56 XD=XCOOR(IREF+1)-XPT1
  128. YD=XCOOR(IREF+2)-YPT1
  129. ZD=0.
  130. IF (IDIM.GE.3) ZD=XCOOR(IREF+3)-ZPT1
  131. PVEC=2*(XD*XVEC+YD*YVEC+ZD*ZVEC)
  132. XCOOR(NXCOUR+1)=XPT1+XVEC*PVEC-XD
  133. XCOOR(NXCOUR+2)=YPT1+YVEC*PVEC-YD
  134. IF (IDIM.GE.3) XCOOR(NXCOUR+3)=ZPT1+ZVEC*PVEC-ZD
  135. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  136. GOTO 70
  137. C Symetrie par rapport a un plan (3D) :
  138. 57 XD=XCOOR(IREF+1)-XPT1
  139. YD=XCOOR(IREF+2)-YPT1
  140. ZD=XCOOR(IREF+3)-ZPT1
  141. PVEC=2*(XD*XVEC+YD*YVEC+ZD*ZVEC)
  142. XCOOR(NXCOUR+1)=XPT1+XD-XVEC*PVEC
  143. XCOOR(NXCOUR+2)=YPT1+YD-YVEC*PVEC
  144. XCOOR(NXCOUR+3)=ZPT1+ZD-ZVEC*PVEC
  145. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  146. GOTO 70
  147. C Projection sur un plan :
  148. 58 XPOIN=XCOOR(IREF+1)
  149. YPOIN=XCOOR(IREF+2)
  150. ZPOIN=XCOOR(IREF+3)
  151. IF (ICLE.GE.10000) THEN
  152. XVECS=XVEC-XPOIN
  153. YVECS=YVEC-YPOIN
  154. ZVECS=ZVEC-ZPOIN
  155. ENDIF
  156. SVECS=XVECS*XVECS+YVECS*YVECS+ZVECS*ZVECS
  157. IF (SVECS.EQ.0.) CALL ERREUR(21)
  158. IF (IERR.NE.0) RETURN
  159. SVECS=SQRT(SVECS)
  160. XVECS=XVECS/SVECS
  161. YVECS=YVECS/SVECS
  162. ZVECS=ZVECS/SVECS
  163. DENUM=(XPOIN-XPT1)*XV1+(YPOIN-YPT1)*YV1+(ZPOIN-ZPT1)*ZV1
  164. DENOM=XVECS*XV1+YVECS*YV1+ZVECS*ZV1
  165. IF (DENOM.EQ.0.) CALL ERREUR(21)
  166. IF (IERR.NE.0) RETURN
  167. RAP=-DENUM/DENOM
  168. XCOOR(NXCOUR+1)=XPOIN+RAP*XVECS
  169. XCOOR(NXCOUR+2)=YPOIN+RAP*YVECS
  170. IF (IDIM.GE.3) XCOOR(NXCOUR+3)=ZPOIN+RAP*ZVECS
  171. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  172. GOTO 70
  173. C Projection sur une sphere (3D) :
  174. 59 XPOIN=XCOOR(IREF+1)
  175. YPOIN=XCOOR(IREF+2)
  176. ZPOIN=XCOOR(IREF+3)
  177. IF (ICLE.GE.10000) THEN
  178. XVECS=XVEC-XPOIN
  179. YVECS=YVEC-YPOIN
  180. ZVECS=ZVEC-ZPOIN
  181. ENDIF
  182. SVECS=XVECS*XVECS+YVECS*YVECS+ZVECS*ZVECS
  183. IF (SVECS.EQ.0.) CALL ERREUR(21)
  184. IF (IERR.NE.0) RETURN
  185. SVECS=SQRT(SVECS)
  186. XVECS=XVECS/SVECS
  187. YVECS=YVECS/SVECS
  188. ZVECS=ZVECS/SVECS
  189. SCA=XVECS*(XPT1-XPOIN)+YVECS*(YPT1-YPOIN)+ZVECS*(ZPT1-ZPOIN)
  190. XV=XVECS*SCA
  191. YV=YVECS*SCA
  192. ZV=ZVECS*SCA
  193. S2=(XPOIN+XV-XPT1)**2+(YPOIN+YV-YPT1)**2+(ZPOIN+ZV-ZPT1)**2
  194. IF (S2.GT.ANG2) CALL ERREUR(21)
  195. IF (IERR.NE.0) RETURN
  196. C=SQRT(ANG2-S2)
  197. IF (SCA.LT.0.) C=-C
  198. XCOOR(NXCOUR+1)=XPOIN+XV-C*XVECS
  199. XCOOR(NXCOUR+2)=YPOIN+YV-C*YVECS
  200. IF (IDIM.GE.3) XCOOR(NXCOUR+3)=ZPOIN+ZV-C*ZVECS
  201. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  202. GOTO 70
  203. C Projection sur un cylindre (3D) :
  204. 60 XPOIN=XCOOR(IREF+1)
  205. YPOIN=XCOOR(IREF+2)
  206. ZPOIN=XCOOR(IREF+3)
  207. IF (ICLE.GE.10000) THEN
  208. XVECS=XVEC-XPOIN
  209. YVECS=YVEC-YPOIN
  210. ZVECS=ZVEC-ZPOIN
  211. ENDIF
  212. SVECS=XVECS*XVECS+YVECS*YVECS+ZVECS*ZVECS
  213. IF (SVECS.EQ.0.) CALL ERREUR(21)
  214. IF (IERR.NE.0) RETURN
  215. SVECS=SQRT(SVECS)
  216. XVECS=XVECS/SVECS
  217. YVECS=YVECS/SVECS
  218. ZVECS=ZVECS/SVECS
  219. XV2=YVECS*ZV1-ZVECS*YV1
  220. YV2=ZVECS*XV1-XVECS*ZV1
  221. ZV2=XVECS*YV1-YVECS*XV1
  222. S2V2=XV2*XV2+YV2*YV2+ZV2*ZV2
  223. IF (S2V2.EQ.0.) CALL ERREUR(21)
  224. IF (IERR.NE.0) RETURN
  225. C2=(XVECS*XV1+YVECS*YV1+ZVECS*ZV1)**2
  226. IF (C2.EQ.1.) CALL ERREUR(21)
  227. IF (IERR.NE.0) RETURN
  228. XV3=XPT1-XPOIN
  229. YV3=YPT1-YPOIN
  230. ZV3=ZPT1-ZPOIN
  231. XV4=YV3*ZV1-ZV3*YV1
  232. YV4=ZV3*XV1-XV3*ZV1
  233. ZV4=XV3*YV1-YV3*XV1
  234. DNUM=(XV4*XVECS+YV4*YVECS+ZV4*ZVECS)**2
  235. DIS2=DNUM/S2V2
  236. IF (IIMPI.EQ.1) WRITE (IOIMP,1000) DIS2,ANGLE
  237. 1000 FORMAT (' DISTANCE AU CARRE DES AXES ',G12.5,
  238. . 'RAYON DU CYLINDRE ',G12.5)
  239. IF (DIS2.GT.ANG2) CALL ERREUR(21)
  240. IF (IERR.NE.0) RETURN
  241. DMU=SQRT((ANG2-DIS2)/(1.-C2))
  242. DNUM=XV2*XV4+YV2*YV4+ZV2*ZV4
  243. DLA=DNUM/S2V2
  244. DMU=SIGN(DMU,DLA)
  245. IF (IIMPI.NE.0) WRITE (IOIMP,1001) DLA,DMU
  246. 1001 FORMAT(' LAMBDA,MU ',2G13.5)
  247. XCOOR(NXCOUR+1)=XPOIN+XVECS*(DLA-DMU)
  248. XCOOR(NXCOUR+2)=YPOIN+YVECS*(DLA-DMU)
  249. IF (IDIM.GE.3) XCOOR(NXCOUR+3)=ZPOIN+ZVECS*(DLA-DMU)
  250. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  251. GOTO 70
  252. C Projection sur un cone (3D) :
  253. 61 XPOIN=XCOOR(IREF+1)
  254. YPOIN=XCOOR(IREF+2)
  255. ZPOIN=XCOOR(IREF+3)
  256. IF (ICLE.GE.10000) THEN
  257. XVECS=XVEC-XPOIN
  258. YVECS=YVEC-YPOIN
  259. ZVECS=ZVEC-ZPOIN
  260. ENDIF
  261. SVECS=XVECS*XVECS+YVECS*YVECS+ZVECS*ZVECS
  262. IF (SVECS.EQ.0.) CALL ERREUR(21)
  263. IF (IERR.NE.0) RETURN
  264. SVECS=SQRT(SVECS)
  265. XVECS=XVECS/SVECS
  266. YVECS=YVECS/SVECS
  267. ZVECS=ZVECS/SVECS
  268. XV2=XPOIN-XPT1
  269. YV2=YPOIN-YPT1
  270. ZV2=ZPOIN-ZPT1
  271. VECV1=XVECS*XV1+YVECS*YV1+ZVECS*ZV1
  272. VEC2=XVECS*XVECS+YVECS*YVECS+ZVECS*ZVECS
  273. V2V1=XV2*XV1+YV2*YV1+ZV2*ZV1
  274. VECV2=XVECS*XV2+YVECS*YV2+ZVECS*ZV2
  275. V22=XV2*XV2+YV2*YV2+ZV2*ZV2
  276. A=VECV1*VECV1-ANGLE*VEC2
  277. B=2*(V2V1*VECV1-ANGLE*VECV2)
  278. C=V2V1*V2V1-ANGLE*V22
  279. DELTA=B*B-4*A*C
  280. IF (DELTA.LT.0.) CALL ERREUR(21)
  281. IF (IERR.NE.0) RETURN
  282. DEL=SQRT(DELTA)
  283. X1=(-B+DEL)/(2*A)
  284. XX=(-B-DEL)/(2*A)
  285. IF (ABS(X1).LT.ABS(XX)) XX=X1
  286. XCOOR(NXCOUR+1)=XPOIN+XX*XVECS
  287. XCOOR(NXCOUR+2)=YPOIN+XX*YVECS
  288. XCOOR(NXCOUR+3)=ZPOIN+XX*ZVECS
  289. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  290. GOTO 70
  291. C Projection sur un tore (3D) :
  292. 62 XPOIN=XCOOR(IREF+1)
  293. YPOIN=XCOOR(IREF+2)
  294. ZPOIN=XCOOR(IREF+3)
  295. IF (ICLE.GE.10000) THEN
  296. XVECS=XVEC-XPOIN
  297. YVECS=YVEC-YPOIN
  298. ZVECS=ZVEC-ZPOIN
  299. ENDIF
  300. SVECS=XVECS*XVECS+YVECS*YVECS+ZVECS*ZVECS
  301. IF (SVECS.EQ.0.) CALL ERREUR(21)
  302. IF (IERR.NE.0) RETURN
  303. SVECS=SQRT(SVECS)
  304. XVECS=XVECS/SVECS
  305. YVECS=YVECS/SVECS
  306. ZVECS=ZVECS/SVECS
  307. PR2=XV2
  308. GR2=YV2
  309. XOP=XPOIN-XPT1
  310. YOP=YPOIN-YPT1
  311. ZOP=ZPOIN-ZPT1
  312. OPV=XOP*XVECS+YOP*YVECS+ZOP*ZVECS
  313. R2=XOP*XOP+YOP*YOP+ZOP*ZOP-GR2-PR2
  314. VA=XVECS*XV1+YVECS*YV1+ZVECS*ZV1
  315. QR2VA2=4*GR2*VA*VA
  316. OPA=XOP*XV1+YOP*YV1+ZOP*ZV1
  317. HR2PV=8*GR2*OPA*VA
  318. R=4*GR2*OPA*OPA-4*PR2*GR2
  319. RLMD=0
  320. C Resolution iterative de l'equation du 4eme degre
  321. DO ITER=1,25
  322. EXP1=RLMD*(RLMD+2*OPV)+R2
  323. FDLM=EXP1*EXP1+QR2VA2*RLMD*RLMD+HR2PV*RLMD+R
  324. FPDLM=4*EXP1*(RLMD+OPV)+QR2VA2*2*RLMD+HR2PV
  325. IF (FPDLM.EQ.0.) CALL ERREUR(40)
  326. IF (IERR.NE.0) RETURN
  327. CORR=FDLM/FPDLM
  328. IF (IIMPI.NE.0) WRITE(IOIMP,1016) ITER,RLMD,CORR
  329. 1016 FORMAT(' ITER ',I6,' LAMBDA ',G12.5,' CORR ',G12.5)
  330. RLMD=RLMD-CORR
  331. IF (RLMD.NE.0.) THEN
  332. IF (ABS(CORR/RLMD).LT.1E-5) GOTO 66
  333. ENDIF
  334. ENDDO
  335. CALL ERREUR(40)
  336. RETURN
  337. 66 XCOOR(NXCOUR+1)=XPOIN+RLMD*XVECS
  338. XCOOR(NXCOUR+2)=YPOIN+RLMD*YVECS
  339. XCOOR(NXCOUR+3)=ZPOIN+RLMD*ZVECS
  340. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  341. GOTO 70
  342. C Projection sur une droite (2D/3D) :
  343. 63 XPOIN=XCOOR(IREF+1)
  344. YPOIN=XCOOR(IREF+2)
  345. ZPOIN=0.
  346. IF (ICLE.GE.10000) THEN
  347. XVECS=XVEC-XPOIN
  348. YVECS=YVEC-YPOIN
  349. ZVECS=0.
  350. ENDIF
  351. SVECS=XVECS*XVECS+YVECS*YVECS+ZVECS*ZVECS
  352. IF (SVECS.EQ.0.) CALL ERREUR(21)
  353. IF (IERR.NE.0) RETURN
  354. SVECS=SQRT(SVECS)
  355. XVECS=XVECS/SVECS
  356. YVECS=YVECS/SVECS
  357. ZVECS=ZVECS/SVECS
  358. DENUM=(XPOIN-XPT1)*XV1+(YPOIN-YPT1)*YV1
  359. DENOM=XVECS*XV1+YVECS*YV1+ZVECS*ZV1
  360. IF (DENOM.EQ.0.) CALL ERREUR(21)
  361. IF (IERR.NE.0) RETURN
  362. RAP=-DENUM/DENOM
  363. XCOOR(NXCOUR+1)=XPOIN+RAP*XVECS
  364. XCOOR(NXCOUR+2)=YPOIN+RAP*YVECS
  365. IF (IDIM.GE.3) XCOOR(NXCOUR+3)=ZPOIN+RAP*ZVECS
  366. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  367. GOTO 70
  368. C Projection sur un cercle (2D/3D) :
  369. 64 XPOIN=XCOOR(IREF+1)
  370. YPOIN=XCOOR(IREF+2)
  371. ZPOIN=0.
  372. IF (ICLE.GE.10000) THEN
  373. XVECS=XVEC-XPOIN
  374. YVECS=YVEC-YPOIN
  375. ZVECS=0.
  376. ENDIF
  377. SVECS=XVECS*XVECS+YVECS*YVECS+ZVECS*ZVECS
  378. IF (SVECS.EQ.0.) CALL ERREUR(21)
  379. IF (IERR.NE.0) RETURN
  380. SVECS=SQRT(SVECS)
  381. XVECS=XVECS/SVECS
  382. YVECS=YVECS/SVECS
  383. ZVECS=ZVECS/SVECS
  384. SCA=XVECS*(XPT1-XPOIN)+YVECS*(YPT1-YPOIN)
  385. XV=XVECS*SCA
  386. YV=YVECS*SCA
  387. ZV=ZVECS*SCA
  388. S2=(XPOIN+XV-XPT1)**2+(YPOIN+YV-YPT1)**2+(ZPOIN+ZV-ZPT1)**2
  389. IF (S2.GT.ANG2) CALL ERREUR(21)
  390. IF (IERR.NE.0) RETURN
  391. C=SQRT(ANG2-S2)
  392. IF (SCA.LT.0.) C=-C
  393. XCOOR(NXCOUR+1)=XPOIN+XV-C*XVECS
  394. XCOOR(NXCOUR+2)=YPOIN+YV-C*YVECS
  395. IF (IDIM.GE.3) XCOOR(NXCOUR+3)=ZPOIN+ZV-C*ZVECS
  396. XCOOR(NXCOUR+idimp1)=XCOOR(IREF+idimp1)
  397. GOTO 70
  398. C Stockage du point image cree dans XCOOR et dans ICPR
  399. C On remplit le maillage IPT2
  400. 70 NXCOUR=NXCOUR+idimp1
  401. IPT2.NUM(i,j)=NXCOUR/idimp1
  402. ICPR(IPT1.NUM(i,j))=IPT2.NUM(i,j)
  403. ELSE
  404. C On recupere le noeud image dans ICPR et on remplit IPT2
  405. IPT2.NUM(i,j)=ICPR(IPT1.NUM(i,j))
  406. ENDIF
  407. 10 CONTINUE
  408. C Fin de la boucle sur les noeuds de IPT1
  409. C On a cree IPT2 maillage transforme de IPT2 (elements,noeuds)
  410.  
  411. NBPTS=NXCOUR/idimp1
  412. SEGADJ MCOORD
  413.  
  414. RETURN
  415. END
  416.  
  417.  
  418.  
  419.  
  420.  

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