defo
C DEFO SOURCE CB215821 23/01/25 21:15:11 11573 ************************************************************************ C CONSTRUCTION D'UN OBJET DE TYPE DEFORME A PARTIR D'UNE GEOMETRIE C D'UN CHPOIN UX UY UZ ET D'UN COEFFICIENT D'AMPLIFICATION C 1995 Changement de defaut de couleur P.PEGON JRC-ISPRA ************************************************************************ SUBROUTINE DEFO IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCGEOME -INC CCREEL -INC SMCOORD -INC SMCHPOI -INC SMDEFOR -INC SMELEME -INC SMLMOTS CHARACTER*(LOCHPO) NOC DIMENSION UMAX(3) ************************************************************************ * LECTURE DES ARGUMENTS ************************************************************************ C MAILLAGE ET CHPOINT SONT OBLIGATOIRES IF (IERR.NE.0) RETURN C AMPLIFICATION 1 PAR DEFAUT AMP=1.D0 IF (IERR.NE.0) RETURN C VECTEUR MTVE=0 IF (IERR.NE.0) RETURN C COULEUR ICOUL=0 IF (IERR.NE.0) RETURN IF (ICOUL.EQ.0) ICOUL=IDCOUL+1 ICOUL=ICOUL-1 IDIMP1 = IDIM+1 ************************************************************************ * COMPOSANTES DU DEPLACEMENT SELON MODE DE CALCUL ************************************************************************ JGN = LOCHPO JGM = IDIM SEGINI,MLMOTS IF (IFOMOD.EQ.2.OR.IFOMOD.EQ.6) THEN ELSE IF (IFOMOD.EQ.-1) THEN ELSE IF (IFOMOD.EQ.0 .OR. IFOMOD.EQ.1) THEN ELSE IF (IFOMOD.EQ.3) THEN ELSE IF (IFOMOD.EQ.4.OR.IFOMOD.EQ.5) THEN ELSE RETURN ENDIF IPLDEP = MLMOTS ************************************************************************ * TRAVAIL SUR LE CHPOINT ************************************************************************ IF (IERR.NE.0) RETURN C VERIFICATION QU'IL Y A BIEN LES DEPLACEMENTS DANS LE CHPOINT IF (IERR.NE.0) RETURN CALL EXCOMP IF (IERR.NE.0) RETURN ************************************************************************ * TRAVAIL SUR L'AMPLIFICATION ************************************************************************ IF (IRETOA.EQ.0) THEN IF (IERR.NE.0) RETURN **** CALCUL D'UNE LONGUEUR CARACTERISTIQUE : CLONG **** c rem : pas besoin de CCREEL car ces valeurs seront tres vite ecrasees XMAX=-XSGRAN XMIN= XSGRAN YMAX=-XSGRAN YMIN= XSGRAN ZMAX=-XSGRAN ZMIN= XSGRAN * CALCUL DU CADRE NBSOUS=LISOUS(/1) IPT1=MELEME SEGACT,MCOORD DO ISOUS=1,MAX(1,NBSOUS) IF (NBSOUS.NE.0) IPT1=LISOUS(ISOUS) DO J = 1, IPT1.NUM(/2) DO I = 1, IPT1.NUM(/1) IREF=IDIMP1*(IPT1.NUM(I,J)-1) XPT=XCOOR(IREF+1) XMAX=MAX(XPT,XMAX) XMIN=MIN(XPT,XMIN) YPT=XCOOR(IREF+2) YMAX=MAX(YPT,YMAX) YMIN=MIN(YPT,YMIN) IF (IDIM.EQ.3) THEN ZPT=XCOOR(IREF+3) ZMAX=MAX(ZPT,ZMAX) ZMIN=MIN(ZPT,ZMIN) ENDIF ENDDO ENDDO ENDDO SEGDES,MCOORD if (idim.le.2) then ZMAX=0.D0 ZMIN=0.D0 if (idim.le.1) then YMAX=0.D0 YMIN=0.D0 endif endif c CLONG=MAX(XMAX-XMIN,YMAX-YMIN,ZMAX-ZMIN) *bp,2021 : une norme 2 semble + adaptee CLONG=SQRT((XMAX-XMIN)**2+(YMAX-YMIN)**2+(ZMAX-ZMIN)**2) **** CALCUL DU DEPLACEMENT MAX : UMAX **** UMAX(1)=0.D0 UMAX(2)=0.D0 UMAX(3)=0.D0 NSOUPO=IPCHP(/1) c "Impossible de calculer le coefficient d'amplification" IF (NSOUPO.EQ.0) THEN RETURN ENDIF DO ISOUPO = 1, NSOUPO MSOUPO=IPCHP(ISOUPO) MPOVAL=IPOVAL NC=NOCOMP(/2) DO I = 1, NC NOC = NOCOMP(I) DO J = 1, IDIM c Jeme composante trouvee DO K = 1, VPOCHA(/1) UMAX(J)=MAX(UMAX(J),ABS(VPOCHA(K,I))) ENDDO ENDIF ENDDO ENDDO ENDDO COMPMA=SQRT(UMAX(1)**2+UMAX(2)**2+UMAX(3)**2) * ON PREND CLONG/(10*UMAX) COMME AMPLIFICATION IF (COMPMA.GE.XSPETI) AMP=CLONG/(10.D0*COMPMA) c (sinon, AMP reste = 1.d0) ENDIF ************************************************************************ * ISOVALEUR via CHPOINT ou MCHAML ************************************************************************ IPCHP1=0 IPCHEL=0 IPMODL=0 IPCHAM=0 * lecture eventuelle d'un 2nd champoint ou d'un chamelem + model IF (IERR.NE.0) RETURN if (iretou.eq.1) then else if (ierr.ne.0) return if (iretou.ne.0) then if (ierr.ne.0) return if (ierr.ne.0) return * PASSER LES CHAMELEM AUX noeuds IF (IRET.NE.0) THEN RETURN ENDIF endif endif * rem : on pourrait verifier ici que ces champs n'ont qu'une seule * composante car TRAC ne sait pas faire autrement a ce jour ************************************************************************ * CREATION ET ECRITURE DE LA DEFORMEE ************************************************************************ NDEF=1 SEGINI,MDEFOR AMPL(1) = AMP MTVECT(1)= MTVE IELDEF(1)= MELEME ICHDEF(1)= MCHPOI JCOUL(1) = ICOUL MDCHP(1) = IPCHP1 MDMODE(1)= IPMODL MDCHEL(1)= IPCHAM SEGSUP,MLMOTS c return END
© Cast3M 2003 - Tous droits réservés.
Mentions légales