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