parameter(li=83,lj=35)
real z(li,lj),u(li,lj),v(li,lj),hh(li,lj),u1(li,lj),v1(li,lj)
g=9.8;h=10.;am=2.;dt=30.;dx=250.;rb2=0.0025
k1=nint(3600/dt)
kt4=4*12*k1
km=5*12*k1
wt=2*3.1415927/12./3600.*dt
z=0.;u=0.;v=0.;hh=h
open(1,file='t00a.txt')
open(2,file='t00s.txt')
do k=1,km
do i=3,li-2,2
do j=3,lj-2,2
uv=dt*rb2*sqrt(u(i,j)*u(i,j)+v(i,j)*v(i,j))/(hh(i,j)*hh(i,j))
u(i,j)=u(i,j)-dt*g*hh(i,j)*(z(i+1,j-1)+z(i+1,j+1)-z(i-1,j-1)-z(i-1,j+1))/(4*dx)-uv*u(i,j)
v(i,j)=v(i,j)-dt*g*hh(i,j)*(z(i-1,j+1)+z(i+1,j+1)-z(i-1,j-1)-z(i+1,j-1))/(4*dx)-uv*v(i,j)
enddo
enddo
do i=2,li-3,2
do j=2,lj-1,2
z(i,j)=z(i,j)-dt*(u(i+1,j-1)+u(i+1,j+1)-u(i-1,j-1)-u(i-1,j+1)+v(i+1,j+1)+v(i-1,j+1)-v(i+1,j-1)-v(i-1,j-1))/(4*dx)
enddo
enddo
do j=2,lj-1,2
z(li-1,j)=am*sin(wt*k)
enddo
do i=3,li-2,2
do j=3,lj-2,2
hh(i,j)=h+(z(i-1,j-1)+z(i+1,j-1)+z(i+1,j+1)+z(i-1,j+1))/4
enddo
enddo
u1=u/hh
v1=v/hh
if(mod(k,k1).eq.0) print *,'k=',k
write(2,'(1x,i6,9f6.2)') k,z(82,18),z(42,18),z(2,18),u1(81,17),v1(81,17),u1(41,17),v1(41,17),u1(3,17),v1(3,17)
if(k.ge.kt4.and.mod(k,k1).eq.0) then
write(1,'(1x,2hK=,i5)') k
write(1,'(1x,2hZ:,17i6)')(j,j=2,lj-1,2)
do i=2,li-1,2
write(1,'(1x,i2,17f6.2)') i,(z(i,j),j=2,lj-1,2)
enddo
write(1,'(1x,2hU:,16i6)')(j,j=3,lj-2,2)
do i=3,li-2,2
write(1,'(1x,i2,16f6.2)') i,(u1(i,j),j=3,lj-2,2)
enddo
write(1,'(1x,2hV:,16i6)')(j,j=3,lj-2,2)
do i=3,li-2,2
write(1,'(1x,i2,16f6.2)') i,(v1(i,j),j=3,lj-2,2)
enddo
endif
enddo
close(1)
close(2)
end