force
C FORCE SOURCE FANDEUR 22/01/03 21:15:17 11136 C======================================================================= C= OPERATEUR FORCE OU MOMENT C C= SYNTAXE CHP1=FORCE I VECTEUR I OBJET ; C= I NOMFORC VAL ... I C C= CHP2=MOMEN I VECTEUR I OBJET ; C= I NOMMOME VAL ... I C C= VECTEUR EST LE VECTEUR FORCE TOTAL APPLIQUE C= A L OBJET QUI PEUT ETRE UNE LISTE C= DE POINTS OU D ELEMENTS C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMELEME -INC SMCHPOI -INC SMCOORD SEGMENT MSWMOT CHARACTER*(LOCOMP) MOTFOR(0) ENDSEGMENT SEGMENT MSWVAL REAL*8 VALFOR(0) ENDSEGMENT DIMENSION VEC(3) CHARACTER*4 MOFOR1(2),MOFOR2(2),MOFOR3(3),MOFOR4(3),MOFOR5(2) CHARACTER*4 MOTYPO(10) CHARACTER*4 MOMOM1(1),MOMOM2(1),MOMOM3(2),MOMOM4(3) REAL*8 XXA,vval,X0,X1 DATA MOTYPO / 'FX ','FY ','FZ ','FR ','FZ ','FT ', . 'MX ','MY ','MZ ','MT ' / DATA MOFOR1 / 'FX ','FY ' / DATA MOFOR2 / 'FR ','FZ ' / DATA MOFOR3 / 'FR ','FZ ','FT ' / DATA MOFOR4 / 'FX ','FY ','FZ ' / DATA MOFOR5 / 'FX ','FZ ' / DATA MOMOM1 / 'MZ ' / DATA MOMOM2 / 'MT ' / DATA MOMOM3 / 'MT ','MZ ' / DATA MOMOM4 / 'MX ','MY ','MZ ' / if (iret1.ne.0) goto 200 CCCCCCCCCC ON LIT SOIT UN VECTEUR , SOIT UN OU PLUSIEURS NOMS DE C COMPOSANTES ACCOMPAGNES D'UN FLOTTANT IF (IRET1.EQ.0) THEN SEGINI,MSWMOT,MSWVAL IF (LTYP.EQ.1) THEN IF (IFOMOD.EQ.-1) THEN C ON INTRODUIT LES FORCES EN DEFO PLANE GENE (FX,FY,FZ) 11 IF (IFOUR.EQ.-3) THEN IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOFOR4(IMLU) VALFOR(**)=VAL ELSE IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOFOR1(IMLU) VALFOR(**)=VAL ENDIF GOTO 11 ELSE IF(IFOMOD.EQ.0) THEN IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOFOR2(IMLU) VALFOR(**)=VAL GOTO 12 ELSE IF (IFOMOD.EQ.1) THEN IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOFOR3(IMLU) VALFOR(**)=VAL GOTO 13 ELSE IF (IFOMOD.EQ.2) THEN IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOFOR4(IMLU) VALFOR(**)=VAL GOTO 14 ELSE IF (IFOMOD.EQ.3) THEN IF (IFOUR.EQ.9.OR.IFOUR.EQ.10) THEN IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOFOR5(IMLU) VALFOR(**)=VAL GOTO 151 ELSE NC=1 IF (IFOUR.EQ.7.OR.IFOUR.EQ.8) NC=2 IF (IFOUR.EQ.11) NC=3 IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOFOR4(IMLU) VALFOR(**)=VAL GOTO 152 ENDIF ELSE IF (IFOMOD.EQ.4) THEN NC=1 IF (IFOUR.EQ.14) NC=2 IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOFOR2(IMLU) VALFOR(**)=VAL GOTO 16 ELSE IF (IFOMOD.EQ.5) THEN IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOFOR2(IMLU) VALFOR(**)=VAL GOTO 17 ENDIF ELSE IF (LTYP.EQ.2) THEN IF (IFOMOD.EQ.-1) THEN C ON INTRODUIT LES MOMENTS EN DEFO PLANE GENE (MX,MY,MZ) 21 IF (IFOUR.EQ.-3) THEN IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOMOM4(IMLU) VALFOR(**)=VAL ELSE IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOMOM1(IMLU) VALFOR(**)=VAL ENDIF GOTO 21 ELSE IF (IFOMOD.EQ.0) THEN IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOMOM2(IMLU) VALFOR(**)=VAL GOTO 22 ELSE IF (IFOMOD.EQ.1) THEN IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOMOM3(IMLU) VALFOR(**)=VAL GOTO 23 ELSE IF (IFOMOD.EQ.2) THEN IF (IMLU.EQ.0) GOTO 999 IF (IERR.NE.0) RETURN MOTFOR(**)=MOMOM4(IMLU) VALFOR(**)=VAL GOTO 24 C*OF Pas de MOMENT en 1D (IFOMOD=3,4,5) ENDIF ENDIF 999 IF (MOTFOR(/2).EQ.0) THEN RETURN ENDIF ENDIF C ON A BIEN LU UN POINT (application du chargement) IF (IRETOU.NE.0) THEN C A T ON UN OBJET DE TYPE ELEMENT SI OUI ON LE TRAN EN POINT ELSE IF (IERR.NE.0) RETURN ENDIF CCCCCCCCCCCCC ON N A PAS D ERREUR ON RECUPERE LES COORDONNEES DU C VECTEUR ET LE NUMERO DU POINT IF (IRET1.EQ.1) THEN SEGACT,MCOORD iNoe=(NOEUD-1)*(IDIM+1) DO i=1,IDIM VEC(i)=XCOOR(iNoe+i) ENDDO CCCCCCCCCCCCCC ON RECUPERE LE NUMERO DU POINT CCCCCCCCCCCCCC ON COMPTE LE NOMBRE DE COMPOSANTE ET L ADRESSE CCCCCCCCCCCCCC DANS LE TABLEAU DU TYPE DES DDL SUIVANT L OPTION JDIM=IDIM IF (LTYP.EQ.2) THEN IF (IFOMOD.LE.1) THEN JDEC=9 JDIM=1 ELSE IF (IFOMOD.EQ.2) THEN JDEC=6 ELSE RETURN ENDIF ELSE IF (LTYP.EQ.1) THEN JDEC=0 IF (IFOMOD.EQ.1) THEN JDEC=3 JDIM=3 ELSE IF (IFOMOD.EQ.0) THEN JDEC=3 ELSE IF (IFOMOD.EQ.4.OR.IFOMOD.EQ.5) THEN JDEC=3 ENDIF ELSE MOTERR(1:4)=LOCERR RETURN ENDIF NC=JDIM ELSE NC=MOTFOR(/2) ENDIF CCCCCCCCCCC CREATION DU SEGMENT GEOMETRIE NSOUPO=1 NAT=1 SEGINI,MCHPOI MTYPOI='FORCES' MOCHDE=' CHPOINT CREE PAR FORCE ' IFOPOI=IFOUR JATTRI(1)=2 SEGINI,MSOUPO IPCHP(1)=MSOUPO IGEOC=IPT1 IF (IRET1.EQ.1) THEN DO i=1,NC NOHARM(i)=NIFOUR NOCOMP(i)=MOTYPO(JDEC+i) ENDDO ELSE DO i=1,NC NOHARM(i)=NIFOUR NOCOMP(i)=MOTFOR(i) ENDDO ENDIF MELEME=IPT1 SEGACT,MELEME N=NUM(/2) SEGINI,MPOVAL IPOVAL=MPOVAL IF (IRET1.EQ.1) THEN DO i=1,NC zz=VEC(i)/N DO j=1,N VPOCHA(j,i)=zz ENDDO ENDDO ELSE DO i=1,NC zz=VALFOR(i)/N DO j=1,N VPOCHA(j,i)=zz ENDDO ENDDO ENDIF IP2=MCHPOI IF (IRET1.EQ.0) SEGSUP,MSWMOT,MSWVAL RETURN 200 continue END
© Cast3M 2003 - Tous droits réservés.
Mentions légales