depdpg
C DEPDPG SOURCE OF166741 24/10/07 21:15:11 12016 C======================================================================= C= D E P D P G = C= ----------- = C= Extraction du chpoint MCHPOI des deplacements (UZDPG,RXDPG,RYDPG) = C= du noeud IPDPGE support des deformations planes generalisees = C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCREEL -INC SMCHPOI -INC SMELEME CHARACTER*(LOCOMP) NOCO C 1 - Controle de la presence du noeud IPDPGE dans le chpoint MCHPOI C ERREUR si le noeud n'est pas present sauf si tout nul C Le chpoint est suppose ACTIF en E/S C === NSOUPO=IPCHP(/1) DO i=1,NSOUPO MSOUPO=IPCHP(i) MELEME=IGEOC DO j = 1, NUM(/2) IF (NUM(1,j).EQ.IPDPGE) GOTO 10 ENDDO ENDDO * rattrapage si champ nul xma=0.d0 do i=1,NSOUPO MSOUPO=IPCHP(i) mpoval=ipoval if(mpoval.ne.0) then do iou=1,vpocha(/2) do iyu=1,vpocha(/1) if(abs(vpocha(iyu,iou)).gt.xma)xma=abs(vpocha(iyu,iou)) enddo enddo endif enddo if(xma.lt.1.d-30) then UZDPG=0.d0 RXDPG=0.D0 RYDPG=0.D0 RETURN endif RETURN C 2 - Extraction des deplacements generalises suivant le mode de calcul C Les composantes generalisees sont rangees dans l'ordre UZDPG, C RXDPG et RYDPG quelque soit le mode de calcul. C ERREUR si le nombre de composantes lues n'est pas correct C === 10 CONTINUE MPOVAL=IPOVAL ICOCO=0 C ===== C 2.1 - Mode PLAN GENE (2D) C ===== IF (IFOUR.EQ.-3) THEN DO i=1,NOCOMP(/2) NOCO=NOCOMP(i) IF (NOCO.EQ.'UZ ') THEN ICOCO=ICOCO+1 UZDPG=VPOCHA(j,i) ELSE IF (NOCO.EQ.'RX ') THEN ICOCO=ICOCO+10 RXDPG=VPOCHA(j,i) ELSE IF (NOCO.EQ.'RY ') THEN ICOCO=ICOCO+100 RYDPG=VPOCHA(j,i) ENDIF ENDDO C ===== C 2.2 - Modes UNIDIMENSIONNELS (1D) C ===== ELSE IF (IFOUR.EQ.7.OR.IFOUR.EQ.8) THEN RXDPG=XZero RYDPG=XZero DO i=1,NOCOMP(/2) NOCO=NOCOMP(i) IF (NOCO.EQ.'UY ') THEN ICOCO=ICOCO+1 UZDPG=VPOCHA(j,i) ENDIF ENDDO ELSE IF (IFOUR.EQ.9.OR.IFOUR.EQ.10.OR.IFOUR.EQ.14) THEN RXDPG=XZero RYDPG=XZero DO i=1,NOCOMP(/2) NOCO=NOCOMP(i) IF (NOCO.EQ.'UZ ') THEN ICOCO=ICOCO+1 UZDPG=VPOCHA(j,i) ENDIF ENDDO ELSE IF (IFOUR.EQ.11) THEN RYDPG=XZero DO i=1,NOCOMP(/2) NOCO=NOCOMP(i) IF (NOCO.EQ.'UZ ') THEN ICOCO=ICOCO+1 UZDPG=VPOCHA(j,i) ELSE IF (NOCO.EQ.'UY ') THEN ICOCO=ICOCO+10 RXDPG=VPOCHA(j,i) ENDIF ENDDO ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales