Download vari.eso

Back to the list

   1 : C VARI      SOURCE    CHAT      06/08/24    22:12:43     5529           
   2 :       SUBROUTINE VARI                                                           
   3 : *_______________________________________________________________________        
   4 : *                                                                               
   5 : *                     Calcul d'un champ variable                                
   6 : *                        ( MCHAML, CHPOINT )                               
   7 : *                                                                                                                                        
   8 : *                                                       
   9 : *    1 ère Possibilité                                                    
  10 : *    °°°°°°°°°°°°°°°°° 
  11 : *                                                                                              
  12 : *    Variation d'un champ en fonction d'une loi de variation               
  13 : *                                                                                              
  14 : *    CHEL2 = VARI ! MODL1 CHEL1 EVOL1   ! (MOT1) ;                              
  15 : *                 ! MODL1 CHPO1 EVOL1   !                                       
  16 : *    ou                                                                         
  17 : *    CHPO2 = VARI CHPO1 EVOL1 (MOT2); 
  18 : *
  19 : *    CHEL1  Champ donne, type MCHAML
  20 : *    CHPO1  Champ donne, type CHPOINT
  21 : *    EVOL1  Objet definissant la loi de variation, type EVOLUTION
  22 : *    MODL1  Modele de calcul, type MMODEL
  23 : *    MOT1   Objet de type MOT precisant le support du champ scalaire
  24 : *    MOT2   Nom a donner a la composante du CHPOINT resultat
  25 : *
  26 : *
  27 : *    2 eme Possibilité                                                    
  28 : *    °°°°°°°°°°°°°°°°° 
  29 : *
  30 : *    Variation d'un champ/element ayant un ou des composante(s)
  31 : *    de type EVOLUTION ou NUAGE en fonction d'un champ/point
  32 : *    ou d'un champ/element. Ce champ/point ou champ/element
  33 : *    ne doit avoir qu'une seul composante de nom quelconque.
  34 : *    (Exemple d'application : variation des caracteristiques
  35 : *    de matériaux en fonction de la température).
  36 : *                                                                           
  37 : *    CHEL2 = VARI 'NUAG' MODL1 CHEL1 CHEP1 (MOT1) ;                                                             
  38 : *                                                                               
  39 : *    CHEL1  Champ donne, type MCHAML
  40 : *    CHEP1  Champ donne, type CHPOINT ou MCHAML
  41 : *    MODL1  Modele de calcul, type MMODEL
  42 : *    MOT1   Objet de type MOT precisant le support du champ.
  43 : *           Si il est absent, le support du champ CHEL2
  44 : *           sera le support RIGIDITE 
  45 : *                                                                                                    
  46 : *______________________________________________________________________         
  47 : *                                                                               
  48 :       IMPLICIT INTEGER(I-N)
  49 :       IMPLICIT REAL*8 (A-H,O-Z)
  50 : -INC CCOPTIO                                                                    
  51 : -INC SMCOORD                                                                    
  52 : *                                                                               
  53 :       CHARACTER*8 MOCHAM(5),MOFLUI(21)
  54 :       CHARACTER*(4) MOT2
  55 :       CHARACTER*4 MONUAG(1)
  56 :       CHARACTER*72 CHAR                                                                                                                                  
  57 :       DATA MOFLUI/'CPLIQ   ','HLS     ','HVS     ','LATENT  ',
  58 :      &            'PSATT   ','PVAP    ','ROLIQ   ','ROVAP   ',
  59 :      &            'TLIQUID ','TSATP   ','ZVAP    ','TODIFF  ',
  60 : C!!  &            'TOCOND  '/
  61 :      &            'TOCOND  ','DHVDT   ','DHVDP   ','DHLDP   ',
  62 :      &            'DPSAT   ','DZVDP   ','DZVDT   ','DRVDP   ',
  63 :      &            'DRVDT   '/
  64 :       DATA MONUAG/'NUAG'/                                                          
  65 :       DATA MOCHAM/'NOEUD   ','GRAVITE ','RIGIDITE','MASSE   ',                  
  66 :      &            'STRESSES'/ 
  67 : *                                                                               
  68 :       INUAGE = 0
  69 :       IFLUI  = 0
  70 :       MICHE  = 1
  71 :       IPCHA1 = 0
  72 :       IPMODL = 0
  73 : *
  74 : *     On cherche une des entrées des tables de l'eau
  75 : *
  75 :       CALL LIRMOT(MOFLUI,21,IFLUI,0)
  76 :       IF (IERR.NE.0) GOTO 666                                                                             
  77 :       IF (IFLUI.NE.0) THEN
  77 :          CALL VARIO(IFLUI)
  78 :       ELSE
  79 : *
  80 : *     On cherche la présence du mot clé NUAG
  81 : *
  81 :       CALL LIRMOT(MONUAG,1,INUAGE,0)                                            
  82 :       IF (IERR.NE.0) GOTO 666                                                                             
  83 : *
  84 : *     Lecture d'un premier objet (CHPOINT, MMODEL)
  85 : *                                                                                                                                
  85 :       CALL LIROBJ('MMODEL',IPMODL,INUAGE,IRETM)
  86 :       IF(IERR.NE.0) RETURN                                       
  87 :       IF(IRETM.EQ.0) GOTO 110
  87 :       CALL LIROBJ('MCHAML ',IRET,INUAGE,IPOLI1)
  88 :       IF(IERR.NE.0) RETURN                                        
  89 :       IF(IPOLI1.EQ.0) GOTO 110
  90 :       MICHE=0                                                                   
  91 :       IF(INUAGE.EQ.1) GOTO 300                                                                                                                  
  92 :       GO TO 200                                                             
  93 : *                                                                               
  93 : 110   CALL LIROBJ('CHPOINT ',IRET,0,IPOLI1)                                     
  94 :       IF(IPOLI1.EQ.0) GOTO 120
  95 :       GO TO 200                                                                 
  96 : C                                                                               
  97 : C    PAS D OPERANDE CORRECTE TROUVE                                             
  98 : C                                                                               
  98 : 120   CALL QUETYP(MOTERR(1:8),0,IRETOU)                                         
  99 :       IF(IRETOU.NE.0) THEN                                                      
  99 :          CALL ERREUR (39)                                                       
 100 :       ELSE                                                                      
 100 :          CALL ERREUR(533)                                                       
 101 :       ENDIF                                                                     
 102 :       RETURN                                                                    
 103 : *                                                                               
 104 : 200   IRE1=IRET                                                                 
 105 : *                                                                               
 106 : *     Lecture d'un objet EVOLUTION                                              
 107 : *                                                                               
 107 :       CALL LIROBJ('EVOLUTIO',IRET,1,IPOLI2)                                     
 108 :       IF(IERR.NE.0) RETURN                                                                                                                         
 109 :       IRE2=IRET 
 110 :       GOTO 310 
 111 : *
 112 : 300   IRE1=IRET                                                                 
 113 : *                                                                               
 114 : *     Lecture d'un objet CHPOINT ou MCHAML (variation NUAGE)                                             
 115 : * 
 115 :       CALL LIROBJ('MCHAML ',IRET,0,IPOLI2)                                     
 116 :       IF(IERR.NE.0) RETURN
 117 :       IF(IPOLI2.NE.0) THEN 
 118 :         MICHE2=0                                                                                                                            
 119 :         IRE2=IRET 
 120 :         GOTO 320
 121 :       ENDIF                                                                              
 121 :       CALL LIROBJ('CHPOINT ',IRET,1,IPOLI2)                                     
 122 :       IF(IERR.NE.0) RETURN
 123 :       MICHE2=1
 124 :       IRE2=IRET 
 125 :       GOTO 320 
 126 : *                                                                                                                               
 127 : 310   CONTINUE                                                                          
 128 :       IF (MICHE.EQ.1.AND.IPMODL.EQ.0) THEN                                      
 129 : *                                                                               
 130 : *        Le resultat est un CHPOINT                                                                                                                            
 131 : *        Lecture optionnelle d'un mot (nom de composante)                      
 132 : *                                                                               
 132 :          CALL LIRCHA(MOT2,0,IRETOU)                                             
 133 :          IF(IERR.NE.0) RETURN                                                                                                                                 
 133 :          CALL VARIPO(IRE1,IRE2,MOT2,IRET)                                       
 133 :          IF(IRET.NE.0) CALL ECROBJ('CHPOINT ',IRET)                             
 134 :          RETURN                                                                 
 135 :       ENDIF                                                                     
 136 : *                                                                               
 137 : *     Lecture optionnelle d'un nom de support                                   
 138 : *                                                                               
 139 : 320   JEMIL=0                                                                   
 139 :       CALL LIRMOT(MOCHAM,5,JEMIL,0)                                             
 140 :       IF(JEMIL.EQ.0.) JEMIL=3
 141 : *                                                                               
 142 : *     Lecture optionnelle d'un sous-type                                   
 143 : * 
 143 :       CALL LIRCHA(CHAR,0,IRETOU)                                                
 144 :       IF(IERR.NE.0) RETURN                                                      
 145 :       IF (IRETOU.EQ.0) CHAR=' ' 
 146 : *                                                                               
 147 : *     Le resultat sera un MCHAML                                 
 148 : *     
 149 :       IF(INUAGE.EQ.0) THEN                                                                          
 149 :         CALL VARICA(IRE1,IRE2,IPMODL,IRET,MICHE,JEMIL) 
 150 :       ELSE
 150 :         CALL VARINU(IRE1,IRE2,IPMODL,IRET,MICHE2,JEMIL,CHAR)
 151 :       ENDIF                           
 152 :       IF(IRET.NE.0) THEN                                                                                                                         
 152 :         CALL ECROBJ('MCHAML',IRET)                                                                                                        
 153 :       ENDIF                                                                                                                                                                              
 154 :       ENDIF                                                                                                                                                                              
 155 : 666   CONTINUE
 156 :       RETURN
 157 :       END                                                                       
 158 :  
 159 :  
 160 :  
 161 :  

© Cast3M 2003 - All rights reserved.
Disclaimer