C MAXROT SOURCE BP208322 17/03/01 21:17:52 9325 SUBROUTINE MAXROT(WTRAV,MFR,IB,IGAU,NBGMAT,NELMAT,NPINT) C C ROTATION DES TENSEURS POUR MAXWEL C SI MATE UNIDIRECTIONNEL C INSPIRE DE HOOKUN C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0) C -INC CCHAMP -INC PPARAM -INC CCOPTIO SEGMENT WTRAV REAL*8 DDAUX(LHOOK,LHOOK),VALMAT(NUMAT) REAL*8 VALCAR(NUCAR),DSIGT(NSTRS) REAL*8 TXR(IDIM,IDIM),DDHOMU(LHOOK,LHOOK) REAL*8 XLOC(3,3),XGLOB(3,3) REAL*8 D1HOOK(LHOOK,LHOOK),ROTHOO(LHOOK,LHOOK) ENDSEGMENT * C C INITIALISATION C CALL ZERO(XGLOB,IDIM,IDIM) *********************** * CAS MASSIF *********************** * IF (MFR.EQ.1.OR.MFR.EQ.33) THEN IF(IGAU.LE.NBGMAT) THEN IF(IDIM.EQ.2)THEN C C DEFINITION DES AXES ORTHO./AXES LOCAUX C XLOC(1,1)=VALMAT(2) XLOC(2,1)=VALMAT(3) XLOC(1,2)=-XLOC(2,1) XLOC(2,2)=XLOC(1,1) ELSEIF(IDIM.EQ.3)THEN XLOC(1,1)=VALMAT(2) XLOC(2,1)=VALMAT(3) XLOC(3,1)=VALMAT(4) XLOC(1,2)=VALMAT(5) XLOC(2,2)=VALMAT(6) XLOC(3,2)=VALMAT(7) C CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR) IF(IRR.EQ.0) THEN CALL ERREUR(277) RETURN ENDIF ENDIF C C DEFINITION DES AXES ORTHO./AXES GLOBAUX C DO 1045 K=1,IDIM DO 1045 J=1,IDIM DO 1045 I=1,IDIM XGLOB(K,J)=TXR(J,I)*XLOC(I,K)+XGLOB(K,J) 1045 CONTINUE ENDIF C C ELSEIF (IGAU.LE.NBGMAT.AND. + (IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN C C MLR 12/8/99 C POUR LE MOMENT ON BLOQUE LE RESTE C A BRANCHER PLUS TARD ...! C IZOB=0 IF(IZOB.EQ.0) THEN CALL ERREUR (251) RETURN ENDIF C C Coques minces C IF(MFR.EQ.3) THEN C C CAS DKT INTEGRE C IF (NPINT.NE.0) THEN * CAS NON ENCORE IMPLEMENTE CALL ERREUR (251) RETURN ELSE C C CAS TRIDIMENSIONNEL ET FOURIER C IF(IFOUR.EQ.2.OR.IFOUR.EQ.1) THEN *PV D3HOO1 n'existe pas !!! * CALL ZERO(D3HOO1,3,3) COSA=VALMAT(2) SINA=VALMAT(3) C COS2 = COSA**2 SIN2 = SINA**2 SINCOS = SINA * COSA C C C C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES C ELSE IF(IFOUR.EQ.0.OR.IFOUR.EQ.-1.OR. & IFOUR.EQ.-3) THEN COSA=VALMAT(2) SINA=VALMAT(3) COS2 = COSA**2 SIN2 = SINA**2 C C C CAS CONTRAINTES PLANES C ELSE IF(IFOUR.EQ.-2) THEN ******** DDHOOK(1,1)=YG1 ******** DDHOOK(3,3)=YG1 C ELSE IRET=0 ENDIF ENDIF C C Coques epaisses C ELSE IF(MFR.EQ.5) THEN C C CAS TRIDIMENSIONNEL C IF(IFOUR.EQ.2) THEN COSA=VALMAT(2) SINA=VALMAT(3) C COS2 = COSA**2 SIN2 = SINA**2 SINCOS = SINA * COSA C C ELSE IRET=0 ENDIF C C Coques minces avec cisaillement transverse C ELSE IF(MFR.EQ.9) THEN C IF(IFOUR.EQ.2) THEN COSA=VALMAT(2) SINA=VALMAT(3) C COS2 = COSA**2 SIN2 = SINA**2 SINCOS = SINA * COSA C C ELSE IRET=0 ENDIF C C Cas des barres C ELSE IF(MFR.EQ.27) THEN C C RIEN A FAIRE C ELSE IRET=0 GOTO 2035 ENDIF ENDIF C 2035 RETURN END