Télécharger dbbcf.eso

Retour à la liste

Numérotation des lignes :

dbbcf
  1. C DBBCF SOURCE CB215821 20/11/25 13:24:02 10792
  2. * dedualise les valeurs d'un champ en fonction d'un meleme de dedoublement de noeuds
  3. *
  4. subroutine dbbcf(mchpoi,ipt8)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7.  
  8. -INC PPARAM
  9. -INC CCOPTIO
  10. -INC SMELEME
  11. -INC SMCHPOI
  12. -INC SMCOORD
  13. segment valc(ipt8.num(/2))
  14. segment ivalc(ipt8.num(/2))
  15. segment trav
  16. integer lag1(nbpts)
  17. endsegment
  18. * ne fonctionne que pour des LX, on suppose qu'il n'y a qu'une inconnue
  19. * par noeud dédoublé
  20. if (ipt8.eq.0) return
  21. segact mchpoi,ipt8
  22. segini valc,ivalc
  23. segini trav
  24. do 300 i=1,ipt8.num(/2)
  25. lag1(ipt8.num(1,i))=i
  26. lag1(ipt8.num(2,i))=i
  27. 300 continue
  28. do 10 isoupo=1,ipchp(/1)
  29. msoupo=ipchp(isoupo)
  30. segact msoupo*mod
  31. if (nocomp(/2).ne.1) goto 11
  32. if (nocomp(1).ne.'LX') goto 11
  33. meleme=igeoc
  34. mpoval=ipoval
  35. segini,ipt1=meleme,mpova1=mpoval
  36. nbnn=ipt1.num(/1)
  37. nbelem=ipt1.num(/2)
  38. nbele=nbelem
  39. nbsous=0
  40. nbref=0
  41. ic=0
  42. do 100 j=1,nbele
  43. val=mpova1.vpocha(j,1)
  44. if (lag1(ipt1.num(1,j)).ne.0) then
  45. jj=lag1(ipt1.num(1,j))
  46. valc(jj)=valc(jj)+val
  47. if (ivalc(jj).ne.0) then
  48. ipt1.num(1,ivalc(jj))=ipt8.num(1,jj)
  49. mpova1.vpocha(ivalc(jj),1)=valc(jj)
  50. goto 100
  51. endif
  52. ivalc(jj)=ic+1
  53. endif
  54. 110 continue
  55. ic=ic+1
  56. ipt1.num(1,ic)=ipt1.num(1,j)
  57. mpova1.vpocha(ic,1)=val
  58. 100 continue
  59. nbelem=ic
  60. segadj ipt1
  61. n=ic
  62. nc=1
  63. segadj mpova1
  64. igeoc=ipt1
  65. ipoval=mpova1
  66. segsup mpoval
  67. 11 continue
  68. 10 continue
  69. segsup valc,ivalc,trav
  70. end
  71.  
  72.  
  73.  
  74.  
  75.  

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