Télécharger cupmod.eso

Retour à la liste

Numérotation des lignes :

  1. C CUPMOD SOURCE PV 17/10/03 21:15:16 9581
  2. subroutine cupmod(bu,bufPos,pModel)
  3. C=======================================================================
  4. C COLlaborateur UnPAQuettage MODele
  5. C Lecture d'un modele dans le buffer d'envoi bu
  6. C=======================================================================
  7. integer mn3,nlconmo,nfor,nmat,nObMod,nbrobl,nbrfac,n1
  8. integer iMod,iInfo,iNomid
  9. integer bufPos
  10. integer lonBuf
  11. integer iObl,iFac
  12. integer lconmo
  13. -INC CCOPTIO
  14. -INC SMMODEL
  15. segment BUFFER
  16. character ffer(lonBuf)
  17. endsegment
  18. pointeur pNomid.NOMID
  19. pointeur pModel.MMODEL
  20. pointeur modele.IMODEL
  21. pointeur bu.BUFFER
  22.  
  23. C write(ioimp,*) 'Entre dans CUPMOD'
  24. C write(ioimp,*) 'Position du buffer',bufPos
  25. lonBuf=bu.ffer(/2)
  26. call mpiupI(n1,1,bu,bufPos)
  27. if(pModel.ne.0)then
  28. segact pModel*mod
  29. segadj pModel
  30. else
  31. segini pModel
  32. endif
  33. if(n1.ne.0) then
  34. do iMod=1,n1
  35. C write(ioimp,*) 'Modele elem',iMod,'sur',n1
  36. call mpiupI(mn3,1,bu,bufPos)
  37. C write(ioimp,*) 'Position du buffer',bufPos
  38. call mpiupI(nlconmo,1,bu,bufPos)
  39. C write(ioimp,*) 'Position du buffer',bufPos
  40. call mpiupI(nfor,1,bu,bufPos)
  41. C write(ioimp,*) 'Position du buffer',bufPos
  42. call mpiupI(nmat,1,bu,bufPos)
  43. C write(ioimp,*) 'Position du buffer',bufPos
  44. call mpiupI(nObMod,1,bu,bufPos)
  45. C write(ioimp,*) 'Position du buffer',bufPos
  46. C write(ioimp,*) 'Taille du modele',mn3, nlconmo, nfor,nmat,nObMod
  47. segini modele
  48. pModel.kmodel(iMod)=modele
  49. C write(ioimp,*) 'ss modele', iMod, 'pointeur',modele
  50. call mpiupI( modele.imamod,1,bu,bufPos)
  51. call mpiupI( modele.nefmod,1,bu,bufPos)
  52. call mpiupI( modele.infmod(1),mn3,bu,bufPos)
  53. call mpiupC( modele.conmod,lconmo,bu,bufPos)
  54. call mpiupC( modele.cmatee,8,bu,bufPos)
  55. call mpiupC( modele.formod,16*nfor,bu,bufPos)
  56. call mpiupC( modele.matmod,16*nmat,bu,bufPos)
  57. call mpiupI( modele.ipdpge,1,bu,bufPos)
  58. call mpiupI( modele.imatee,1,bu,bufPos)
  59. call mpiupI( modele.inatuu,1,bu,bufPos)
  60. call mpiupI( modele.ideriv,1,bu,bufPos)
  61. do iNomid=1,14
  62. C write(ioimp,*) 'nomid',iNomid,'sur 14'
  63. call mpiupI( nbrobl,1,bu,bufPos)
  64. call mpiupI( nbrfac,1,bu,bufPos)
  65. segini pNomid
  66. modele.lnomid(iNomid)=pNomid
  67. call mpiupC(pNomid.lesobl(1),nbrobl*8,bu,bufPos)
  68. call mpiupC( pNomid.lesfac(1),nbrfac*8,bu,bufPos)
  69. do iObl=1,nbrObl
  70. C write(ioimp,*) 'Obl',iObl,'/',nbrobl,pNomid.lesobl(iObl)
  71. enddo
  72. do iFac=1,nbrFac
  73. C write(ioimp,*) 'Fac',iFac,'/',nbrFac,pNomid.lesFac(iFac)
  74. enddo
  75. C write(ioimp,*) 'Position du buffer',bufPos
  76. segdes pNomid
  77. enddo
  78. C write(ioimp,*) 'Nomids recus'
  79. C write(ioimp,*) 'Position du buffer',bufPos
  80. call mpiupI( modele.infele(1),16,bu,bufPos)
  81. C write(ioimp,*) 'Infele recus'
  82. C write(ioimp,*) 'Position du buffer',bufPos
  83. C write(ioimp,*) 'Nombre d objets',nObMod
  84. if(nObMod.gt.0) then
  85. call mpiupC( modele.tymode(1),nObMod*8,bu,bufPos)
  86. C write(ioimp,*) 'Liste des types recue'
  87. C write(ioimp,*) 'Position du buffer',bufPos
  88. call mpiupI( modele.ivamod(1),nObMod,bu,bufPos)
  89. C write(ioimp,*) 'Liste des pointeurs recue'
  90. C write(ioimp,*) 'Position du buffer',bufPos
  91. endif
  92. segdes modele
  93. enddo
  94. else
  95. write(ioimp,*) 'Modele vide'
  96. endif
  97.  
  98. segdes pModel
  99. C write(ioimp,*) 'Sortie de CUPMOD'
  100. C write(ioimp,*) 'Position du buffer',bufPos
  101. end
  102.  
  103.  
  104.  
  105.  

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