frigta
C FRIGTA SOURCE OF166741 25/02/21 21:16:51 12166
**********************************************************************
*
* COMPOSANTES DE LA RIGIDITE (HOOK) TANGENTE
* CONTRIBUTION DES ELEMENTS DE CHAQUE SS_ZONE DU MODELE DE
* SECTION
*
**********************************************************************
*
* ENTREES:
*
* IPMODL = POINTEUR SUR UN OBJET MMODEL
* IPCAR = POINTEUR SUR UN MCHAML DE CARACTERISTIQUES
* IPVARI = POINTEUR SUR UN MCHAML DE VARIABLE INTERNE
*
* SORTIES:
*
*
************************************************************************
* Pierre Pegon (ISPRA) Juillet/Aout 1993
***********************************************************************
IMPLICIT INTEGER(I-N)
IMPLICIT REAL*8(A-H,O-Z)
-INC PPARAM
-INC CCOPTIO
-INC CCHAMP
-INC SMCHAML
-INC SMELEME
-INC SMCOORD
-INC SMMODEL
-INC SMINTE
-INC TMPTVAL
SEGMENT NOTYPE
CHARACTER*16 TYPE(NBTYPE)
ENDSEGMENT
DIMENSION CRIGI(12)
CHARACTER*8 CMATE
CHARACTER*(NCONCH) CONM
CHARACTER*16 MOMODL(10)
PARAMETER ( NINF=3 )
INTEGER INFOS(NINF)
LOGICAL lsupva,lsupma,lsupca
lsupma=.false.
lsupca=.false.
lsupva=.false.
C
NHRM=NIFOUR
C
C VERIFICATION DU LIEU SUPPORT DU MCHAML DE CARACTERISTIQUES
C
IF (ISUP5.GT.1) RETURN
*
* VERIFICATION DU LIEU SUPPORT DU MCHAML DE VARIABLES INTERNES
*
IF (ISUP5.GT.1) RETURN
C
C ACTIVATION DU MODELE
C
MMODEL=IPMODL
SEGACT MMODEL
NSOUS=KMODEL(/1)
C
C MISE A ZERO DES RIGIDITES
C
DO IE1=1,12
CRIGI(IE1)=0.D0
ENDDO
C____________________________________________________________________
C
C DEBUT DE LA BOUCLE SUR LES DIFFERENTES ZONES
C____________________________________________________________________
C
DO 1000 ISOUS=1,NSOUS
*
* INITIALISATION
*
NMATF=0
NMATR=0
MOMATR=0
IVAMAT=0
NCARA=0
NCARF=0
MOCARA=0
IVACAR=0
MOVARI=0
IVARI=0
IPMINT=0
C
C ON RECUPERE L INFORMATION GENERALE
C
IMODEL=KMODEL(ISOUS)
SEGACT IMODEL
IPMAIL=IMAMOD
CONM =CONMOD
*
MELE=NEFMOD
MELEME=IMAMOD
SEGACT MELEME
NBNN=NUM(/1)
NBELEM=NUM(/2)
C+PPf
C ON EVACUE LE CAS DU SEGS EN 3D
IF(MELE.EQ.166.AND.IDIM.EQ.3)THEN
GOTO 9990
ENDIF
C+PPf
C
C TRAITEMENT DU MODELE
C
NFOR=FORMOD(/2)
NMAT=MATMOD(/2)
C
C NATURE DU MATERIAU
C
IF (CMATE.EQ.' ')THEN
GOTO 9990
ENDIF
IF(MATE.NE.1)THEN
GOTO 9990
ENDIF
IF((NIFIBR.EQ.0).AND.(INFIBR.NE.0))THEN
GOTO 9990
ENDIF
INFIBR=NIFIBR
*
C____________________________________________________________________
C
C INFORMATION SUR L'ELEMENT FINI
C____________________________________________________________________
C
MFR =INFELE(13)
IPPORE=0
IF(MFR.EQ.33) IPPORE=NBNN
IF (MFR.NE.47)THEN
GOTO 9990
ENDIF
NBG =INFELE(6)
NBGS =INFELE(4)
LRE =INFELE(9)
* MINTE=INFELE(11)
MINTE=INFMOD(7)
IPMINT=MINTE
SEGACT,MINTE
C
C CREATION DU TABLEAU INFOS
C
IF (IRTD.EQ.0) GOTO 9990
*
* TRAITEMENT DU CHAMP DE CARACTERISTIQUES MATERIELLES
if(lnomid(6).ne.0) then
nomid=lnomid(6)
segact nomid
momatr=nomid
nmatr=lesobl(/2)
nmatf=lesfac(/2)
lsupma=.false.
else
lsupma=.true.
endif
IF (MOMATR.EQ.0) THEN
MOTERR(1:4)='MATE'
MOTERR(5:8)=NOMTP(MELE)
GOTO 9990
ENDIF
*
IF (NIFIBR.NE.8) THEN
NBTYPE=1
SEGINI NOTYPE
MOTYPE=NOTYPE
TYPE(1)='REAL*8'
*
ELSE
NBTYPE=13
SEGINI NOTYPE
MOTYPE=NOTYPE
DO I=1,NBTYPE
TYPE(I)='REAL*8'
ENDDO
TYPE(10)='POINTEUREVOLUTIO'
TYPE(11)='POINTEUREVOLUTIO'
*
ENDIF
*
& INFOS,3,IVAMAT)
SEGSUP NOTYPE
IF (IERR.NE.0) GOTO 9990
NMATT=NMATR+NMATF
*
IF (ISUP5.EQ.1) THEN
IF(IERR.NE.0)THEN
ISUP5=0
GOTO 9990
ENDIF
ENDIF
*
* TRAITEMENT DU CHAMP DE CARACTERISTIQUES GEOMETRIQUES
*
if(lnomid(7).ne.0) then
nomid=lnomid(7)
segact nomid
mocara=nomid
ncara=lesobl(/2)
ncarf=lesfac(/2)
lsupca=.false.
else
lsupca=.true.
endif
*
NBTYPE=1
SEGINI NOTYPE
MOTYPE=NOTYPE
TYPE(1)='REAL*8'
*
& INFOS,3,IVACAR)
SEGSUP NOTYPE
IF (IERR.NE.0) GOTO 9990
NCARR=NCARA+NCARF
*
IF (ISUP5.EQ.1.AND.MOCARA.NE.0) THEN
IF(IERR.NE.0)THEN
ISUP5=0
GOTO 9990
ENDIF
ENDIF
*
* TRAITEMENT DU CHAMP DE VARIABLES INTERNES
*
if(lnomid(10).ne.0) then
nomid=lnomid(10)
segact nomid
movari=nomid
nvari=lesobl(/2)
nvarf=lesfac(/2)
lsupva=.false.
else
lsupva=.true.
endif
*
NBTYPE=1
SEGINI NOTYPE
MOTYPE=NOTYPE
TYPE(1)='REAL*8'
*
SEGSUP NOTYPE
IF (IERR.NE.0) GOTO 9990
NVART=NVARI+NVARF
*
* APPEL AU CALCUL PROPREMENT DIT
*
IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN
1 IVAMAT,IVACAR,IVARI,NMATT,NCARR,NVART,
2 CRIGI)
ELSE
1 IVAMAT,IVACAR,IVARI,NMATT,NCARR,NVART,
2 CRIGI)
ENDIF
*
9990 CONTINUE
*
* DESACTIVATION DES SEGMENTS
*
SEGDES,MELEME,IMODEL
*
IF (IPMINT.NE.0) SEGDES,MINTE
IF(ISUP5.EQ.1)THEN
ELSE
ENDIF
*
IF (MOCARA.NE.0) THEN
NOMID=MOCARA
if(lsupca)SEGSUP NOMID
END IF
IF (MOVARI.NE.0) THEN
NOMID=MOVARI
if(lsupva)SEGSUP NOMID
END IF
*
IF (MOMATR.NE.0) THEN
NOMID=MOMATR
if(lsupma)SEGSUP NOMID
END IF
*
IF (IERR.NE.0) GO TO 888
*
1000 CONTINUE
*
888 CONTINUE
SEGDES MMODEL
RETURN
END
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales