1 : C RLOCAL SOURCE CHAT 06/03/29 21:32:23 5360 2 : SUBROUTINE RLOCAL (XEL,SHPTOT,NBSH,NBNN,TXR) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8(A-H,O-Z) 5 : * 6 : * 7 : * Attention en cas d'erreur, erreur n'est pas appelé, c'est au 8 : * sp appelant à le faire (prob erreur utilise esope) 9 : * 10 : ************************************************************************ 11 : * 12 : * R L O C A L 13 : * ------------- 14 : * 15 : * FONCTION: 16 : * --------- 17 : * 18 : * CALCUL DES COS-DIR. DES AXES LOCAUX DE L'ELEMENT MASSIF 19 : * 20 : * 21 : * 22 : * MODULES UTILISES: 23 : * ----------------- 24 : * 25 : -INC CCOPTIO 26 : -INC CCREEL 27 : * 28 : * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) 29 : * ----------- 30 : * 31 : * XEL (E) TABLEAU CONTENANT LES COORDONNEES DES NOEUDS 32 : * SHPTOT (E) TABLEAU CONTENANT LES FONCTIONS DE FORME ET 33 : * LEURS DERIVEES AU CENTRE DE L'ELEMENT 34 : * NBSH (E) NOMBRE DE FONCTIONS D'INTERPOLATION 35 : * NBNN (E) NOMBRE DE NOEUDS PAR ELEMENT 36 : * TXR (S) COS.DIRECTEUR DES AXES LOCAUX/REPERE GLOBAL 37 : * 38 : * 39 : * REMARQUE : 40 : * 41 : * 42 : * LA TANGANTE A L'AXE KSI AU CENTRE DE L'ELEMENT FORME L'AXE 1 ,L'AXE 3 43 : * EST OBTENU PAR LE PRODUIT VECTORIEL DE L'AXE 1 ET LA TANGANTE A 44 : * L'AXE ETA AU CENTRE DE L'ELEMENT,L'AXE 2 EST OBTENU PAR LE PRODUIT 45 : * VECTORIEL DES AXES 3 ET 1 46 : * 47 : * 48 : * AUTEUR, DATE DE CREATION: 49 : * ------------------------- 50 : * 51 : * P. DOWLATYARI OCT. 1990 52 : * 53 : * LANGAGE: 54 : * -------- 55 : * FORTRAN 77 + ESOPE 56 : * 57 : * 58 : ************************************************************************ 59 : * 60 : * 61 : DIMENSION TXR(IDIM,IDIM),XEL(3,NBNN),SHPTOT(6,NBSH,1) 62 : * 63 : * 64 : * 65 : DO 10 K=1,IDIM 66 : DO 10 L=1,IDIM 67 : TXR(K,L)=XZERO 68 : 10 CONTINUE 69 : * 70 : * CAS BIDIMENSIONNEL 71 : * 72 : IF(IDIM.EQ.2)THEN 73 : DO 20 INO=1,NBNN 74 : TXR(1,1)=SHPTOT(2,INO,1)*XEL(1,INO)+TXR(1,1) 75 : TXR(2,1)=SHPTOT(2,INO,1)*XEL(2,INO)+TXR(2,1) 76 : 20 CONTINUE 77 : * 78 : * NORMALISATION 79 : * 80 : XNORM=DSQRT(TXR(1,1)*TXR(1,1)+TXR(2,1)*TXR(2,1)) 81 : IF(XNORM.LE. XPETIT)THEN 82 : * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR 82 : ** CALL ERREUR (525) 83 : nbsh=-1 84 : RETURN 85 : ENDIF 86 : TXR(1,1)=TXR(1,1)/XNORM 87 : TXR(2,1)=TXR(2,1)/XNORM 88 : TXR(1,2)=-TXR(2,1) 89 : TXR(2,2)=TXR(1,1) 90 : * 91 : ELSEIF(IDIM.EQ.3)THEN 92 : * 93 : DO 30 IC=1,2 94 : DO 30 IL=1,3 95 : DO 30 INO=1,NBNN 96 : TXR(IL,IC)=TXR(IL,IC)+SHPTOT((IC+1),INO,1)*XEL(IL,INO) 97 : 30 CONTINUE 98 : * 99 : * 100 : * NORMALISATION DE L'AXE 1 101 : * 102 : XNORM=DSQRT(TXR(1,1)*TXR(1,1)+TXR(2,1)*TXR(2,1)+ 103 : . TXR(3,1)*TXR(3,1)) 104 : IF(XNORM.LE. XPETIT)THEN 105 : * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR 105 : ** CALL ERREUR (525) 106 : nbsh=-1 107 : RETURN 108 : ENDIF 109 : TXR(1,1)=TXR(1,1)/XNORM 110 : TXR(2,1)=TXR(2,1)/XNORM 111 : TXR(3,1)=TXR(3,1)/XNORM 112 : * 113 : * CALCUL DES AXES 3 ET 2 114 : * 114 : CALL CROSS2 (TXR(1,1),TXR(1,2),TXR(1,3),IRR) 115 : IF(IRR.EQ.0)THEN 116 : * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR 116 : ** CALL ERREUR (525) 117 : nbsh=-1 118 : RETURN 119 : ENDIF 119 : CALL CROSS2 (TXR(1,3),TXR(1,1),TXR(1,2),IRR) 120 : ENDIF 121 : * 122 : RETURN 123 : END 124 : 125 : 126 : 127 : 128 : 129 :
© Cast3M 2003 - All rights reserved.
Disclaimer