1 : C MFDKT2 SOURCE PV 07/11/23 21:17:52 5978 2 : SUBROUTINE MFDKT2 (X,Y,XEL,HDXY) 3 : ************************************************************************ 4 : * 5 : * M F D K T 2 6 : * ----------- 7 : * 8 : * FONCTION: 9 : * --------- 10 : * 11 : * CALCUL EN 1 POINT DE L'ELEMENT "DKT" DES DERIVEES SELON "X" ET "Y" 12 : * DE LA FONCTION DE FORME DE LA DEFLEXION. 13 : * (UTILE EN CAS D'EXCENTREMENT DE L'ELEMENT, POUR LE CALCUL DE LA 14 : * MATRICE-MASSE DUE A LA FLEXION) 15 : * 16 : * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) 17 : * ----------- 18 : * 19 : * X, Y (E) COORDONNEES REDUITES DU POINT DE L'ELEMENT. 20 : * XEL (E) COORDONNEES LOCALES DES NOEUDS DE L'ELEMENT 21 : * (1 NOEUD PAR COLONNE). 22 : * HDXY (S) DERIVEES DE LA FONCTION DE FORME DE LA DEFLEXION 23 : * (RANGEMENT "Z1", "TETAX1", "TETAY1", "Z2", ...). 24 : * HDXY(1..9) = DERIVEE PAR RAPPORT A "X", 25 : * HDXY(10..18) = DERIVEE PAR RAPPORT A "Y". 26 : * 27 : IMPLICIT INTEGER(I-N) 28 : IMPLICIT REAL *8 (a-h,o-z) 29 : REAL*8 X,Y,XEL(3,3),HDXY(18) 30 : * 31 : * VARIABLES: 32 : * ---------- 33 : * 34 : REAL*8 Z,A,C 35 : * 36 : * CONSTANTES: 37 : * ----------- 38 : * 39 : REAL*8 O1,O2,O3,O6 40 : PARAMETER (O1=1.D0, O2=2.D0, O3=3.D0, O6=6.D0) 41 : * 42 : * AUTEUR, DATE DE CREATION: 43 : * ------------------------- 44 : * 45 : * PASCAL MANIGOT 11 JUIN 1987 46 : * P.M. 14/02/90: RECTIFICATION ET REMISE EN FORME DU PASSAGE DANS 47 : * LE REPERE GEOMETRIQUE LOCAL X-Y. 48 : * 49 : * LANGAGE: 50 : * -------- 51 : * 52 : * FORTRAN77 + EXTENSION: DECLARATION "REAL*8". 53 : * 54 : ************************************************************************ 55 : * 56 : Z = O1-X-Y 57 : * 58 : * DERIVEES PAR RAPPORT A "X": 59 : * 60 : A = Y*(Z-X) 61 : HDXY(1) = O6*Z*(Z-O1) + O2*A 62 : HDXY(2) = Z*(Z-O2*X) + A/O2 63 : HDXY(3) = -O2*Z*Y + A/O2 64 : HDXY(4) = O6*X*(O1-X) + O2*A 65 : HDXY(5) = O3*(X**2) - O2*X - A 66 : HDXY(6) = O2*X*Y + A/O2 67 : HDXY(7) = O2*A 68 : HDXY(8) = Y**2 + A/O2 69 : HDXY(9) = -A 70 : * 71 : * DERIVEES PAR RAPPORT A "Y": 72 : * 73 : A = X*(Z-Y) 74 : HDXY(10) = O6*Z*(Z-O1) + O2*A 75 : HDXY(11) = -O2*Z*X + A/O2 76 : HDXY(12) = Z*(Z-O2*Y) + A/O2 77 : HDXY(13) = O2*A 78 : HDXY(14) = - A 79 : HDXY(15) = X**2 + A/O2 80 : HDXY(16) = O6*Y*(O1-Y) + O2*A 81 : HDXY(17) = O2*X*Y + A/O2 82 : HDXY(18) = O3*(Y**2) - O2*Y - A 83 : * 84 : * PASSAGE DANS LE REPERE X,Y (DIRECTION "X" = COTE 1-2). 85 : * 86 : X21=XEL(1,2)-XEL(1,1) 87 : X31=XEL(1,3)-XEL(1,1) 88 : Y31=XEL(2,3)-XEL(2,1) 89 : X31Y31 = X31 / Y31 90 : X31X21 = X31 / X21 91 : X21Y31 = X21 / Y31 92 : * 93 : DO 100 IDX=0,6,3 94 : IDY = 9 + IDX 95 : HDXY(IDY+1) = HDXY(IDY+1)/Y31 - HDXY(IDX+1)*X31Y31/X21 96 : HDXY(IDX+1) = HDXY(IDX+1)/X21 97 : C = HDXY(IDX+2)*X31Y31 + HDXY(IDX+3)*X31X21*X31Y31 98 : & - HDXY(IDY+2)*X21Y31 - HDXY(IDY+3)*X31Y31 99 : HDXY(IDY+2) = HDXY(IDY+3) - HDXY(IDX+3)*X31X21 100 : HDXY(IDY+3) = C 101 : C = HDXY(IDX+3)/X21Y31 102 : HDXY(IDX+3) = - HDXY(IDX+2) - HDXY(IDX+3)*X31X21 103 : HDXY(IDX+2) = C 104 : 100 CONTINUE 105 : * END DO 106 : * 107 : END 108 : 109 :
© Cast3M 2003 - All rights reserved.
Disclaimer