Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions tools/fv_nudge.F90
Original file line number Diff line number Diff line change
Expand Up @@ -782,15 +782,16 @@ subroutine ps_nudging(dt, factor, factor_nwp, npz, ak, bk, ps_obs, mask, tm, ps,
if ( kmax < km ) call mpp_error(FATAL,'==> KMAX must be larger than km')

do j=js,je
do i=is,ie
iloop: do i=is,ie
do k=1, km+1
pk0(k) = (ak0(k) + bk0(k)*ps_obs(i,j))**kappa
enddo
if( phis(i,j)>gz0(i,j) ) then
do k=km,1,-1
if( phis(i,j)<gz3(i,j,k) .and. phis(i,j) >= gz3(i,j,k+1) ) then
pst = pk0(k) + (pk0(k+1)-pk0(k))*(gz3(i,j,k)-phis(i,j))/(gz3(i,j,k)-gz3(i,j,k+1))
go to 666
ps_dt(i,j) = pst**(1./kappa) - ps(i,j)
cycle iloop
endif
enddo
else
Expand All @@ -801,7 +802,7 @@ subroutine ps_nudging(dt, factor, factor_nwp, npz, ak, bk, ps_obs, mask, tm, ps,
pst = pk0(km+1) + (gz0(i,j)-phis(i,j))/(cp_air*pt0)
endif
666 ps_dt(i,j) = pst**(1./kappa) - ps(i,j)
enddo ! i-loop
enddo iloop
enddo ! j-loop

if( nf_ps>0 ) call del2_scalar(ps_dt, del2_cd, 1, nf_ps, bd, npx, npy, gridstruct, domain)
Expand Down