Télécharger psolve.eso

Retour à la liste

Numérotation des lignes :

psolve
  1. C PSOLVE SOURCE PV 20/09/26 21:19:38 10724
  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.  
  38. -INC PPARAM
  39. -INC CCOPTIO
  40. POINTEUR KMORS.PMORS,KISA.IZA
  41. POINTEUR INVDIA.IZA,ILUM.PMORS,ILUI.IZA
  42. POINTEUR Z.IZA,R.IZA
  43. *
  44. CHARACTER*1 TRANS
  45. INTEGER IMPR,IRET
  46. *
  47. * Executable statements
  48. *
  49. IF (KPREC.EQ.0) THEN
  50. CALL GCOPY(R,Z)
  51. ELSEIF (KPREC.EQ.1) THEN
  52. N=INVDIA.A(/1)
  53. CALL PSDIAG(N,INVDIA.A,Z.A,R.A)
  54. ELSEIF (KPREC.EQ.2) THEN
  55. N=KMORS.IA(/1)-1
  56. NNZ=KMORS.JA(/1)
  57. CALL PSDILU(N,NNZ,KMORS.IA,KMORS.JA,KISA.A,
  58. $ INVDIA.A,
  59. $ Z.A,R.A)
  60. ELSEIF (KPREC.GE.3.AND.KPREC.LE.10) THEN
  61. N=KMORS.IA(/1)-1
  62. NNZ=KMORS.JA(/1)
  63. * N=ILUM.IA(/1)-1
  64. * NNZ=ILUM.JA(/1)
  65. CALL PSILU0(TRANS,N,NNZ,ILUM.IA,ILUM.JA,ILUI.A,
  66. $ Z.A,R.A)
  67. ELSE
  68. WRITE(IOIMP,*) 'KPREC=',KPREC,' not allowed'
  69. GOTO 9999
  70. ENDIF
  71. *
  72. * Normal termination
  73. *
  74. RETURN
  75. *
  76. * Format handling
  77. *
  78. *
  79. * Error handling
  80. *
  81. 9999 CONTINUE
  82. CALL ERREUR(5)
  83. WRITE(IOIMP,*) 'An error was detected in subroutine psolve'
  84. RETURN
  85. *
  86. * End of subroutine PSOLVE
  87. *
  88. END
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  

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