Télécharger topclp.eso

Retour à la liste

Numérotation des lignes :

topclp
  1. C TOPCLP SOURCE GOUNAND 21/04/06 21:15:28 10940
  2. SUBROUTINE TOPCLP(TRAVJ,lchang)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : TOPCLP
  7. C DESCRIPTION :
  8. C
  9. C
  10. C
  11. * Nettoyage des noeuds qui ne sont plus référencés dans la topologie
  12. * mais seulement ceux ajoutés par nous, pas les autres !
  13. * (utilise la topologie inverse qui doit donc etre coherente ! :)
  14. C
  15. C LANGAGE : ESOPE
  16. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA)
  17. C mél : gounand@semt2.smts.cea.fr
  18. C***********************************************************************
  19. C APPELES :
  20. C APPELES (E/S) :
  21. C APPELES (BLAS) :
  22. C APPELES (CALCUL) :
  23. C APPELE PAR :
  24. C***********************************************************************
  25. C SYNTAXE GIBIANE :
  26. C ENTREES :
  27. C ENTREES/SORTIES :
  28. C SORTIES :
  29. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  30. C***********************************************************************
  31. C VERSION : v1, 17/10/2017, version initiale
  32. C HISTORIQUE : v1, 17/10/2017, création
  33. C HISTORIQUE :
  34. C HISTORIQUE :
  35. C***********************************************************************
  36. -INC PPARAM
  37. -INC CCOPTIO
  38. -INC TMATOP2
  39. -INC SMLENTI
  40. POINTEUR JNNO.MLENTI
  41. -INC SMELEME
  42. POINTEUR JTOPO.MELEME
  43. -INC SMCOORD
  44. POINTEUR JCOORD.MCOORD
  45. -INC TMATOP1
  46. *-INC STOPINV
  47. *-INC SMETRIQ
  48. POINTEUR JCMETR.METRIQ
  49. *-INC STRAVJ
  50. *
  51. logical lchang
  52. *
  53. * Executable statements
  54. *
  55. if (impr.ge.5) WRITE(IOIMP,*) 'Entrée dans topclp.eso'
  56. *
  57. * Initialisation et extension des segments JTOPO et JCOORD
  58. *
  59. IDIMP=IDIM+1
  60. * if (impr.gt.2) write(ioimp,185) 'npini,npcou,npmax=',npini,npcou
  61. * $ ,npmax
  62. lchang=.false.
  63. IF (npcou.NE.npini) THEN
  64. * write(ioimp,185) 'npini,npcou,npmax=',npini,npcou,npmax
  65. TOPINV=TRAVJ.TOPI
  66. npenle=0
  67. DO IP=NPINI+1,NPCOU
  68. IF (TDC(IP).LE.0) npenle=npenle+1
  69. ENDDO
  70. lchang=(npenle.gt.0)
  71. if (lchang) then
  72. jnno=travj.nno
  73. jcoord=travj.coord
  74. jcmetr=travj.cmetr
  75. JP=NPINI
  76. * JCOORD et INI JNNO
  77. DO IP=NPINI+1,NPCOU
  78. IF (TDC(IP).GT.0) THEN
  79. JP=JP+1
  80. JNNO.LECT(IP-NPINI)=JP
  81. DO IC=1,IDIMP
  82. JCOORD.XCOOR((JP-1)*IDIMP+IC)=
  83. $ JCOORD.XCOOR((IP-1)*IDIMP+IC)
  84. ENDDO
  85. IF (JCMETR.NE.0) THEN
  86. DO ININ=1,JCMETR.XIN(/1)
  87. JCMETR.XIN(ININ,JP)=JCMETR.XIN(ININ,IP)
  88. ENDDO
  89. ENDIF
  90. ENDIF
  91. ENDDO
  92. *pascher if (iveri.ge.2) then
  93. if (jp.ne.npcou-npenle) then
  94. write(ioimp,185) 'jp,npcou,npenle,npmax=',jp,npcou,npenle
  95. $ ,npmax
  96. goto 9999
  97. endif
  98. *pascher endif
  99. if (iveri.ge.1) then
  100. DO IP=NPCOU-NPENLE+1,NPCOU
  101. DO IC=1,IDIMP
  102. JCOORD.XCOOR((IP-1)*IDIMP+IC)=0.D0
  103. ENDDO
  104. IF (JCMETR.NE.0) THEN
  105. DO ININ=1,JCMETR.XIN(/1)
  106. JCMETR.XIN(ININ,IP)=0.D0
  107. ENDDO
  108. ENDIF
  109. ENDDO
  110. endif
  111. jtopo=travj.topo
  112. * JTOPO
  113. do iel=1,nvcou
  114. do ino=1,idimp
  115. inod=jtopo.num(ino,iel)
  116. if (inod.gt.npini) then
  117. jnod=JNNO.LECT(INOD-npini)
  118. jtopo.num(ino,iel)=jnod
  119. endif
  120. enddo
  121. enddo
  122. * TOPINV et SUP JNNO
  123. JP=NPINI
  124. DO IP=NPINI+1,NPCOU
  125. IF (TDC(IP).GT.0) THEN
  126. JP=JP+1
  127. JNNO.LECT(IP-NPINI)=0
  128. TDC(JP)=TDC(IP)
  129. TIC(JP)=TIC(IP)
  130. ENDIF
  131. ENDDO
  132. DO IP=NPCOU-NPENLE+1,NPCOU
  133. TDC(IP)=0
  134. TIC(IP)=-1
  135. ENDDO
  136. * dimensions
  137. npcou=npcou-npenle
  138. endif
  139. endif
  140. * if (impr.gt.2) then
  141. if (lchang) write(ioimp,185) 'topclp : npenle=',npenle
  142. * write(ioimp,185) 'topclp : npenle=',npenle
  143. * endif
  144. *
  145. * Normal termination
  146. *
  147. RETURN
  148. *
  149. * Format handling
  150. *
  151. 185 FORMAT (5X,A32,6I8)
  152. 186 FORMAT ('Segment ',A6,' ',A6,' ajusté de ',I6,' à ',I6)
  153. 187 FORMAT (5X,10I8)
  154. 188 FORMAT ('Apres point IELEM(',I2,',1)=',I6,' ; NBL=')
  155. 189 FORMAT ('Le noeud ',I2,'/',I2,' de IELEM de numero',I6
  156. $ ,' a le plus petit nb de voisins :',I3)
  157. *
  158. * Error handling
  159. *
  160. 9999 CONTINUE
  161. MOTERR(1:8)='TOPCLP '
  162. * 349 2
  163. *Problème non prévu dans le s.p. %m1:8 contactez votre assistance
  164. CALL ERREUR(349)
  165. RETURN
  166. *
  167. * End of subroutine TOPCLP
  168. *
  169. END
  170.  
  171.  
  172.  

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