Download gmomv.eso

Back to the list

   1 : C GMOMV     SOURCE    GOUNAND   11/10/07    21:15:28     7149           
   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 : -INC CCOPTIO
  37 : -INC SMMATRIK
  38 :       POINTEUR KMORS.PMORS
  39 :       POINTEUR KISA.IZA
  40 :       POINTEUR X.IZA,Y.IZA
  41 : -INC CCASSIS
  42 :       CHARACTER*1        TRANS
  43 :       LOGICAL            LSAME
  44 :       EXTERNAL           LSAME
  45 :       EXTERNAL GMOMVI
  46 :       COMMON/CGMOMV/xac,xbc,kmorsc,kisac,kxc,kyc,itran,nbthr,imvecc
  47 : *
  48 :       INTEGER IMPR,IRET
  49 :       PARAMETER (NGRAND=100000)
  50 :       LOGICAL LPARA
  51 : *     
  52 : * Executable statements
  53 : *
  54 :       N =KMORS.IA(/1)-1
  55 : *
  56 :       LPARA=.TRUE.
  57 :       if (.NOT.LSAME(TRANS,'N')) THEN
  58 :          itran=1
  59 :       else
  60 :          itran=0
  61 :       ENDIF
  62 :       IF (ITRAN.EQ.1) LPARA=.FALSE.
  63 : *      IF (N.LT.NGRAND) LPARA=.FALSE.
  64 :       IF (IMVEC.EQ.0) LPARA=.FALSE.
  65 : *      WRITE(IOIMP,*) 'LPARA=',LPARA
  66 : *      IF (N.GT.NGRAND) THEN
  67 :       IF (LPARA) THEN
  68 : * Parallélisme recopié de chole3
  69 :          xac=alpha
  70 :          xbc=beta
  71 :          kmorsc=kmors
  72 :          kisac=kisa
  73 :          kxc=x
  74 :          kyc=y
  75 :          imvecc=imvec
  76 : *
  77 :          nbthro=max(nbesc,1)
  77 :          if (nbthro.gt.1) call threadii
  78 :          nbthr=nbthro
  79 :          if (nbthr.gt.1) then
  80 :             do ithr=1,nbthr
  80 :                call threadid(ithr,gmomvi)
  81 :             enddo
  82 :             do ithr=1,nbthr
  82 :                call threadif(ithr)
  83 :             enddo
  84 : *  en multithread il peut y avoir n'importe quoi dans oov(1) du
  85 : *  aux acces simultanés et ca crache gemat. donc :
  86 :             oov(1)=0
  87 :          else
  88 :             do ithr=1,nbthr
  88 :                call gmomvi(ithr)
  89 :             enddo
  90 :          endif
  90 :          if (nbthr.gt.1) call threadis
  91 :       ELSE
  92 :          NNZ =KMORS.JA(/1)
  92 :          CALL DMOMV(TRANS,N,ALPHA, 
  93 :      $        NNZ,KMORS.IA,KMORS.JA,KISA.A,
  94 :      $        X.A,BETA,Y.A)
  95 :       ENDIF
  96 : *
  97 : * Normal termination
  98 : *
  99 :       RETURN
 100 : *
 101 : * End of subroutine GMOMV
 102 : *
 103 :       END
 104 : 
 105 :  
 106 :  
 107 :  
 108 :  
 109 :  

© Cast3M 2003 - All rights reserved.
Disclaimer