Télécharger cham11.eso

Retour à la liste

Numérotation des lignes :

  1. C CHAM11 SOURCE CB215821 20/01/16 21:15:03 10495
  2. SUBROUTINE CHAM11(NBTHL,ITHR,MCHPOI,ICPR,MTRA2)
  3.  
  4.  
  5. -INC PPARAM
  6. -INC CCOPTIO
  7. -INC SMCHPOI
  8. -INC SMELEME
  9.  
  10. CHARACTER*4 MO4
  11.  
  12. SEGMENT ICPR(NNNN)
  13.  
  14. SEGMENT MTRA2
  15. C Copie du CHPOINT dans MTRA2 pour aller plus vite ensuite
  16. CHARACTER*4 INCO(N2)
  17. REAL*8 BB(NX,N2)
  18. C INCO : Nom des INCONNUES du CHPOINT
  19. C BB : Valeurs au noeuds du MMODEL (associees au ICPR)
  20. C NX : Nombre de noeuds differents dans le MODELE
  21. C N2 : Nombre de composantes dans le CHPOINT
  22. ENDSEGMENT
  23.  
  24. C Copie du CHPOINT dans MTRA2 pour accelerer le travail ensuite !
  25. NSOUPO=IPCHP(/1)
  26. NCO =MTRA2.INCO(/2)
  27. DO 20 ISOUPO=1,NSOUPO
  28. MSOUPO=IPCHP(ISOUPO)
  29. NC =MSOUPO.NOHARM(/1)
  30. MELEME=IGEOC
  31. MPOVAL=IPOVAL
  32. NBELEM=NUM(/2)
  33.  
  34. C On assure le travail contigu en memoire (Si // sur les threads)
  35. IF(NBTHL .EQ. 1)THEN
  36. IDEB = 1
  37. IFIN = NBELEM
  38.  
  39. ELSE
  40. NBTHR= MIN(NBELEM,NBTHL)
  41. IF(ithr .GT. NBTHR) GOTO 20
  42. IRES = MOD(NBELEM,NBTHR)
  43. IF(IRES .EQ. 0)THEN
  44. ILON = NBELEM / NBTHR
  45. IDEB = (ithr-1)* ILON + 1
  46. ELSE
  47. IF (ithr .LE. IRES) THEN
  48. ILON = (NBELEM / NBTHR) + 1
  49. IDEB = (ithr-1)* ILON + 1
  50. ELSE
  51. ILON = NBELEM / NBTHR
  52. IDEB = (IRES * (ILON+1)) + (ithr-IRES-1)* ILON + 1
  53. ENDIF
  54. ENDIF
  55. IFIN = IDEB + ILON - 1
  56. ENDIF
  57.  
  58. DO ICO=1,NC
  59. MO4=MSOUPO.NOCOMP(ICO)
  60. DO K=1,NCO
  61. IF(MO4 .EQ. MTRA2.INCO(K))GOTO 101
  62. ENDDO
  63. CALL ERREUR(5)
  64.  
  65. 101 CONTINUE
  66. DO IPOI=IDEB,IFIN
  67. INOEU=MELEME.NUM(1,IPOI)
  68. IPCPR=ICPR(INOEU)
  69. IF(IPCPR.NE.0)THEN
  70. MTRA2.BB(IPCPR,K)=MPOVAL.VPOCHA(IPOI,ICO)
  71. ENDIF
  72. ENDDO
  73. ENDDO
  74. 20 CONTINUE
  75. END
  76.  
  77.  
  78.  

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