Download fpfiss.eso

Back to the list

   1 : C FPFISS    SOURCE    CHAT      11/03/16    21:23:02     6902           
   2 :       SUBROUTINE FPFISS(P,IPCHE1,IPMODL,IPVECT,IPPOIN,IPCHE2,                   
   3 :      1                  IPTFP,IRET)                                             
   4 : C_____________________________________________________________________          
   5 : C                                                                               
   6 : C   CALCULE LES FORCES DE PRESSIONS APPLIQUEES SUR DES LEVRES D UNE             
   7 : C           FISSURE (ELT LINESPRING)                                            
   8 : C                                                                               
   9 : C   ENTREES :                                                                   
  10 : C   ---------                                                                   
  11 : C                                                                               
  12 : C       P        VALEUR DE LA PRESSION SI ELLE EST CONSTANTE                    
  13 : C       IPCHE1   CHPOINT CONTENANT LES VALEURS DES PRESSIONS AUX NOEUDS         
  14 : C       IPMODL   OBJET MMODEL SUR LEQUEL S APPLIQUE LA PRESSION                 
  15 : C       IPVECT   VECTEUR INDIQUANT LA DIRECTION DANS LAQUELLE                   
  16 : C                 S APPLIQUE LA PRESSION                                        
  17 : C       IPPOIN   POINT OU SE RAPPORTE LE VECTEUR                                
  18 : C       IPCHE2   MCHAML CONTENANT LES CARACTERISTIQUES                          
  19 : C                                                                               
  20 : C   SORTIE :                                                                    
  21 : C   --------                                                                    
  22 : C                                                                               
  23 : C       IPTFP    CHPOINT DES FORCES NODALES EQUIVALENTES                        
  24 : C       IRET     1 OU 0 SUIVANT SUCCES OU NON                                   
  25 : C                                                                               
  26 : C     REVISION JACQUELINE BROCHARD  SEPTEMBRE 86                                
  27 : C     PASSAGE AUX NOUVEAUX MCHAMLS PAR JM CAMPENON LE 05 09 90                  
  28 : C                                                                               
  29 : C_____________________________________________________________________          
  30 :       IMPLICIT INTEGER(I-N)
  31 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
  32 : C                                                                               
  33 : -INC CCOPTIO                                                                    
  34 : -INC CCHAMP                                                                     
  35 : C                                                                               
  36 : -INC SMCOORD                                                                    
  37 : -INC SMELEME                                                                    
  38 : -INC SMMODEL                                                                    
  39 : -INC SMCHAML                                                                    
  40 : -INC SMCHPOI                                                                    
  41 : -INC SMINTE                                                                     
  42 : C                                                                               
  43 : C     SEGMENT DONNANT LE POINTEUR DE MAILLAGE CORRECTE AU MCHAML DE             
  44 : C     CARACTERISTIQUE APRES CREATION D'UN MMODEL                                
  45 : C
  46 :       logical ltelq                                                             
  47 :       SEGMENT JPMAIL                                                            
  48 :          INTEGER MAIL1 (NSOUS1)                                                 
  49 :          INTEGER MAIL2 (NSOUS1)                                                 
  50 :       ENDSEGMENT                                                                
  51 : *                                                                               
  52 :       SEGMENT NOTYPE                                                            
  53 :         CHARACTER*16 TYPE(NBTYPE)                                               
  54 :       ENDSEGMENT                                                                
  55 : C                                                                               
  56 :       SEGMENT MPTVAL                                                            
  57 :         INTEGER IPOS(NS)    ,NSOF(NS)                                           
  58 :         INTEGER      IVAL(NCOSOU)                                               
  59 :         CHARACTER*16 TYVAL(NCOSOU)                                              
  60 :       ENDSEGMENT                                                                
  61 : C                                                                               
  62 :       DIMENSION V(3),XP(3)                                                      
  63 :       DIMENSION BPSS(3,3),XE(3,4),XEL(3,3),V1(3),V2(3),H1(3),H2(3)              
  64 :       CHARACTER*8 MOT                                                           
  65 :       CHARACTER*(NCONCH) CONM                                                   
  66 :       PARAMETER ( NINF=3 )                                                      
  67 :       INTEGER INFOS(NINF)
  68 :       LOGICAL lsupfo                                                       
  69 : C                                                                               
  70 :       DATA X774/.774596669241483D0/                                             
  71 :       DATA UN,UNDEMI,ZERO/1.D0,.5D0,0.D0/                                       
  72 :       DATA MOT/'NOEUD   '/                                                      
  73 : 
  74 :       IRET=0                                                                    
  75 : C                                                                               
  76 : C     VERIFICATION DU LIEU SUPPORT DU MCHAML DE CARACTERISTIQUES                
  77 : C                                                                               
  77 :       CALL QUESUP(IPMODL,IPCHE2,3,0,ISUP,IRETOU)                                
  78 :       IF (ISUP.GT.1) RETURN                                                     
  79 : C                                                                               
  80 :       IFLAG=0                                                                   
  81 :       NHRM=NIFOUR                                                               
  82 : C                                                                               
  83 : C     ON RECUPERE LES COORDONNEES DU VECTEUR                                    
  84 : C                                                                               
  85 :       IREF=(IPVECT-1)*(IDIM+1)                                                  
  86 :       V(1)=XCOOR(IREF+1)                                                        
  87 :       V(2)=XCOOR(IREF+2)                                                        
  88 :       IF (IDIM.EQ.2) THEN                                                       
  89 :          VN=SQRT(V(1)**2+V(2)**2)                                               
  90 :          IF (VN.EQ.0.) THEN                                                     
  90 :             CALL ERREUR(277)                                                    
  91 :             RETURN                                                              
  92 :          ENDIF                                                                  
  93 :          V(1)=V(1)/VN                                                           
  94 :          V(2)=V(2)/VN                                                           
  95 :       ELSE                                                                      
  96 :          V(3)=XCOOR(IREF+3)                                                     
  97 :          VN=SQRT(V(1)**2+V(2)**2+V(3)**2)                                       
  98 :          IF (VN.EQ.0.) THEN                                                     
  98 :             CALL ERREUR(277)                                                    
  99 :             RETURN                                                              
 100 :          ENDIF                                                                  
 101 :          V(1)=V(1)/VN                                                           
 102 :          V(2)=V(2)/VN                                                           
 103 :          V(3)=V(3)/VN                                                           
 104 :       ENDIF                                                                     
 105 : C                                                                               
 106 : C     LE FLAG SERT A INDIQUER SI L'ON DOIT OU NON DETRUIRE LE MODELE            
 107 : C     EN CAS DE CREATION  ( 0 : DESTRUCTION D'UN MMODEL CREE )                  
 108 : C                                                                               
 109 :       JPMAIL=0                                                                  
 110 :       IF (IPCHE1.NE.0) THEN                                                     
 111 : C                                                                               
 112 : C        ON CREE LE MMODEL S'ACCROCHANT AU CHPOINT                              
 113 : C                                                                               
 113 :          CALL NOMCOM(IPCHE1,'SCAL',IPCHE,IRETOU)                                
 114 :          IF (IERR.NE.0) RETURN                                                  
 115 : C                                                                               
 116 : C        ON CREE L OBJET MAILLAGE CONTENANT TOUS LES POINT DU CHPOINT           
 117 : C                                                                               
 118 :          MCHPOI=IPCHE                                                           
 119 :          SEGACT MCHPOI                                                          
 120 :          NSOUPO=IPCHP(/1)                                                       
 121 :          IPGEOM = 0                                                             
 122 :          DO 1140 I=1,NSOUPO                                                     
 123 :             MSOUPO=IPCHP(I)                                                     
 124 :             SEGACT MSOUPO                                                       
 125 :             IF (IPGEOM.EQ.0) THEN                                               
 126 :                IPGEOM = IGEOC                                                   
 127 :             ELSE                                                                
 128 :                IPP2 = IGEOC 
 129 :                ltelq=.false.                                                    
 129 :                CALL FUSE (IPGEOM,IPP2,IPPT,ltelq)                               
 130 :                IPGEOM = IPPT                                                    
 131 :             ENDIF                                                               
 132 :             SEGDES MSOUPO                                                 
 133 :  1140    CONTINUE                                                               
 134 :          SEGDES MCHPOI                                                          
 135 : C                                                                               
 136 :          N1=0                                                                   
 137 :          SEGINI MMODEL                                                          
 138 :          IPMOD=MMODEL                                                           
 139 : C                                                                               
 140 :          MMODE1=IPMODL                                                          
 141 :          SEGACT MMODE1                                                          
 142 :          NSOUS1=MMODE1.KMODEL(/1)                                               
 143 : C                                                                               
 144 : C        BOUCLE SUR LES SOUS ZONE GEOMETRIQUE ELEMENTAIRE                       
 145 : C                                                                               
 146 :          IRRT=0                                                                 
 147 :          DO 50 ISOUS=1,NSOUS1                                                   
 148 :             IMODE1=MMODE1.KMODEL(ISOUS)                                         
 149 :             SEGACT IMODE1                                                       
 150 :             ITGEOM=IMODE1.IMAMOD                                                
 150 :             CALL ECROBJ('MAILLAGE',IPGEOM)                                      
 150 :             CALL ECRCHA('STRI')                                                 
 150 :             CALL ECRCHA('APPU')                                                 
 150 :             CALL ECROBJ('MAILLAGE',ITGEOM)                                      
 150 :             CALL EXTREL(IRR,0,IBNOR)                                            
 151 :             IF (IRR.EQ.0) THEN                                                  
 152 : C                                                                               
 153 : C              ON A VERIFIER L ADHERENCE DU CHPOINT A CE MAILLAGE               
 154 : C                                                                               
 154 :                CALL LIROBJ('MAILLAGE',IPOGEO,1,IRETOU)                          
 155 :                IF (IERR.NE.0) THEN                                              
 156 :                   SEGDES MMODE1                                                 
 157 :                   SEGDES IMODE1                                                 
 158 :                   SEGSUP MMODEL                                                 
 159 :                   RETURN                                                        
 160 :                ENDIF                                                            
 161 :                N1=N1+1                                                          
 162 :                SEGADJ MMODEL                                                    
 163 : C                                                                               
 164 : C              CREATION DE L'OBJET IMODEL DE CETTE SOUS ZONE                    
 165 : C                                                                               
 166 :                NFOR=IMODE1.FORMOD(/2)                                           
 167 :                NMAT=IMODE1.MATMOD(/2)                                           
 168 :                MN3 =IMODE1.INFMOD(/1) 
 169 :                NPARMO=0 
 170 :                nobmod=0                                         
 171 : C                                                                               
 172 :                SEGINI IMODEL 
 173 :                conmod(17:24)='        '
 174 :                IMAMOD=IPOGEO                                                    
 175 :                NEFMOD=IMODE1.NEFMOD                                             
 176 :                CONMOD=IMODE1.CONMOD
 177 :                IPDPGE=IMODE1.IPDPGE                                             
 178 : C                                                                               
 179 : C              CREATION D'UN TABLEAU DE CORRESPONDANCE LE IMAMOD DU             
 180 : C              MMODEL (IPMODL) ET DU IMAMOD DU NVX MMODEL QUE L'ON CREE         
 181 : C                                                                               
 182 :                IF (JPMAIL.EQ.0) SEGINI JPMAIL                                   
 183 :                MAIL1(ISOUS)=ITGEOM                                              
 184 :                MAIL2(ISOUS)=IPOGEO                                              
 185 :                DO 47 I=1,MN3                                                    
 186 :                   INFMOD(I)=IMODE1.INFMOD(I)                                    
 187 :  47            CONTINUE                                                         
 188 :                CONMOD=IMODE1.CONMOD                                             
 189 :                DO 48 I=1,NFOR                                                   
 190 :                   FORMOD(I)=IMODE1.FORMOD(I)                                    
 191 :  48            CONTINUE                                                         
 192 :                DO 49 I=1,NMAT                                                   
 193 :                   MATMOD(I)=IMODE1.MATMOD(I)                                    
 194 :  49            CONTINUE                                                         
 195 :                KMODEL(N1)=IMODEL                                                
 196 :                SEGDES IMODEL                                                    
 197 :             ELSE                                                                
 198 : C                                                                               
 199 : C              LE CHPOINT N'ADHERE PAS A CETTE ZONE                             
 200 : C                                                                               
 201 :                IRRT=IRRT+1                                                      
 202 :             ENDIF                                                               
 203 :             SEGDES IMODE1                                                       
 204 :  50      CONTINUE                                                               
 205 :          SEGDES MMODE1                                                          
 206 :          SEGDES MMODEL                                                          
 207 : C                                                                               
 208 :          IF (NSOUPO.GT.1) THEN                                                  
 209 :             MELEME=IPGEOM                                                       
 210 :             SEGSUP MELEME                                                       
 211 :          ENDIF                                                                  
 212 : C                                                                               
 213 :          IF (IRRT.EQ.NSOUS1) THEN                                               
 214 : C                                                                               
 215 : C           L'OBJET MAILLAGE ET LE CHPOINT SONT INCOMPATIBLES                   
 216 : C                                                                               
 217 :             MOTERR(1:8)='MAILLAGE'                                              
 218 :             MOTERR(9:16)='CHPOINT'                                              
 218 :             CALL ERREUR(135)                                                    
 219 :             MMODEL=IPMOD                                                        
 220 :             SEGSUP MMODEL                                                       
 221 :             RETURN                                                              
 222 :          ENDIF                                                                  
 223 : C                                                                               
 223 :          CALL CHAME1(0,IPMOD,IPCHE,' ',IPCH1,3)                                 
 224 :          IF (IERR.NE.0) THEN                                                    
 224 :             CALL DTMODL(IPMOD)                                                  
 225 :             SEGSUP JPMAIL                                                       
 226 :             RETURN                                                              
 227 :          ENDIF                                                                  
 228 :       ELSE                                                                      
 229 :         IFLAG=1                                                                 
 230 :         IPMOD=IPMODL                                                            
 230 :         CALL ZEROP(IPMOD,MOT,IPCH1)                                             
 231 :         IF (IERR.NE.0) RETURN                                                   
 232 :         MCHEL1=IPCH1                                                            
 233 :         SEGACT MCHEL1                                                           
 234 :         NSOUS=MCHEL1.ICHAML(/1)                                                 
 235 :         DO 11 ISOUS=1,NSOUS                                                     
 236 :            MCHAM1=MCHEL1.ICHAML(ISOUS)                                          
 237 :            SEGACT MCHAM1                                                        
 238 :            MELVA1=MCHAM1.IELVAL(1)                                              
 239 :            SEGACT MELVA1                                                        
 240 :            N1PTEL=MELVA1.VELCHE(/1)                                             
 241 :            N1EL  =MELVA1.VELCHE(/2)                                             
 242 :            DO 9 IGAU=1,N1PTEL                                                   
 243 :               DO 9 IB=1,N1EL                                                    
 244 :                  MELVA1.VELCHE(IGAU,IB)=P                                       
 245 :  9         CONTINUE                                                             
 246 :            SEGDES MELVA1                                                        
 247 :            SEGDES MCHAM1                                                        
 248 :  11     CONTINUE                                                                
 249 :         SEGDES MCHEL1                                                           
 250 :       ENDIF                                                                     
 251 : C                                                                               
 252 : C     ACTIVATION DU MODEL                                                       
 253 : C                                                                               
 254 :       MMODEL=IPMOD                                                              
 255 :       SEGACT MMODEL                                                             
 256 :       NSOUS=KMODEL(/1)                                                          
 257 : C                                                                               
 258 : C     CREATION DU MCHELM DES FORCES NODALES                                     
 259 : C                                                                               
 260 :       N1=NSOUS                                                                  
 261 :       L1=5                                                                      
 262 :       N3=5                                                                      
 263 :       SEGINI MCHELM                                                             
 264 :       IPCHEL=MCHELM                                                             
 265 :       TITCHE='FORCE'                                                            
 266 :       IFOCHE=IFOUR                                                              
 267 : C_______________________________________________________________________        
 268 : C                                                                               
 269 : C      BOUCLE SUR LES SOUS ZONES DU MAILLAGE                                    
 270 : C_______________________________________________________________________        
 271 : C                                                                               
 272 :       DO 500 ISOUS=1,NSOUS                                                      
 273 : C                                                                               
 274 : C        ON RECUPERE L INFORMATION GENERALE                                     
 275 : C                                                                               
 276 :          IMODEL=KMODEL(ISOUS)                                                   
 277 :          SEGACT IMODEL                                                          
 278 :          IPMAIL=IMAMOD                                                          
 279 :          CONM  =CONMOD                                                          
 280 :          IMACHE(ISOUS)=IPMAIL                                                   
 281 : C                                                                               
 282 : C        TRAITEMENT DU MODEL                                                    
 283 : C                                                                               
 284 :          MELE=NEFMOD                                                            
 285 : C
 286 : C        ERREUR L ELEMENT N EST PAS ENCORE IMPLEMENTE
 287 :          IF (MELE.NE.30) THEN
 288 :             MOTERR(1:4)=NOMTP(MELE)
 289 :             MOTERR(5:12)='FPFISS'
 289 :             CALL ERREUR(86)
 290 :             SEGDES IMODEL,MMODEL
 291 :             SEGSUP MCHELM
 291 :             IF (IFLAG.EQ.0) CALL DTMODL (IPMOD)
 292 :             IF (JPMAIL.NE.0) SEGSUP JPMAIL
 292 :             CALL DTCHAM(IPCH1)
 293 :             RETURN
 294 :          ENDIF
 295 : C                                                                               
 296 :          MELEME=IMAMOD                                                          
 297 :          IPTGEO=MELEME                                                          
 298 : C                                                                               
 299 : C        INFORMATION SUR L'ELEMENT FINI                                         
 300 : C                                                                               
 300 : *         CALL ELQUOI(MELE,0,3,IPINF,IMODEL)
 301 : *         IF (IERR.NE.0) THEN                                                   
 302 : *            SEGDES IMODEL,MMODEL                                    
 303 : *            SEGSUP MCHELM                                                      
 303 : *            IF (IFLAG.EQ.0) CALL DTMODL (IPMOD)                                
 304 : *            IF (JPMAIL.NE.0) SEGSUP JPMAIL                                     
 304 : *            CALL DTCHAM(IPCH1)                                                 
 305 : *            RETURN                                                             
 306 : *         ENDIF                                                                 
 307 : *         INFO=IPINF                                                            
 308 :          MFR   =INFELE(13)                                                      
 309 : *         IPTINT=INFELE(11)
 310 :          IPTINT=infmod(5)
 311 :          MINTE=IPTINT
 312 :          SEGACT,MINTE
 313 : *         SEGSUP INFO
 314 : C                                                                               
 315 : C        CREATION DU TABLEAU INFOS                                              
 316 : C                                                                               
 316 :          CALL IDENT(IPMAIL,CONM,IPCH1,IPCHE2,INFOS,IRTD)                        
 317 :          IF (IRTD.EQ.0) THEN                                                    
 318 :             SEGDES,MINTE
 319 :             SEGDES IMODEL,MMODEL                                    
 320 :             SEGSUP MCHELM                                                       
 320 :             IF (IFLAG.EQ.0) CALL DTMODL (IPMOD)                                 
 321 :             IF (JPMAIL.NE.0) SEGSUP JPMAIL                                      
 321 :             CALL DTCHAM(IPCH1)                                                  
 322 :             RETURN                                                              
 323 :          ENDIF                                                                  
 324 : C                                                                               
 325 :          INFCHE(ISOUS,1)=0                                                      
 326 :          INFCHE(ISOUS,2)=0                                                      
 327 :          INFCHE(ISOUS,3)=NHRM                                                   
 328 :          INFCHE(ISOUS,4)=IPTINT                                                 
 329 :          INFCHE(ISOUS,5)=0                                                      
 330 : C                                                                               
 331 : C        RECHERCHE DU MELVAL DU CHAMELEM DE PRESSION                            
 332 : C                                                                               
 333 :          NCARA=0                                                                
 334 :          NCARF=0                                                                
 335 :          MOCARA=0                                                               
 336 :          NFOR=0                                                                 
 337 :          MOFORC=0                                                               
 338 : C                                                                               
 339 :          NBROBL=1                                                               
 340 :          NBRFAC=0                                                               
 341 :          SEGINI NOMID                                                           
 342 :          MOSCAL=NOMID                                                           
 343 :          LESOBL(1)='SCAL'                                                       
 344 : *                                                                               
 345 :          NBTYPE=1                                                               
 346 :          SEGINI NOTYPE                                                          
 347 :          MOTYPE=NOTYPE                                                          
 348 :          TYPE(1)='REAL*8'                                                       
 349 : *                                                                               
 349 :          CALL KOMCHA(IPCH1,IPMAIL,CONM,MOSCAL,MOTYPE,1,INFOS,3,IVASCA)          
 350 :          SEGSUP NOTYPE                                                          
 351 :          IF (IERR.NE.0) GOTO 9990                                               
 352 :          SEGDES NOMID                                                           
 353 :          MPTVAL=IVASCA                                                          
 354 :          IPTVPR=IVAL(1)                                                         
 355 : C                                                                               
 356 : C        CALCUL DES FORCES NODALES EQUIVALENTES                                 
 357 : C        BRANCHEMENT SUIVANT LE TYPE DES ELEMENTS                             
 358 : C                                                                               
 359 : C           RECHERCHE DES NOM DE COMPOSANTES                                    
 360 : C          
 361 :         if(lnomid(2).ne.0) then
 362 :           nomid=lnomid(2)
 363 :           segact nomid
 364 :           moforc=nomid
 365 :           nfor=lesobl(/2)
 366 :           nfac=0
 367 :           lsupfo=.false.
 368 :         else
 369 :           lsupfo=.true.                                                         
 369 :           CALL IDFORC(MFR,IFOUR,MOFORC,NFOR,NFAC)
 370 :         endif                             
 371 : C                                                                               
 372 : C           ELEMENT LINESPRING                                                  
 373 : C                                                                               
 374 :             SEGACT MELEME                                                       
 375 :             NBNN  =NUM(/1)                                                      
 376 :             NBELEM=NUM(/2) 
 377 :             IPPORE=0
 378 :             IF(MFR.EQ.33) IPPORE=NBNN
 379 :                                                                                 
 380 : C     CREATION DU MCHAML DE LA SOUS ZONE                                        
 381 : C                                                                               
 382 : C     INIT DU MELVAL DEVANT CONTENIR LES FORCES DE PRESSION                     
 383 : C                                                                               
 384 :             N1PTEL=4                                                            
 385 :             N1EL=NBELEM                                                         
 386 :             N2PTEL=0                                                            
 387 :             N2EL=0                                                              
 388 : C                                                                               
 389 :             N2=NFOR                                                             
 390 :             SEGINI MCHAML                                                       
 391 :             ICHAML(ISOUS)=MCHAML                                                
 392 :             NS=1                                                                
 393 :             NCOSOU=NFOR                                                         
 394 :             SEGINI MPTVAL                                                       
 395 :             IVAFOR=MPTVAL                                                       
 396 :             NOMID=MOFORC                                                        
 397 :             SEGACT NOMID                                                        
 398 :             DO 1100 ICOMP=1,NFOR                                                
 399 :                NOMCHE(ICOMP)=LESOBL(ICOMP)                                      
 400 :                TYPCHE(ICOMP)='REAL*8'                                           
 401 :                SEGINI MELVAL                                                    
 402 :                IELVAL(ICOMP)=MELVAL                                             
 403 :                IVAL(ICOMP)=MELVAL                                               
 404 :  1100       CONTINUE                                                            
 405 :             SEGDES NOMID                                                        
 406 : C                                                                               
 407 : C TRAITEMENT DES CHAMPS DE CARACTERISTIQUES POUR LES LINESPRING                 
 408 : C                                                                               
 409 :             NBROBL=5                                                            
 410 :             NBRFAC=0                                                            
 411 :             SEGINI NOMID                                                        
 412 :             MOCARA=NOMID                                                        
 413 :             LESOBL(1)='EPAI'                                                    
 414 :             LESOBL(2)='FISS'                                                    
 415 :             LESOBL(3)='VX  '                                                    
 416 :             LESOBL(4)='VY  '                                                    
 417 :             LESOBL(5)='VZ  '                                                    
 418 :             IF (JPMAIL.NE.0) THEN                                               
 419 : C                                                                               
 420 : C              ON RECUPERE LE IMAMOD DU MMODEL D'ORIGINE POUR QUE LE            
 421 : C              DONNE CORRESPONDE A CELUI DE IPCHE21                             
 422 : C                                                                               
 423 :                DO 60 KISOUS=1,NSOUS1                                            
 424 :                   IF (IPMAIL.EQ.MAIL2(KISOUS)) THEN                             
 425 :                      IPMAI1=MAIL1(KISOUS)                                       
 426 :                      GOTO 61                                                    
 427 :                   ENDIF                                                         
 428 :  60            CONTINUE                                                         
 429 : C                                                                               
 430 : C              NE DOIT NORMALEMENT JAMAIS SE PRODUIRE                           
 431 : C                                                                               
 431 :                CALL ERREUR (472)                                                
 432 :                GOTO 9990                                                        
 433 :             ELSE                                                                
 434 :               IPMAI1=IPMAIL                                                     
 435 :             ENDIF                                                               
 436 :  61         CONTINUE                                                            
 437 : C                                                                               
 438 :            NBTYPE=1                                                             
 439 :            SEGINI NOTYPE                                                        
 440 :            MOTYPE=NOTYPE                                                        
 441 :            TYPE(1)='REAL*8'                                                     
 442 : *                                                                               
 442 :             CALL KOMCHA(IPCHE2,IPMAI1,CONM,MOCARA,MOTYPE,                       
 443 :      1                                     1,INFOS,3,IVACAR)                    
 444 :             SEGSUP NOTYPE                                                       
 445 :             IF (IERR.NE.0) GOTO 9990                                            
 446 : C                                                                               
 447 :             NCARA=NBROBL                                                        
 448 :             NCARF=NBRFAC                                                        
 449 :             NCARR=NCARA+NCARF                                                   
 450 : C                                                                               
 451 :             IF (ISUP.EQ.1) THEN                                                 
 451 :                CALL VALCHE(IVACAR,NCARR,IPTINT,IPPORE)                          
 452 :             ENDIF                                                               
 453 : C                                                                               
 454 :             SEGDES NOMID                                                        
 455 : C                                                                               
 456 : C           ELEMENT LINESPRING                                                  
 457 : C                                                                               
 457 :             CALL FPLISP(IPTVPR,IPTGEO,IPTINT,IVACAR,IVAFOR)                     
 458 : C                                                                               
 459 : C           DESACTIVATION DES SEGMENT PROPRE A LA GEOMETRIE ISOUS               
 460 : C                                                                               
 461 :             SEGDES,MINTE                                                        
 462 :             SEGDES IMODEL                                                       
 463 :             SEGDES MCHAML                                                       
 464 : C                                                                               
 465 :             IF (ISUP.EQ.1) THEN
 465 :               CALL DTMVAL(IVACAR,3)
 466 :             ELSE
 466 :               CALL DTMVAL(IVACAR,1)
 467 :             ENDIF
 468 : C
 468 :             CALL DTMVAL(IVAFOR,1)
 469 : C
 469 :             CALL DTMVAL(IVASCA,1)
 470 : C
 471 :             NOMID=MOFORC
 472 :             if(lsupfo)SEGSUP NOMID
 473 :             NOMID=MOCARA
 474 :             SEGSUP NOMID
 475 :             NOMID=MOSCAL
 476 :             SEGSUP NOMID
 477 : C
 478 :             SEGDES MELEME                                                       
 479 : C                                                                               
 480 :  500  CONTINUE                                                                  
 481 :       SEGDES MMODEL                                                             
 481 :       CALL DTCHAM(IPCH1)                                                        
 481 :       IF (IFLAG.EQ.0) CALL DTMODL(IPMOD)                                        
 482 :       IF (JPMAIL.NE.0) SEGSUP JPMAIL                                            
 483 : C                                                                               
 484 : C     ON TRANSFORME LE CHAM/ELEM EN CHAM/POIN                                   
 485 : C                                                                               
 486 : C*    SEGDES MCHELM                                                             
 486 :       CALL CHAMPO(IPCHEL,0,IPTFP,IRETOU)                                        
 486 :       CALL DTCHAM(IPCHEL)                                                       
 487 :       IF (IRETOU.EQ.0) RETURN                                                   
 488 : C                                                                               
 489 : C     ON COMPARE LE SENS DE LA FORCE AU SENS DU VECTEUR AU POINT INDIQUE        
 490 : C                                                                               
 491 :       MCHPOI=IPTFP                                                              
 492 :       SEGACT MCHPOI                                                             
 493 :       DO 201 I=1,IPCHP(/1)                                                      
 494 :          MSOUPO=IPCHP(I)                                                        
 495 :          SEGACT MSOUPO                                                          
 496 :          MELEME=IGEOC                                                           
 497 :          SEGACT MELEME                                                          
 498 :          DO 202 K=1,NUM(/2)                                                     
 499 :             IF (NUM(1,K).EQ.IPPOIN) GO TO 205                                   
 500 : 202      CONTINUE                                                               
 501 :          SEGDES MSOUPO,MELEME                                                   
 502 : 201   CONTINUE                                                                  
 503 : C                                                                               
 504 : C     LE POINT DONNE N APPARTIENT PAS A LA STRUCTURE                            
 505 : C                                                                               
 506 :       INTERR(1)=IPPOIN                                                          
 507 :       MOTERR(1:8)=' '                                                           
 507 :       CALL ERREUR(64)                                                           
 508 :       SEGDES MCHPOI                                                             
 509 :       RETURN                                                                    
 510 : C                                                                               
 511 :  205  CONTINUE                                                                  
 512 :       SEGDES MELEME                                                             
 513 :       MPOVAL=IPOVAL                                                             
 514 :       SEGACT MPOVAL                                                             
 515 :       FN2=ZERO                                                                  
 516 :       TEST=ZERO                                                                 
 517 :       DO 210 J=1,IDIM                                                           
 518 :          r_z = VPOCHA(K,J)                                                      
 519 :          FN2=FN2 + r_z*r_z                                                      
 520 :          TEST=TEST+ V(J)*r_z                                                    
 521 :  210  CONTINUE                                                                  
 522 :       FN=SQRT(FN2)                                                              
 523 :       SEGDES MPOVAL,MSOUPO,MCHPOI                                               
 524 : C                                                                               
 525 : C     ERREUR    IMPOSSIBLE D ORIENTER LES FORCES DE PRESSION                    
 526 : C                                                                               
 527 :       IF (ABS(TEST).LE.0.025*FN) THEN                                           
 527 :          CALL ERREUR(192)                                                       
 528 :          RETURN                                                                 
 529 :       ENDIF                                                                     
 530 :       IF (TEST.LE.0.) THEN                                                      
 531 :         XFLOT=-UN                                                               
 531 :         CALL MUCHPO(IPCHPO,XFLOT,ITCHPO,1)                                      
 531 :         CALL DTCHPO(IPCHPO)                                                     
 532 :         IPCHPO=ITCHPO                                                           
 533 :       ENDIF                                                                     
 534 :       IRET = 1                                                                  
 535 :       RETURN                                                                    
 536 : C                                                                               
 537 : C     ERREUR DANS UNE SOUS ZONE / DESACTIVATION ET RETOUR                       
 538 : C                                                                               
 539 :  9990 CONTINUE                                                                  
 540 :       IRET=0                                                                    
 540 :       IF (IFLAG.EQ.0) CALL DTMODL(IPMOD)                                        
 541 :       IF (JPMAIL.NE.0) SEGSUP JPMAIL                                            
 542 : C                                                                               
 543 :       SEGSUP MCHELM                                                             
 544 : C                                                                               
 545 :       IF (ISUP.EQ.1) THEN                                                 
 545 :         CALL DTMVAL(IVACAR,3)                                                   
 546 :       ELSE                                                                
 546 :         CALL DTMVAL(IVACAR,1)                                                   
 547 :       ENDIF                                                                  
 548 : C                                                                               
 548 :       CALL DTMVAL(IVAFOR,3)                                                   
 549 : C                                                                               
 549 :       CALL DTMVAL(IVASCA,1)                                                   
 550 : C                                                                               
 551 :       NOMID=MOCARA                                                              
 552 :       IF (MOCARA.NE.0) SEGSUP NOMID                                             
 553 :       NOMID=MOFORC                                                              
 554 :       IF (lsupfo.and.MOFORC.NE.0) SEGSUP NOMID                                  
 555 :       NOMID=MOSCAL                                                              
 556 :       SEGSUP NOMID                                                              
 557 : C                                                                               
 558 :       SEGDES,MINTE         
 559 :       SEGDES IMODEL                                                             
 560 :       SEGDES MMODEL                                                             
 561 : C                                                                               
 561 :       CALL DTCHAM(IPCH1)                                                        
 562 : C                                                                               
 563 :       RETURN                                                                    
 564 :       END                                                                       
 565 : 
 566 :  
 567 :  

© Cast3M 2003 - All rights reserved.
Disclaimer