Download fsurma.eso

Back to the list

   1 : C FSURMA    SOURCE    PV        13/04/12    21:15:38     7756           
   2 : 
   3 :       SUBROUTINE FSURMA(IPMODL,IPCHPS,IPVECT,JPMAIL,IPCARA, IPFTP)
   4 : 
   5 : C_______________________________________________________________________        
   6 : C                                                                               
   7 : C   CALCULE LES FORCES SURFACIQUES APPLIQUEES SUR DES MASSIFS                   
   8 : C                                                                               
   9 : C   ENTREES :                                                                   
  10 : C   ---------                                                                   
  11 : C                                                                               
  12 : C    IPMODL   OBJET MODELE  SUR LEQUEL S APPLIQUE LA FORCE                   
  13 : C    IPCHPS   CHPOINT CONTENANT LES VALEURS DES FORCES AUX NOEUDS            
  14 : C             DE LA FACE D UN MASSIF, SINON 0 (ET IPVECT NON NUL)               
  15 : C    IPVECT   VECTEUR REPRESENTANT LA FORCE (=0 SI IPCHPS NON NUL)
  16 : C    JPMAIL   POINTEUR SUR LE MAILLAGE SI ON A LU UN VECTEUR IPVECT
  17 : C             SINON 0 (IPCHPS NON NUL)
  18 : C    IPCARA   MCHAML CONTENANT LES CARACTERISTIQUES UTILES
  19 : C                                                                               
  20 : C  SORTIES  :                                                                   
  21 : C  ----------                                                                   
  22 : C                                                                               
  23 : C    IPFTP  = CHPOINT DES FORCES NODALES EQUIVALENTES                           
  24 : C             0 EN CAS D'ERREUR (IERR peut alors etre non nulle)                
  25 : C                                                                               
  26 : C_______________________________________________________________________        
  27 : C                                                                               
  28 :       IMPLICIT INTEGER(I-N)
  29 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
  30 : C                                                                               
  31 : -INC CCOPTIO                                                                    
  32 : -INC CCHAMP                                                                     
  33 : C                                                                               
  34 : -INC SMCHAML                                                                    
  35 : -INC SMCHPOI                                                                    
  36 : -INC SMCOORD                                                                    
  37 : -INC SMELEME                                                                    
  38 : -INC SMINTE                                                                     
  39 : -INC SMMODEL                                                                    
  40 : C                                                                               
  41 :       SEGMENT INFO
  42 :         integer INFELL(JG)
  43 :       ENDSEGMENT                                                                                                                           
  44 :       SEGMENT NOTYPE                                                            
  45 :         CHARACTER*16 TYPE(NBTYPE)                                               
  46 :       ENDSEGMENT                                                               
  47 : C                                                                               
  48 :       SEGMENT MPTVAL                                                            
  49 :         INTEGER IPOS(NS)    ,NSOF(NS)                                           
  50 :         INTEGER      IVAL(NCOSOU)                                               
  51 :         CHARACTER*16 TYVAL(NCOSOU)                                              
  52 :       ENDSEGMENT                                                                
  53 : C                                                                               
  54 :       DIMENSION VEC(3),IPT(3)
  55 :       CHARACTER*4 mfors(3)
  56 :       CHARACTER*4 MOSTRI,MOAPPU,MOGEOM 
  57 :       CHARACTER*8 MOT
  58 :       CHARACTER*(NCONCH) CONM 
  59 :       PARAMETER (NINF=3)                                                        
  60 :       DIMENSION INFOS(NINF)
  61 : C
  62 :       PARAMETER (INTYPC = 3)
  63 : C
  64 :       LOGICAL ltelq,lsupfo                                           
  65 : C                                                                               
  66 :       DATA MOAPPU /'APPU'/, MOSTRI /'STRI'/, MOGEOM /'GEOM'/ 
  67 :       DATA MOT/'FORCES'/                                                      
  68 : 
  69 : C=  LEFMAS   Liste des numeros d'elements finis faces de MASSIFs
  70 : C=  NEFMAS   Longueur de cette liste
  71 :       PARAMETER ( NEFMAS = 6 )
  72 :       DIMENSION LEFMAS(NEFMAS)
  73 : C ============
  74 : C  Elements MASSIFs  SEG2 SEG3 TRI3 QUA4 TRI6 QUA8
  75 :       DATA LEFMAS /    2,   3,  31,  32,  33,  34 /
  76 : *
  77 : * 0) QUELQUES INITIALISATIONS
  78 : *
  79 :       IPFTP = 0
  80 :       NHRM = NIFOUR                                                             
  81 : C= Composantes du CHPOINT IPCHPS a retenir (si besoin)
  82 :       IF (IFOMOD.EQ.2) THEN
  83 :         nfors = 3
  84 :         mfors(1) = 'FX  '
  85 :         mfors(2) = 'FY  '
  86 :         mfors(3) = 'FZ  '
  87 :       ELSE IF (IFOMOD.EQ.-1) THEN
  88 :         nfors = 2
  89 :         mfors(1) = 'FX  '
  90 :         mfors(2) = 'FY  '
  91 :         mfors(3) = '    '
  92 :       ELSE IF (IFOMOD.EQ.0) THEN
  93 :         nfors = 2
  94 :         mfors(1) = 'FR  '
  95 :         mfors(2) = 'FZ  '
  96 :         mfors(3) = '    '
  97 :       ELSE IF (IFOMOD.EQ.1) THEN
  98 :         nfors = 3
  99 :         mfors(1) = 'FR  '
 100 :         mfors(2) = 'FZ  '
 101 :         mfors(3) = 'FT  '
 102 :       ELSE
 102 :         CALL ERREUR(21)
 103 :         RETURN
 104 :       ENDIF
 105 : C  Cas des modes de calculs en DEFORMATIONS GENERALISEES
 106 :       IF (IFOUR.EQ.-3) THEN
 107 :         NDPGE = 3
 108 :       ELSE IF (IFOUR.EQ.11) THEN
 109 :         NDPGE = 2
 110 :       ELSE IF (IFOUR.EQ. 7.OR.IFOUR.EQ. 8.OR.IFOUR.EQ. 9.OR.
 111 :      &         IFOUR.EQ.10.OR.IFOUR.EQ.14) THEN
 112 :         NDPGE = 1
 113 :       ELSE
 114 :         NDPGE = 0
 115 :       ENDIF
 116 : *                                                                               
 117 : *  ON RECUPERE LES COORDONNEES DU VECTEUR FORCE CONSTANT SI DONNE            
 118 : *  TEST SI LE VECTEUR N'EST PAS NUL
 119 : *                                                                               
 120 :       IF (IPVECT.NE.0) THEN                                                     
 121 :         IREF = (IPVECT-1)*(IDIM+1)                                              
 122 :         VEC(1) = XCOOR(IREF+1)                                                  
 123 :         VEC(2) = XCOOR(IREF+2)                                                  
 124 :         VECN = VEC(1)**2 + VEC(2)**2                                            
 125 :         IF (IDIM.EQ.3) THEN                                                     
 126 :           VEC(3) = XCOOR(IREF+3)                                                
 127 :           VECN = VECN + VEC(3)**2                                               
 128 :         ENDIF                                                                   
 129 : C*        VECN = SQRT(VECN)
 130 :         IF (VECN.LE.0.D0) THEN                                                 
 130 :           CALL ERREUR(277)                                                  
 131 :           RETURN                                                            
 132 :         ENDIF                                                                
 133 :       ELSE
 134 :         VEC(1) = 0.D0
 135 :         VEC(2) = 0.D0
 136 :         VEC(3) = 0.D0
 137 :       ENDIF
 138 : C                                                                               
 139 : C  ON CREE L OBJET GEOMETRIQUE CONTENANT TOUS LES PTS DU CHPOINT DE          
 140 : C  FORCES IPCHPS S'IL EST FOURNI SINON ON SE SERVIRA DE JPMAIL
 141 : C  CE MAILLAGE SERA POINTE PAR LA VARIABLE IGEOM DANS LA SUITE
 142 : C                                                                               
 143 :       IF (JPMAIL.EQ.0) THEN
 144 :         IGEOM = 0
 145 :         ltelq = .false.
 146 :         MCHPOI = IPCHPS
 147 :         SEGACT,MCHPOI
 148 :         DO i = 1,IPCHP(/1)
 149 :           MSOUPO = IPCHP(i)
 150 :           SEGACT,MSOUPO
 151 :           NC = NOCOMP(/2)
 152 :           DO j = 1, NC
 152 :             CALL PLACE(mfors,nfors,imo,NOCOMP(j))
 153 :             IF (imo.NE.0) THEN
 154 :               IF (IGEOM.EQ.0) THEN
 155 :                 IGEOM = IGEOC
 156 :               ELSE
 157 :                 IPP2 = IGEOC
 157 :                 CALL FUSE(IGEOM,IPP2,IPPT,ltelq)
 158 :                 IF (IERR.NE.0) RETURN
 159 :                 IGEOM = IPPT
 160 :               ENDIF
 161 :               GOTO 10
 162 :             ENDIF                      
 163 :           ENDDO
 164 :  10       CONTINUE
 165 :           SEGDES,MSOUPO
 166 :         ENDDO
 167 :         SEGDES,MCHPOI
 168 :         IF (IGEOM.EQ.0) THEN
 168 :           CALL ERREUR(21)
 169 :           RETURN
 170 :         ENDIF
 171 :       ELSE
 172 :         IGEOM = JPMAIL
 173 :       ENDIF
 174 : C
 175 : C  PRE-TRAITEMENT DU CHAMP DE CARACTERISTIQUES SI NECESSAIRE
 176 : C  - VERIFICATION DU LIEU SUPPORT DU MCHAML DE CARACTERISTIQUES
 177 : C  - DEFINITION DE SEGMENTS UTILES
 178 : C
 179 :       ISUPCA = 0
 180 :       MOCARA = 0
 181 :       MOTYPC = 0
 182 :       NCARA  = 0
 183 :       NCARF  = 0
 184 : C                                                                               
 185 :       IF (IFOUR.EQ.-2) THEN
 186 :         IF (IPCARA.NE.0) THEN
 187 : C                                                                               
 187 :           CALL QUESUP(IPMODL,IPCARA,INTYPC,1,ISUPCA,iret) 
 188 :           IF (IERR.NE.0 .OR. ISUPCA.GT.1) RETURN
 189 : C
 190 :           NBROBL = 0                                                            
 191 :           NBRFAC = 1
 192 :           SEGINI,NOMID                                                          
 193 :           LESFAC(1) = 'DIM3'
 194 :           MOCARA = NOMID                                                      
 195 : C                                                                               
 196 :           NBTYPE = 1                                                            
 197 :           SEGINI,NOTYPE                                                         
 198 :           TYPE(1) = 'REAL*8'
 199 :           MOTYPC = NOTYPE                                                       
 200 : C                                                                               
 201 :           NCARA = NBROBL                                                        
 202 :           NCARF = NBRFAC                                                        
 203 :         ENDIF
 204 :       ENDIF
 205 : C                                                                               
 206 :       NCARR = NCARA + NCARF                                                     
 207 : C                                                                               
 208 : C  PRE-TRAITEMENT DES DONNEES :
 209 : C  - PETIT MODELE UTILE ASSOCIE A LA SURFACE ELEMENTAIRE TRAITEE
 210 : C    LE IMODEL EST MODIFIE PAR AJUSTEMENT DES QUE NECESSAIRE
 211 : C                                                   
 212 :       N1 = 1                                                                   
 213 :       SEGINI,MMODE1                                                          
 214 :       IPMOD1 = MMODE1                                                          
 215 :       NFOR = 0
 216 :       NMAT = 0
 217 :       MN3  = 0
 218 :       NOBMOD = 0
 219 :       SEGINI,IMODE1
 220 :       IMODE1.CMATEE = 'ISOTROPE'
 221 :       MMODE1.KMODEL(1) = IMODE1
 222 : C                                                                               
 223 : C------------------------------------------- BOUCLE sur les SOUS-MODELES
 224 : C                                                                               
 225 :       MMODEL = IPMODL                                                           
 226 :       SEGACT,MMODEL                                                             
 227 :       NSOUS = KMODEL(/1)                                                        
 228 :       IRRT = 0                                                                  
 229 : C
 230 :       DO 100 ISOUS = 1, NSOUS                                                   
 231 : C                                                                               
 232 : C ... ON RECUPERE L INFORMATION GENERALE                                     
 233 : C                                                                               
 234 :         IMODEL = KMODEL(ISOUS)                                                  
 235 :         SEGACT,IMODEL                                                          
 236 : C                                                                               
 237 : C       TRAITEMENT DU SOUS-MODELE
 238 : C
 239 :         IPMAIL= IMAMOD
 240 :         MELM  = NEFMOD                                                          
 241 :         CONM  = CONMOD                                                          
 242 : C
 243 :         IF (MELM.EQ.22) GOTO 101
 244 : C                                                                               
 245 :         IVACAR = 0
 246 :         IVAFOR = 0
 247 :         lsupfo = .FALSE.
 248 :         IPTINT = 0
 249 : C                                                                               
 250 : C ... ON RECUPERE L'"ENVELOPPE" DU MAILLAGE MASSIF DU SOUS-MODELE
 251 : C                                                                               
 251 :         CALL ECROBJ('MAILLAGE',IPMAIL)
 252 :         IF (IDIM.EQ.3) THEN
 252 :           CALL ENVELO
 253 :         ELSE IF (IDIM.EQ.2) THEN
 253 :           CALL PRCONT
 254 : c*      ELSE IF (IDIM.EQ.1) THEN
 255 :         ELSE
 255 :           CALL PREX1D
 256 :         ENDIF
 257 :         IF (IERR.NE.0) GOTO 101
 257 :         CALL LIROBJ('MAILLAGE',ienvel,1,iret)
 258 :         IF (IERR.NE.0) GOTO 101
 259 : C
 260 : C ... SI le CHPOINT de force IPCHPS a ete donne, on cherche la partie de
 261 : C     l'"enveloppe" s'appuyant strictement sur le support du CHPOINT.
 262 : C ... SINON on cherche l'intersection entre l'enveloppe et JPMAIL=IGEOM.
 263 : C
 264 :         IF (JPMAIL.EQ.0) THEN
 264 :           CALL ECROBJ('MAILLAGE',IGEOM)
 264 :           CALL ECRCHA(MOSTRI)
 264 :           CALL ECRCHA(MOAPPU)
 264 :           CALL ECROBJ('MAILLAGE',ienvel)
 264 :           CALL EXTREL(irr,0,iret)
 265 :         ELSE
 265 :           CALL INTERB(ienvel,IGEOM,irr,IPT3)
 266 :         ENDIF
 267 : C
 268 : C ... ON N'A PAS TROUVE D'ELEMENTS COMMUNS A IGEOM ET A IPMAIL
 269 : C     (IPMAIL = "ENVELOPPE" DU MAILLAGE DU SOUS-MODELE IMODEL)
 270 : C
 271 :         IF (irr.GT.0) GOTO 101
 272 : C
 273 : C ... On recupere les elements communs a IGEOM et IPMAIL -> IPT3 !
 274 : C
 275 :         IF (JPMAIL.EQ.0) THEN
 275 :           CALL LIROBJ('MAILLAGE',IPT3,1,iret)
 276 :           IF (IERR.NE.0) GOTO 101
 277 :         ENDIF
 278 : C                                                                               
 279 : C   RECHERCHE DES NOMS DE COMPOSANTES                                      
 280 : C
 281 :         IF (lnomid(2).NE.0) THEN
 282 :           MOFORC = lnomid(2)
 283 :         ELSE
 284 :           lsupfo = .TRUE.
 284 :           CALL IDFORC(MFR,IFOUR,MOFORC,NFORC,NFORF)
 285 :         endif 
 286 :         nomid=MOFORC
 287 :         SEGACT,nomid
 288 :         NFORC = lesobl(/2)
 289 :         NFORF = 0
 290 :         NCOMP = NFORC - NDPGE
 291 : C
 292 : C   Mise a jour de IMODE1 avec les donnees necessaires de IMODEL
 293 : C
 294 :         NFOR = FORMOD(/2)                                                      
 295 :         NMAT = MATMOD(/2)                                                      
 296 :         SEGADJ,IMODE1                                                           
 297 :         IMODE1.CONMOD = CONM                                                   
 298 :         DO i = 1, NFOR                                                       
 299 :           IMODE1.FORMOD(i) = FORMOD(i)                                          
 300 :         ENDDO
 301 :         DO i = 1, NMAT                                                       
 302 :           IMODE1.MATMOD(i) = MATMOD(i)                                          
 303 :         ENDDO
 304 : C                                                                               
 305 : C     ON DETERMINE LA FORMULATION ASSOCIEE A L OBJET                            
 306 : C     GEOMETRIQUE ELEMENTAIRE DE SURFACE                                        
 307 : C                                                                               
 308 :         SEGACT,IPT3                                                             
 309 :         MJB = IPT3.LISOUS(/1)                                      
 310 :         IPT2 = IPT3                                                             
 311 : C                                                                               
 312 : C     BOUCLE SUR LES SOUS-ZONES DE LA PARTIE COMMUNE                            
 313 : C                                                                               
 314 :         DO 110 IB = 1,MAX(1,MJB)                                      
 315 :           IRRT = IRRT + 1
 316 :           IF (MJB.NE.0) THEN                                        
 317 :             IPT2 = IPT3.LISOUS(IB)                                              
 318 :             SEGACT,IPT2                                                         
 319 :           ENDIF                                                                 
 320 :           IPOGEO = IPT2                                                         
 321 :           NBEL  = IPT2.NUM(/2)
 322 :           NBNN  = IPT2.NUM(/1)
 323 :           LETYP = IPT2.ITYPEL
 324 : *
 325 : *        PETIT TEST SUR LE TYPE
 326 : *
 327 :           IF (LETYP.EQ.1 .AND. IDIM.NE.1) THEN
 327 :             CALL ERREUR(16)
 328 :             GOTO 102
 329 :           ENDIF                                                                 
 330 : *
 330 :           CALL TYPFAC(MELM,NBNN,MELE)                                            
 331 : C                                                                               
 332 : C        ERREUR : IMPOSSIBLE D UTILISER L OPERATEUR FSUR POUR                 
 333 : C                 LES ELEMENTS DE FORMULATION MELM                              
 334 : C                                                                               
 335 :           IF (MELE.EQ.0) THEN                                                   
 336 :             MOTERR(1:8) = NOMTP(MELM)                                           
 336 :             CALL ERREUR(193)                                                    
 337 :             GOTO 102
 338 :           ENDIF                                                                 
 339 : *        ERREUR L ELEMENT N EST PAS ENCORE IMPLEMENTE
 340 :           imo = 0
 340 :           CALL PLACE2(LEFMAS,NEFMAS,imo,MELE)
 341 :           IF (imo.EQ.0) THEN
 342 :             MOTERR(1:4) = NOMTP(MELE)
 343 :             MOTERR(5:12)='FSURMA  '
 343 :             CALL ERREUR(86)
 344 :             GOTO 102
 345 :           ENDIF
 346 : C                                                                               
 347 : C        ON CREE L OBJET MODEL ASSOCIE A LA SURFACE ELEMENTAIRE                 
 348 : C                                                                               
 349 :           SEGACT,IMODE1*MOD                                                     
 350 :           IMODE1.IMAMOD=IPOGEO                                                  
 351 :           IMODE1.NEFMOD=MELE                                                    
 352 : C                                                                               
 353 : C        INFORMATION SUR L'ELEMENT FINI                                         
 354 : C 
 354 :           CALL ELQUOI(MELE,0,INTYPC,IPINF,IMODE1)
 355 :           IF (IERR.NE.0) GOTO 102
 356 :           INFO = IPINF                                                            
 357 :           IPTINT=INFELL(11) 
 358 :           MFR   =INFELL(13)
 359 :           IPPORE=0
 360 :           IF (MFR.EQ.33) IPPORE=NBNN                                            
 361 :           SEGSUP,INFO
 362 : C
 363 :           MINTE=IPTINT
 364 :           IF (IPTINT.NE.0) SEGACT,MINTE
 365 : *                                                                               
 366 : *     ON TRANSFORME LE CHPOINT DE VECTEUR EN MCHAML                            
 367 : *                                                                               
 368 :           IPCHMS = 0
 369 :           IPT(1) = 0
 370 :           IPT(2) = 0
 371 :           IPT(3) = 0
 372 :           IF (IPCHPS.NE.0) THEN                                                 
 373 : c*        IF (IPVECT.EQ.0) THEN <- Test equivalent
 373 :             CALL CHAME1(0,IPMOD1,IPCHPS,' ',IPCHMS,1)                           
 374 :             IF (IERR.NE.0) GOTO 102
 375 :             MCHEL1 = IPCHMS
 376 :             SEGACT,MCHEL1
 377 : *     On ne doit avoir qu'une zone !
 378 :             IF (MCHEL1.ICHAML(/1).NE.1) THEN
 379 :               WRITE(IOIMP,*) 'Contacter le support (FSURMA 402)'
 379 :               CALL ERREUR(21)
 380 :               GOTO 102
 381 :             ENDIF
 382 :             MCHAM1 = MCHEL1.ICHAML(1)
 383 :             SEGACT,MCHAM1
 384 :             DO 15 i = 1, MCHAM1.NOMCHE(/2)
 384 :               CALL PLACE(mfors,nfors,imo,MCHAM1.NOMCHE(i))
 385 :               IF (imo.NE.0) THEN
 386 :                 IPT(imo) = MCHAM1.IELVAL(i)
 387 : c*                segment active et desactive dans FSMA.D (ci-dessous)
 388 : c*                MELVA1 = IPT(imo)
 389 : c*                SEGACT,MELVA1
 390 :               ENDIF
 391 :  15         CONTINUE                                                            
 392 :             SEGDES,MCHAM1,MCHEL1
 393 :           ENDIF 
 394 : C                                                                               
 395 : C        INITIALISATION DU CHELEM ELEMENTAIRE DES FORCES NODALES                
 396 : C                                                                               
 397 :           N1=1                                                                  
 398 :           L1=6                                                                  
 399 :           N3=5                                                                  
 400 :           SEGINI MCHELM                                                         
 401 :           TITCHE='FORCES'                                                       
 402 :           IFOCHE=IFOUR                                                          
 403 :           IPCHEL=MCHELM                                                         
 404 : C                                                                               
 405 :           IMACHE(1)=IPOGEO                                                      
 406 :           INFCHE(1,1)=0                                                         
 407 :           INFCHE(1,2)=0                                                         
 408 :           INFCHE(1,3)=NHRM                                                      
 409 :           INFCHE(1,4)=IPTINT                                                    
 410 :           INFCHE(1,5)=0                                                         
 411 : C                                                                               
 412 : C        RECHERCHE DE LA TAILLE DES MELVALS                                     
 413 : C                                                                               
 414 :           N1PTEL=NBNN
 415 :           N1EL  =NBEL
 416 :           N2PTEL=0                                                             
 417 :           N2EL  =0                                                             
 418 : C                                                                               
 419 : C        CREATION DU MCHAML DE LA SOUS ZONE                                     
 420 : C                                                                               
 421 :           N2 = NCOMP
 422 :           SEGINI,MCHAML                                                         
 423 :           ICHAML(1)=MCHAML                                                      
 424 :           NS=1                                                                  
 425 :           NCOSOU = NCOMP
 426 :           SEGINI,MPTVAL                                                         
 427 :           IVAFOR=MPTVAL                                                         
 428 :           NOMID=MOFORC                                                          
 429 :           DO ICOMP=1,NCOMP
 430 :             NOMCHE(ICOMP)=LESOBL(ICOMP)                                         
 431 :             TYPCHE(ICOMP)='REAL*8'                                              
 432 :             SEGINI,MELVAL                                                       
 433 :             IELVAL(ICOMP)=MELVAL                                                
 434 :             IVAL(ICOMP)=MELVAL                                                  
 435 :           ENDDO
 436 : *
 437 : *____________________________________________________________________           
 438 : *                                                                               
 439 : * TRAITEMENT DU CHAMP DE CARACTERISTIQUES                                     
 440 : *____________________________________________________________________           
 441 : *
 442 :           IF (MOCARA.NE.0) THEN
 443 : *                                                                               
 444 : *        CREATION DU TABLEAU INFOS                                              
 445 : *                                                                               
 445 :             CALL IDENT (IPMAIL,CONM,IPCARA,0,INFOS,IRTD)                       
 446 :             IF (IRTD.EQ.0) THEN                                                
 447 :               SEGSUP MCHELM                                                   
 448 :               RETURN                                                          
 449 :             ENDIF                                                              
 450 : *   
 450 :             CALL KOMCHA(IPCARA,IPMAIL,CONM,MOCARA,MOTYPC,0,
 451 :      &                                       INFOS,3,IVACAR) 
 452 :             IF (IERR.NE.0) GOTO 9100                                           
 453 : *                                                                               
 454 :             IF (ISUPCA.EQ.1) THEN                                              
 454 :               CALL VALCHE(IVACAR,NCARR,IPTINT,IPPORE)                          
 455 :             ENDIF                                                              
 456 : *                                                                               
 457 :           ENDIF 
 458 : C                                                                               
 459 : C  CALCUL DES FORCES NODALES EQUIVALENTES                                 
 460 : C  BRANCHEMENT SUIVANT LE TYPE DES ELEMENTS                             
 461 : C
 462 : C           CAS DES ELEMENTS MASSIFS BIDIMENSIONNELS                            
 463 : C           FACES ASSOCIEES SEG2 OU SEG3                                        
 464 : C                                                                               
 465 :           IF (MELE.EQ.2 .OR. MELE.EQ.3) THEN                                     
 466 : C                                                                               
 466 :             CALL FSMA2D(IPT,IPOGEO,IPTINT,IPVECT,VEC,IVAFOR,IVACAR)
 467 : C                                                                               
 468 : C           CAS DES ELEMENTS MASSIFS TRIDIMENSIONNELS                           
 469 : C           FACES ASSOCIEES FAC3,FAC4,FAC6 OU FAC8                              
 470 : C                                                                               
 471 :           ELSE IF (MELE.EQ.31 .OR. MELE.EQ.32 .OR. MELE.EQ.33 .OR.
 472 :      &            MELE.EQ.34) THEN
 473 : C                                                                               
 473 :             CALL FSMA3D(IPT,IPOGEO,IPTINT,IPVECT,VEC,IVAFOR)
 474 : C                                                                              
 475 :           ELSE                                                                   
 476 : C                                                                               
 477 : C           ERREUR L ELEMENT N EST PAS ENCORE IMPLEMENTE                        
 478 : C                                                                               
 479 :             GOTO 9100                                                           
 480 :          ENDIF                                                                  
 481 : C                                                                               
 482 : C        ON TRANSFORME LE CHAM/ELEM EN CHAM/POIN                                
 483 : C        ET ON ADDITIONNE LES CHAM/POIN ELEMENTAIRES                            
 484 : C                                                                               
 484 :          CALL CHAMPO(IPCHEL,0,IPCHPO,IRET)                                      
 484 : C*       CALL DTCHAM(IPCHEL)                                                    
 485 :          IF (IRET.EQ.0) THEN                                                    
 486 :             GOTO 9100                                                           
 487 :          ENDIF                                                                  
 488 :          IF (IRRT.GT.1) THEN
 488 :             CALL ADCHPO(IPCHPO,IPFTP,IPPT,1.D0,1.D0)
 488 : ****        CALL ECRCHA(MOGEOM)
 488 :             CALL DTCHPO(IPCHPO)                                                 
 488 : ****        CALL ECRCHA(MOGEOM)
 488 :             CALL DTCHPO(IPFTP)                                                  
 489 :             IF (IPPT.EQ.0) THEN                                                 
 490 :                GOTO 9100                                                        
 491 :             ENDIF                                                               
 492 :             IPFTP=IPPT                                                          
 493 :          ELSE                                                                   
 494 :             IPFTP=IPCHPO                                                        
 495 :          ENDIF                                                                  
 496 : 
 497 :  9100     CONTINUE
 498 :           IF (IPTINT.NE.0) SEGDES,MINTE
 498 : c*        IF (IPCHMS.NE.0) CALL DTCHAM(IPCHMS)
 498 : c*        CALL DTMVAL(IVAFOR,3)                                                
 499 :           IF (MOCARA.NE.0) THEN                                         
 500 :             IF (ISUPCA.EQ.1) THEN                                         
 500 :               CALL DTMVAL(IVACAR,3)                                             
 501 :             ELSE                                                                
 501 :               CALL DTMVAL(IVACAR,1)                                             
 502 :             ENDIF
 503 :           ENDIF
 504 : 
 505 :           IF (MJB.NE.0) THEN
 506 :             SEGDES,IPT2                                                        
 507 :           ENDIF
 508 :  110    CONTINUE                                                                
 509 : *
 510 :  102    CONTINUE
 511 :         IF (IPTINT.NE.0) SEGDES,MINTE
 512 :         nomid = MOFORC                                                          
 513 :         SEGDES,nomid
 514 :         IF (lsupfo) SEGSUP,nomid                                                
 515 :         SEGDES,IPT3                                                             
 516 :  101    CONTINUE
 517 :         SEGDES,IMODEL                                                           
 518 :         IF (IERR.NE.0) GOTO 900
 519 : C                                                                               
 520 :  100  CONTINUE                                                                  
 521 : *--------------------------------- FIN de la BOUCLE sur les SOUS-MODELES
 522 : *
 523 :       IF (IRRT.EQ.0) THEN                                              
 524 :         IPFTP = 0
 524 :          CALL ERREUR(395)                                                       
 525 :         GOTO 900
 526 :       ENDIF                                                                     
 527 : C
 528 : C
 529 : C     GESTION FINALE DES SEGMENTS
 530 : C
 531 :  900  CONTINUE
 532 :       IF (MOCARA.NE.0) THEN
 533 :         NOMID = MOCARA                                                          
 534 :         SEGSUP,NOMID
 535 :         NOTYPE = MOTYPC
 536 :         SEGSUP,NOTYPE
 537 :       ENDIF
 538 :       SEGSUP,IMODE1,MMODE1
 539 :       SEGDES,MMODEL                                                             
 540 : 
 541 :       RETURN                                                                    
 542 :       END                                                                       
 543 : 
 544 :  
 545 :  
 546 :  

© Cast3M 2003 - All rights reserved.
Disclaimer