Télécharger cpamel.eso

Retour à la liste

Numérotation des lignes :

cpamel
  1. C CPAMEL SOURCE PV 17/12/05 21:15:33 9646
  2. subroutine cpamel(pMelem,lisNoe,seg2pi,bu,bufPos)
  3. C=======================================================================
  4. C COLlaborateur PAQuettage MELeme
  5. C Ajout du maillage pMeleme dans le buffer d'envoi bu
  6. C Les numeros de noeuds sont "traduit" par la
  7. C corespondance lisNoe passé en argument
  8. C=======================================================================
  9. integer nbnn, nbelem, nbsous, nbref
  10. integer bufPos
  11. integer lonBuf
  12. integer iNoCo,iNoLo
  13. integer iNoeud,jNoeud,iRef,iSous
  14. integer ipoPi,iPoint
  15. integer sePGCD
  16.  
  17. -INC PPARAM
  18. -INC CCOPTIO
  19. -INC SMELEME
  20. -INC TMCOLAC
  21. segment BUFFER
  22. character ffer(lonBuf)
  23. endsegment
  24. segment LISNOD
  25. integer liste(nNoeud)
  26. endsegment
  27. pointeur pMelem.MELEME
  28. pointeur lisNoe.LISNOD
  29. pointeur bu.BUFFER
  30. pointeur seg2pi.ILISSE
  31.  
  32. C write(ioimp,*) 'Entre dans CPAMEL'
  33. if (pMelem.ne.0) then
  34. segact pMelem
  35. lonBuf=bu.ffer(/2)
  36. sePGCD=seg2pi.npgcd
  37. C write(ioimp,*)'Taille du buffer',lonBuf
  38. nbnn =pMelem.num(/1)
  39. nbelem=pMelem.num(/2)
  40. nbsous=pMelem.lisous(/1)
  41. nbref =pMelem.lisref(/1)
  42. C Ecriture du type d'element
  43. C write(ioimp,*)' Ecriture du type delement',pMelem.itypel
  44. call mpipaI(pMelem.itypel,1,bu,bufPos)
  45. C Ecriture du nombre de sous maillages
  46. C write(ioimp,*) 'Ecriture du nombre de sous maillages',nbsous
  47. call mpipaI(nbsous,1,bu,bufPos)
  48. C Ecriture du nombre de references
  49. C write(ioimp,*)'Ecriture du nombre de references',nbref
  50. call mpipaI(nbref,1,bu,bufPos)
  51. C Ecriture du nombre d'element / noeud par element
  52. C write(ioimp,*)'Ecriture du nombre d elements et noeud par element',
  53. C &nbnn,nbelem
  54. call mpipaI(nbnn,1,bu,bufPos)
  55. call mpipaI(nbelem,1,bu,bufPos)
  56. C Ecriture de la position des sous-maillages dans la pile
  57. C write(ioimp,*) 'Ecriture de la position des sous-maillages dans la
  58. C &pile'
  59. do iSous=1,nbsous
  60. C write(ioimp,*) 'Sous maillage :',iSous
  61. iPoint=pMelem.lisous(iSous)
  62. C write(ioimp,*) 'Pointeur: ',iPoint
  63. iPoPi= seg2pi.iliseg((iPoint-1)/sePGCD)
  64. call mpipaI(iPoPi,1,bu,bufPos)
  65. enddo
  66. C Ecriture de la position des references dans la pile
  67. C write(ioimp,*)'Ecriture de la position des references dans la pile'
  68. do iRef=1,nbref
  69. C write(ioimp,*) 'Reference :',iRef
  70. iPoint=pMelem.lisref(iRef)
  71. C write(ioimp,*) 'Pointeur: ',iPoint
  72. iPoPi= seg2pi.iliseg((iPoint-1)/sePGCD)
  73. C write(ioimp,*) 'Numeroa dans la pive: ',ipoPi
  74. call mpipaI(iPoPi,1,bu,bufPos)
  75. enddo
  76. C Ecriture de la connectivite
  77. C write(ioimp,*) 'Ecriture de la connectivite'
  78. do jNoeud=1,nbelem
  79. do iNoeud=1,nbnn
  80. C write(ioimp,*) 'element',jNoeud,'noeud',iNoeud
  81. iNoLo=pMelem.num(iNoeud,jNoeud)
  82. C write(ioimp,*) 'iNoLo',iNoLo
  83. iNoCo=lisNoe.liste(iNoLo)
  84. C write(ioimp,*) 'iNoCo',iNoCo
  85. call mpipaI(iNoCo,1,bu,bufPos)
  86. enddo
  87. enddo
  88.  
  89. C write(ioimp,*) 'Ecriture de la couleur'
  90. if(nbelem.gt.0) then
  91. call mpipaI(pMelem.icolor(1),nbelem,bu,bufPos)
  92. endif
  93. segdes pMelem
  94. else
  95. write(ioimp,*) 'Erreur: pointeur vers un objet MELEME nul'
  96. call erreur(5)
  97. endif
  98. C write(ioimp,*) 'Sortie de CPAMEL'
  99. end
  100.  
  101.  
  102.  
  103.  
  104.  

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