1 : C RACMAS SOURCE CHAT 05/01/13 02:44:30 5004 2 : SUBROUTINE RACMAS(NBPGAU,IFOUR,NIFOUR,IDIM,NBNN,XE,CFPI,WORK, 3 : 1 POIGAU,SHPTOT,REL,LRE) 4 : C======================================================================= 5 : C 6 : C CALCULE LA MATRICE MASSE DE L ELEMENT DE RACCORD 7 : C LIQUIDE MASSIF LINEAIRE CAS BIDIMENSIONNEL 8 : C (INTEGRE LE PRODUIT XPI*U AVEC U DEPLACEMENT NORMAL A LA PAROI 9 : C DU SOLIDE) 10 : C 11 : C ROUTINE FORTRAN PUR 12 : C 13 : C JACQUELINE BROCHARD OCTOBRE 85 14 : C======================================================================= 15 : C ENTREES 16 : C NBPGAU = NB DE PTS DE GAUSS 17 : C IFOUR = IFOUR DE CCOPTIO 18 : C NBNN = NB DE NOEUDS DE L ELEMENT DE RACCORD 19 : C XE(3,NBNN) = COORDONNEES LOCALES DE L ELEMENT 20 : C CFPI = COEFFICIENT DE NORMALISATION SUR XPI 21 : C WORK(IDIM) = COMPOSANTES DE LA NORMALE SORTANTE AU FLUIDE 22 : C POIGAU(NBPGAU) = POIDS DE GAUSS 23 : C SHPTOT(6,NBNN,NBPGAU) = FONCTIONS DE FORME ET DERIVEES DE 24 : C L ELEMENT DE RACCORD 25 : C SORTIES 26 : C REL(LRE,LRE) = MATRICE DE MASSE 27 : C======================================================================= 28 : IMPLICIT INTEGER(I-N) 29 : IMPLICIT REAL*8 (A-H,O-Z) 30 : C Include contenant quelques constantes dont XPI : 31 : -INC CCREEL 32 : DIMENSION XE(3,1),WORK(IDIM),POIGAU(NBPGAU),SHPTOT(6,NBNN,1) 33 : DIMENSION REL(LRE,1) 34 : DATA EPSI/1.D-12/ 35 : C 36 : C BOUCLE SUR LES NOEUDS LIQUIDE ET INTEGRATION NUMERIQUE 37 : C 38 : NBNNL=NBNN/2 39 : DO 100 NL=1,NBNNL 40 : DO 80 IGAU=1,NBPGAU 41 : C 42 : C CALCUL DU RAYON ET DES COMPOSANTES DU VECTEUR NORMAL A LA PAROI 43 : C 44 : R=XZERO 45 : ALFA=XZERO 46 : BETA=XZERO 47 : ID=NBNNL+1 48 : DO 20 J=ID,NBNN 49 : JJ=J-NBNNL 50 : R=R+XE(1,J)*SHPTOT(1,JJ,IGAU) 51 : ALFA=ALFA-SHPTOT(2,JJ,IGAU)*XE(2,J) 52 : BETA=BETA+SHPTOT(2,JJ,IGAU)*XE(1,J) 53 : 20 CONTINUE 54 : IF(IFOUR.EQ.0.OR.(IFOUR.EQ.1.AND.NIFOUR.EQ.0)) THEN 55 : R=R*2*XPI 56 : ELSEIF(IFOUR.EQ.1.AND.NIFOUR.NE.0) THEN 57 : R=R*XPI 58 : ELSE 59 : R=1.D0 60 : ENDIF 61 : C 62 : C ON COMPARE L ORIENTATION DE LA NORMALE SORTANTE AU FLUIDE 63 : C A CELLE DE LA PAROI 64 : C 65 : PSCAL=ALFA*WORK(1)+BETA*WORK(2) 66 : IF (ABS(PSCAL).LT.EPSI) GOTO 777 67 : SENS=PSCAL/ABS(PSCAL) 68 : C 69 : C ON REMPLIT LA MATRICE 70 : C 71 : IF(IFOUR.LT.1) NCP=2 72 : IF(IFOUR.EQ.1) NCP=3 73 : DO 30 J=ID,NBNN 74 : JJ=J-NBNNL 75 : IL=2*NL 76 : IC1=2*NBNNL+(J-ID)*NCP+1 77 : IC2=IC1+1 78 : REL(IL,IC1)=REL(IL,IC1)-SENS*CFPI*SHPTOT(1,NL,IGAU) 79 : 1 *POIGAU(IGAU)*R*ALFA*SHPTOT(1,JJ,IGAU) 80 : REL(IL,IC2)=REL(IL,IC2)-SENS*CFPI*SHPTOT(1,NL,IGAU) 81 : 1 *POIGAU(IGAU)*R*BETA*SHPTOT(1,JJ,IGAU) 82 : 30 CONTINUE 83 : 80 CONTINUE 84 : C 85 : C LE COUPLAGE LIQUIDE-MASSIF 2D LIE LES NOEUDS 86 : C (1,NBNN) (2,NBNN-1) ETC , ON INVERSE DONC LES TERMES 87 : C DE LA MATRICE 88 : C 89 : IL=2*NL 90 : DO 35 I=1,NCP 91 : IB=2*NBNNL+I 92 : ELT=REL(IL,IB) 93 : JB=2*NBNNL+(NBNNL-1)*NCP+I 94 : REL(IL,IB)=REL(IL,JB) 95 : REL(IL,JB)=ELT 96 : 35 CONTINUE 97 : C 98 : C SYMETRISATION 99 : C 100 : DO 40 J=ID,NBNN 101 : IL=2*NL 102 : IC1=2*NBNNL+(J-ID)*NCP+1 103 : IC2=IC1+1 104 : REL(IC1,IL)=REL(IL,IC1) 105 : REL(IC2,IL)=REL(IL,IC2) 106 : 40 CONTINUE 107 : 100 CONTINUE 108 : GOTO 666 109 : C 110 : C ERREUR LE VECTEUR PERMETTANT D ORIENTER L ELEMENT DE RACCORD 111 : C EST NUL OU PARALLELE A LA FRONTIERE DU FLUIDE 112 : C 112 : 777 CALL ERREUR(246) 113 : 666 CONTINUE 114 : RETURN 115 : END 116 : 117 : 118 : 119 : 120 : 121 :
© Cast3M 2003 - All rights reserved.
Disclaimer