subroutine bounds(q,u,v,d,h1,h2,hh1,hh2,x1,x2 & ,y1,y2,out,in,n1,n2,nn1,nn2,m,n,mm,nn) c..... Interpolates values of q,u,v in the vicinity of "in" coordinates c..... onto hh1,hh2 grid. Writes values into x1,x2,y1,y2, vectors with c..... "out" coordinates. CC no narr or nests real*8 d(mm,nn),q(mm,nn),u(mm,nn),v(mm,nn) real*8 uki,vki,qki,uki1,vki1,qki1,xx1,xx2,yy1,yy2,xx & ,h1(n1),h2(n2),hh1(nn1),hh2(nn2),f real*8 x1(n,3),x2(n,3) & ,y1(m,3),y2(m,3) integer in(4),out(4) CC the order of the points, that is which is x1,y1 and which is x2,y2 CC is arbitrary, so choose so that the case where points overlap CC no interp is done f(xx2,xx1,yy2,yy1,xx)=(yy2-yy1)/(xx2-xx1)*(xx-xx1)+yy1 C original f(xx1,xx2,yy1,yy2,xx)=(yy2-yy1)/(xx2-xx1)*(xx-xx1)+yy1 !linear intrp c..... Getting data INTO the nested grid do 111 i=1,nn2 ! BC for X1 and X2 boundaries do k=in(3), in(4)+1 if(h2(k).GE.hh2(i).AND.h2(k-1).LT.hh2(i)) then c.......... X1 boundary uki=f(h1(in(1)-1),h1(in(1)),u(in(1)-1,k) & ,u(in(1),k),hh1(out(1))) vki=f(h1(in(1)-1),h1(in(1)),v(in(1)-1,k) & ,v(in(1),k),hh1(out(1))) qki=f(h1(in(1)-1),h1(in(1)) & ,q(in(1)-1,k)-d(in(1)-1,k) & ,q(in(1),k)-d(in(1),k),hh1(out(1))) uki1=f(h1(in(1)-1),h1(in(1)) & ,u(in(1)-1,k-1),u(in(1),k-1) & ,hh1(out(1))) vki1=f(h1(in(1)-1),h1(in(1)) & ,v(in(1)-1,k-1),v(in(1),k-1) & ,hh1(out(1))) qki1=f(h1(in(1)-1),h1(in(1)) & ,q(in(1)-1,k-1)-d(in(1)-1,k-1) & ,q(in(1),k-1)-d(in(1),k-1) & ,hh1(out(1))) x1(i,1)=f(h2(k-1),h2(k),uki1,uki,hh2(i)) x1(i,2)=f(h2(k-1),h2(k),vki1,vki,hh2(i)) x1(i,3)=f(h2(k-1),h2(k),qki1,qki,hh2(i)) c........... X2 boundary uki=f(h1(in(2)),h1(in(2)+1),u(in(2),k) & ,u(in(2)+1,k),hh1(out(2))) vki=f(h1(in(2)),h1(in(2)+1),v(in(2),k) & ,v(in(2)+1,k),hh1(out(2))) qki=f(h1(in(2)),h1(in(2)+1) & ,q(in(2),k)-d(in(2),k) & ,q(in(2)+1,k)-d(in(2)+1,k),hh1(out(2))) uki1=f(h1(in(2)),h1(in(2)+1) & ,u(in(2),k-1),u(in(2)+1,k-1),hh1(out(2))) vki1=f(h1(in(2)),h1(in(2)+1) & ,v(in(2),k-1),v(in(2)+1,k-1),hh1(out(2))) qki1=f(h1(in(2)),h1(in(2)+1) & ,q(in(2),k-1)-d(in(2),k-1) & ,q(in(2)+1,k-1)-d(in(2)+1,k-1) & ,hh1(out(2))) x2(i,1)=f(h2(k-1),h2(k),uki1,uki,hh2(i)) x2(i,2)=f(h2(k-1),h2(k),vki1,vki,hh2(i)) x2(i,3)=f(h2(k-1),h2(k),qki1,qki,hh2(i)) go to 111 end if end do 111 continue do 222 i=1,nn1 ! BC for Y1 and Y2 boundaries do k=in(1), in(2)+1 if(h1(k).GE.hh1(i).AND.h1(k-1).LT.hh1(i)) then c........... Y1 boundary uki=f(h2(in(3)-1),h2(in(3)),u(k,in(3)-1) & ,u(k,in(3)),hh2(out(3))) vki=f(h2(in(3)-1),h2(in(3)),v(k,in(3)-1) & ,v(k,in(3)),hh2(out(3))) qki=f(h2(in(3)-1),h2(in(3)) & ,q(k,in(3)-1)-d(k,in(3)-1) & ,q(k,in(3))-d(k,in(3)),hh2(out(3))) uki1=f(h2(in(3)-1),h2(in(3)) & ,u(k-1,in(3)-1),u(k-1,in(3)),hh2(out(3))) vki1=f(h2(in(3)-1),h2(in(3)) & ,v(k-1,in(3)-1),v(k-1,in(3)),hh2(out(3))) qki1=f(h2(in(3)-1),h2(in(3)) & ,q(k-1,in(3)-1)-d(k-1,in(3)-1) & ,q(k-1,in(3))-d(k-1,in(3)),hh2(out(3))) y1(i,1)=f(h1(k-1),h1(k),uki1,uki,hh1(i)) y1(i,2)=f(h1(k-1),h1(k),vki1,vki,hh1(i)) y1(i,3)=f(h1(k-1),h1(k),qki1,qki,hh1(i)) c........... Y2 boundary uki=f(h2(in(4)),h2(in(4)+1),u(k,in(4)) & ,u(k,in(4)+1),hh2(out(4))) vki=f(h2(in(4)),h2(in(4)+1),v(k,in(4)) & ,v(k,in(4)+1),hh2(out(4))) qki=f(h2(in(4)),h2(in(4)+1) & ,q(k,in(4))-d(k,in(4)) & ,q(k,in(4)+1)-d(k,in(4)+1),hh2(out(4))) uki1=f(h2(in(4)),h2(in(4)+1) & ,u(k-1,in(4)),u(k-1,in(4)+1),hh2(out(4))) vki1=f(h2(in(4)),h2(in(4)+1) & ,v(k-1,in(4)),v(k-1,in(4)+1),hh2(out(4))) qki1=f(h2(in(4)),h2(in(4)+1) & ,q(k-1,in(4))-d(k-1,in(4)) & ,q(k-1,in(4)+1)-d(k-1,in(4)+1) & ,hh2(out(4))) y2(i,1)=f(h1(k-1),h1(k),uki1,uki,hh1(i)) y2(i,2)=f(h1(k-1),h1(k),vki1,vki,hh1(i)) y2(i,3)=f(h1(k-1),h1(k),qki1,qki,hh1(i)) go to 222 end if end do 222 continue return end