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