1 : C BDBSTA SOURCE CHAT 05/01/12 21:37:54 5004 2 : SUBROUTINE BDBSTA(BGENE,DJAC,DHOOK,LRE,NSTRS,REL) 3 : C======================================================================= 4 : C 5 : C INTEGRE LE PRODUIT BDB POUR UNE MATRICE ANTISYMETRIQUE 6 : C VERSION JANVIER 2004 - COMBESCURE 7 : C ROUTINE FORTRAN PUR 8 : C 9 : C======================================================================= 10 : C BGENE(NSTRS,LRE)=MATRICE B 11 : C DJAC =JACOBIEN 12 : C DHOOK(NSTRS,NSTRS)=MATRICE DE HOOKE 13 : C LRE=TAILLE DE LA MATRICE DE RIGIDITE 14 : C REL=MATRICE DE RIGIDITE 15 : C LES KIJ SONT AJOUTES SUR REL 16 : C======================================================================= 17 : IMPLICIT INTEGER(I-N) 18 : IMPLICIT REAL*8 (A-H,O-Z) 19 : DIMENSION DHOOK(NSTRS,1),REL(LRE,1) 20 : DIMENSION WORK1(10),WORK2(10),BGENE(NSTRS,1) 21 : DO 300 IX=1,LRE 22 : C 23 : C BOUCLE SUR LES DDL 24 : C 25 : DO 400 INA=1,NSTRS 26 : C 27 : C CALCUL DE JACOBIAN*POIDS*B POUR LE DDL IX 28 : C 29 : WORK1(INA)=DJAC*BGENE(INA,IX) 30 : 400 CONTINUE 31 : DO 500 INB=1,NSTRS 32 : CC=0.D0 33 : DO 600 INC=1,NSTRS 34 : CC=CC+WORK1(INC)*DHOOK(INB,INC) 35 : 600 CONTINUE 36 : WORK2(INB)=CC 37 : 500 CONTINUE 38 : DO 700 IY=1,IX 39 : C 40 : C CALCUL DE BDB POUR LES DDL IX ET IY 41 : C 42 : CC=0.D0 43 : DO 800 IND=1,NSTRS 44 : CC=CC+BGENE(IND,IY)*WORK2(IND) 45 : 800 CONTINUE 46 : REL(IY,IX)=REL(IY,IX)+CC 47 : REL(IX,IY)=(-1.D0)*REL(IY,IX) 48 : 700 CONTINUE 49 : 300 CONTINUE 50 : RETURN 51 : END 52 : 53 : 54 :
© Cast3M 2003 - All rights reserved.
Disclaimer