diff --git a/fortran/wrf_vinterp.f90 b/fortran/wrf_vinterp.f90 index bbcf168..3357050 100644 --- a/fortran/wrf_vinterp.f90 +++ b/fortran/wrf_vinterp.f90 @@ -20,24 +20,24 @@ SUBROUTINE wrf_monotonic(out, in, lvprs, cor, idir, delta, ew, ns, nz, icorsw) !NCLEND - INTEGER :: i, j, k, k300 + INTEGER :: i, j, k, ripk, k300 - !$OMP PARALLEL DO COLLAPSE(2) + k300 = 1 ! removes the warning + + !$OMP PARALLEL DO COLLAPSE(2) PRIVATE(i, j, k, ripk) FIRSTPRIVATE(k300) DO j=1,ns DO i=1,ew - IF (icorsw .EQ. 1 .AND. cor(i,j) .LT. 0.) THEN DO k=1,nz in(i,j,k) = -in(i,j,k) END DO END IF - k300 = nz - ! First find k index that is at or below (height-wise) ! the 300 hPa level. - DO k = nz,1,-1 - IF (lvprs(i,j,k) .GE. 300.D0) THEN + DO k = 1,nz + ripk = nz-k+1 + IF (lvprs(i,j,k) .LE. 300.D0) THEN k300 = k EXIT END IF diff --git a/src/wrf/interp.py b/src/wrf/interp.py index 8741596..a2e67aa 100755 --- a/src/wrf/interp.py +++ b/src/wrf/interp.py @@ -584,6 +584,9 @@ def vinterp(wrfin, field, vert_coord, interp_levels, extrapolate=False, terht = get_terrain(wrfin, timeidx, units="m", method=method, squeeze=squeeze, cache=cache, meta=False, _key=_key) + t = get_theta(wrfin, timeidx, units="k", + method=method, squeeze=squeeze, cache=cache, + meta=False, _key=_key) tk = get_temp(wrfin, timeidx, units="k", method=method, squeeze=squeeze, cache=cache, meta=False, _key=_key) @@ -593,6 +596,9 @@ def vinterp(wrfin, field, vert_coord, interp_levels, extrapolate=False, ght = get_height(wrfin, timeidx, msl=True, units="m", method=method, squeeze=squeeze, cache=cache, meta=False, _key=_key) + ht_agl = get_height(wrfin, timeidx, msl=False, units="m", + method=method, squeeze=squeeze, cache=cache, + meta=False, _key=_key) smsfp = _smooth2d(sfp, 3) @@ -607,18 +613,10 @@ def vinterp(wrfin, field, vert_coord, interp_levels, extrapolate=False, vcord_array = np.exp(-ght/sclht) elif vert_coord == "ght_agl": - ht_agl = get_height(wrfin, timeidx, msl=False, units="m", - method=method, squeeze=squeeze, cache=cache, - meta=False, _key=_key) - vcor = 3 vcord_array = np.exp(-ht_agl/sclht) elif vert_coord in ("theta", "th"): - t = get_theta(wrfin, timeidx, units="k", - method=method, squeeze=squeeze, cache=cache, - meta=False, _key=_key) - vcor = 4 idir = 1 icorsw = 0