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

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