hbmrw
C HBMRW SOURCE BP208322 20/10/05 21:15:18 10742 *======================================================================= * Rw: calcul de la derivee: Rw = Z,w(w)*X - P,w * TODO? : terme P,w ? * Zw = 2*w*kron(DL²,M)+kron(DL,C) * X : coefficients de Fourier * w : frequence angulaire *======================================================================= *----- Declarations ---------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) REAL*8 X(NT),Rw(NT),OMEG REAL*8 XM(NDDL,NDDL),XC(NDDL,NDDL),XK(NDDL,NDDL) REAL*8 CF,CF2 INTEGER NT,NDDL,ISD,H,I,J,M,P,Q,NH LOGICAL LOGAMO * Nombre d'harmoniques NH = (NT/NDDL - 1)/2 *------ Matrices diagonales -------------------------------------------- IF (ISD.EQ.1) THEN * Termes constants DO 1 P=1,NDDL Rw(P) = 0.D0 1 CONTINUE c -cas non conservatif (i.e. avec amortissement) IF (LOGAMO) THEN DO 10 J=1,2*NH * Termes paires (sin) IF (MOD(J,2).EQ.0) THEN cf = -J/2.D0 cf2 = -2.D0*OMEG*(cf**2) DO 11 I = 1,NDDL Rw(J*nddl+I) = cf2 * XM(I,1) * X(J*nddl+I) & + cf * XC(I,1) * X((J-1)*nddl+I) 11 CONTINUE * Termes impaires (cos) ELSE cf = (J+1)/2.D0 cf2 = -2.D0*OMEG*(cf**2) DO 12 I = 1,NDDL Rw(J*nddl+I) = cf2 * XM(I,1) * X(J*nddl+I) & + cf * XC(I,1) * X((J+1)*NDDL+I) 12 CONTINUE ENDIF 10 CONTINUE c -cas conservatif (i.e. sans amortissement) ELSE DO 20 J=1,2*NH * Termes paires (sin) IF (MOD(J,2).EQ.0) THEN cbp cf = -J/2.D0 cf2 = -0.5D0*OMEG*(J**2) DO 21 I = 1,NDDL cbp Rw(J*nddl+I)= -2.*OMEG*(cf**2)*XM(I,1)*X(J*nddl+I) Rw(J*nddl+I) = cf2 * XM(I,1) * X(J*nddl+I) 21 CONTINUE * Termes impaires (cos) ELSE cbp cf = (J+1)/2.D0 cf2 = -0.5D0*OMEG*((J+1)**2) DO 22 I = 1,NDDL cbp Rw(J*nddl+I)=-2.*OMEG*(cf**2)*XM(I,1)*X(J*nddl+I) Rw(J*nddl+I) = cf2 * XM(I,1) * X(J*nddl+I) 22 CONTINUE ENDIF 20 CONTINUE ENDIF *------- Matrices generales -------------------------------------------- ELSE * Termes constants DO 101 P=1,NDDL Rw(P) = 0.D0 101 CONTINUE c -cas non conservatif (i.e. avec amortissement) IF (LOGAMO) THEN DO 111 J=2,2*NH,2 cf2 = 2.D0*OMEG*(J**2) DO 112 M=1,NDDL Rw(J*NDDL+M) = 0.D0 DO 113 H=1,NDDL Rw(J*NDDL+M) = Rw(J*NDDL+M) & - cf2 * XM(M,H) * X(J*NDDL+H) & + J * XC(M,H) * X((J+1)*NDDL+H) Rw((J+1)*NDDL+M) = Rw((J+1)*NDDL+M) & - cf2 * XM(M,H) * X((J+1)*NDDL+H) & - J * XC(M,H) * X(J*NDDL+H) 113 CONTINUE 112 CONTINUE 111 CONTINUE c -cas conservatif (i.e. sans amortissement) ELSE DO 121 J=2,2*NH,2 cf2 = 2.D0*OMEG*(J**2) DO 122 M=1,NDDL Rw(J*NDDL+M) = 0.D0 DO 123 H=1,NDDL Rw(J*NDDL+M) = Rw(J*NDDL+M) & - cf2 * XM(M,H) * X(J*NDDL+H) Rw((J+1)*NDDL+M) = Rw((J+1)*NDDL+M) & - cf2 * XM(M,H) * X((J+1)*NDDL+H) 123 CONTINUE 122 CONTINUE 121 CONTINUE ENDIF ENDIF END
© Cast3M 2003 - Tous droits réservés.
Mentions légales