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