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