Download super3.eso

Back to the list

   1 : C SUPER3    SOURCE    PV        13/10/23    21:15:09     7848           
   2 :       SUBROUTINE SUPER3(IPREL,IDERL,IPPV,IPPR,IDDR,IVPO,                        
   3 :      # IPPVV1,VAL,VAL1,IVPO1,NBNNMA,XMATRI,imasq)
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   6 :       DIMENSION IPPV(1),IVPO(1),IPPVV1(1),VAL(1),VAL1(1),IVPO1(1)            
   7 :       dimension imasq(1)
   8 : -INC SMRIGID
   9 : -INC CCHOLE
  10 :       IDD2=IPPV(1)                                                              
  11 :       DO 10 J=IPREL,IDERL                                                       
  12 :        ICOL=J-NBNNMA
  13 :        JID=J-IPREL+1                                                            
  14 :        IDD3=IPPV(JID+1)                                                         
  15 :        N2=IDD3-IDD2                                                             
  16 :        KD2=J-N2+1                                                              
  17 : c       KD2=J-N2
  18 :        N2J=IDD3-J                                                               
  19 :        KIDEP=IVPO(JID)                                                          
  20 : c       IBABA=MAX(IPPR,KD2+1)                      
  21 :        IBABA=MAX(IPPR,KD2)   
  22 :        IF (IBABA.GT.IDDR) GOTO 30                                  
  23 :        IDEB4=2*IPPVV1(IBABA-IPPR+1)                                             
  24 :        IDD=IVPO1(IDEB4-1)                                                       
  25 :        DO 20 JHY=IBABA,IDDR
  26 :         ILIG=JHY-NBNNMA                                                     
  27 :         ILM=JHY-IPPR+1                                                          
  28 :         IDEB3=2*IPPVV1(ILM+1)                                                   
  29 :         NNJJ=IVPO1(IDEB3-1)                                                     
  30 :         N=NNJJ-IDD                                                              
  31 :         KD1=1+JHY-N                                                             
  32 :         IDEP=MAX(KD2,KD1)                                                       
  33 :         LLOL=JHY-IDEP                                                           
  34 :         I1=JHY+N2J                                                              
  35 :         LLON=MIN(LLOL-I1+KIDEP+1,NBNNMA-IDEP+1)
  36 : *  on compare a la diagonale de la colonne
  37 :         DNORM=ABS(VAL1(IVPO1(IDEB3)-1))*1D-15
  38 :         IF (LLON.GT.0) THEN                                                     
  39 :          IPOSM=N-LLOL+IDD-2                                                     
  40 :          IPLAC2=N2J+IDEP-1                                                      
  41 :          idebzc=ivpo1(ideb3)
  42 :          p=0.D0
  43 :          DO 2 IDEB2=IDEB3,IDEB4+2,-2                                          
  44 :           IAUX=IVPO1(IDEB2-3)-IPOSM                                             
  45 :           IPLAC=IVPO1(IDEB2-2)-IAUX                                             
  46 :           IFINZ=MIN(IDEBZC-1,LLON+IPLAC)                                        
  47 :           IDEBZC=MAX(1,IAUX)+IPLAC                                              
  48 :           IPLAC3=IPLAC2-IPLAC                                                   
  49 :           lond=ifinz-idebzc+1
  50 :         if (lond.GT.0) then
  51 :         ideq=IDEBZC+IPLAC3
  52 :         if (IFINZ-IDEBZC.GT.masdim) then
  53 :          if (-imasq(ideq/masdim+1).le.ideq+lond-1)
  54 :      >  p=p+ddotpw(lond,VAL(ideq),VAL1(IDEBZC),
  55 :      >      imasq(1),ideq)
  56 :         else
  57 :          if (imasq(ideq/masdim+1).gt.0.or.
  58 :      >       imasq((ifinz+iplac3)/masdim+1).gt.0)
  59 :      >  p=p+ddotpv(lond,VAL(ideq),VAL1(IDEBZC))
  60 :         endif
  61 :         endif
  62 :           IF (IAUX.LE.1) GOTO 3                                                 
  63 :    2     CONTINUE                                                               
  64 :     3     CONTINUE
  65 :          if (abs(p).LT.dnorm.and.imasq(i1/masdim+1).le.0) goto 5
  66 :          VAL(I1)=VAL(I1)-P
  67 :         ENDIF                                                                   
  68 :         IF (ABS(VAL(I1)).GT.DNORM) THEN
  69 :           if (imasq(i1/masdim+1).le.0) imasq(i1/masdim+1)=1
  70 :           KIDEP=I1                                     
  71 :           RE(ILIG,ICOL,1)=VAL(I1)
  72 :           RE(ICOL,ILIG,1)=VAL(I1)
  73 :         ENDIF
  74 :    5    CONTINUE
  75 :         IDEB4=IDEB3                                                             
  76 :         IDD=NNJJ                                                                
  77 :   20   CONTINUE                                                                 
  78 :   30   CONTINUE                                                                 
  79 :        IVPO(JID)=KIDEP                                                          
  80 :        IDD2=IDD3                                                                
  81 :   10  CONTINUE                                                                  
  82 :       RETURN                                                                    
  83 :       END                                                                       
  84 :  
  85 :  
  86 :  
  87 :  
  88 :  
  89 :  
  90 :  
  91 :  
  92 :  
  93 :  
  94 :  

© Cast3M 2003 - All rights reserved.
Disclaimer