Télécharger kres12.eso

Retour à la liste

Numérotation des lignes :

kres12
  1. C KRES12 SOURCE GOUNAND 22/08/25 21:15:05 11434
  2. SUBROUTINE KRES12(KMORS,KIZA,ISMBR,
  3. $ KTIME,LTIME,
  4. $ INCX,LRES,LNMV,ICVG,IMPR,INODET)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. IMPLICIT INTEGER (I-N)
  7. C***********************************************************************
  8. C NOM : KRES12
  9. C DESCRIPTION : - Méthode directe
  10. C
  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 VERSION : v1, 13/09/2011, version initiale
  17. C HISTORIQUE : v1, 13/09/2011, création
  18. C HISTORIQUE :
  19. C HISTORIQUE :
  20. C***********************************************************************
  21.  
  22. -INC PPARAM
  23. -INC CCOPTIO
  24. -INC SMLENTI
  25. POINTEUR LNMV.MLENTI
  26. POINTEUR ATYP.MLENTI
  27. -INC SMLREEL
  28. POINTEUR LRES.MLREEL
  29. POINTEUR AMORS.PMORS
  30. POINTEUR AISA.IZA
  31. -INC SMVECTD
  32. POINTEUR ISMBR.MVECTD
  33. POINTEUR INCX.MVECTD
  34. -INC SMTABLE
  35. POINTEUR KTIME.MTABLE
  36. DIMENSION ITTIME(4)
  37. CHARACTER*8 CHARI
  38. CHARACTER*1 CCOMP
  39. LOGICAL LTIME,LOGII
  40.  
  41. IVALI=0
  42. XVALI=0.D0
  43. LOGII=.FALSE.
  44. IRETI=0
  45. XVALR=0.D0
  46. IOBRE=0
  47. IRETR=0
  48. *
  49. * Executable statements
  50. *
  51. * WRITE(IOIMP,*) 'Entrée dans kres10.eso'
  52. ICVG=0
  53. LNMV=0
  54. LRES=0
  55. AMORS=KMORS
  56. AISA=KIZA
  57. *
  58. IF (LTIME) THEN
  59. call timespv(ittime,oothrd)
  60. ITI1=(ITTIME(1)+ITTIME(2))/10
  61. ENDIF
  62. C
  63. C Factorisation LDU de la matrice
  64. C
  65. C On crée quelques infos utilisées par TRIALU
  66. NRIGE=0
  67. NMATRI=0
  68. NKID=9
  69. NKMT=7
  70. SEGINI MATRIK
  71. * Ceci pourrait être optimisé
  72. MATRIK.KSYM=2
  73. NPT=0
  74. NTT=0
  75. NBLK=0
  76. SEGINI IDMAT
  77. MATRIK.KIDMAT(1)=IDMAT
  78. CALL TRIALU(MATRIK,AMORS,AISA,
  79. $ IDMAT,
  80. $ IMPR,IRET)
  81. if (ierr.ne.0) return
  82. IF (IRET.NE.0) THEN
  83. ICVG=-1
  84. GOTO 9999
  85. ENDIF
  86. IF (LTIME) THEN
  87. call timespv(ittime,oothrd)
  88. ITI2=(ITTIME(1)+ITTIME(2))/10
  89. ENDIF
  90. C
  91. C Obtention de la solution (montée-descente)
  92. C
  93. KS2B=ISMBR
  94. CALL REZOLU(IDMAT,
  95. $ KS2B,
  96. $ IMPR,IRET)
  97. if (ierr.ne.0) return
  98. IF (IRET.NE.0) GOTO 9999
  99. INCX=KS2B
  100. *
  101. IF (LTIME) THEN
  102. call timespv(ittime,oothrd)
  103. ITI3=(ITTIME(1)+ITTIME(2))/10
  104. ITP=ITI2-ITI1
  105. ITR=ITI3-ITI2
  106. CHARI='FACTORIS'
  107. CALL ECCTAB(KTIME,'MOT ',IVALI,XVALI,CHARI,LOGII,IRETI,
  108. $ 'ENTIER ',ITP,XVALR,CHARR,LOGIR,IRETR)
  109. CHARI='RESOLUTI'
  110. CALL ECCTAB(KTIME,'MOT ',IVALI,XVALI,CHARI,LOGII,IRETI,
  111. $ 'ENTIER ',ITR,XVALR,CHARR,LOGIR,IRETR)
  112. ENDIF
  113. C
  114. C Destruction de la factorisation
  115. C
  116. IF (MATRIK.NE.0) SEGSUP MATRIK
  117. IF (IDMAT.NE.0) SEGSUP IDMAT
  118. C
  119. C Destruction de la matrice Morse
  120. C
  121. IF (INODET.EQ.0) THEN
  122. SEGSUP AMORS
  123. SEGSUP AISA
  124. ENDIF
  125. *
  126. * Normal termination
  127. *
  128. RETURN
  129. *
  130. * Format handling
  131. *
  132. *
  133. * Error handling
  134. *
  135. 9999 CONTINUE
  136. MOTERR(1:8)='KRES12 '
  137. CALL ERREUR(349)
  138. RETURN
  139. *
  140. * End of subroutine KRES12
  141. *
  142. END
  143.  
  144.  

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