divufn
C DIVUFN SOURCE FANDEUR 22/01/03 21:15:12 11136
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
C Calcul d'un flux decentre.
C Le CHAMPOINT résultat est de support FACE.
C-----------------------------------------------------------------------
C
C---------------------------
C Parametres Entree/Sortie :
C---------------------------
C E/ ICHP2 : CHPOIN DES VALEURS F(THETA)
C E/ ICLIM : CHPOIN DES CONDITIONS AUX LIMITES IMPOSEES
C E/ IPFACE : MELEME DES POINTS FACE
C E/ IFACEL : MELEME DES POINTS FACE POUR LES C.L.
C E/ IRE1 : Champoint de type FLUX
C E/ IRE2 : Mchaml des orientation de normale (1=out,-1=in)
C S/ IPFONC : CHAMPOIN RESULTAT DES F(\THETA) DECENTRE
C
C----------------------
C Tableaux de travail :
C----------------------
C
C
C----------------------
C Variables en COMMON :
C----------------------
C
C IFOUR : cf CCOPTIO.INC
C
C-----------------------------------------------------------------------
C
C Langage : ESOPE + FORTRAN77
C
C Auteurs : C. LE POTIER ET F. AURIOL 20/00
C
C-----------------------------------------------------------------------
IMPLICIT INTEGER(I-N)
IMPLICIT REAL*8 (A-H,O-Z)
*
-INC PPARAM
-INC CCOPTIO
-INC SMELEME
-INC SMCHPOI
-INC SMCHAML
-INC SMCOORD
*
SEGMENT ICCPR
INTEGER ICPR(NNGOT)
ENDSEGMENT
SEGMENT ICCPR1
INTEGER ICPR1(NNGOT)
ENDSEGMENT
C
C= INITIALISATIONS
C
MCHPO1 = IRE1
MCHELM = IRE2
IPT1 = IPFACE
NNGOT = nbpts
SEGINI ICCPR1
*
*= Creation des tableaux ICPR et INUI pour le maillage IPT1 des FACES
*
* WRITE(6,*) 'AVANT SEGACT'
SEGACT IPT1
* WRITE(6,*) 'ON A PASSE LE PREMER SEGACT'
N2 = IPT1.NUM(/2)
IK = 0
IF (ICPR1(K).EQ.0) THEN
IK = IK + 1
ICPR1(K) = IK
ENDIF
109 CONTINUE
SEGDES IPT1
* WRITE(6,*) 'APRES SEDDES IPT1'
C
C- Récupération du pointeur MPOVAL des flux
C
SEGACT MCHPO1
MSOUP1 = MCHPO1.IPCHP(1)
SEGACT MSOUP1
MPOVA1 = MSOUP1.IPOVAL
SEGDES MSOUP1
SEGDES MCHPO1
* WRITE(6,*) 'APRES RECUPERATION DU FLUX'
C
C DEFINITION DU CHPOIN RESULTAT
C
NAT=1
NSOUPO=1
SEGINI MCHPOI
* WRITE(6,*) 'MCHPOI'
IPFONC=MCHPOI
IFOPOI = IFOUR
JATTRI(1)=2
NC=1
SEGINI MSOUPO
* WRITE(6,*) 'MSOUPO'
NOCOMP(1)='SCAL'
IPCHP(1)=MSOUPO
IGEOC=IPFACE
IPT1=IPFACE
SEGACT IPT1
N=IPT1.NUM(/2)
SEGINI MPOVAL
IPOVAL=MPOVAL
NOHARM(1)=NIFOUR
* SEGDES MCHPOI
* SEGDES MSOUPO
* SEGDES IPT1
* WRITE(6,*) 'DEFINITION DU CHAMPOIN'
C
IPT3=IFACEL
SEGACT IPT3
NBFACE=IPT3.NUM(/2)
MCHPO2=ICHP2
SEGACT MCHPO2
MSOUP2=MCHPO2.IPCHP(1)
SEGACT MSOUP2
MPOVA2=MSOUP2.IPOVAL
SEGACT MPOVA2
NPCENT=MPOVA2.VPOCHA(/1)
IPT2=MSOUP2.IGEOC
SEGACT IPT2
C On sait que le support de MCHPO2 est le maillage IPCENT (déja vérifié)
NNGOT=nbpts
SEGINI ICCPR
DO 10 I=1,NPCENT
K=IPT2.NUM(1,I)
ICPR(K)=I
10 CONTINUE
* WRITE(6,*) 'BOUCLE SUR LES ELEMENTS'
C
C------------------------------------------------
C= Boucle sur les ZONES ELEMENTAIRES du MCHAML
C------------------------------------------------
C
ITELEM = 0
SEGACT MCHELM
SEGACT MPOVA1
NRIGEL = IMACHE(/1)
DO 409 IRI=1,NRIGEL
C
C Recuperation du MELEME et activation
C
MELEME = IMACHE(IRI)
SEGACT MELEME
N1 = NUM(/1)
N2 = NUM(/2)
C
C Récupération du pointeur MELVAL du MCHAML d'orientation
C
MCHAML = ICHAML(IRI)
SEGACT MCHAML
MELVAL = IELVAL(1)
SEGDES MCHAML
SEGACT MELVAL
C
C------------------------------
C= Boucle 30 sur les ELEMENTs.
C------------------------------
C
C CALCUL DE f(THETA) DECENTRE
ITELEM = ITELEM + 1
DO 209 IN=1,N1
IP = ICPR(IPT3.NUM(1,IFACE))
ID = ICPR(IPT3.NUM(3,IFACE))
* write(6,*) 'I2=',I2,'IP=',IP, 'ID=', ID
ID = IP
IP = I2
ENDIF
IF (VALIN1.LT.0) THEN
VPOCHA(IFACE,1) = MPOVA2.VPOCHA(IP,1)
ELSE
VPOCHA(IFACE,1) = MPOVA2.VPOCHA(ID,1)
ENDIF
209 CONTINUE
309 CONTINUE
SEGDES MELVAL, MELEME
409 CONTINUE
IF(ICLIM.NE.0)THEN
MCHPO4=ICLIM
SEGACT MCHPO4
NSOUP4=MCHPO4.IPCHP(/1)
IPT4=IPFACE
DO 30 I=1,NBFACE
K=IPT4.NUM(1,I)
ICPR(K)=I
30 CONTINUE
DO 40 I=1,NSOUP4
MSOUP4=MCHPO4.IPCHP(I)
SEGACT MSOUP4
IPT5=MSOUP4.IGEOC
MPOVA5=MSOUP4.IPOVAL
SEGACT IPT5,MPOVA5
NBP5=IPT5.NUM(/2)
DO 50 J=1,NBP5
NUMP=IPT5.NUM(1,J)
VPOCHA(ICPR(NUMP),1)=MPOVA5.VPOCHA(J,1)
50 CONTINUE
SEGDES IPT5,MPOVA5,MSOUP4
40 CONTINUE
SEGDES MCHPO4,IPT2
ENDIF
SEGDES MCHELM
SEGDES MPOVA1
SEGDES MPOVAL
SEGSUP ICCPR
SEGSUP ICCPR1
C
RETURN
END
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales