pb883
C PB883 SOURCE CHAT 05/01/13 02:11:02 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) CU27 C C ^ zeta C | n8______n7 C | / /| C 1 |/_______/ | C |n5| |n6| C | |eta_|__| C | /n4 | /n3 C |/______|/____>ksi C 0 1 C n1 \ n2 C \ C \ C \ C \ C 19__\________18____________17 C / \ / / C / V / / C 20___________26____________/16 C / / / C / / / C /____________/____________/ C 13 14 15 C C 12___________23____________ 11 C / / / C / / / C 24___________27____________/22 C / / / C / / / C /____________/____________/ C 9 21 10 C C 7____________6____________5 C / / / C / / / C 8/___________25____________/4 C / / / C / / / C /____________/____________/ C 1 2 3 C C 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) DIMENSION XX(2,8),YY(2,8),ZZ(2,8) DATA XX/0.D0,0.5D0,0.5D0,1.D0,0.5D0,1.D0,0.D0,0.5D0, & 0.D0,0.5D0,0.5D0,1.D0,0.5D0,1.D0,0.D0,0.5D0/ DATA YY/0.D0,0.5D0,0.D0,0.5D0,0.5D0,1.D0,0.5D0,1.D0, & 0.D0,0.5D0,0.D0,0.5D0,0.5D0,1.D0,0.5D0,1.D0/ DATA ZZ/0.D0,0.5D0,0.D0,0.5D0,0.D0,0.5D0,0.D0,0.5D0, & 0.5D0,1.D0,0.5D0,1.D0,0.5D0,1.D0,0.5D0,1.D0/ C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> NGG=NG*NG*NG DO 1 K=1,8 C X1=XX(1,K) X2=XX(2,K) Y1=YY(1,K) Y2=YY(2,K) Z1=ZZ(1,K) Z2=ZZ(2,K) K0=(K-1)*NGG & PG(K0+1)) P1C=Y2-Y1 P2C=X1-X2 P3C=Y1-Y2 P4C=X2-X1 P5C=Z2-Z1 P6C=Z1-Z2 C write(6,*)'PiC ' C write(6,1002)P1C,P2C,P3C,P4C,P5C,P6C DO 1 L=1,NGG P1=Y(K0+L)-Y1 P2=X(K0+L)-X2 P3=Y(K0+L)-Y2 P4=X(K0+L)-X1 P5=Z(K0+L)-Z1 P6=Z(K0+L)-Z2 F1C=P2C*P3C*P6C F1=P2*P3*P6/F1C F2C=P3C*P4C*P6C F2=P3*P4*P6/F2C F3C=P4C*P1C*P6C F3=P4*P1*P6/F3C F4C=P1C*P2C*P6C F4=P1*P2*P6/F4C F5C=P2C*P3C*P5C F5=P2*P3*P5/F5C F6C=P3C*P4C*P5C F6=P3*P4*P5/F6C F7C=P4C*P1C*P5C F7=P4*P1*P5/F7C F8C=P1C*P2C*P5C F8=P1*P2*P5/F8C C write(6,*)'FiC' C write(6,1002)F1C,F2C,F3C,F4C,F5C,F6C,F7C,F8C GX1=P3*P6/F1C GY1=P2*P6/F1C GZ1=P2*P3/F1C GX2=P3*P6/F2C GY2=P4*P6/F2C GZ2=P3*P4/F2C GX3=P1*P6/F3C GY3=P4*P6/F3C GZ3=P4*P1/F3C GX4=P1*P6/F4C GY4=P2*P6/F4C GZ4=P1*P2/F4C GX5=P3*P5/F5C GY5=P2*P5/F5C GZ5=P2*P3/F5C GX6=P3*P5/F6C GY6=P4*P5/F6C GZ6=P3*P4/F6C GX7=P1*P5/F7C GY7=P4*P5/F7C GZ7=P4*P1/F7C GX8=P1*P5/F8C GY8=P2*P5/F8C GZ8=P1*P2/F8C C write(6,1002)F1,f2,f3,f4,f5,f6,f7,f8 C C write(6,1002)gx1,gx2,gx3,gx4,gx5,gx6,gx7,gx8 C write(6,1002)gy1,gy2,gy3,gy4,gy5,gy6,gy7,gy8 C write(6,1002)gz1,gz2,gz3,gz4,gz5,gz6,gz7,gz8 LL=K0+L IF(K.EQ.1)THEN FN( 1,LL)=F1 FN( 2,LL)=F2 FN(25,LL)=F3 FN( 8,LL)=F4 FN( 9,LL)=F5 FN(21,LL)=F6 FN(27,LL)=F7 FN(24,LL)=F8 GR(1, 1,LL)=GX1 GR(1, 2,LL)=GX2 GR(1,25,LL)=GX3 GR(1, 8,LL)=GX4 GR(1, 9,LL)=GX5 GR(1,21,LL)=GX6 GR(1,27,LL)=GX7 GR(1,24,LL)=GX8 GR(2, 1,LL)=GY1 GR(2, 2,LL)=GY2 GR(2,25,LL)=GY3 GR(2, 8,LL)=GY4 GR(2, 9,LL)=GY5 GR(2,21,LL)=GY6 GR(2,27,LL)=GY7 GR(2,24,LL)=GY8 GR(3, 1,LL)=GZ1 GR(3, 2,LL)=GZ2 GR(3,25,LL)=GZ3 GR(3, 8,LL)=GZ4 GR(3, 9,LL)=GZ5 GR(3,21,LL)=GZ6 GR(3,27,LL)=GZ7 GR(3,24,LL)=GZ8 ELSEIF(K.EQ.2)THEN FN(2,LL)=F1 FN(3,LL)=F2 FN(4,LL)=F3 FN(25,LL)=F4 FN(21,LL)=F5 FN(10,LL)=F6 FN(22,LL)=F7 FN(27,LL)=F8 GR(1,2,LL)=GX1 GR(1,3,LL)=GX2 GR(1,4,LL)=GX3 GR(1,25,LL)=GX4 GR(1,21,LL)=GX5 GR(1,10,LL)=GX6 GR(1,22,LL)=GX7 GR(1,27,LL)=GX8 GR(2,2,LL)=GY1 GR(2,3,LL)=GY2 GR(2,4,LL)=GY3 GR(2,25,LL)=GY4 GR(2,21,LL)=GY5 GR(2,10,LL)=GY6 GR(2,22,LL)=GY7 GR(2,27,LL)=GY8 GR(3,2,LL)=GZ1 GR(3,3,LL)=GZ2 GR(3,4,LL)=GZ3 GR(3,25,LL)=GZ4 GR(3,21,LL)=GZ5 GR(3,10,LL)=GZ6 GR(3,22,LL)=GZ7 GR(3,27,LL)=GZ8 ELSEIF(K.EQ.3)THEN FN(25,LL)=F1 FN(4,LL)=F2 FN(5,LL)=F3 FN(6,LL)=F4 FN(27,LL)=F5 FN(22,LL)=F6 FN(11,LL)=F7 FN(23,LL)=F8 GR(1,25,LL)=GX1 GR(1,4,LL)=GX2 GR(1,5,LL)=GX3 GR(1,6,LL)=GX4 GR(1,27,LL)=GX5 GR(1,22,LL)=GX6 GR(1,11,LL)=GX7 GR(1,23,LL)=GX8 GR(2,25,LL)=GY1 GR(2,4,LL)=GY2 GR(2,5,LL)=GY3 GR(2,6,LL)=GY4 GR(2,27,LL)=GY5 GR(2,22,LL)=GY6 GR(2,11,LL)=GY7 GR(2,23,LL)=GY8 GR(3,25,LL)=GZ1 GR(3,4,LL)=GZ2 GR(3,5,LL)=GZ3 GR(3,6,LL)=GZ4 GR(3,27,LL)=GZ5 GR(3,22,LL)=GZ6 GR(3,11,LL)=GZ7 GR(3,23,LL)=GZ8 ELSEIF(K.EQ.4)THEN FN(8,LL)=F1 FN(25,LL)=F2 FN(6,LL)=F3 FN(7,LL)=F4 FN(24,LL)=F5 FN(27,LL)=F6 FN(23,LL)=F7 FN(12,LL)=F8 GR(1,8,LL)=GX1 GR(1,25,LL)=GX2 GR(1,6,LL)=GX3 GR(1,7,LL)=GX4 GR(1,24,LL)=GX5 GR(1,27,LL)=GX6 GR(1,23,LL)=GX7 GR(1,12,LL)=GX8 GR(2,8,LL)=GY1 GR(2,25,LL)=GY2 GR(2,6,LL)=GY3 GR(2,7,LL)=GY4 GR(2,24,LL)=GY5 GR(2,27,LL)=GY6 GR(2,23,LL)=GY7 GR(2,12,LL)=GY8 GR(3,8,LL)=GZ1 GR(3,25,LL)=GZ2 GR(3,6,LL)=GZ3 GR(3,7,LL)=GZ4 GR(3,24,LL)=GZ5 GR(3,27,LL)=GZ6 GR(3,23,LL)=GZ7 GR(3,12,LL)=GZ8 ELSEIF(K.EQ.5)THEN FN( 9,LL)=F1 FN(21,LL)=F2 FN(27,LL)=F3 FN(24,LL)=F4 FN(13,LL)=F5 FN(14,LL)=F6 FN(26,LL)=F7 FN(20,LL)=F8 GR(1, 9,LL)=GX1 GR(1,21,LL)=GX2 GR(1,27,LL)=GX3 GR(1,24,LL)=GX4 GR(1,13,LL)=GX5 GR(1,14,LL)=GX6 GR(1,26,LL)=GX7 GR(1,20,LL)=GX8 GR(2, 9,LL)=GY1 GR(2,21,LL)=GY2 GR(2,27,LL)=GY3 GR(2,24,LL)=GY4 GR(2,13,LL)=GY5 GR(2,14,LL)=GY6 GR(2,26,LL)=GY7 GR(2,20,LL)=GY8 GR(3, 9,LL)=GZ1 GR(3,21,LL)=GZ2 GR(3,27,LL)=GZ3 GR(3,24,LL)=GZ4 GR(3,13,LL)=GZ5 GR(3,14,LL)=GZ6 GR(3,26,LL)=GZ7 GR(3,20,LL)=GZ8 ELSEIF(K.EQ.6)THEN FN(21,LL)=F1 FN(10,LL)=F2 FN(22,LL)=F3 FN(27,LL)=F4 FN(14,LL)=F5 FN(15,LL)=F6 FN(16,LL)=F7 FN(26,LL)=F8 GR(1,21,LL)=GX1 GR(1,10,LL)=GX2 GR(1,22,LL)=GX3 GR(1,27,LL)=GX4 GR(1,14,LL)=GX5 GR(1,15,LL)=GX6 GR(1,16,LL)=GX7 GR(1,26,LL)=GX8 GR(2,21,LL)=GY1 GR(2,10,LL)=GY2 GR(2,22,LL)=GY3 GR(2,27,LL)=GY4 GR(2,14,LL)=GY5 GR(2,15,LL)=GY6 GR(2,16,LL)=GY7 GR(2,26,LL)=GY8 GR(3,21,LL)=GZ1 GR(3,10,LL)=GZ2 GR(3,22,LL)=GZ3 GR(3,27,LL)=GZ4 GR(3,14,LL)=GZ5 GR(3,15,LL)=GZ6 GR(3,16,LL)=GZ7 GR(3,26,LL)=GZ8 ELSEIF(K.EQ.7)THEN FN(27,LL)=F1 FN(22,LL)=F2 FN(11,LL)=F3 FN(23,LL)=F4 FN(26,LL)=F5 FN(16,LL)=F6 FN(17,LL)=F7 FN(18,LL)=F8 GR(1,27,LL)=GX1 GR(1,22,LL)=GX2 GR(1,11,LL)=GX3 GR(1,23,LL)=GX4 GR(1,26,LL)=GX5 GR(1,16,LL)=GX6 GR(1,17,LL)=GX7 GR(1,18,LL)=GX8 GR(2,27,LL)=GY1 GR(2,22,LL)=GY2 GR(2,11,LL)=GY3 GR(2,23,LL)=GY4 GR(2,26,LL)=GY5 GR(2,16,LL)=GY6 GR(2,17,LL)=GY7 GR(2,18,LL)=GY8 GR(3,27,LL)=GZ1 GR(3,22,LL)=GZ2 GR(3,11,LL)=GZ3 GR(3,23,LL)=GZ4 GR(3,26,LL)=GZ5 GR(3,16,LL)=GZ6 GR(3,17,LL)=GZ7 GR(3,18,LL)=GZ8 ELSEIF(K.EQ.8)THEN FN(24,LL)=F1 FN(27,LL)=F2 FN(23,LL)=F3 FN(12,LL)=F4 FN(20,LL)=F5 FN(26,LL)=F6 FN(18,LL)=F7 FN(19,LL)=F8 GR(1,24,LL)=GX1 GR(1,27,LL)=GX2 GR(1,23,LL)=GX3 GR(1,12,LL)=GX4 GR(1,20,LL)=GX5 GR(1,26,LL)=GX6 GR(1,18,LL)=GX7 GR(1,19,LL)=GX8 GR(2,24,LL)=GY1 GR(2,27,LL)=GY2 GR(2,23,LL)=GY3 GR(2,12,LL)=GY4 GR(2,20,LL)=GY5 GR(2,26,LL)=GY6 GR(2,18,LL)=GY7 GR(2,19,LL)=GY8 GR(3,24,LL)=GZ1 GR(3,27,LL)=GZ2 GR(3,23,LL)=GZ3 GR(3,12,LL)=GZ4 GR(3,20,LL)=GZ5 GR(3,26,LL)=GZ6 GR(3,18,LL)=GZ7 GR(3,19,LL)=GZ8 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)-1.D0)*(Y(L)-1.D0)*(Z(L)-1.D0) FM(2,L)=X(L)*(Y(L)-1.D0)*(Z(L)-1.D0) FM(3,L)=-X(L)*Y(L)*(Z(L)-1.D0) FM(4,L)=(X(L)-1.D0)*Y(L)*(Z(L)-1.D0) FM(5,L)=(X(L)-1.D0)*(Y(L)-1.D0)*Z(L) FM(6,L)=-X(L)*(Y(L)-1.D0)*Z(L) FM(7,L)=X(L)*Y(L)*Z(L) FM(8,L)=-(X(L)-1.D0)*Y(L)*Z(L) GM(1,1,L)=-(Y(L)-1.D0)*(Z(L)-1.D0) GM(2,1,L)=-(X(L)-1.D0)*(Z(L)-1.D0) GM(3,1,L)=-(X(L)-1.D0)*(Y(L)-1.D0) C GM(1,2,L)=(Y(L)-1.D0)*(Z(L)-1.D0) GM(2,2,L)=X(L)*(Z(L)-1.D0) GM(3,2,L)=X(L)*(Y(L)-1.D0) C GM(1,3,L)=-Y(L)*(Z(L)-1.D0) GM(2,3,L)=-X(L)*(Z(L)-1.D0) GM(3,3,L)=-X(L)*Y(L) C GM(1,4,L)=Y(L)*(Z(L)-1.D0) GM(2,4,L)=(X(L)-1.D0)*(Z(L)-1.D0) GM(3,4,L)=(X(L)-1.D0)*Y(L) C GM(1,5,L)=(Y(L)-1.D0)*Z(L) GM(2,5,L)=(X(L)-1.D0)*Z(L) GM(3,5,L)=(X(L)-1.D0)*(Y(L)-1.D0) C GM(1,6,L)=-(Y(L)-1.D0)*Z(L) GM(2,6,L)=-X(L)*Z(L) GM(3,6,L)=-X(L)*(Y(L)-1.D0) C GM(1,7,L)=Y(L)*Z(L) GM(2,7,L)=X(L)*Z(L) GM(3,7,L)=X(L)*Y(L) C GM(1,8,L)=-Y(L)*Z(L) GM(2,8,L)=-(X(L)-1.D0)*Z(L) GM(3,8,L)=-(X(L)-1.D0)*Y(L) C 4 CONTINUE ENDIF 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) C write(6,*)' X ' C write(6,1008) x C write(6,*)' Y ' C write(6,1008) y C write(6,*)' GM ' C write(6,*)' Z ' C write(6,1008) Z C write(6,1002) gm 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) RETURN 1002 FORMAT(10(1X,1PD11.4)) 1008 FORMAT( 8(1X,1PD11.4)) 1001 FORMAT(20(1X,I5)) 100 FORMAT(1H1) 101 FORMAT(1X,'... SUB PB883 ... FN,GR,FM,GM ',9(10H..........)/) END
© Cast3M 2003 - Tous droits réservés.
Mentions légales