kdmi
C KDMI SOURCE CB215821 20/11/25 13:31:00 10792
SUBROUTINE KDMI
IMPLICIT INTEGER(I-N)
IMPLICIT REAL*8 (A-H,O-Z)
C*************************************************************************
C
C OBJET : Cree un CHAMPOINT CENTRE contenant le diametre min des
C éléments du domaine
C
C SYNTAXE : CHPC = KDMI OBJDOM ;
C
C OBJDOM : TABLE de SOUSTYPE DOMAINE
C
C*************************************************************************
-INC CCREEL
-INC PPARAM
-INC CCOPTIO
-INC SMELEME
POINTEUR MELEMC.MELEME, MELEMF.MELEME
-INC SMCOORD
-INC SMCHPOI
-INC SMLENTI
-INC SMCHAML
* PARAMETER (XPETI2=XPETIT**2)
PARAMETER (NTB=1)
CHARACTER*8 LTAB(NTB),TYPE,TYPC
DIMENSION KTAB(NTB)
DATA LTAB/'DOMAINE '/
C***
NTO=NTB
IF(IRET.EQ.0)RETURN
MTABD=KTAB(1)
TYPE=' '
IF(TYPE.NE.'MAILLAGE')GO TO 90
IF(TYPE.NE.'MAILLAGE')GO TO 90
TYPE=' '
IF (TYPE.NE.'CHPOINT ') THEN
SEGSUP MCHELM
SEGSUP MCHPO2
ENDIF
NC=1
TYPE='CENTRE'
C In LICHT -> SEGACT MPOVAL*MOD
TYPE=' '
IPT1=MELEMF
SEGACT IPT1
IPT2=MELEMC
SEGACT IPT2
SEGACT MLENTI
NF=IPT1.NUM(/2)
NEL=IPT2.NUM(/2)
DO 5 K=1,NEL
C# VPOCHA(K,1)=XGRAND**2
VPOCHA(K,1)=XGRAND
5 CONTINUE
DO 10 K=1,NF
C CALCUL DU DIAMETRE MIN
C PRODUIT SCALAIRE DE LA NORMALE A LA FACE ET DU VECTEUR
C CENTRE/FACE
IPI=IPT1.NUM(2,K)
C Point gauche
IPC=IPT1.NUM(1,K)
XM2=0.D0
DO 325 N=1,IDIM
XM2=XM2+((XCOOR((IPI-1)*(IDIM+1)+N)
$ -XCOOR((IPC-1)*(IDIM+1)+N))*MPOVA1.VPOCHA(K,N))
325 CONTINUE
XM2=ABS(XM2)*2
XMI2=VPOCHA(LECT(IPC),1)
VPOCHA(LECT(IPC),1)=MIN(XM2,XMI2)
C Point droit
IPC=IPT1.NUM(3,K)
XM2=0.D0
DO 326 N=1,IDIM
XM2=XM2+((XCOOR((IPI-1)*(IDIM+1)+N)
$ -XCOOR((IPC-1)*(IDIM+1)+N))*MPOVA1.VPOCHA(K,N))
326 CONTINUE
XM2=ABS(XM2)*2
XMI2=VPOCHA(LECT(IPC),1)
VPOCHA(LECT(IPC),1)=MIN(XM2,XMI2)
C
* IF(XMI2.LT.XPETI2) WRITE(6,*)
* $ 'kdmi.eso : un element est peut-etre degenere'
10 CONTINUE
SEGDES IPT1
SEGDES IPT2
SEGDES MPOVAL
SEGDES MPOVA1
SEGSUP MLENTI
C
RETURN
90 CONTINUE
* WRITE(6,*)' Interruption anormale dans kdmi.eso'
RETURN
1001 FORMAT(20(1X,I5))
END
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales