1 : C BARBS3 SOURCE CHAT 05/01/12 21:33:26 5004 2 : C BARBS3 SOURCE CHAT 89/05/26 22:56:13 3 : SUBROUTINE BARBS3(FORCE,XE,CONTG,KERRE,QSIGAU,POIGAU,NBPGAU,IB) 4 : C----------------------------------------------------------------------- 5 : C ROUTINE DE CALCUL DES FORCES INTERNES B*SIGMA 6 : C POUR LA BARRE 7 : C 8 : C ENTREE 9 : C EFFORT L'EFFORT DANS LA BARRE 10 : C XE XEONNEES DES 2 NOEUDS 11 : C 12 : C SORTIE 13 : C FORCE FORCES INTERNES 14 : C KERRE INDICE D'ERREUR ( 0 SI PAS DE PB ) 15 : C 16 : C----------------------------------------------------------------------- 17 : IMPLICIT INTEGER(I-N) 18 : IMPLICIT REAL*8(A-H,O-Z) 19 : -INC CCOPTIO 20 : DIMENSION XE(3,*),V(3),FORCE(*),CONTG(*) 21 : DIMENSION QSIGAU(*),POIGAU(*),B3(3),FL(3) 22 : C 23 : KERRE=0 24 : V(3)=0.D0 25 : DO 1 I=1,IDIM 26 : 1 V(I)=XE(I,3)-XE(I,1) 27 : XL=(V(1)*V(1)+V(2)*V(2)+V(3)*V(3)) 28 : XL=DSQRT(XL) 29 : IF(XL.LE.0.D0) GO TO 999 30 : * 31 : SECT=1.D0 31 : CALL ZERO(FL,3,1) 32 : DO 5 IGAU=1,NBPGAU 33 : ATDH=SECT*POIGAU(IGAU)*XL/2.D0 34 : X1=XL/2.D0*(QSIGAU(IGAU)+1.D0) 35 : B3(1)=(4.D0*X1/XL-3.D0)/XL 36 : B3(2)=(4.D0-8.D0*X1/XL)/XL 37 : B3(3)=(4.D0*X1/XL-1.D0)/XL 38 : DO 3 I=1,3 39 : FL(I)=FL(I)+B3(I)*CONTG(IGAU)*ATDH 40 : 3 CONTINUE 41 : 5 CONTINUE 42 : C 43 : C REMPLISSAGE DU VECTEUR FORCE 44 : C 45 : DO 2 IN=1,3 46 : DO 2 I=1,IDIM 47 : IG=(IN-1)*IDIM+I 48 : FORCE(IG)=V(I)*FL(IN)/XL 49 : 2 CONTINUE 50 : C-------------------------------------------- 51 : * NRE=LRE 52 : * WRITE(*,*) '** B BAR3 (dans barbs3)** ELEME:',IB 53 : * WRITE(*,1991) (B3(IC),IC=1,3) 54 : * WRITE(*,*) '** CONTG BAR3 (dans barbs3)** ' 55 : * WRITE(*,1991) (CONTG(IC),IC=1,3) 56 : * WRITE(*,*) '** FL LOCAL BAR3 (dans barbs3)** ' 57 : * WRITE(*,1991) (FL(IC),IC=1,3) 58 : * WRITE(*,*) '** FORCE GLOBAL BAR3 (dans barbs3)** ' 59 : * WRITE(*,1991) (FORCE(IC),IC=1,NRE) 60 : *1991 FORMAT(18(1X,E12.5)) 61 : C-------------------------------------------- 62 : RETURN 63 : 999 KERRE=1 64 : RETURN 65 : END 66 : 67 :
© Cast3M 2003 - All rights reserved.
Disclaimer