All pastes #349188 Raw Edit

Something

public text v1 · immutable
·published 2007-02-10 16:59 UTC
rendered paste body
C Salle de sport de géométrie particulière.
C Projet Analyse numérique M1 EPO

      program salle_de_sport
      
      implicit none
      integer x,y,l,yinf,ysup,Long,Larg,TempM,TempR
      real dx,dy,T,f,new,old,epsilone
      parameter(Long=20,Larg=15,TempM=5,TempR=45,epsilone=1e-6)
      dimension T(0:Long,0:Larg)
C      external f
      
C      open (unit=10,file='poisson.dat')

C      dx=1./100
C      dy=1./100
C	write(*,*)dx      

C Initialisation du maillage à 0      
      do x=0,Long
       do y=0,Larg
        T(x,y)=0
       enddo
      enddo
C Initialisation des murs à TempM (température des murs : 5°C par défaut)
      do x=0,15
	T(x,0)=TempM
      enddo
      do x=7,20
	T(x,15)=TempM
      enddo
      do y=0,11
	T(0,y)=TempM
      enddo
      do y=5,15
	T(20,y)=TempM
      enddo
      do x=15,20
	T(x,5)=TempM
      enddo
      do y=11,15
	T(7,y)=TempM
      enddo
C Pose des radiateurs à TempR (température des radiateurs : 45°C par défaut)
      do x=4,11
	T(x,0)=TempR
      enddo
      do y=1,5
	T(15,y)=TempR
      enddo
      do y=5,9
	T(20,y)=TempR
      enddo
      do x=10,17
	T(x,15)=TempR
      enddo
      do x=0,7
	T(x,11)=TempR
      enddo
      do y=0,4
	T(0,y)=TempR
      enddo

C      do x=0,20
C	do y=0,15
C	 write (*,*)x,y,T(x,y)
C	enddo
C      enddo
      l=1
      do while (l.lt.5000)
       do x=1,19
	if ((x.ge.1).and.(x.le.7)) then
	yinf=1
	ysup=10
	endif
	if ((x.gt.7).and.(x.le.16)) then
	yinf=1
	ysup=14
	endif
	if ((x.gt.15).and.(x.le.20)) then
	yinf=6
	ysup=14
	endif
        do y=yinf,ysup
         T(x,y)=0.25*(T(x-1,y)+T(x+1,y)+T(x,y-1)+T(x,y+1))
        enddo
       enddo
       l=l+1
      enddo 

      do x=0,Long
       do y=0,Larg
       write(*,*)x,y,T(x,y)
       enddo
      enddo
      end