17 REAL UOB(nsites),VOB(nsites),XVAL(nsites),YVAL(nsites)
47 rhs(ix,jy,kz) =sigma(kz)*avthk-
48 $ (sfcht(ix,jy)-sfclow)*(1.0-slfac)
51 IF (rhs(ix,jy,kz) .LE. 0.0)
THEN
52 WRITE (*,*)
'BAD TERRAIN-FOLLOWING IN SFCTRP'
66 IF (ucomp(iob).GT.-9998.9)
THEN
68 uob(numtru)=ucomp(iob)
69 vob(numtru)=vcomp(iob)
81 CALL rinvmod(trpval,x2,y2,xval,yval,numtru,uob)
83 CALL rinvmod(trpval,x2,y2,xval,yval,numtru,vob)
89 CALL lgntrp(u(ix,iy,2),z0,z10,
90 $ rhs(ix,iy,2),zero,u(ix,iy,1))
91 CALL lgntrp(v(ix,iy,2),z0,z10,
92 $ rhs(ix,iy,2),zero,v(ix,iy,1))
108 IF (levbot(ix,iy).GT.2)
THEN
109 DO 145 l=2,levbot(ix,iy)-1
118 CALL lgntrp(u(ix,iy,levbot(ix,iy)),z0,z10,
119 $ rhs(ix,iy,levbot(ix,iy)),zero,uu)
120 CALL lgntrp(v(ix,iy,levbot(ix,iy)),z0,z10,
121 $ rhs(ix,iy,levbot(ix,iy)),zero,vv)
131 SUBROUTINE vrsmoo(VAL,VALTRP,NUMBER)
158 REAL VAL(nsites),VALTRP(nxgrd,nygrd)
174 IF (val(is).GT.-9998.9)
THEN
175 weight=
wndwt(x2,y2,xg(is),yg(is))
177 sum=sum+weight*val(is)
180 IF (sumwt .GT. 0.0 )
THEN
181 valtrp(ix,iy)=sum/sumwt
183 WRITE (*,*)
' NO GOOD PRESSURE OR TEMP OBS IN VRSMOO'
184 WRITE (*,*)
'RETURN TO QUIT'
196 SUBROUTINE vrsdis(VAL,VALTRP,NUMBER)
222 REAL VAL(nsites),VALTRP(nxgrd,nygrd)
223 REAL VARBL(nsites),XVAL(nsites),YVAL(nsites)
229 WRITE (*,*) number,(nint(100.0*val(iob)),iob=1,number)
231 IF (number.LE.0)
THEN
232 WRITE(*,*)
'BAD OBSERVED DATA'
243 CALL rinvmod(trpval,x2,y2,xval,yval,numtru,varbl)
246 WRITE (*,*) iy,(nint(100.0*valtrp(jx,iy)),jx=20,40)
254 REAL FUNCTION sloper(HERE,SFCMIN,HIRISE)
261 IF ((hirise-sfcmin) .EQ. 0.0 .OR. hirise .EQ. 0.0)
THEN
271 sloper = (here-sfcmin)/hirise
subroutine lgntrp(Y, X0, X1, X, Y0, Y1)
subroutine vrsdis(VAL, VALTRP, NUMBER)
subroutine rinvmod(TRPVAL, X0, Y0, XX, YY, NOBS, VARBL)
real function wndwt(X, Y, XOBS, YOBS)
subroutine vrsmoo(VAL, VALTRP, NUMBER)
real function sloper(HERE, SFCMIN, HIRISE)