pb663
C PB663 SOURCE CHAT 05/01/13 02:10:51 5004 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C************************************************************************ C C CALCULE LES FONCTIONS DE FORME D'UN : Iso-Q2 (iso P1/P0 nc) PR18 C C P4 equation du plan zeta=0 C P5 equation du plan zeta=1 C ^ zeta etc C | 14 ^ eta |X3 3 C | / \ / |Y3 o C | / \ / |\ C | 15_____\13 / | \ C | / \ /\ / P3 | \ P2 C | / \ / \ / | \ C |/_____\/____\ / | \ C 10 11 12 / | \ C | / 1 o______o 2 C | 9 / |X1 |X2 C | / \ / |Y1 P1 |Y2 C | / \ / C | 18_____17 C | / \ /\ XI abcisse intersection P2 et ksi C | / \ / \ YI ordonnée intersection P2 et eta C |/_____\/____\ C 7 16 8 C | / fct de formes N1=P2*P5/F1C C | 5 tel que N1=1 au pt 1 C | / \ C | / \ C | 6_____\4 C | / \ /\ C | / \ / \ C |/_____\/____\ ____________________>ksi C 1 2 3 C C C************************************************************************ CHARACTER*4 NOM2 REAL*8 X(NPG),Y(NPG),Z(NPG) DIMENSION FN(NP,NPG),GR(ND,NP,NPG),PG(NPG) DIMENSION FM(MP,NPG),GM(ND,MP,NPG) DIMENSION U(5),H(5),XA(3),XB(3),XC(3),XD(3) SAVE XA,XB,XC,XD DATA XA/3*0.25D0/,XB/0.75D0,0.25D0,0.75D0/ DATA XC/2*0.75D0,0.25D0/,XD/0.25D0,2*0.75D0/ C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C R2=SQRT(2.D0) R22=R2*0.5D0 DO 1 K=1,8 C IF(K.EQ.1)THEN X1=0.D0 Y1=0.D0 X2=R22 Y2=0.D0 X3=0.D0 Y3=R22 Z1=0.D0 Z2=0.5D0 XI=R22 YI=R22 ELSEIF(K.EQ.2)THEN X1=R22 Y1=0.D0 X2=R2 Y2=0.D0 X3=R22 Y3=R22 Z1=0.D0 Z2=0.5D0 XI=R2 YI=R2 ELSEIF(K.EQ.3)THEN X1=0.D0 Y1=R22 X2=R22 Y2=R22 X3=0.D0 Y3=R2 Z1=0.D0 Z2=0.5D0 XI=R2 YI=R2 ELSEIF(K.EQ.4)THEN X1=R22 Y1=R22 X2=0.D0 Y2=R22 X3=R22 Y3=0.D0 Z1=0.D0 Z2=0.5D0 XI=R22 YI=R22 ELSEIF(K.EQ.5)THEN X1=0.D0 Y1=0.D0 X2=R22 Y2=0.D0 X3=0.D0 Y3=R22 Z1=0.5D0 Z2=1.D0 XI=R22 YI=R22 ELSEIF(K.EQ.6)THEN X1=R22 Y1=0.D0 X2=R2 Y2=0.D0 X3=R22 Y3=R22 Z1=0.5D0 Z2=1.D0 XI=R2 YI=R2 ELSEIF(K.EQ.7)THEN X1=0.D0 Y1=R22 X2=R22 Y2=R22 X3=0.D0 Y3=R2 Z1=0.5D0 Z2=1.D0 XI=R2 YI=R2 ELSEIF(K.EQ.8)THEN X1=R22 Y1=R22 X2=0.D0 Y2=R22 X3=R22 Y3=0.D0 Z1=0.5D0 Z2=1.D0 XI=R22 YI=R22 ENDIF K0=(K-1)*NGG &X1,Y1,X2,Y3,Z1,Z2) C write(6,*)' KHPRM NGG=',ngg C write(6,1002)(x(ii),ii=1,ngg) C write(6,1002)(y(ii),ii=1,ngg) C write(6,1002)(z(ii),ii=1,ngg) P1C=Y3-Y1 P2C=X1/XI+Y1/YI-1.D0 P3C=X2-X1 P4C=Z2-Z1 P5C=Z1-Z2 C write(6,*)'PiC ' C write(6,1002)P1C,P2C,P3C,P4C,P5C DO 1 L=1,NGG P1=Y(L+K0)-Y1 P2=X(L+K0)/XI+Y(L+K0)/YI-1.D0 P3=X(L+K0)-X1 P4=Z(L+K0)-Z1 P5=Z(L+K0)-Z2 F1C=P2C*P5C F1=P2*P5/F1C F2C=P3C*P5C F2=P3*P5/F2C F3C=P1C*P5C F3=P1*P5/F3C F4C=P2C*P4C F4=P2*P4/F4C F5C=P3C*P4C F5=P3*P4/F5C F6C=P1C*P4C F6=P1*P4/F6C C write(6,*)'FiC' C write(6,1002)F1C,F2C,F3C,F4C,F5C,F6C GX1=P5/XI/F1C GY1=P5/YI/F1C GZ1=P2/F1C GX2=P5/F2C GY2=0.D0 GZ2=P3/F2C GX3=0.D0 GY3=P5/F3C GZ3=P1/F3C GX4=P4/XI/F4C GY4=P4/YI/F4C GZ4=P2/F4C GX5=P4/F5C GY5=0.D0 GZ5=P3/F5C GX6=0.D0 GY6=P4/F6C GZ6=P1/F6C C write(6,1002)F1,f2,f3,f4,f5,f6 C C write(6,1002)gx1,gx2,gx3,gx4,gx5,gx6 C write(6,1002)gy1,gy2,gy3,gy4,gy5,gy6 C write(6,1002)gz1,gz2,gz3,gz4,gz5,gz6 LL=K0+L IF(K.EQ.1)THEN FN( 1,LL)=F1 FN( 2,LL)=F2 FN( 6,LL)=F3 FN( 7,LL)=F4 FN(16,LL)=F5 FN(18,LL)=F6 GR(1, 1,LL)=GX1 GR(1, 2,LL)=GX2 GR(1, 6,LL)=GX3 GR(1, 7,LL)=GX4 GR(1,16,LL)=GX5 GR(1,18,LL)=GX6 GR(2, 1,LL)=GY1 GR(2, 2,LL)=GY2 GR(2, 6,LL)=GY3 GR(2, 7,LL)=GY4 GR(2,16,LL)=GY5 GR(2,18,LL)=GY6 GR(3, 1,LL)=GZ1 GR(3, 2,LL)=GZ2 GR(3, 6,LL)=GZ3 GR(3, 7,LL)=GZ4 GR(3,16,LL)=GZ5 GR(3,18,LL)=GZ6 ELSEIF(K.EQ.2)THEN FN( 2,LL)=F1 FN( 3,LL)=F2 FN( 4,LL)=F3 FN(16,LL)=F4 FN( 8,LL)=F5 FN(17,LL)=F6 GR(1, 2,LL)=GX1 GR(1, 3,LL)=GX2 GR(1, 4,LL)=GX3 GR(1,16,LL)=GX4 GR(1, 8,LL)=GX5 GR(1,17,LL)=GX6 GR(2, 2,LL)=GY1 GR(2, 3,LL)=GY2 GR(2, 4,LL)=GY3 GR(2,16,LL)=GY4 GR(2, 8,LL)=GY5 GR(2,17,LL)=GY6 GR(3, 2,LL)=GZ1 GR(3, 3,LL)=GZ2 GR(3, 4,LL)=GZ3 GR(3,16,LL)=GZ4 GR(3, 8,LL)=GZ5 GR(3,17,LL)=GZ6 ELSEIF(K.EQ.3)THEN FN( 6,LL)=F1 FN( 4,LL)=F2 FN( 5,LL)=F3 FN(18,LL)=F4 FN(17,LL)=F5 FN( 9,LL)=F6 GR(1, 6,LL)=GX1 GR(1, 4,LL)=GX2 GR(1, 5,LL)=GX3 GR(1,18,LL)=GX4 GR(1,17,LL)=GX5 GR(1, 9,LL)=GX6 GR(2, 6,LL)=GY1 GR(2, 4,LL)=GY2 GR(2, 5,LL)=GY3 GR(2,18,LL)=GY4 GR(2,17,LL)=GY5 GR(2, 9,LL)=GY6 GR(3, 6,LL)=GZ1 GR(3, 4,LL)=GZ2 GR(3, 5,LL)=GZ3 GR(3,18,LL)=GZ4 GR(3,17,LL)=GZ5 GR(3, 9,LL)=GZ6 ELSEIF(K.EQ.4)THEN FN( 4,LL)=F1 FN( 6,LL)=F2 FN( 2,LL)=F3 FN(17,LL)=F4 FN(18,LL)=F5 FN(16,LL)=F6 GR(1, 4,LL)=GX1 GR(1, 6,LL)=GX2 GR(1, 2,LL)=GX3 GR(1,17,LL)=GX4 GR(1,18,LL)=GX5 GR(1,16,LL)=GX6 GR(2, 4,LL)=GY1 GR(2, 6,LL)=GY2 GR(2, 2,LL)=GY3 GR(2,17,LL)=GY4 GR(2,18,LL)=GY5 GR(2,16,LL)=GY6 GR(3, 4,LL)=GZ1 GR(3, 6,LL)=GZ2 GR(3, 2,LL)=GZ3 GR(3,17,LL)=GZ4 GR(3,18,LL)=GZ5 GR(3,16,LL)=GZ6 ELSEIF(K.EQ.5)THEN FN( 7,LL)=F1 FN(16,LL)=F2 FN(18,LL)=F3 FN(10,LL)=F4 FN(11,LL)=F5 FN(15,LL)=F6 GR(1, 7,LL)=GX1 GR(1,16,LL)=GX2 GR(1,18,LL)=GX3 GR(1,10,LL)=GX4 GR(1,11,LL)=GX5 GR(1,15,LL)=GX6 GR(2, 7,LL)=GY1 GR(2,16,LL)=GY2 GR(2,18,LL)=GY3 GR(2,10,LL)=GY4 GR(2,11,LL)=GY5 GR(2,15,LL)=GY6 GR(3, 7,LL)=GZ1 GR(3,16,LL)=GZ2 GR(3,18,LL)=GZ3 GR(3,10,LL)=GZ4 GR(3,11,LL)=GZ5 GR(3,15,LL)=GZ6 ELSEIF(K.EQ.6)THEN FN(16,LL)=F1 FN( 8,LL)=F2 FN(17,LL)=F3 FN(11,LL)=F4 FN(12,LL)=F5 FN(13,LL)=F6 GR(1,16,LL)=GX1 GR(1, 8,LL)=GX2 GR(1,17,LL)=GX3 GR(1,11,LL)=GX4 GR(1,12,LL)=GX5 GR(1,13,LL)=GX6 GR(2,16,LL)=GY1 GR(2, 8,LL)=GY2 GR(2,17,LL)=GY3 GR(2,11,LL)=GY4 GR(2,12,LL)=GY5 GR(2,13,LL)=GY6 GR(3,16,LL)=GZ1 GR(3, 8,LL)=GZ2 GR(3,17,LL)=GZ3 GR(3,11,LL)=GZ4 GR(3,12,LL)=GZ5 GR(3,13,LL)=GZ6 ELSEIF(K.EQ.7)THEN FN(18,LL)=F1 FN(17,LL)=F2 FN( 9,LL)=F3 FN(15,LL)=F4 FN(13,LL)=F5 FN(14,LL)=F6 GR(1,18,LL)=GX1 GR(1,17,LL)=GX2 GR(1, 9,LL)=GX3 GR(1,15,LL)=GX4 GR(1,13,LL)=GX5 GR(1,14,LL)=GX6 GR(2,18,LL)=GY1 GR(2,17,LL)=GY2 GR(2, 9,LL)=GY3 GR(2,15,LL)=GY4 GR(2,13,LL)=GY5 GR(2,14,LL)=GY6 GR(3,18,LL)=GZ1 GR(3,17,LL)=GZ2 GR(3, 9,LL)=GZ3 GR(3,15,LL)=GZ4 GR(3,13,LL)=GZ5 GR(3,14,LL)=GZ6 ELSEIF(K.EQ.8)THEN FN(17,LL)=F1 FN(18,LL)=F2 FN(16,LL)=F3 FN(13,LL)=F4 FN(15,LL)=F5 FN(11,LL)=F6 GR(1,17,LL)=GX1 GR(1,18,LL)=GX2 GR(1,16,LL)=GX3 GR(1,13,LL)=GX4 GR(1,15,LL)=GX5 GR(1,11,LL)=GX6 GR(2,17,LL)=GY1 GR(2,18,LL)=GY2 GR(2,16,LL)=GY3 GR(2,13,LL)=GY4 GR(2,15,LL)=GY5 GR(2,11,LL)=GY6 GR(3,17,LL)=GZ1 GR(3,18,LL)=GZ2 GR(3,16,LL)=GZ3 GR(3,13,LL)=GZ4 GR(3,15,LL)=GZ5 GR(3,11,LL)=GZ6 ENDIF 1 CONTINUE IF(NOM2.EQ.'MCP0')THEN DO 2 L=1,NPG FM(1,L)=1.D0 GM(1,1,L)=0.D0 GM(2,1,L)=0.D0 GM(3,1,L)=0.D0 2 CONTINUE ELSEIF(NOM2.EQ.'MCP1')THEN DO 3 LL=1,(2*NGG) FM(1,LL)=0.25D0 FM(2,LL+2*NGG)=0.25D0 FM(3,LL+4*NGG)=0.25D0 FM(4,LL+6*NGG)=0.25D0 3 CONTINUE ELSEIF(NOM2.EQ.'MCF1')THEN DO 4 L=1,NPG FM(1,L)=(X(L)+Y(L)-R2)*(Z(L)-1.D0)/R2 FM(2,L)=-X(L)*(Z(L)-1.D0)/R2 FM(3,L)=-Y(L)*(Z(L)-1.D0)/R2 FM(4,L)=-(X(L)+Y(L)-R2)*Z(L)/R2 FM(5,L)=X(L)*Z(L)/R2 FM(6,L)=Y(L)*Z(L)/R2 GM(1,1,L)=(Z(L)-1.D0)/R2 GM(2,1,L)=(Z(L)-1.D0)/R2 GM(3,1,L)=(X(L)+Y(L)-R2)/R2 GM(1,2,L)=-(Z(L)-1.D0)/R2 GM(2,2,L)=0.D0 GM(3,2,L)=-X(L)/R2 GM(1,3,L)=0.D0 GM(2,3,L)=-(Z(L)-1.D0)/R2 GM(3,3,L)=-Y(L)/R2 GM(1,4,L)=-Z(L)/R2 GM(2,4,L)=-Z(L)/R2 GM(3,4,L)=-(X(L)+Y(L)-R2)/R2 GM(1,5,L)=Z(L)/R2 GM(2,5,L)=0.D0 GM(3,5,L)=X(L)/R2 GM(1,6,L)=0.D0 GM(2,6,L)=Z(L)/R2 GM(3,6,L)=Y(L)/R2 C 4 CONTINUE ENDIF C write(6,*)' FM' C write(6,1002)((FM(II,JJ),II=1,MP),JJ=1,NPG) C write(6,*)' VERIF ,PG=' C write(6,1002)(pg(ii),ii=1,npg) C do 75 ll=1,npg C write(6,*)' VERIF ,fn,gr ll=',ll C write(6,1002)(fn(ii,ll),ii=1,np) C write(6,1002)(gr(1,ii,ll),ii=1,np) C write(6,1002)(gr(2,ii,ll),ii=1,np) C write(6,1002)(gr(3,ii,ll),ii=1,np) C75 continue C write(6,*)' VERIF ,NPG,NP,NGG=',NPG,NP,NGG C UPG=0.D0 C do 72 L=1,NPG C UPG=UPG+PG(L) C UF=0.D0 C UG1=0.D0 C UG2=0.D0 C UG3=0.D0 C DO 71 I=1,NP C UF=UF+FN(I,L) C UG1=UG1+GR(1,I,L) C UG2=UG2+GR(2,I,L) C UG3=UG3+GR(3,I,L) C71 CONTINUE C WRITE(6,*)' VERIF L=',L,UF,UG1,UG2,UG3 C72 CONTINUE C WRITE(6,*)' VERIF PG=',UPG C WRITE(6,101) C IF(MP.EQ.1)THEN C DO 4 L=1,NPG C FM(1,L)=1.D0 C GM(1,1,L)=0.D0 C GM(2,1,L)=0.D0 C GM(3,1,L)=0.D0 C4 CONTINUE C ELSEIF(MP.EQ.4)THEN C XX(1)=X(L) C XX(2)=Y(L) C XX(3)=Z(L) C FM(1,L)=EQPL3P(XX,XB,XC,XD)/ C & EQPL3P(XA,XB,XC,XD) C FM(2,L)=EQPL3P(XX,XA,XC,XD)/ C & EQPL3P(XB,XA,XC,XD) C FM(3,L)=EQPL3P(XX,XA,XB,XD)/ C & EQPL3P(XC,XA,XB,XD) C C FM(4,L)=EQPL3P(XX,XA,XB,XC)/ C & EQPL3P(XD,XA,XB,XC) C CALL INITD(GM,(12*NPG),0.D0) C3 CONTINUE C ENDIF C WRITE(6,101) RETURN 1002 FORMAT(10(1X,1PD11.4)) 1001 FORMAT(20(1X,I5)) 101 FORMAT(1X,'... SUBPB663 ... FM,GM,FN,GR ',9(10H..........)/) C END
© Cast3M 2003 - Tous droits réservés.
Mentions légales