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