Télécharger gmomv.eso

Retour à la liste

Numérotation des lignes :

gmomv
  1. C GMOMV SOURCE PV 20/09/26 21:17:08 10724
  2. SUBROUTINE GMOMV(IMVEC,TRANS,ALPHA,KMORS,KISA,X,BETA,Y)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : GMOMV
  7. C DESCRIPTION : Interface à DMOMV parallèle
  8. C
  9. C
  10. C
  11. C LANGAGE : ESOPE
  12. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  13. C mél : gounand@semt2.smts.cea.fr
  14. C***********************************************************************
  15. C APPELES :
  16. C APPELES (E/S) :
  17. C APPELES (BLAS) :
  18. C APPELES (CALCUL) :
  19. C APPELE PAR :
  20. C***********************************************************************
  21. C SYNTAXE GIBIANE :
  22. C ENTREES :
  23. C ENTREES/SORTIES :
  24. C SORTIES :
  25. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  26. C***********************************************************************
  27. C VERSION : v1, 09/02/2006, version initiale
  28. C HISTORIQUE : v1, 09/02/2006, création
  29. C HISTORIQUE : 08/01/2008, ajout petit parallélisme
  30. C HISTORIQUE :
  31. C***********************************************************************
  32. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  33. C en cas de modification de ce sous-programme afin de faciliter
  34. C la maintenance !
  35. C***********************************************************************
  36.  
  37. -INC PPARAM
  38. -INC CCOPTIO
  39. POINTEUR KMORS.PMORS
  40. POINTEUR KISA.IZA
  41. POINTEUR X.IZA,Y.IZA
  42. -INC CCASSIS
  43. CHARACTER*1 TRANS
  44. LOGICAL LSAME
  45. EXTERNAL LSAME
  46. EXTERNAL GMOMVI
  47. COMMON/CGMOMV/xac,xbc,kmorsc,kisac,kxc,kyc,itran,nbthr,imvecc
  48. *
  49. INTEGER IMPR,IRET
  50. PARAMETER (NGRAND=100000)
  51. LOGICAL LPARA
  52. *
  53. * Executable statements
  54. *
  55. N =KMORS.IA(/1)-1
  56. *
  57. LPARA=.TRUE.
  58. if (.NOT.LSAME(TRANS,'N')) THEN
  59. itran=1
  60. else
  61. itran=0
  62. ENDIF
  63. IF (ITRAN.EQ.1) LPARA=.FALSE.
  64. * IF (N.LT.NGRAND) LPARA=.FALSE.
  65. IF (IMVEC.EQ.0) LPARA=.FALSE.
  66. * WRITE(IOIMP,*) 'LPARA=',LPARA
  67. * IF (N.GT.NGRAND) THEN
  68. IF (LPARA) THEN
  69. * Parallélisme recopié de chole3
  70. xac=alpha
  71. xbc=beta
  72. kmorsc=kmors
  73. kisac=kisa
  74. kxc=x
  75. kyc=y
  76. imvecc=imvec
  77. *
  78. nbthro=nbthrs
  79. if (nbthro.gt.1) call threadii
  80. nbthr=nbthro
  81. if (nbthr.gt.1) then
  82. do ithr=1,nbthr
  83. call threadid(ithr,gmomvi)
  84. enddo
  85. do ithr=1,nbthr
  86. call threadif(ithr)
  87. enddo
  88. else
  89. do ithr=1,nbthr
  90. call gmomvi(ithr)
  91. enddo
  92. endif
  93. if (nbthr.gt.1) call threadis
  94. ELSE
  95. NNZ =KMORS.JA(/1)
  96. CALL DMOMV(TRANS,N,ALPHA,
  97. $ NNZ,KMORS.IA,KMORS.JA,KISA.A,
  98. $ X.A,BETA,Y.A)
  99. ENDIF
  100. *
  101. * Normal termination
  102. *
  103. RETURN
  104. *
  105. * End of subroutine GMOMV
  106. *
  107. END
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  

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