Download psolve.eso

Back to the list

   1 : C PSOLVE    SOURCE    GOUNAND   11/07/21    21:15:48     7046           
   2 :       SUBROUTINE PSOLVE(TRANS,KPREC,KMORS,KISA,INVDIA,ILUM,ILUI,Z,R)
   3 :       IMPLICIT REAL*8 (A-H,O-Z)
   4 :       IMPLICIT INTEGER (I-N)
   5 : C***********************************************************************
   6 : C NOM         : PSOLVE
   7 : C DESCRIPTION : Preconditionner solve : résoud un système avec 
   8 : C               un préconditionneur 
   9 : C               Fait l'interface pour les différents types de
  10 : C               préconditionneurs
  11 : C
  12 : C LANGAGE     : ESOPE
  13 : C AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  14 : C               mél : gounand@semt2.smts.cea.fr
  15 : C***********************************************************************
  16 : C APPELES          : 
  17 : C APPELES (E/S)    : 
  18 : C APPELES (BLAS)   :
  19 : C APPELES (CALCUL) :
  20 : C APPELE PAR       :
  21 : C***********************************************************************
  22 : C SYNTAXE GIBIANE    :
  23 : C ENTREES            :
  24 : C ENTREES/SORTIES    :
  25 : C SORTIES            :
  26 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  27 : C***********************************************************************
  28 : C VERSION    : v1, 09/02/2006, version initiale
  29 : C HISTORIQUE : v1, 09/02/2006, création
  30 : C HISTORIQUE :
  31 : C HISTORIQUE :
  32 : C***********************************************************************
  33 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  34 : C en cas de modification de ce sous-programme afin de faciliter
  35 : C la maintenance !
  36 : C***********************************************************************
  37 : -INC CCOPTIO
  38 : -INC SMMATRIK
  39 :       POINTEUR KMORS.PMORS,KISA.IZA
  40 :       POINTEUR INVDIA.IZA,ILUM.PMORS,ILUI.IZA
  41 :       POINTEUR Z.IZA,R.IZA
  42 : *
  43 :       CHARACTER*1        TRANS
  44 :       INTEGER IMPR,IRET
  45 : *     
  46 : * Executable statements
  47 : *
  48 :       IF (KPREC.EQ.0) THEN
  48 :          CALL GCOPY(R,Z)
  49 :       ELSEIF (KPREC.EQ.1) THEN
  50 :          N=INVDIA.A(/1)
  50 :          CALL PSDIAG(N,INVDIA.A,Z.A,R.A)
  51 :       ELSEIF (KPREC.EQ.2) THEN
  52 :          N=KMORS.IA(/1)-1
  53 :          NNZ=KMORS.JA(/1)
  53 :          CALL PSDILU(N,NNZ,KMORS.IA,KMORS.JA,KISA.A,
  54 :      $        INVDIA.A,
  55 :      $        Z.A,R.A)
  56 :       ELSEIF (KPREC.GE.3.AND.KPREC.LE.10) THEN
  57 :          N=KMORS.IA(/1)-1
  58 :          NNZ=KMORS.JA(/1)
  59 : *         N=ILUM.IA(/1)-1
  60 : *         NNZ=ILUM.JA(/1)
  60 :          CALL PSILU0(TRANS,N,NNZ,ILUM.IA,ILUM.JA,ILUI.A,
  61 :      $        Z.A,R.A)
  62 :       ELSE
  63 :          WRITE(IOIMP,*) 'KPREC=',KPREC,' not allowed'
  64 :          GOTO 9999
  65 :       ENDIF
  66 : *
  67 : * Normal termination
  68 : *
  69 :       RETURN
  70 : *
  71 : * Format handling
  72 : *
  73 : *
  74 : * Error handling
  75 : *
  76 :  9999 CONTINUE
  76 :       CALL ERREUR(5)
  77 :       WRITE(IOIMP,*) 'An error was detected in subroutine psolve'
  78 :       RETURN
  79 : *
  80 : * End of subroutine PSOLVE
  81 : *
  82 :       END
  83 : 
  84 :  
  85 :  
  86 :  

© Cast3M 2003 - All rights reserved.
Disclaimer