fscoq4
C FSCOQ4 SOURCE FANDEUR 12/07/18 21:15:38 7434 *____________________________________________________________________ * * CALCULE LES FORCES SURFACIQUES SUR LES COQUES COQ4 3D * * ENTREES : * --------- * * IPT TABLEAU DE POINTEURS SUR MPTVAL CONTENANT LES FORCES * APPLIQUEES * IPMAIL OBJET GEOMETRIQUE * IPTINT POINTEUR SUR UN MINTE CONTENANT LES POINTS D INTEGRATION * IPVECT POINTEUR SUR LE VECTEUR REPRESENTANT LA FORCE * V VECTEUR REPRESENTANT LA FORCE * IVAFOR POINTEUR SUR UN MPTVAL ET DES MELVALS DEVANT CONTENIR * LES FORCES NODALES RESULTANTES * * G. M. GIANNUZZI SETT 86 * PASSAGE AUX NOUVEAUX CHAMELEM PAR JM CAMPENON LE 12 09 90 * *____________________________________________________________________ * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO * -INC SMCHAML -INC SMELEME -INC SMINTE -INC SMCOORD * SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * DIMENSION IPT(*), V(*) DIMENSION XE(3,4),XEL(3,4),BPSS(3,3),SHP(6,4),FTLOC(24),FTGLO(24) MELVA1 = IPT(1) MELVA2 = IPT(2) MELVA3 = IPT(3) IF (IPVECT.EQ.0) THEN IF (MELVA1.NE.0) THEN SEGACT,MELVA1 IGM1 = MELVA1.VELCHE(/1) IBM1 = MELVA1.VELCHE(/2) ENDIF IF (MELVA2.NE.0) THEN SEGACT,MELVA2 IGM2 = MELVA2.VELCHE(/1) IBM2 = MELVA2.VELCHE(/2) ENDIF IF (MELVA3.NE.0) THEN SEGACT,MELVA3 IGM3 = MELVA3.VELCHE(/1) IBM3 = MELVA3.VELCHE(/2) ENDIF F1 = 0.D0 F2 = 0.D0 F3 = 0.D0 ELSE F1 = V(1) F2 = V(2) F3 = V(3) ENDIF * MINTE=IPTINT C* SEGACT,MINTE <- ACTIF EN E/S (NON MODIFIE) NBPGAU=POIGAU(/1) NBGM1 =NBPGAU-1 * MELEME=IPMAIL C* SEGACT,MELEME <- ACTIF EN E/S (NON MODIFIE) NBPTEL = NUM(/1) NBELEM = NUM(/2) * * BOUCLE SUR LES ELEMENTS * DO 1000 IB=1,NBELEM * * * MATRICE DE PASSAGE ET COORDONNEES LOCALES * * * MISE A 0 DU VECTEUR FORCE * DO I = 1, 24 FTLOC(I)=0.D0 ENDDO * * INTEGRATION NUMERIQUE : IGAU NUMERO DU POINT DE GAUSS * IA NUMERO D UN NOEUD * IF (IPVECT.EQ.0) THEN IF (MELVA1.NE.0) IBMN1 = MIN(IB,IBM1) IF (MELVA2.NE.0) IBMN2 = MIN(IB,IBM2) IF (MELVA3.NE.0) IBMN3 = MIN(IB,IBM3) ENDIF DO 200 IGAU=1,NBGM1 * IF (IPVECT.EQ.0) THEN IF (MELVA1.NE.0) THEN IGMN = MIN(IGAU,IGM1) F1 = MELVA1.VELCHE(IGMN,IBMN1) ENDIF IF (MELVA2.NE.0) THEN IGMN = MIN(IGAU,IGM2) F2 = MELVA2.VELCHE(IGMN,IBMN2) ENDIF IF (MELVA3.NE.0) THEN IGMN = MIN(IGAU,IGM3) F3 = MELVA3.VELCHE(IGMN,IBMN3) ENDIF ENDIF * * chgt de repere des forces appliquees * F1L = BPSS(1,1)*F1 + BPSS(1,2)*F2 + BPSS(1,3)*F3 F2L = BPSS(2,1)*F1 + BPSS(2,2)*F2 + BPSS(2,3)*F3 F3L = BPSS(3,1)*F1 + BPSS(3,2)*F2 + BPSS(3,3)*F3 * DO 210 NP = 1, NBPTEL SHP(1,NP) = SHPTOT(1,NP,IGAU) SHP(2,NP) = SHPTOT(2,NP,IGAU) SHP(3,NP) = SHPTOT(3,NP,IGAU) 210 CONTINUE DJAC = DJAC*POIGAU(IGAU) * DJAC1 = DJAC*F1L DJAC2 = DJAC*F2L DJAC3 = DJAC*F3L * DO 250 NP = 1, NBPTEL IC1=(NP-1)*6+1 IC2=IC1 + 1 IC3=IC2 + 1 FTLOC(IC1)=FTLOC(IC1)+SHP(1,NP)*DJAC1 FTLOC(IC2)=FTLOC(IC2)+SHP(1,NP)*DJAC2 FTLOC(IC3)=FTLOC(IC3)+SHP(1,NP)*DJAC3 250 CONTINUE 200 CONTINUE * * CHANGEMENT DE REPERE * * MPTVAL=IVAFOR IE=0 DO 560 IC=1,4 DO 560 ID=1,6 IE=IE+1 MELVAL=IVAL(ID) VELCHE(IC,IB)=FTGLO(IE) 560 CONTINUE 1000 CONTINUE IF (IPVECT.EQ.0) THEN IF (MELVA1.NE.0) SEGDES,MELVA1 IF (MELVA2.NE.0) SEGDES,MELVA2 IF (MELVA3.NE.0) SEGDES,MELVA3 ENDIF C* SEGDES,MINTE C* SEGDES,MELEME RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales