Download fefp.eso

Back to the list

   1 : C FEFP      SOURCE    PV        09/03/12    21:22:42     6325           
   2 : *---------------------------------------------------------------------          
   3 : *                    Integration of FeFp models 
   4 : *---------------------------------------------------------------------          
   5 : c      SUBROUTINE FEFP
   6 : c      SUBROUTINE FEFP1(IPMODL,IPCHE1,IPCHE2,IPCHE3,IPCAR,
   7 : c     .                 IPCHE7,IPCHE8,IPCHE9,IPRIGI,
   8 : c     .                 PRECIS,NITMAX,NUPDATE)
   9 : c      SUBROUTINE FEFP2(MATE,INPLAS,MELE,MELEME,MINTE,IMATRI,
  10 : c     .     NBELEM,NBPTEL,NBNN,LRE,MFR,
  11 : c     .     IVADESP,IVADPI,IVARI,IVAMAT,
  12 : c     .     IVASTF,IVARIF,IVADPF,LHOOK,IRIGE7,
  13 : c     .     NDEP,NDEF,NSTRS,NVARI,NMATT,PRECIS,NITMAX,NUPDATE,
  14 : c     .     KERRE)
  15 : c      subroutine apf_driver_fefp(BE,VARF,SIGF,DDHOOK,
  16 : c     .                           NDEF,NVARI,NSTRS,LHOOK,
  17 : c     .                           XMAT,xdensi,PRECIS,NITMAX,KERRE,
  18 : c     .                           nescri,nues,nmodel,nnumer,deltax,
  19 : c     .                           level,kmax,iaugla,caugla)
  20 : c      subroutine pushf35(a,f,a1)
  21 : c      subroutine prin35(b,bpr,qen,q6,q6t)
  22 : c      subroutine eig35(v,d,rot)
  23 : *---------------------------------------------------------------------          
  24 : *---------------------------------------------------------------------          
  25 : *---------------------------------------------------------------------          
  26 :       SUBROUTINE FEFP
  27 : *---------------------------------------------------------------------          
  28 : *                    Integration of FeFp models 
  29 : *---------------------------------------------------------------------          
  30 : * SYNTAXE=
  31 : *    SIGF VARF DEPPFI RI1 = 'ECFEFP'  MODL DEPPL0 VAR0 ZDEPT CARAC 
  32 : *                                     (PRECIS) (NITMAX) (NUPDATE);
  33 : * IN=
  34 : *  MMODEL     |    MODL    OBJET MODELE            
  35 : *  MCHAML     |    DEPPL0  DEFORMATIONS INELASTIQUES AU DEBUT DU PAS
  36 : *  MCHAML     |    VAR0    VARIABLES INTERNES AU DEBUT DU PAS                   
  37 : *  CHAMPOINT  |    ZDEPT   deplacements entre conf de depart et arrivee                           
  38 : *  MCHAML     |    CARAC   CARACTERISTIQUES GEOMETRIQUES 
  39 : *  FLOTTANT   |    PRECIS  PRECISION POUR ITERATIONS INTERNES
  40 : *  INTEGER    |    NITMAX  maximum number of iterations at local level
  41 : *  INTEGER    |    NUPDATE =1 UPDATE ; =0 TOTAL - LAGRANGIAN
  42 : *
  43 : * OUT=
  44 : *  MCHAML     |    SIGF    CONTRAINTES A LA FIN DU PAS
  45 : *  MCHAML     |    VARF    VARIABLES INTERNES A LA FIN DU PAS
  46 : *  MCHAML     |    DEPIN   DEFORMATIONS INELASTIQUES A LA FIN DU PAS
  47 : *  MRIGI      |    RI1     CONSISTENT TANGENT MATRIX
  48 : *---------------------------------------------------------------------          
  49 :       IMPLICIT INTEGER(I-N)
  50 :       IMPLICIT REAL*8(A-H,O-Z)
  51 : 
  52 : -INC CCOPTIO
  53 : -INC SMCHAML
  54 : 
  55 : ************************
  56 : * Lectura de datos
  57 : ************************
  58 : * modelo
  58 :       CALL LIROBJ('MMODEL',IPMODL,1,IRT)
  59 :       IF(IRT.EQ.0) then 
  60 :         write(*,*) ' No hay modelo'
  61 :         RETURN                      
  62 :       ENDIF
  63 : 
  64 : * deformacion plastica inicial
  64 :       CALL LIROBJ('MCHAML',IPCHE1,1,IRT)       
  65 :       IF(IRT.EQ.0) then 
  66 :         write(*,*) ' No hay deformacion plastica inicial'
  67 :         RETURN                      
  68 :       ENDIF
  69 :       MCHELM=IPCHE1                            
  70 :       SEGACT MCHELM    
  71 : c     Usa L1, N1, N3 
  72 :       IF(MCHELM.TITCHE.NE.'DEFORMATIONS INELASTIQUES')THEN          
  73 :         MOTERR(1:8)='DEFINELA'                 
  73 :         CALL ERREUR(109)                       
  74 :         SEGDES MCHELM                          
  75 :         RETURN    
  76 :       ENDIF       
  77 :       SEGDES MCHELM                            
  78 : 
  79 : * variables internas iniciales
  79 :       CALL LIROBJ('MCHAML',IPCHE2,1,IRT)       
  80 :       IF(IRT.EQ.0) then 
  81 :         write(*,*) ' No hay variables internas iniciales'
  82 :         RETURN                      
  83 :       ENDIF
  84 :       MCHELM=IPCHE2                            
  85 :       SEGACT MCHELM                            
  86 :       IF(TITCHE.NE.'VARIABLES INTERNES')THEN   
  87 :         MOTERR(1:8)='VARINTER'                 
  87 :         CALL ERREUR(109)                       
  88 :         SEGDES MCHELM                          
  89 :         RETURN    
  90 :       ENDIF       
  91 :       SEGDES MCHELM
  92 : 
  93 : * incremento de desplazamientos
  93 :       CALL LIROBJ('CHPOINT',IPCHP1,1,IRT)
  94 :       IF(IRT.EQ.0) then 
  95 :         write(*,*) ' No hay incremento de desplazamientos'
  96 :         RETURN                      
  97 :       ENDIF
  98 : *     paso de campo nodal a campo elemental en nodos (ct=1)
  98 :       CALL CHAME1(0,IPMODL,IPCHP1,' ',IPCHE3,1)   
  99 : 
 100 : * caracteristicas materiales y geometricas
 100 :       CALL LIROBJ('MCHAML',IPCAR,1,IRT)        
 101 :       IF(IRT.EQ.0) then 
 102 :         write(*,*) ' No hay caracteristicas materiales'
 103 :         RETURN                      
 104 :       ENDIF
 105 :       MCHELM=IPCAR
 106 :       SEGACT MCHELM                            
 107 :       IF(TITCHE.NE.'CARACTERISTIQUES')THEN     
 108 :         MOTERR(1:8)='CARACTER'                 
 108 :         CALL ERREUR(109)                       
 109 :         SEGDES MCHELM                          
 110 :         RETURN    
 111 :       ENDIF
 112 :       SEGDES MCHELM
 113 : 
 114 : * precision para iteraciones internas
 114 :       CALL LIRREE(PRECIS,0,IRT)
 115 :       IF(IRT.EQ.0) PRECIS=1.D-10
 116 : 
 117 : * num max de iteraciones internas
 117 :       CALL LIRENT(NITMAX,0,IRT)
 118 :       IF (IRT.EQ.0) NITMAX=25
 119 : 
 120 : * Update or total (default) lagrangian formulation
 120 :       CALL LIRENT(NUPDATE,0,IRT)
 121 :       IF (IRT.EQ.0) NUPDATE=0
 122 : 
 123 : * deformacion plana o axisimetrico
 124 :       IF ((IFOUR.gt.0).or.(IFOUR.lt.-1)) then 
 125 :          write(*,*) ' Formulacion no disponible'
 126 :          return
 127 :       endif
 128 : 
 129 : ************************
 130 : * calcular 
 131 : ************************
 131 :       CALL FEFP1(IPMODL,IPCHE1,IPCHE2,IPCHE3,IPCAR,
 132 :      .           IPCHE7,IPCHE8,IPCHE9,IPRIGI,
 133 :      .           PRECIS,NITMAX,NUPDATE)
 134 : 
 135 : ************************
 136 : * escribir resultados
 137 : ************************
 138 : 
 139 :       IF(IERR.EQ.0)THEN
 139 :         CALL ECROBJ('MCHAML',IPCHE9)
 139 :         CALL ECROBJ('MCHAML',IPCHE8)
 139 :         CALL ECROBJ('MCHAML',IPCHE7)
 139 :         CALL ECROBJ('RIGIDITE',IPRIGI)            
 140 :       ENDIF           
 141 : 
 142 : * borrar los desplazamientos en campo elemental
 142 :       CALL DTCHAM(IPCHE3)                          
 143 :       RETURN
 144 :       END
 145 :  
 146 :  
 147 :  
 148 :  
 149 :  

© Cast3M 2003 - All rights reserved.
Disclaimer