cneq1
C CNEQ1 SOURCE CB215821 24/04/12 21:15:18 11897 & IVACAR,IPORE,NCOMP,IVAFOR,IIPDPG) *---------------------------------------------------------------------- * _______________________________ * * | | * * | CALCUL DES FORCES AUX NOEUDS| * * |______________________________| * * * * massif * * * *---------------------------------------------------------------------* * * * ENTREES : * * ________ * * * * IPMAIL Pointeur sur un segment MELEME * * LRE Nombre de ddl dans la matrice de rigidite * * NDDL Nombre de degré de liberté * * NBPGAU Nombre de points d'integration pour les contraintes * * MELE Numero de l'element fini * * MFR Numero de la formulation * * IVAFVO pointeur sur un segment MPTVAL contenant les * * les melvals de FORCES VOLUMIQUES * * IPMINT Pointeur sur un segment MINTE * * IVACAR Pointeur sur un melval de caractéristiques * * IPORE Nombre de fonctions de forme * * * NCOMP Nombre de composantes de forces * * * * SORTIES : * * ________ * * * * IVAFOR pointeur sur un segment MPTVAL contenant les * * les melvals de forces NODALES * * * *---------------------------------------------------------------------* * F CAFFIN INSPIRE DE BSIGM1 *---------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC SMCHAML -INC SMCHPOI -INC SMELEME -INC SMCOORD -INC SMMODEL -INC SMINTE -INC CCGEOME -INC CCREEL -INC SMRIGID * SEGMENT WRK1 REAL*8 XFORC(LRE),FOVOL(NDDL),XE(3,NBBB) ENDSEGMENT * SEGMENT WRK2 ENDSEGMENT * SEGMENT WRK5 REAL*8 XGENE(NSTN,LRN) ENDSEGMENT * SEGMENT MPTVAL INTEGER IPOS(NS) , NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * * INTRODUCTION DU POINT AUTOUR DUQUEL SE FAIT LE MOUVEMENT * DE LA SECTION EN DEFO PLANE GENERALISEE * Pas de rotation en modes 1D generalises IF (IFOUR.EQ.-3)THEN IP=IIPDPG SEGACT MCOORD IREF=(IP-1)*(IDIM+1) XDPGE=XCOOR(IREF+1) YDPGE=XCOOR(IREF+2) ELSE XDPGE=0.D0 YDPGE=0.D0 ENDIF * MELEME=IPMAIL NBNN=NUM(/1) NBELEM=NUM(/2) NHRM=NIFOUR MINTE=IPMINT * C_______________________________________________________________________ C C NUMERO DES ETIQUETTES : C ETIQUETTES DE 1 A 98 POUR TRAITEMENT SPECIFIQUE A L ELEMENT C DANS LA ZONE SPECIFIQUE A CHAQUE ELEMENT COMMENCANT PAR : C 5 CONTINUE C ELEMENT 5 ETIQUETTES 1005 2005 3005 4005 ... C 44 CONTINUE C ELEMENT 44 ETIQUETTES 1044 2044 3044 4044 ... C_______________________________________________________________________ C GOTO (99,99,99, 4,99, 4,99, 4,99, 4,99,99,99, 4, 4, 4, 4,99,99,99, 1 99,99, 4, 4, 4, 4,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 2 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 3 99,99,99,99,99,99,99,99, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,79,79, 4 79,79,79,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 5 99,99,99,99,99,99,99,99,99,99, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6 4, 4),MELE IF (MELE.EQ.193.OR.MELE.EQ.194) GOTO 4 GOTO 99 C_______________________________________________________________________ C_______________________________________________________________________ C C SECTEUR DE CALCUL POUR LES ELEMENTS MASSIFS C_______________________________________________________________________ C 4 CONTINUE C DIM3=1.D0 NBNO=NBNN NBBB=NBNN NSTB=NDDL SEGINI WRK1,WRK2 I195=0 I259=0 SEGACT, MCOORD * C DO 3004 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C MISE A 0 DES FORCES NODALES C C C BOUCLE SUR LES POINTS DE GAUSS C ISDJC=0 DO 5004 IGAU=1,NBPGAU C C RECUPERATION DE L'EPAISSEUR C IF (IFOUR.EQ.-2)THEN MPTVAL=IVACAR IF (IVACAR.NE.0) THEN MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) DIM3=VELCHE(IGMN,IBMN) ELSE DIM3=1.D0 ENDIF ENDIF ENDIF C 1 XE,SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) * IF(DJAC.LT.0.D0) ISDJC=ISDJC+1 IF(DJAC.EQ.0.D0) I259=IB DJAC=ABS(DJAC)*POIGAU(IGAU) C C ON RECUPERE LES FORCES VOLUMIQUES C MPTVAL=IVAFVO ICOSOU=IVAL(/1) DO 8004 I=1,ICOSOU IF (IVAL(I).NE.0) THEN MELVAL=IVAL(I) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) FOVOL(I)=VELCHE(IGMN,IBMN) ELSE FOVOL(I)=0.D0 ENDIF 8004 CONTINUE * * CALCUL DES FORCES NODALES EQUIVALENTES * DO 9004 J=1,LRE DO 9005 I=1,NDDL XFORC(J)=XFORC(J)+BGENE(I,J)*FOVOL(I)*DJAC 9005 CONTINUE 9004 CONTINUE * 5004 CONTINUE * IF(ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) I195=IB * C C ON RANGE XFORC DANS MELVAL C IE=0 MPTVAL=IVAFOR DO 7004 IGAU=1,NBNN DO 7005 ICOMP=1,NCOMP IE=IE+1 MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XFORC(IE) 7005 CONTINUE 7004 CONTINUE C 3004 CONTINUE IF(I195.NE.0) INTERR(1)=I195 IF(I259.NE.0) INTERR(1)=I259 SEGSUP WRK1,WRK2 GOTO 510 C_______________________________________________________________________ C C MILIEUX POREUX C_______________________________________________________________________ C 79 CONTINUE C C POUR CES ELEMENTS NBBB = NOMBRE DE NOEUDS C NBNO = NOMBRE DE FONCTIONS DE FORME C DIM3=1.D0 NBNO=IPORE NBBB=NBNN LRN = NBNO-NBBB LRB=LRE-LRN NSTN=1 NSTB=NDDL-1 SEGINI WRK1,WRK2,WRK5 I195=0 I259=0 C DO 3079 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C MISE A 0 DES FORCES NODALES C C C BOUCLE SUR LES POINTS DE GAUSS C ISDJC=0 DO 5079 IGAU=1,NBPGAU C C RECUPERATION DE L'EPAISSEUR C IF (IFOUR.EQ.-2)THEN MPTVAL=IVACAR IF (IVACAR.NE.0) THEN MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) DIM3=VELCHE(IGMN,IBMN) ELSE DIM3=1.D0 ENDIF ENDIF ENDIF C . XE,SHPTOT,SHPWRK,BGENE,XGENE,DJAC,5) IF(DJAC.LT.0.D0) ISDJC=ISDJC+1 IF(DJAC.EQ.0.D0) I259=IB DJAC=ABS(DJAC)*POIGAU(IGAU) C C ON RECUPERE LES FORCES VOLUMIQUES C MPTVAL=IVAFVO ICOSOU=IVAL(/1) DO 8079 I=1,ICOSOU IF (IVAL(I).NE.0) THEN MELVAL=IVAL(I) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) FOVOL(I)=VELCHE(IGMN,IBMN) ELSE FOVOL(I)=0.D0 ENDIF 8079 CONTINUE * * CALCUL DES FORCES NODALES EQUIVALENTES * D'ABORD LA MECANIQUE * DO 9078 J=1,LRB DO 9079 I=1,NSTB XFORC(J)=XFORC(J)+BGENE(I,J)*FOVOL(I)*DJAC 9079 CONTINUE 9078 CONTINUE * * PUIS LA PRESSION * DO 6079 J=1,LRN JJ=LRB+J XFORC(JJ)=XFORC(JJ)+XGENE(1,J)*FOVOL(NDDL)*DJAC 6079 CONTINUE * 5079 CONTINUE * IF(ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) I195=IB * C C ON RANGE XFORC DANS MELVAL C D'ABORD LES FORCES C IE=0 MPTVAL=IVAFOR DO 7078 IGAU=1,NBNN DO 7079 ICOMP=1,NCOMP-1 IE=IE+1 MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XFORC(IE) 7079 CONTINUE 7078 CONTINUE C C PUIS LES DEBITS C DO 4079 IGAU=1,NBSOM(IELE) IE=IE+1 MELVAL=IVAL(NCOMP) IGAV = IBSOM(NSPOS(IELE)+IGAU-1) VELCHE(IGAV,IB)=XFORC(IE) 4079 CONTINUE C 3079 CONTINUE IF(I195.NE.0) INTERR(1)=I195 IF(I259.NE.0) INTERR(1)=I259 SEGSUP WRK1,WRK2,WRK5 GOTO 510 C C_______________________________________________________________________ C C 99 CONTINUE MOTERR(1:4)=NOMTP(MELE) MOTERR(5:8)='CNEQ' C 510 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales