cneq2
C CNEQ2 SOURCE CB215821 24/04/12 21:15:18 11897 & CMATE,NBPTEL,MELE,IPMINT,IPMIN1,IVAMAT,NMATT,NBGMAT,NELMAT, & IMAT,IVAFOR) *---------------------------------------------------------------------- * _______________________________ * * | | * * | CALCUL DES FORCES AUX NOEUDS| * * |______________________________| * * * * dkt,coq4 * * * *---------------------------------------------------------------------* * * * ENTREES : * * ________ * * * * IPMAIL Pointeur sur un segment MELEME * * LRE Nombre de ddl dans la matrice de rigidite * * NDDD Nombre de degrE de libertE PAR NOEUD * * IVAFVO pointeur sur un segment MPTVAL contenant les * * les melvals de forces volumiques * * LW Dimension du tableau de travail de l'element * * NBPGAU Nombre de points d'integration * * IVACAR Pointeur sur les chamelems de caracteristiques * * NBPTEL Nombre de points par element * * MELE Numero de l'element fini * * IPMINT Pointeur sur un segment MINTE * * IPMIN1 Pointeur sur un segment MINTE (aux noeuds) * * * * SORTIES : * * ________ * * * * IVAFOR pointeur sur un segment MPTVAL contenant les * * les melvals de forces * * * *---------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * * -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC CCREEL -INC SMCHAML -INC SMCHPOI -INC SMELEME -INC SMCOORD -INC SMMODEL -INC SMINTE -INC SMLREEL -INC SMRIGID * SEGMENT WRK1 REAL*8 XFORC(LRE), FOVOL(NDDD), XE(3,NBBB) ENDSEGMENT * SEGMENT WRK2 ENDSEGMENT * SEGMENT WRK3 ENDSEGMENT * SEGMENT WRK4 REAL*8 BPSS(3,3), XEL(3,NBBB), XFOLO(LRE) ENDSEGMENT * SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * CHARACTER*8 CMATE * * MELEME=IPMAIL NDDL=NDDD 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,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 1 99,99,99,99,99,99,27,28,99,99,99,99,99,99,99,99,99,99,99,99, 2 41,99,99,44,99,99,99,99,49,99,99,99,99,99,99,41,99,99,99,99, 3 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 4 99,99,99,99,99,99,99,88,99,99,99,99,93,99,99,99,99),MELE GOTO 99 C_______________________________________________________________________ C_______________________________________________________________________ C C ELEMENT COQ3 C_______________________________________________________________________ C 27 CONTINUE C C CAS NON PREVU GO TO 99 C_______________________________________________________________________ C C ELEMENT DKT C_______________________________________________________________________ C 28 CONTINUE NBNO=NBNN NBBB=NBNN NDDL=3 SEGINI WRK1,WRK2,WRK3,WRK4 C DO 3028 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C MISE A ZERO DES FORCES NODALES C C C C BOUCLE SUR LES POINTS DE GAUSS C DO 6028 IGAU=1,NBPGAU MPTVAL=IVACAR MELVAL=IVAL(1) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) EPAIST=VELCHE(IGMN,IBMN) IF (IVAL(2).NE.0) THEN MELVAL=IVAL(2) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) EXCENT=VELCHE(IGMN,IBMN) ELSE EXCENT=0.D0 ENDIF * DJAC=DJAC*POIGAU(IGAU)*EPAIST * * ON RECUPERE LES FORCES VOLUMIQUES DANS LE REPERE GLOBAL * MPTVAL=IVAFVO ICOSOU=IVAL(/1) DO 8028 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 8028 CONTINUE * * ON LES PASSE DANS LE REPERE LOCAL * C C CALCUL DES FORCES NODALES C DO 7028 J=1,LRE DO 7028 I=1,NDDL XFORC(J)=XFORC(J)+BGENE(I,J)*XFOLO(I)*DJAC 7028 CONTINUE 6028 CONTINUE C C TRAITEMENT DE XFORC ET RANGEMENT DANS MELVAL C IE=0 MPTVAL=IVAFOR DO 9028 IGAU=1,NBNN DO 9028 ICOMP=1,6 IE=IE+1 MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XFOLO(IE) 9028 CONTINUE 3028 CONTINUE SEGSUP WRK1,WRK2,WRK3,WRK4 GOTO 510 C_______________________________________________________________________ C_______________________________________________________________________ C C ELEMENTS COQ6 ET COQ8 C_______________________________________________________________________ C 41 CONTINUE C C CAS NON PREVU GO TO 99 C C_______________________________________________________________________ C_______________________________________________________________________ C C ELEMENT COQ2 C_______________________________________________________________________ C 44 CONTINUE C C CAS NON PREVU GO TO 99 C C_______________________________________________________________________ C_______________________________________________________________________ C C ELEMENT COQ4 C_______________________________________________________________________ C C 49 CONTINUE IG1=0 NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2,WRK4 C DO 3049 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C MISE A ZERO DES FORCES NODALES C C C CALCUL DE LA MATRICE DE PASSAGE EN REPERE LOCAL C C IF (IERT .EQ. 3) THEN NOPLAN = 1 ELSE NOPLAN = 0 END IF C MPTVAL=IVACAR MELVAL=IVAL(1) IBMN=MIN(IB,VELCHE(/2)) EP=VELCHE(1,IBMN) MELVAL=IVAL(2) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) EXCEN =VELCHE(1,IBMN) ELSE EXCEN=0.D0 ENDIF C C BOUCLE SUR LES POINTS DE GAUSS C NBPGAM=NBPGAU-1 DO 4049 IGAU=1,NBPGAM * * IERT=1 JACOBIANO=<0 IF (IERT.NE.0) IG1=IB * DJAC=DJAC*POIGAU(IGAU)*EP * * ON RECUPERE LES FORCES VOLUMIQUES DANS LE REPERE GLOBAL * MPTVAL=IVAFVO ICOSOU=IVAL(/1) DO 3549 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 3549 CONTINUE * * ON LES PASSE DANS LE REPERE LOCAL * C C ON CALCULE LES FORCES NODALES C DO 3649 J=1,LRE DO 3649 I=1,3 XFORC(J)=XFORC(J)+BGENE(I,J)*XFOLO(I)*DJAC 3649 CONTINUE 4049 CONTINUE C C TRAITEMENT DE XFORC ET RANGEMENT DANS MELVAL C IE=0 MPTVAL=IVAFOR DO 9049 NODE=1,4 DO 9049 ICOMP=1,6 IE=IE+1 MELVAL=IVAL(ICOMP) VELCHE(NODE,IB)=XFOLO(IE) 9049 CONTINUE 3049 CONTINUE C C IMPRESSION D'UN EVENTUEL MESSAGE D'ERREUR... C IF(IG1.NE.0) THEN INTERR(1)=IG1 ENDIF SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT JOINT JOI4 C_______________________________________________________________________ C 88 CONTINUE C C CAS NON PREVU GO TO 99 C C_______________________________________________________________________ C C ELEMENT DST C_______________________________________________________________________ C 93 CONTINUE C C CAS NON PREVU GO TO 99 C C_______________________________________________________________________ * 99 CONTINUE MOTERR(1:4)=NOMTP(MELE) MOTERR(5:9)='CNEQ2' * 510 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales