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

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