lineat
C LINEAT SOURCE CB215821 20/11/04 21:18:43 10766 C======================================================================= C= L I N E A T = C= ----------- = C= = C= Fonction : = C= ---------- = C= Ce sousprogramme linearise un champ par element de temperatures = C= pour les noeuds milieux des elements (s'ils existent). = C= = C= Parametres : (E)=Entree (S)=Sortie = C= ------------ = C= IPCHEL (E/S) Pointeur MCHELM temperatures linearisees en sortie = C= = C= Remarque : Ce segment est DESACTIVE en sortie du sousprogramme. = C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC SMELEME -INC PPARAM -INC SMCHAML MCHELM=IPCHEL DO 1 i=1,imache(/1) meleme=imache(i) IF (itypel.NE. 3.AND.itypel.NE. 6.AND.itypel.NE. 10.AND. . itypel.NE.15.AND.itypel.NE.17) GOTO 1 nbelt=num(/2) mchaml=ichaml(i) DO 2 j=1,nomche(/2) IF (nomche(j).NE.'T ') GOTO 2 IF (typche(j).NE.'REAL*8') GOTO 2 melval=ielval(j) SEGACT,melval*MOD IF (velche(/1)*velche(/2).NE.1) THEN IF (itypel.EQ.3.and.velche(/1).eq.3) THEN DO iel=1,nbelt velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel)) ENDDO ELSE IF (itypel.EQ.6.and.velche(/1).eq.6) THEN DO iel=1,nbelt velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel)) velche(4,iel)=0.5*(velche(3,iel)+velche(5,iel)) velche(6,iel)=0.5*(velche(5,iel)+velche(1,iel)) ENDDO ELSE IF (itypel.EQ.10.and.velche(/1).eq.8) THEN DO iel=1,nbelt velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel)) velche(4,iel)=0.5*(velche(3,iel)+velche(5,iel)) velche(6,iel)=0.5*(velche(5,iel)+velche(7,iel)) velche(8,iel)=0.5*(velche(7,iel)+velche(1,iel)) ENDDO ELSE IF (itypel.EQ.15.and.velche(/1).eq.20) THEN DO iel=1,nbelt velche( 2,iel)=0.5*(velche( 1,iel)+velche( 3,iel)) velche( 4,iel)=0.5*(velche( 3,iel)+velche( 5,iel)) velche( 6,iel)=0.5*(velche( 5,iel)+velche( 7,iel)) velche( 8,iel)=0.5*(velche( 7,iel)+velche( 1,iel)) velche( 9,iel)=0.5*(velche( 1,iel)+velche(13,iel)) velche(10,iel)=0.5*(velche( 3,iel)+velche(15,iel)) velche(11,iel)=0.5*(velche( 5,iel)+velche(17,iel)) velche(12,iel)=0.5*(velche( 7,iel)+velche(19,iel)) velche(14,iel)=0.5*(velche(13,iel)+velche(15,iel)) velche(16,iel)=0.5*(velche(15,iel)+velche(17,iel)) velche(18,iel)=0.5*(velche(17,iel)+velche(19,iel)) velche(20,iel)=0.5*(velche(19,iel)+velche(13,iel)) ENDDO ELSE IF (itypel.EQ.17.and.velche(/1).eq.15) THEN DO iel=1,nbelt velche( 2,iel)=0.5*(velche( 1,iel)+velche( 3,iel)) velche( 4,iel)=0.5*(velche( 3,iel)+velche( 5,iel)) velche( 6,iel)=0.5*(velche( 5,iel)+velche( 1,iel)) velche( 7,iel)=0.5*(velche( 1,iel)+velche(10,iel)) velche( 8,iel)=0.5*(velche( 3,iel)+velche(12,iel)) velche( 9,iel)=0.5*(velche( 5,iel)+velche(14,iel)) velche(11,iel)=0.5*(velche(10,iel)+velche(12,iel)) velche(13,iel)=0.5*(velche(12,iel)+velche(14,iel)) velche(15,iel)=0.5*(velche(14,iel)+velche(10,iel)) ENDDO ENDIF ENDIF 2 CONTINUE 1 CONTINUE END
© Cast3M 2003 - Tous droits réservés.
Mentions légales