Télécharger tasspo.eso

Retour à la liste

Numérotation des lignes :

tasspo
  1. C TASSPO SOURCE PV 22/01/10 21:15:05 11258
  2. C CE SOUS PROGRAMME A POUR DESSEIN D'ELIMINER DE LA MEMOIRE LES POINTS
  3. C NE POUVANT PLUS ETRE UTILISES.
  4. C
  5. SUBROUTINE TASSPO(ITLAC,ICOLAC,MELEME,mena,idonn)
  6. IMPLICIT INTEGER(I-N)
  7.  
  8. -INC PPARAM
  9. -INC CCOPTIO
  10. -INC CCGEOME
  11. -INC CCNOYAU
  12. -INC SMCOORD
  13. -INC SMELEME
  14. -INC CCASSIS
  15. SEGMENT ITLAC(0)
  16. CHARACTER*2 CARBID
  17. SEGMENT ICPR(nbpts)
  18. IF (LMNNOM.EQ.0) RETURN
  19. * nomlu est manipule par tassp2 via repert et ecpi
  20. * NOMLUS=NOMLU
  21. * POUR ETRE SUR QU'IL Y A UN ELEMENT DANS ITLAC
  22. if(nbesc.ne.0) segact ipiloc
  23. DO 30 I=1,LMNNOM
  24. IF (INOOB2(I).NE.'MAILLAGE') GOTO 30
  25. IP=INOOB1(I)
  26. IDEBCH=IPCHAR(IP)
  27. IFINCH=IPCHAR(IP+1)-1
  28. IF (ICHARA(IDEBCH:IFINCH).EQ.' ') GOTO 30
  29. MELEME=IOUEP2(I)
  30. IF (MELEME.EQ.0) GOTO 30
  31. SEGACT MELEME
  32. if (itypel.eq.22) goto 30
  33. IF( LISOUS(/1).EQ.0.AND.NUM(/2).EQ.0) go to 30
  34. CALL AJOU(ITLAC,MELEME)
  35. GOTO 31
  36. 30 CONTINUE
  37. 31 CONTINUE
  38. if(nbesc.ne.0) SEGDES,IPILOC
  39. segact mcoord
  40. SEGINI ICPR
  41. ICDOUR=0
  42. if (itlac(/1).ne.0) THEN
  43. i1=0
  44. do iv=1,itlac(/1)
  45. IVAL=ITLAC(iv)
  46. *SG Conformément à ce qui est fait dans assem1 et asns1, il
  47. *SG faut créer un MELEME identique à IVAL dont le premier LISOUS
  48. *SG est un point quelconque (non multiplicateur de Lagrange)
  49. *SG de IVAL
  50. ipt1=ival
  51. ipt3=ipt1
  52. segact ipt1
  53. nbsou1=max(1,ipt1.lisous(/1))
  54. do isou=1,nbsou1
  55. if (ipt1.lisous(/1).ne.0) ipt3=ipt1.lisous(isou)
  56. segact ipt3
  57. ** if (ipt3.itypel.ne.22.AND.ipt3.num(/2).ne.0) then
  58. ** i1=ipt3.num(1,1)
  59. ** goto 4865
  60. ** elseif (ipt3.itypel.eq.22.AND.
  61. if
  62. > (ipt3.num(/2).ge.1.and.ipt3.num(/1).ge.1) then
  63. i1=ipt3.num(1,1)
  64. goto 4865
  65. endif
  66. enddo
  67. enddo
  68. 4865 continue
  69. if (i1.EQ.0) call erreur(5)
  70. nbsous=0
  71. nbnn=1
  72. nbref=0
  73. nbelem=1
  74. segini meleme
  75. itypel=1
  76. num(1,1)=i1
  77. segdes meleme
  78. imelp=meleme
  79. nbsous=nbsou1+1
  80. nbref=0
  81. nbnn=0
  82. nbelem=0
  83. segini meleme
  84. lisous(1)=imelp
  85. ipt3=ipt1
  86. do isou=1,nbsou1
  87. if (ipt1.lisous(/1).ne.0) ipt3=ipt1.lisous(isou)
  88. lisous(isou+1)=ipt3
  89. segdes ipt3
  90. enddo
  91. segdes meleme
  92. ival=meleme
  93. CALL NUMOPT(IVAL,ICPR,ICDOUR)
  94. ELSE
  95. * lecture de noop qui est systematiquement mis par menage
  96. call lircha(carbid,0,iretou)
  97. if(iretou.eq.0) write(6,*) ' erreur inattendu tasspo'
  98. ENDIF
  99. CALL TASSP2(ITLAC,ICPR,ICDOUR,icolac,mena,idonn)
  100. * NOMLU=NOMLUS
  101. * creation du maillage resultat
  102. nbnn=1
  103. nbelem=icpr(/1)
  104. nbref=0
  105. nbsous=0
  106. segini meleme
  107. ipt=0
  108. do 100 ip=1,nbelem
  109. icp=icpr(ip)
  110. if (icp.ne.0) then
  111. ipt=ipt+1
  112. num(1,ipt)=icp
  113. icolor(ipt)=idcoul
  114. endif
  115. 100 continue
  116. nbelem=ipt
  117. segadj meleme
  118. itypel=1
  119. segsup icpr
  120. RETURN
  121. END
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  

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