Télécharger psolve.eso

Retour à la liste

Numérotation des lignes :

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

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