1 : C LINEAT SOURCE PV 09/03/12 21:27:31 6325 2 : 3 : C======================================================================= 4 : C= L I N E A T = 5 : C= ----------- = 6 : C= = 7 : C= Fonction : = 8 : C= ---------- = 9 : C= Ce sousprogramme linearise un champ par element de temperatures = 10 : C= pour les noeuds milieux des elements (s'ils existent). = 11 : C= = 12 : C= Parametres : (E)=Entree (S)=Sortie = 13 : C= ------------ = 14 : C= IPCHEL (E/S) Pointeur MCHELM temperatures linearisees en sortie = 15 : C= = 16 : C= Remarque : Ce segment est DESACTIVE en sortie du sousprogramme. = 17 : C======================================================================= 18 : 19 : SUBROUTINE LINEAT (IPCHEL) 20 : 21 : IMPLICIT INTEGER(I-N) 22 : IMPLICIT REAL*8 (A-H,O-Z) 23 : 24 : -INC SMELEME 25 : -INC SMCHAML 26 : 27 : MCHELM=IPCHEL 28 : SEGACT,MCHELM 29 : DO i=1,imache(/1) 30 : meleme=imache(i) 31 : SEGACT,meleme 32 : IF (itypel.NE. 3.AND.itypel.NE. 6.AND.itypel.NE. 10.AND. 33 : . itypel.NE.15.AND.itypel.NE.17) GOTO 1 34 : nbelt=num(/2) 35 : mchaml=ichaml(i) 36 : SEGACT,mchaml 37 : DO j=1,nomche(/2) 38 : IF (nomche(j).NE.'T ') GOTO 2 39 : IF (typche(j).NE.'REAL*8') GOTO 2 40 : melval=ielval(j) 41 : SEGACT,melval*MOD 42 : IF (velche(/1)*velche(/2).NE.1) THEN 43 : IF (itypel.EQ.3.and.velche(/1).eq.3) THEN 44 : DO iel=1,nbelt 45 : velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel)) 46 : ENDDO 47 : ELSE IF (itypel.EQ.6.and.velche(/1).eq.6) THEN 48 : DO iel=1,nbelt 49 : velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel)) 50 : velche(4,iel)=0.5*(velche(3,iel)+velche(5,iel)) 51 : velche(6,iel)=0.5*(velche(5,iel)+velche(1,iel)) 52 : ENDDO 53 : ELSE IF (itypel.EQ.10.and.velche(/1).eq.8) THEN 54 : DO iel=1,nbelt 55 : velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel)) 56 : velche(4,iel)=0.5*(velche(3,iel)+velche(5,iel)) 57 : velche(6,iel)=0.5*(velche(5,iel)+velche(7,iel)) 58 : velche(8,iel)=0.5*(velche(7,iel)+velche(1,iel)) 59 : ENDDO 60 : ELSE IF (itypel.EQ.15.and.velche(/1).eq.20) THEN 61 : DO iel=1,nbelt 62 : velche( 2,iel)=0.5*(velche( 1,iel)+velche( 3,iel)) 63 : velche( 4,iel)=0.5*(velche( 3,iel)+velche( 5,iel)) 64 : velche( 6,iel)=0.5*(velche( 5,iel)+velche( 7,iel)) 65 : velche( 8,iel)=0.5*(velche( 7,iel)+velche( 1,iel)) 66 : velche( 9,iel)=0.5*(velche( 1,iel)+velche(13,iel)) 67 : velche(10,iel)=0.5*(velche( 3,iel)+velche(15,iel)) 68 : velche(11,iel)=0.5*(velche( 5,iel)+velche(17,iel)) 69 : velche(12,iel)=0.5*(velche( 7,iel)+velche(19,iel)) 70 : velche(14,iel)=0.5*(velche(13,iel)+velche(15,iel)) 71 : velche(16,iel)=0.5*(velche(15,iel)+velche(17,iel)) 72 : velche(18,iel)=0.5*(velche(17,iel)+velche(19,iel)) 73 : velche(20,iel)=0.5*(velche(19,iel)+velche(13,iel)) 74 : ENDDO 75 : ELSE IF (itypel.EQ.17.and.velche(/1).eq.15) THEN 76 : DO iel=1,nbelt 77 : velche( 2,iel)=0.5*(velche( 1,iel)+velche( 3,iel)) 78 : velche( 4,iel)=0.5*(velche( 3,iel)+velche( 5,iel)) 79 : velche( 6,iel)=0.5*(velche( 5,iel)+velche( 1,iel)) 80 : velche( 7,iel)=0.5*(velche( 1,iel)+velche(10,iel)) 81 : velche( 8,iel)=0.5*(velche( 3,iel)+velche(12,iel)) 82 : velche( 9,iel)=0.5*(velche( 5,iel)+velche(14,iel)) 83 : velche(11,iel)=0.5*(velche(10,iel)+velche(12,iel)) 84 : velche(13,iel)=0.5*(velche(12,iel)+velche(14,iel)) 85 : velche(15,iel)=0.5*(velche(14,iel)+velche(10,iel)) 86 : ENDDO 87 : ENDIF 88 : ENDIF 89 : SEGDES,melval 90 : 2 CONTINUE 91 : ENDDO 92 : SEGDES,mchaml 93 : 1 SEGDES,meleme 94 : ENDDO 95 : SEGDES,MCHELM 96 : 97 : RETURN 98 : END 99 : 100 : 101 : 102 : 103 : 104 :
© Cast3M 2003 - All rights reserved.
Disclaimer