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