Download invalm.eso

Back to the list

   1 : C INVALM    SOURCE    CHAT      05/01/13    00:42:15     5004           
   2 :       SUBROUTINE INVALM(D,LL,MM,KERRE,PREC)                                     
   3 : C                                                                               
   4 : C         INVERSION D UNE MATRICE MM,MM CONTENUE DS UNE MATRICE LL,LL           
   5 : C          CETTE MATRICE EST DANS LE COIN SUPERIEUR GAUCHE                      
   6 : C                                                                               
   7 :       IMPLICIT INTEGER(I-N)
   8 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   9 :       DIMENSION D(1)                                                            
  10 : C                                                                               
  11 :       KERRE=0                                                                   
  12 :       DO 200 N=1,MM                                                             
  13 :       NN=LL*(N-1)+N                                                             
  14 :       DIAG=D(NN)                                                                
  15 :       IF(ABS(DIAG).LE.PREC) THEN                                                
  16 :       KERRE=49                                                                  
  17 :       RETURN                                                                    
  18 :       ENDIF                                                                     
  19 :       DIAG=1./DIAG                                                              
  20 :       DO 100 J=1,MM                                                             
  21 :       NJ=LL*(N-1)+J                                                             
  22 :   100 D(NJ)=-D(NJ)*DIAG                                                         
  23 :       DO 150 I=1,MM                                                             
  24 :       IN=LL*(I-1)+N                                                             
  25 :       IF(I.EQ.N) GO TO 150                                                      
  26 :       DO 140 J=1,MM                                                             
  27 :       IF(J.EQ.N) GO TO 140                                                      
  28 :       NJ=LL*(N-1)+J                                                             
  29 :       IJ=LL*(I-1)+J                                                             
  30 :       D(IJ)=D(IJ)+D(IN)*D(NJ)                                                   
  31 :   140 CONTINUE                                                                  
  32 :   150 D(IN)=D(IN)*DIAG                                                          
  33 :   200 D(NN)=DIAG                                                                
  34 :       RETURN                                                                    
  35 :       END                                                                       
  36 :  

© Cast3M 2003 - All rights reserved.
Disclaimer