chaco1
C CHACO1 SOURCE CB215821 19/08/20 21:15:30 10287 . IPCHE1,IPCHE2) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************************ * * C H A C O 1 * ----------- * * FONCTION: * --------- * CAS DES SOURCES VOLUMIQUES * COQUES SEGMENT AXISYMETRIQUE ET TRIANGLE * * MODULES UTILISES: * ----------------- * -INC PPARAM -INC CCOPTIO -INC CCREEL -INC SMCHAML -INC SMELEME -INC SMINTE -INC SMCOORD * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * IPSONO (E) POINTEURS SUR DES SEGMENTS MELVAL CONTENANT LES * IPSON1 SOURCES * IPSON2 * IEP (E) POINTEUR SUR UN SEGMENT MELVAL COTENANT LES EPAISSEUR * IPGEOM (E) POINTEUR SUR UN OBJET MAILLAGE ELEMENTAIRE * IPINTE (E) POINTEUR SUR UN SEGMENT MINTE CONTENANT LES * CARACTERISTIQUES D'INTEGRATION * +IDIM (E) VOIR CCOPTIO * +XPI (E) VOIR CCREEL * IPCHEQ (S) POINTEURS SUR DES SEGMENTS MELVAL CONTENANT LES * IPCHE1 CHALEURS NODALES EQUIVALENTES * IPCHE2 * * VARIABLES: * ---------- * * XE(3,NBPTEL) = COORDONNEES DES ELEMENTS DANS LE REPERE GLOBAL * SURF = SURFACE ELEMENTAIRE AU POINT DE GAUSS * A ET S = TABLEAUX DE TRAVAIL * REAL*8 S(6) SEGMENT,MMAT1 REAL*8 XE(3,NBPTEL),A(NBPTEL,NBPTEL),SHP(6,NBPTEL),AA(NBE,NBE) ENDSEGMENT * * CONSTANTES: * ----------- * PARAMETER ( O1=1.D0 ) PARAMETER ( O2=2.D0,O30=30.D0,O8=8.D0,O15=15.D0) * * AUTEUR, DATE DE CREATION: * ------------------------- * * P. DOWLATYARI JUIN 90 ADAPTATION DE CHAMAS * * LANGAGE: * -------- * * ESOPE + FORTRAN77 * ************************************************************************ * * ON RECUPERE LES VALEURS DES SOURCES * MELVA1=IPSONO SEGACT,MELVA1 NBPTE1=MELVA1.VELCHE(/1) NEL1=MELVA1.VELCHE(/2) MELVA2=IPSON1 SEGACT,MELVA2 MELVA3=IPSON2 SEGACT,MELVA3 * * ON RECUPERE LES CARACTERISTIQUES D'INTEGRATION * MINTE=IPINTE SEGACT,MINTE NBPGAU=POIGAU(/1) * * ON RECUPERE UN DES MAILLAGES ELEMENTAIRES DE L'ENVELOPPE * MELEME=IPGEOM SEGACT,MELEME NBPTEL=NUM(/1) NEL=NUM(/2) * * INITIALISATION DES MELVALS QUI CONTIENDRA LES CHALEURS EQUIVALENTE * N1PTEL=NBPTEL N1EL=NEL N2PTEL=0 N2EL=0 NBE=3*NBPTEL SEGINI,MELVAL IPCHEQ=MELVAL SEGINI,MELVA4 IPCHE1=MELVA4 SEGINI,MELVA5 IPCHE2=MELVA5 SEGINI,MMAT1 MELVA6=IEP SEGACT,MELVA6 * * BOUCLE SUR LES ELEMENTS * DO 10 IEL=1,NEL * * ON CHERCHE LES COORDONNEES DES NOEUDS DANS LE REPERE GLOBAL * * * BOUCLE SUR LES POINTS DE GAUSS * DO 40 IGAU=1,NBPGAU AXIS=O1 * * CALCUL DE LA LONGUEUR ( POUR L'ELEMENT BARRE ) * DLX=XZERO DLY=XZERO DO 400 INOE=1,NBPTEL DLX=DLX+SHPTOT(2,INOE,IGAU)*XE(1,INOE) DLY=DLY+SHPTOT(2,INOE,IGAU)*XE(2,INOE) 400 CONTINUE * END DO SURF=SQRT(DLX**2+DLY**2) ELSE * * CALCUL DE LA SURFACE ELEMENTAIRE AU POINT DE GAUSS CONSIDERE * SURFX=XZERO SURFY=XZERO SURFZ=XZERO DO 21 I=1,6 S(I)=XZERO 21 CONTINUE * END DO DO 30 INOE=1,NBPTEL S(1)=S(1)+SHPTOT(2,INOE,IGAU)*XE(2,INOE) S(2)=S(2)+SHPTOT(3,INOE,IGAU)*XE(3,INOE) S(3)=S(3)+SHPTOT(3,INOE,IGAU)*XE(2,INOE) S(4)=S(4)+SHPTOT(2,INOE,IGAU)*XE(3,INOE) S(5)=S(5)+SHPTOT(3,INOE,IGAU)*XE(1,INOE) S(6)=S(6)+SHPTOT(2,INOE,IGAU)*XE(1,INOE) 30 CONTINUE * END DO SURFX=S(1)*S(2)-S(3)*S(4) SURFY=S(4)*S(5)-S(2)*S(6) SURFZ=S(6)*S(3)-S(5)*S(1) SURF=SQRT(SURFX**2+SURFY**2+SURFZ**2) ENDIF IF (IFOMOD.EQ.0) THEN * * CAS DES ELEMENTS AXISYMETRIQUES * DO 41 NP=1,NBPTEL SHP(1,NP)=SHPTOT(1,NP,IGAU) SHP(2,NP)=SHPTOT(2,NP,IGAU) SHP(3,NP)=SHPTOT(3,NP,IGAU) 41 CONTINUE * END DO AXIS=XPI*RR*O2 ENDIF DO 50 INO1=1,NBPTEL DO 60 INO2=1,NBPTEL A(INO1,INO2)=A(INO1,INO2)+SHPTOT(1,INO1,IGAU)* 1 SHPTOT(1,INO2,IGAU)*POIGAU(IGAU)*AXIS*SURF 60 CONTINUE * END DO 50 CONTINUE * END DO 40 CONTINUE * END DO * * RECUPERATION DE L'EPAISSEUR * EP=0.D0 IEMN=MIN(IEL,MELVA6.VELCHE(/2)) INMN=MIN(INO,MELVA6.VELCHE(/1)) EP=MELVA6.VELCHE(INMN,IEMN)+EP 45 CONTINUE * * INTEGRATION ANALYTIQUE SUR EPAISSEUR * C3=-EP/O30 C4=(O8*EP)/O15 C5=EP/O15 C6=(O2*EP)/O15 * DO 80 J=1,NBPTEL DO 80 I=1,NBPTEL 80 CONTINUE * * DO 90 J=1,NBPTEL DO 90 I=1,NBPTEL II=I+NBPTEL AA(J,II)=AA(II,J) 90 CONTINUE * DO 100 J=1,NBPTEL DO 100 I=1,NBPTEL II=I+2*NBPTEL AA(II,J)=C3*A(I,J) AA(J,II)=AA(II,J) 100 CONTINUE * DO 110 J=1,NBPTEL JJ=J+NBPTEL DO 110 I=1,NBPTEL II=I+NBPTEL AA(II,JJ)=C4*A(I,J) 110 CONTINUE * DO 120 J=1,NBPTEL JJ=J+NBPTEL DO 120 I=1,NBPTEL II=I+2*NBPTEL AA(II,JJ)=C5*A(I,J) AA(JJ,II)=AA(II,JJ) 120 CONTINUE * DO 130 J=1,NBPTEL JJ=J+2*NBPTEL DO 130 I=1,NBPTEL II=I+2*NBPTEL AA(II,JJ)=C6*A(I,J) 130 CONTINUE * * (INTEGRAL DE HTH)*VALEURS NODALES DES SOURCES * IEMIN=MIN(NEL1,IEL) DO 70 INO3=1,NBE DO 70 INO4=1,NBE IF(INO3.LE.NBPTEL)THEN IF(INO4.LE.NBPTEL)THEN INMIN=MIN(NBPTE1,INO4) VELCHE(INO3,IEL)=VELCHE(INO3,IEL)+MELVA1.VELCHE(INMIN,IEMIN)* 1 AA(INO4,INO3) ELSEIF(INO4.GT.NBPTEL.AND.INO4.LE.(2*NBPTEL))THEN INO5=INO4-NBPTEL INMIN=MIN(NBPTE1,INO5) VELCHE(INO3,IEL)=VELCHE(INO3,IEL)+MELVA2.VELCHE(INMIN,IEMIN)* 1 AA(INO4,INO3) ELSE INO5=INO4-2*NBPTEL INMIN=MIN(NBPTE1,INO5) VELCHE(INO3,IEL)=VELCHE(INO3,IEL)+MELVA3.VELCHE(INMIN,IEMIN)* 1 AA(INO4,INO3) ENDIF ELSEIF(INO3.GT.NBPTEL.AND.INO3.LE.(2*NBPTEL))THEN INO6=INO3 - NBPTEL IF(INO4.LE.NBPTEL)THEN INMIN=MIN(NBPTE1,INO4) MELVA4.VELCHE(INO6,IEL)=MELVA4.VELCHE(INO6,IEL)+ 1 MELVA1.VELCHE(INMIN,IEMIN)*AA(INO4,INO3) ELSEIF(INO4.GT.NBPTEL.AND.INO4.LE.(2*NBPTEL))THEN INO5=INO4-NBPTEL INMIN=MIN(NBPTE1,INO5) MELVA4.VELCHE(INO6,IEL)=MELVA4.VELCHE(INO6,IEL)+ 1 MELVA2.VELCHE(INMIN,IEMIN)*AA(INO4,INO3) ELSE INO5=INO4-2*NBPTEL INMIN=MIN(NBPTE1,INO5) MELVA4.VELCHE(INO6,IEL)=MELVA4.VELCHE(INO6,IEL)+ 1 MELVA3.VELCHE(INMIN,IEMIN)*AA(INO4,INO3) ENDIF ELSE INO6=INO3 -2*NBPTEL IF(INO4.LE.NBPTEL)THEN INMIN=MIN(NBPTE1,INO4) MELVA5.VELCHE(INO6,IEL)=MELVA5.VELCHE(INO6,IEL)+ 1 MELVA1.VELCHE(INMIN,IEMIN)*AA(INO4,INO3) ELSEIF(INO4.GT.NBPTEL.AND.INO4.LE.(2*NBPTEL))THEN INO5=INO4-NBPTEL INMIN=MIN(NBPTE1,INO5) MELVA5.VELCHE(INO6,IEL)=MELVA5.VELCHE(INO6,IEL)+ 1 MELVA2.VELCHE(INMIN,IEMIN)*AA(INO4,INO3) ELSE INO5=INO4-2*NBPTEL INMIN=MIN(NBPTE1,INO5) MELVA5.VELCHE(INO6,IEL)=MELVA5.VELCHE(INO6,IEL)+ 1 MELVA3.VELCHE(INMIN,IEMIN)*AA(INO4,INO3) ENDIF ENDIF 70 CONTINUE * END DO 10 CONTINUE * END DO * SEGSUP,MMAT1 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales