trj902
C TRJ902 SOURCE CHAT 05/01/13 03:48:29 5004 C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CALCUL DES COORDONNEES DE REFERENCES DANS UN QUA9 C XNOEU COORDONNEES DES SOMMETS C X REELLES C G REFERENCES C IER INDICE D'ERREUR C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C DIMENSION XNOEU(2,9),X(2),XN(9),G(2),DX(2),DG(2) DIMENSION Y(2),D1XN(9),D2XN(9),A(2,2),B(2,2) -INC PPARAM -INC CCOPTIO C C NOEL=9 C IDIM=2 C C C C G(1)=0.5D0 G(2)=0.5D0 C N1=15 DO 10 K=1,N1 C XN(1)= 0.25D0*(1.D0-G(1))*(1.D0-G(2))*G(1)*G(2) XN(2)=-0.5D0 *(1.D0-G(1)*G(1))*(1.D0-G(2))*G(2) XN(3)=-0.25D0*(1.D0+G(1))*(1.D0-G(2))*G(1)*G(2) XN(4)= 0.5D0 *(1.D0+G(1))*(1.D0-G(2)*G(2))*G(2) XN(5)= 0.25D0*(1.D0+G(1))*(1.D0+G(2))*G(1)*G(2) XN(6)= 0.5D0 *(1.D0-G(1)*G(1))*(1.D0+G(2))*G(2) XN(7)=-0.25D0*(1.D0-G(1))*(1.D0+G(2))*G(1)*G(2) XN(8)=-0.5D0 *(1.D0-G(1))*(1.D0-G(2)*G(2))*G(1) XN(9)= (1.D0-G(1)*G(1))*(1.D0-G(2)*G(2)) C Y(1)=0.D0 Y(2)=0.D0 DO 1 I =1,NOEL Y(1)=Y(1)+XN(I)*XNOEU(1,I) Y(2)=Y(2)+XN(I)*XNOEU(2,I) 1 CONTINUE C DX(1)=X(1)-Y(1) DX(2)=X(2)-Y(2) C D1XN(1)= 0.25D0*(1.D0-2.D0*G(1))*(1.D0-G(2))*G(2) D1XN(2)= (1.D0-G(2))*G(1)*G(2) D1XN(3)=-0.25D0*(1.D0+2.D0*G(1))*(1.D0-G(2))*G(2) D1XN(4)= 0.5D0 *(1.D0+2.D0*G(1))*(1.D0-G(2)*G(2)) D1XN(5)= 0.25D0*(1.D0+2.D0*G(1))*(1.D0+G(2))*G(2) D1XN(6)=- (1.D0+G(2))*G(1)*G(2) D1XN(7)=-0.25D0*(1.D0-2.D0*G(1))*(1.D0+G(2))*G(2) D1XN(8)=-0.5D0 *(1.D0-2.D0*G(1))*(1.D0-G(2)*G(2)) D1XN(9)=-2.D0 *(1.D0-G(2)*G(2))*G(1) C D2XN(1)= 0.25D0*(1.D0-G(1))*(1.D0-2.D0*G(2))*G(1) D2XN(2)=-0.5D0 *(1.D0-G(1)*G(1))*(1.D0-2.D0*G(2)) D2XN(3)=-0.25D0*(1.D0+G(1))*(1.D0-2.D0*G(2))*G(1) D2XN(4)=- (1.D0+G(1))*G(1)*G(2) D2XN(5)= 0.25D0*(1.D0+G(1))*(1.D0+2.D0*G(2))*G(1) D2XN(6)= 0.5D0 *(1.D0-G(1)*G(1))*(1.D0+2.D0*G(2)) D2XN(7)=-0.25D0*(1.D0-G(1))*(1.D0+2.D0*G(2))*G(1) D2XN(8)= (1.D0-G(1))*G(1)*G(2) D2XN(9)=-2.D0 *(1.D0-G(1)*G(1))*G(2) C A(1,1)=0.D0 A(1,2)=0.D0 A(2,1)=0.D0 A(2,2)=0.D0 C DO 4 I=1,NOEL A(1,1)=D1XN(I)*XNOEU(1,I)+A(1,1) A(1,2)=D1XN(I)*XNOEU(2,I)+A(1,2) A(2,1)=D2XN(I)*XNOEU(1,I)+A(2,1) A(2,2)=D2XN(I)*XNOEU(2,I)+A(2,2) 4 CONTINUE C DEL=A(1,1)*A(2,2)-A(2,1)*A(1,2) B(1,1)=1.D0/DEL*A(2,2) B(2,2)=1.D0/DEL*A(1,1) B(1,2)=-1.D0/DEL*A(2,1) B(2,1)=-1.D0/DEL*A(1,2) C DG(1)=B(1,1)*DX(1)+B(1,2)*DX(2) DG(2)=B(2,1)*DX(1)+B(2,2)*DX(2) C G(1)=DG(1)+G(1) G(2)=DG(2)+G(2) C DA1=ABS(DG(1)) DA2=ABS(DG(2)) IF(DA1.LE.0.0001.AND.DA2.LE.0.0001)GO TO 51 10 CONTINUE C C C IF(K.GE.N1)WRITE(6,101)X(1),X(2),DA1,DA2 MOTERR(1:8)='TRJ902 ' REAERR(1)=X(1) REAERR(2)=X(2) REAERR(3)=0. C CALL ERREUR(-300) IER=-300 51 CONTINUE C G(1)=XG1 C G(2)=YG1 C RETURN 101 FORMAT(//,3X,' PB DE CONVERGENCE TRJ902 AU POINT SITUE EN ' *,2(1PE12.5),/,3X,' CONVERGENCE RELATIVE ',2(1PE12.5)) C END
© Cast3M 2003 - Tous droits réservés.
Mentions légales