meldiv
C MELDIV SOURCE CB215821 20/11/25 13:34:14 10792
IMPLICIT INTEGER(I-N)
IMPLICIT REAL*8 (A-H,O-Z)
C***********************************************************************
C
C Ce Sp crée un MCHAML a partir d'un FLOTTANT ou d'un CHPOIN
C Le MCHAML en retour est jetable et est calcule aux pts d'integrations
C Le support géométrique du MCHELM est compatible avec le schema
C d'intégration de l'opérateur
C c'est le MELEME sauf pour les MACRO (INEFMD=2) avec CENTREP0
C CENTREP1 et MSOMMET où MELEME=MACRO1
C----------------------------------------------------------------------
C HISTORIQUE : 20/10/01 : Création
C
C HISTORIQUE :
C
C
C---------------------------
C Paramètres Entrée/Sortie :
C---------------------------
C
C E/ MTABD : Objet model de la zone
C E/ MCHPOI : CHPOINT valeur du coef si chpoint (chpoint vecteur)
C /S MCHELM : Chamelem pts d'intégration pour le COEF
C E/ KPOIND : ENTIER type du support GÉométrique DUAL du shéma
C d'intégration différent de KPOINC celui du coef
C cette info sert à la construction du Chamelem
C----------------------------------------------------------------------
C KPOIN = 0->SOMMET 1-> FACE 2-> CENTRE 3-> CENTREP0 4-> CENTREP1 5-> MSOMMET
C************************************************************************
-INC SIZFFB
POINTEUR IZF1.IZFFM,IZH2.IZHR,IZFD.IZFFM
SEGMENT SAJT
REAL*8 AJT(IDIM,IDIM,NPG)
ENDSEGMENT
-INC SMCHAML
-INC SMCHPOI
-INC SMELEME
POINTEUR IGEOM.MELEME
POINTEUR MELEMD.MELEME,SPGD.MELEME
-INC SMLENTI
-INC SMCOORD
-INC PPARAM
-INC CCOPTIO
-INC CCGEOME
CHARACTER*4 NOMD4
CHARACTER*8 TYPE,NOM0
DIMENSION XPOI(3)
C*****************************************************************************
CMELDIV
c write(6,*)' DEBUT MELDIV '
XPETI=1.D-30
IAXI=0
IF(IFOMOD.EQ.0)IAXI=2
C
IF(INEFMD.EQ.2.AND.
& (KPOIND.EQ.3.OR.KPOIND.EQ.4.OR.KPOIND.EQ.5))THEN
ENDIF
SEGACT MELEME
L1=72
N1=MAX(1,LISOUS(/1))
N2=1
N3=6
SEGINI MCHELM
C-------------------------------------------------------------------------
C__CHPOINT
SEGACT MCHPOI
NSOUPO=IPCHP(/1)
IF(NSOUPO.EQ.1) THEN
MSOUPO=IPCHP(1)
SEGACT MSOUPO
IGEOM=IGEOC
MPOVAL=IPOVAL
SEGDES MSOUPO
SEGACT MPOVAL
NC=VPOCHA(/2)
IF(NC.NE.IDIM)THEN
RETURN
ENDIF
ELSE
RETURN
ENDIF
c write(6,*)' IGEOM=',IGEOM
KPOINC=0
NOMD4= ' '
c write(6,*)' SOMMET (0 OK) ',SPGD,iret
SEGDES SPGD
IF(IRET.EQ.0)GO TO 180
KPOINC=2
NOMD4= ' '
c write(6,*)' CENTRE (0 OK) ',SPGD,iret
SEGDES SPGD
IF(INEFMD.EQ.3)THEN
KPOINC=3
NOMD4= 'PRP0'
ENDIF
IF(IRET.EQ.0)GO TO 180
KPOINC=5
NOMD4= 'P1P1'
IF(INEFMD.EQ.2)NOMD4= 'MCF1'
IF(INEFMD.EQ.3)NOMD4= 'PFP1'
c write(6,*)'MSOMMET (0 OK) ',SPGD,iret
SEGDES SPGD
IF(IRET.EQ.0)GO TO 180
IF(INEFMD.EQ.2.OR.INEFMD.EQ.3)THEN
KPOINC=4
NOMD4= ' '
IF(INEFMD.EQ.2)NOMD4= 'MCP1'
IF(INEFMD.EQ.3)NOMD4= 'PRP1'
c write(6,*)'CENTREP1 (0 OK) ',SPGD,iret
SEGDES SPGD
IF(IRET.EQ.0)GO TO 180
KPOINC=3
NOMD4= ' '
IF(INEFMD.EQ.2)NOMD4= 'MCP0'
IF(INEFMD.EQ.3)NOMD4= 'PRP0'
SEGDES SPGD
IF(IRET.EQ.0)GO TO 180
ENDIF
C__CHPOINT_SUPPORT_INCONU
C Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique
MOTERR(1: 8) = 'CHPOINT '
MOTERR(9:16) = ' COEF '
RETURN
180 CONTINUE
SEGDES IGEOM
C__CHPOINT
c write(6,*)' CAs CHPOIN '
SEGACT MELEMD
NKD=0
DO 191 L=1,MAX(1,LISOUS(/1))
IPT1=MELEME
IPT2=MELEMD
IF(LISOUS(/1).NE.0)IPT1=LISOUS(L)
SEGACT IPT1
IF(MELEMD.LISOUS(/1).NE.0)IPT2=MELEMD.LISOUS(L)
SEGACT IPT2
IF(MELEMD.LISOUS(/1).NE.0)NKD=0
MP=IPT2.NUM(/1)
NOM0 = NOMS(IPT1.ITYPEL)//NOMD4
SEGACT IZFFM
IZHR=KZHR(1)
IZF1=KTP(1)
IZH2=KZHR(2)
SEGACT IZHR*MOD
IZFD=IZF1
IF(KPOINC.EQ.0)IZFD=IZFFM
SEGACT IZFD*MOD
IF(MP.NE.IZFD.FN(/1))THEN
write(6,*)' Gross problem '
write(6,*)' INEFMD=',INEFMD,' NOMD4=',NOMD4
write(6,*)' MP=',MP,' KPOINC.=',KPOINC,' IZFD.FN(/1)='
& ,IZFD.FN(/1)
ENDIF
NES=GR(/1)
NPG=GR(/3)
NBNN =IPT1.NUM(/1)
NBELEM=IPT1.NUM(/2)
SEGINI MCHAML
IDU=IDIM
SEGINI SAJT
N1PTEL=NPG*IDU
N1EL =NBELEM
N2PTEL=0
N2EL=0
IMACHE(L)=IPT1
ICHAML(L)=MCHAML
SEGINI MELVAL
IELVAL(1)=MELVAL
c write(6,*)' Avt BCL 192 ',N1EL,nbnn,N1PTEL
DO 192 K=1,N1EL
DO 109 J=1,NBNN
J1=IPT1.NUM(J,K)
DO 109 N=1,IDIM
XYZ(N,J)=XCOOR((J1-1)*(IDIM+1)+N)
109 CONTINUE
& IDIM,NBNN,NPG,IAXI,AIRE,AJ,SGN)
NKD=NKD+1
DO 194 LG=1,NPG
U=0.D0
DO 193 N=1,IDIM
DO 193 I=1,MP
I1=LECT(IPT2.NUM(I,NKD))
c U=U+IZFD.FN(I,LG)*VPOCHA(I1,N)
U=U+HR(N,I,LG)*VPOCHA(I1,N)
193 CONTINUE
VELCHE(LG,K)=U
194 CONTINUE
IF(IAXI.NE.0)THEN
DO 196 LG=1,NPG
U=0.D0
DO 195 I=1,MP
I1=LECT(IPT2.NUM(I,NKD))
U=U+FN(I,LG)*VPOCHA(I1,1)/RPG(LG)
195 CONTINUE
VELCHE(LG,K)=VELCHE(LG,K)+U
196 CONTINUE
ENDIF
192 CONTINUE
SEGDES MELVAL
SEGDES IPT1,MCHAML
SEGSUP IZFFM,IZHR,IZF1,IZH2,SAJT
191 CONTINUE
SEGDES MCHPOI,MSOUPO,MPOVAL
SEGDES MCHELM,MELEME
SEGSUP MLENTI
C*************************************************************************
c write(6,*)' FIN MELDIV '
RETURN
1001 FORMAT(20(1X,I5))
1002 FORMAT(10(1X,1PE11.4))
END
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales