Download sopapf.eso

Back to the list

   1 : C SOPAPF    SOURCE    FANDEUR   10/12/14    21:19:46     6812           
   2 :       SUBROUTINE SOPAPF(MSOLUT,IPAS,ITAB,ITBBE2,IFORM)                          
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   5 : C--------------------------------------------------------------------           
   6 : C   SORTIE PAS A PAS D UN MSOLUT : SORTIE DU PAS IPAS                           
   7 : C                                                                               
   8 : C   APPELE  PAR   : SOPAPF                                                      
   9 : C   APPELE        : ECDES ECDIFE ECDIFR                                         
  10 : C   PROGRAMME PAR : FARVAC -REPRIS PAR LENA                                     
  11 : C--------------------------------------------------------------------           
  12 : -INC CCOPTIO                                                                    
  13 : -INC SMSOLUT                                                                    
  14 : -INC SMCHPOI                                                                    
  15 : 
  16 :       SEGMENT/ITAB/(TAB(N1),ITABB(N2))                                          
  17 :       SEGMENT/ITBBE2/(ITABE2(NN))                                               
  18 :       DATA IQUOI/1/                                                             
  19 : C--------------------------------------------------------------------           
  20 : C     WRITE(IOSAU,8003) IQUOI                                                   
  20 :       CALL ECDES (IOSAU,IQUOI,IFORM)                                            
  21 :       SEGACT MSOLUT                                                             
  22 :       SEGACT ITAB,ITBBE2                                                        
  23 :       N1=TAB(/1)                                                                
  24 :       N2=ITABB(/1)                                                              
  25 :       DO 11 I=1,N1                                                              
  26 :   11  TAB(I)=0.                                                                 
  27 :       DO 17 I=1,N2                                                              
  28 :   17  ITABB(I)=0                                                                
  29 : C                                                                               
  30 : C     CAS D UN MODE                                                             
  31 : C                                                                               
  32 :       IF(ITYSOL.NE.'MODE    ') GOTO 12                                          
  33 :       MSOLEN=MSOLIS(4)                                                          
  34 :       SEGACT MSOLEN                                                             
  35 :       MMODE=ISOLEN(IPAS)                                                        
  36 :       SEGACT MMODE                                                              
  37 :       TAB(3)=FMMODD(1)                                                          
  38 :       TAB(4)=FMMODD(2)                                                          
  39 :       TAB(5)=FMMODD(3)                                                          
  40 :       TAB(6)=FMMODD(4)                                                          
  41 :       TAB(7)=FMMODD(5)                                                          
  42 :       ITABB(1)=IMMODD(1)                                                        
  43 :       ITABB(2)=IMMODD(2)                                                        
  44 :       ITABB(3)=IMMODD(3)                                                        
  45 :       SEGDES MMODE,MSOLEN                                                       
  46 :       GOTO 20                                                                   
  47 : C                                                                               
  48 : C      CAS D UN DYNAMIQUE                                                       
  49 : C                                                                               
  50 :  12   IF(ITYSOL.NE.'DYNAMIQU') GOTO 13                                          
  51 :       MSOLRE=MSOLIS(1)                                                          
  52 :       SEGACT MSOLRE                                                             
  53 :       TAB(2)=SOLRE(IPAS)                                                        
  54 :       SEGDES MSOLRE                                                             
  55 :       MSOLEN=MSOLIS(2)                                                          
  56 :       IF(MSOLEN.EQ.0) GOTO 20                                                   
  57 :       SEGACT MSOLEN                                                             
  58 :       ITABB(1)=ISOLEN(IPAS)                                                     
  59 :       SEGDES MSOLEN                                                             
  60 :       GOTO 20                                                                   
  61 :  13   CONTINUE                                                                  
  62 :       GOTO 20                                                                   
  63 : C                                                                               
  64 : C     DANS TOUS LES CAS                                                         
  65 : C                                                                               
  66 :  20   CONTINUE                                                                  
  67 :       NIPO1=ITABB(/1)-4                                                         
  68 :       DO 21 I=NIPO1+2,ITABE2(/1)                                                
  69 :   21  ITABE2(I)=0                                                               
  70 :       DO 22 I=1,NIPO1                                                           
  71 :       II=I+4                                                                    
  72 :       MSOLEN=MSOLIS(II)                                                         
  73 :       IF(MSOLEN.EQ.0) GOTO 23                                                   
  74 :       SEGACT MSOLEN                                                             
  75 :       IM=ISOLEN(IPAS)                                                           
  76 :       ITABE2(I+NIPO1+1)=IM                                                      
  77 :       SEGDES MSOLEN                                                             
  78 :       IF(IM.EQ.0) GO TO 23                                                      
  79 :       ITABB(I+4)=ITABB(I+3)+ITABE2(I+1)-ITABE2(I)                               
  80 :       GOTO 22                                                                   
  81 :   23  CONTINUE                                                                  
  82 :       ITABB(I+4)=ITABB(I+3)                                                     
  83 :   22  CONTINUE                                                                  
  83 :       CALL ECDIFR(IOSAU,N1,TAB,IFORM)                                           
  83 :       CALL ECDIFE(IOSAU,N2,ITABB,IFORM)                                         
  84 : C                                                                               
  85 :       DO 25 I=1,NIPO1                                                           
  86 :       IM=ITABE2(NIPO1+1+I)                                                      
  87 :       IF(IM.EQ.0) GOTO25                                                        
  88 :       ISOLIT=MSOLIT(I+4)                                                        
  89 :       IF(ISOLIT.NE.2) GOTO 200                                                  
  90 : C     CHPOINT +++++++++++++++++++++++++                                         
  91 :       MCHPOI=IM                                                                 
  92 :       SEGACT MCHPOI                                                             
  93 :       NSOU=IPCHP(/1)                                                            
  94 :       DO 101 ISOU=1,NSOU                                                        
  95 :       MSOUPO=IPCHP(ISOU)                                                        
  96 :       SEGACT MSOUPO                                                             
  97 :       MPOVAL=IPOVAL                                                             
  98 :       SEGACT MPOVAL                                                             
  99 :       L=VPOCHA(/1)*VPOCHA(/2)                                                   
  99 :       CALL ECDIFR(IOSAU,L,VPOCHA,IFORM)                                         
 100 :       SEGDES MPOVAL,MSOUPO                                                      
 101 :   101 CONTINUE                                                                  
 102 :       SEGDES MCHPOI                                                             
 103 :       GOTO 25                                                                   
 104 : C                                                                               
 105 :   200 IF(ISOLIT.NE.5) GOTO 300                                                  
 106 :       WRITE(IOIMP,*) 'SOPAPF : ISOLIT=5 CAS N ETANT PLUS UTILSE'
 107 : C                                                                               
 108 :  300  CONTINUE                                                                  
 109 :   25  CONTINUE                                                                  
 110 : C                                                                               
 111 :       SEGDES MSOLUT                                                             
 112 :       SEGDES ITAB,ITBBE2                                                        
 113 :       RETURN                                                                    
 114 :       END                                                                       
 115 :  
 116 :  

© Cast3M 2003 - All rights reserved.
Disclaimer