1 : C TRJ602 SOURCE CHAT 05/01/13 03:48:14 5004 2 : SUBROUTINE TRJ602(XNOEU,X,G,IER) 3 : C 4 : C 5 : C 6 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 7 : C 8 : C CALCUL DES COORDONNEES DE REFERENCES DANS UN TRI6 9 : C XNOEU COORDONNEES DES SOMMETS 10 : C X REELLES 11 : C G REFERENCES 12 : C IER INDICE D'ERREUR 13 : C 14 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 15 : C 16 : C 17 : IMPLICIT INTEGER(I-N) 18 : IMPLICIT REAL*8 (A-H,O-Z) 19 : C 20 : DIMENSION XNOEU(2,6),X(2),XN(6),G(2),DX(2),DG(2) 21 : DIMENSION Y(2),D1XN(6),D2XN(6),A(2,2),B(2,2) 22 : -INC CCOPTIO 23 : C 24 : C 25 : NOEL=6 26 : C IDIM=2 27 : C 28 : C 29 : G(1)=1.D0/3.D0 30 : G(2)=1.D0/3.D0 31 : C 32 : N1=15 33 : DO 10 K=1,N1 34 : C 35 : XN(1)=-(1.D0-G(1)-G(2))*(1.D0-2.D0*(1.D0-G(1)-G(2))) 36 : XN(2)= 4.D0*G(1)*(1.D0-G(1)-G(2)) 37 : XN(3)=-G(1)*(1.D0-2.D0*G(1)) 38 : XN(4)= 4.D0*G(1)*G(2) 39 : XN(5)=-G(2)*(1.D0-2.D0*G(2)) 40 : XN(6)= 4.D0*G(2)*(1.D0-G(1)-G(2)) 41 : C 42 : Y(1)=0.D0 43 : Y(2)=0.D0 44 : DO 1 I=1,NOEL 45 : Y(1)=XNOEU(1,I)*XN(I)+Y(1) 46 : Y(2)=XNOEU(2,I)*XN(I)+Y(2) 47 : 1 CONTINUE 48 : C 49 : DX(1)=X(1)-Y(1) 50 : DX(2)=X(2)-Y(2) 51 : C 52 : D1XN(1)=1.D0-4.D0*(1.D0-G(1)-G(2)) 53 : D1XN(2)=4.D0*(1.D0-2.D0*G(1)-G(2)) 54 : D1XN(3)=-1.D0+4.D0*G(1) 55 : D1XN(4)= 4.D0*G(2) 56 : D1XN(5)=0.D0 57 : D1XN(6)=-4.D0*G(2) 58 : C 59 : D2XN(1)=1.D0-4.D0*(1.D0-G(1)-G(2)) 60 : D2XN(2)=-4.D0*G(1) 61 : D2XN(3)=0.D0 62 : D2XN(4)=4.D0*G(1) 63 : D2XN(5)=-1.D0+4.D0*G(2) 64 : D2XN(6)=4.D0*(1.D0-G(1)-2.D0*G(2)) 65 : C 66 : C 67 : A(1,1)=0.D0 68 : A(1,2)=0.D0 69 : A(2,1)=0.D0 70 : A(2,2)=0.D0 71 : C 72 : DO 3 I=1,NOEL 73 : A(1,1)=D1XN(I)*XNOEU(1,I)+A(1,1) 74 : A(1,2)=D1XN(I)*XNOEU(2,I)+A(1,2) 75 : A(2,1)=D2XN(I)*XNOEU(1,I)+A(2,1) 76 : A(2,2)=D2XN(I)*XNOEU(2,I)+A(2,2) 77 : 3 CONTINUE 78 : C 79 : DEL=A(1,1)*A(2,2)-A(2,1)*A(1,2) 80 : C 81 : B(1,1)=1.D0/DEL*A(2,2) 82 : B(2,2)=1.D0/DEL*A(1,1) 83 : B(1,2)=-1.D0/DEL*A(2,1) 84 : B(2,1)=-1.D0/DEL*A(1,2) 85 : C 86 : DG(1)=B(1,1)*DX(1)+B(1,2)*DX(2) 87 : DG(2)=B(2,1)*DX(1)+B(2,2)*DX(2) 88 : C 89 : G(1)=DG(1)+G(1) 90 : G(2)=DG(2)+G(2) 91 : C 92 : DA1=ABS(DG(1)) 93 : DA2=ABS(DG(2)) 94 : IF(DA1.LE.0.0001.AND.DA2.LE.0.0001)GO TO 51 95 : C 96 : C 97 : 10 CONTINUE 98 : C 99 : C IF(K.GE.N1)WRITE(6,101)X(1),X(2),DA1,DA2 100 : MOTERR(1:8)='TRJ602 ' 101 : REAERR(1)=X(1) 102 : REAERR(2)=X(2) 103 : REAERR(3)=0. 103 : C CALL ERREUR(-300) 104 : IER=-300 105 : C 106 : 51 CONTINUE 107 : C 108 : C G(1)=XG1 109 : C G(2)=YG1 110 : C 111 : RETURN 112 : 101 FORMAT(//,3X,' PB CONVERGENCE TRJ602 AU POINT SITUE EN ' 113 : *,2(1PE12.5),/,3X,' CONVERGENCE RELATIVE ',2(1PE12.5)) 114 : C 115 : END 116 : 117 :
© Cast3M 2003 - All rights reserved.
Disclaimer