Thermal LBM problem!

Hi
I’m simulating a thermal channel flow using d2q9. To check the accuracy of my code I put an adiabatic condition on both channel walls, a no gradient condition in outlet, and an inlet temperature (Tin). But surprisingly after converging I found out that the average temperature inside the channel is 0.9 instead of 1!!
Does anybody know what is the problem? Do you have such an experience?
Here is my boundary condition:
Inlet===========================================
do j=0,m
g(1,0,j)=tin*(w(1)+w(3))-g(3,0,j)
g(5,0,j)=tin*(w(5)+w(7))-g(7,0,j)
g(8,0,j)=tin*(w(6)+w(8))-g(6,0,j)
end do
outlet=============================================
do j=0,m
g(6,n,j)=g(6,n-1,j)
g(3,n,j)=g(3,n-1,j)
g(7,n,j)=g(7,n-1,j)
g(2,n,j)=g(2,n-1,j)
g(0,n,j)=g(0,n-1,j)
g(1,n,j)=g(1,n-1,j)
g(4,n,j)=g(4,n-1,j)
g(5,n,j)=g(5,n-1,j)
g(8,n,j)=g(8,n-1,j)
end do
upper wall========================================
do i=0,n
g(0,i,m)=g(0,i,m-1)
g(1,i,m)=g(1,i,m-1)
g(2,i,m)=g(2,i,m-1)
g(3,i,m)=g(3,i,m-1)
g(4,i,m)=g(4,i,m-1)
g(5,i,m)=g(5,i,m-1)
g(6,i,m)=g(6,i,m-1)
g(7,i,m)=g(7,i,m-1)
g(8,i,m)=g(8,i,m-1)
end do
bottom wall========================================
do i=0,n
g(0,i,0)=g(0,i,1)
g(1,i,0)=g(1,i,1)
g(2,i,0)=g(2,i,1)
g(3,i,0)=g(3,i,1)
g(4,i,0)=g(4,i,1)
g(5,i,0)=g(5,i,1)
g(6,i,0)=g(6,i,1)
g(7,i,0)=g(7,i,1)
g(8,i,0)=g(8,i,1)
end do
Is this the thermal LBM limitation? I’ve checked my code over and over
thanks