Download kres12.eso

Back to the list

   1 : C KRES12    SOURCE    GOUNAND   11/10/07    21:15:51     7149           
   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 : -INC CCOPTIO
  22 : -INC SMLENTI
  23 :       POINTEUR LNMV.MLENTI
  24 :       POINTEUR ATYP.MLENTI
  25 : -INC SMLREEL
  26 :       POINTEUR LRES.MLREEL
  27 : -INC SMMATRIK
  28 :       POINTEUR AMORS.PMORS
  29 :       POINTEUR AISA.IZA
  30 : -INC SMVECTD
  31 :       POINTEUR ISMBR.MVECTD
  32 :       POINTEUR INCX.MVECTD
  33 : -INC SMTABLE
  34 :       POINTEUR KTIME.MTABLE
  35 :       DIMENSION ITTIME(6)
  36 :       CHARACTER*8 CHARI
  37 :       CHARACTER*1 CCOMP
  38 :       LOGICAL LTIME
  39 : *     
  40 : * Executable statements
  41 : *
  42 : *      WRITE(IOIMP,*) 'Entrée dans kres10.eso' 
  43 :       ICVG=0
  44 :       LNMV=0
  45 :       LRES=0
  46 :       AMORS=KMORS
  47 :       AISA=KIZA
  48 : *
  49 :       IF (LTIME) THEN
  49 :          CALL TIMESPV(ITTIME)
  50 :          ITI1=(ITTIME(1)+ITTIME(2))
  51 :       ENDIF
  52 : C
  53 : C Factorisation LDU de la matrice
  54 : C
  55 : C On crée quelques infos utilisées par TRIALU
  56 :       NRIGE=0 
  57 :       NMATRI=0
  58 :       NKID=9
  59 :       NKMT=7
  60 :       SEGINI MATRIK
  61 : * Ceci pourrait être optimisé
  62 :       MATRIK.KSYM=2
  63 :       NPT=0
  64 :       NTT=0
  65 :       NBLK=0
  66 :       SEGINI IDMAT
  67 :       MATRIK.KIDMAT(1)=IDMAT
  67 :       CALL TRIALU(MATRIK,AMORS,AISA,
  68 :      $     IDMAT,
  69 :      $     IMPR,IRET)
  70 :       IF (IRET.NE.0) THEN
  71 :          ICVG=-1
  72 :          GOTO 9999
  73 :       ENDIF
  74 :       IF (LTIME) THEN
  74 :          CALL TIMESPV(ITTIME)
  75 :          ITI2=(ITTIME(1)+ITTIME(2))
  76 :       ENDIF
  77 : C
  78 : C Obtention de la solution (montée-descente)
  79 : C
  80 :       KS2B=ISMBR
  80 :       CALL REZOLU(IDMAT,
  81 :      $     KS2B,
  82 :      $     IMPR,IRET)
  83 :       IF (IRET.NE.0) GOTO 9999
  84 :       INCX=KS2B
  85 : *
  86 :       IF (LTIME) THEN
  86 :          CALL TIMESPV(ITTIME)
  87 :          ITI3=(ITTIME(1)+ITTIME(2))
  88 :          ITP=ITI2-ITI1
  89 :          ITR=ITI3-ITI2
  90 :          CHARI='FACTORIS'
  90 :          CALL ECCTAB(KTIME,'MOT     ',IVALI,XVALI,CHARI,LOGII,IRETI,
  91 :      $        'ENTIER  ',ITP,XVALR,CHARR,LOGIR,IRETR)
  92 :          CHARI='RESOLUTI'
  92 :          CALL ECCTAB(KTIME,'MOT     ',IVALI,XVALI,CHARI,LOGII,IRETI,
  93 :      $        'ENTIER  ',ITR,XVALR,CHARR,LOGIR,IRETR)
  94 :       ENDIF
  95 : C
  96 : C Destruction de la factorisation
  97 : C
  98 :       IF (MATRIK.NE.0) SEGSUP MATRIK
  99 :       IF (IDMAT.NE.0) SEGSUP IDMAT
 100 : C
 101 : C     Destruction de la matrice Morse
 102 : C
 103 :       IF (INODET.EQ.0) THEN
 104 :          SEGSUP AMORS
 105 :          SEGSUP AISA
 106 :       ENDIF
 107 : *
 108 : * Normal termination
 109 : *
 110 :       RETURN
 111 : *
 112 : * Format handling
 113 : *
 114 : *
 115 : * Error handling
 116 : *
 117 :  9999 CONTINUE
 118 :       MOTERR(1:8)='KRES12  '
 118 :       CALL ERREUR(349)
 119 :       RETURN
 120 : *
 121 : * End of subroutine KRES12
 122 : *
 123 :       END
 124 : 
 125 :  

© Cast3M 2003 - All rights reserved.
Disclaimer