@ -5,20 +5,21 @@ import numpy as np
@@ -5,20 +5,21 @@ import numpy as np
from . constants import Constants , default_fill
from wrf . _wrffortran import ( dcomputetk , dinterp3dz , dinterp2dxy , dinterp1d ,
dcomputeseaprs , dfilter2d , dcomputerh , dcomputeuvmet ,
dcomputetd , dcapecalc2d , dcapecalc3d , dcloudfrac2 ,
wrfcttcalc , calcdbz , dcalrelhl , dcalcuh , dcomputepv ,
dcomputeabsvort , dlltoij , dijtoll , deqthecalc ,
omgcalc , virtual_temp , wetbulbcalc , dcomputepw ,
dcomputeseaprs , dfilter2d , dcomputerh ,
dcomputeuvmet , dcomputetd , dcapecalc2d ,
dcapecalc3d , dcloudfrac2 , wrfcttcalc , calcdbz ,
dcalrelhl , dcalcuh , dcomputepv , dcomputeabsvort ,
dlltoij , dijtoll , deqthecalc , omgcalc ,
virtual_temp , wetbulbcalc , dcomputepw ,
wrf_monotonic , wrf_vintrp , dcomputewspd ,
dcomputewdir , dinterp3dz_2dlev ,
fomp_set_num_threads , fomp_get_num_threads ,
fomp_get_max_threads , fomp_get_thread_num ,
fomp_get_num_procs , fomp_in_parallel ,
fomp_set_dynamic , fomp_get_dynamic , fomp_set_nested ,
fomp_get_nested , fomp_set_schedule ,
fomp_get_schedule , fomp_get_thread_limit ,
fomp_set_max_active_levels ,
fomp_set_dynamic , fomp_get_dynamic ,
fomp_set_nested , fomp_get_nested ,
fomp_set_schedule , fomp_get_schedule ,
fomp_get_thread_limit , fomp_set_max_active_levels ,
fomp_get_max_active_levels , fomp_get_level ,
fomp_get_ancestor_thread_num , fomp_get_team_size ,
fomp_get_active_level , fomp_in_final ,
@ -37,6 +38,7 @@ from .specialdec import (uvmet_left_iter, cape_left_iter,
@@ -37,6 +38,7 @@ from .specialdec import (uvmet_left_iter, cape_left_iter,
cloudfrac_left_iter , check_cape_args ,
interplevel_left_iter , check_interplevel_args )
class DiagnosticError ( Exception ) :
""" Raised when an error occurs in a diagnostic routine. """
def __init__ ( self , message = None ) :
@ -66,6 +68,7 @@ class DiagnosticError(Exception):
@@ -66,6 +68,7 @@ class DiagnosticError(Exception):
"""
raise self . __class__ ( message )
# The routines below are thin wrappers around the Fortran functions. These
# are not meant to be called by end users. Use the public API instead for
# that purpose.
@ -73,10 +76,9 @@ class DiagnosticError(Exception):
@@ -73,10 +76,9 @@ class DiagnosticError(Exception):
# IMPORTANT! Unless otherwise noted, all variables used in the routines
# below assume that Fortran-ordered views are being used. This allows
# f2py to pass the array pointers directly to the Fortran routine.
@check_interplevel_args ( is2dlev = False )
@interplevel_left_iter ( is2dlev = False )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@extract_and_transpose ( )
def _interpz3d ( field3d , z , desiredloc , missingval , outview = None ) :
""" Wrapper for dinterp3dz.
@ -98,7 +100,7 @@ def _interpz3d(field3d, z, desiredloc, missingval, outview=None):
@@ -98,7 +100,7 @@ def _interpz3d(field3d, z, desiredloc, missingval, outview=None):
@check_interplevel_args ( is2dlev = True )
@interplevel_left_iter ( is2dlev = True )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@extract_and_transpose ( )
def _interpz3d_lev2d ( field3d , z , lev2d , missingval , outview = None ) :
""" Wrapper for dinterp3dz.
@ -117,10 +119,10 @@ def _interpz3d_lev2d(field3d, z, lev2d, missingval, outview=None):
@@ -117,10 +119,10 @@ def _interpz3d_lev2d(field3d, z, lev2d, missingval, outview=None):
return result
@check_args ( 0 , 3 , ( 3 , ) )
@left_iteration ( 3 , combine_dims ( [ ( 0 , - 3 ) , ( 1 , - 2 ) ] ) , ref_var_idx = 0 ,
ignore_args = ( 1 , ) )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@check_args ( 0 , 3 , ( 3 , ) )
@left_iteration ( 3 , combine_dims ( [ ( 0 , - 3 ) , ( 1 , - 2 ) ] ) , ref_var_idx = 0 ,
ignore_args = ( 1 , ) )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@extract_and_transpose ( )
def _interp2dxy ( field3d , xy , outview = None ) :
""" Wrapper for dinterp2dxy.
@ -138,9 +140,9 @@ def _interp2dxy(field3d, xy, outview=None):
@@ -138,9 +140,9 @@ def _interp2dxy(field3d, xy, outview=None):
return result
@check_args ( 0 , 1 , ( 1 , 1 , None , None ) )
@left_iteration ( 1 , combine_dims ( [ ( 2 , 0 ) ] ) , ref_var_idx = 0 , ignore_args = ( 2 , 3 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@check_args ( 0 , 1 , ( 1 , 1 , None , None ) )
@left_iteration ( 1 , combine_dims ( [ ( 2 , 0 ) ] ) , ref_var_idx = 0 , ignore_args = ( 2 , 3 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@extract_and_transpose ( )
def _interp1d ( v_in , z_in , z_out , missingval , outview = None ) :
""" Wrapper for dinterp1d.
@ -160,9 +162,9 @@ def _interp1d(v_in, z_in, z_out, missingval, outview=None):
@@ -160,9 +162,9 @@ def _interp1d(v_in, z_in, z_out, missingval, outview=None):
return result
@left_iteration ( 3 , combine_dims ( [ ( 3 , 0 ) , ( 1 , 0 ) ] ) ,
ref_var_idx = 0 , ignore_args = ( 1 , 3 , 4 ) )
@cast_type ( arg_idxs = ( 0 , ) )
@left_iteration ( 3 , combine_dims ( [ ( 3 , 0 ) , ( 1 , 0 ) ] ) ,
ref_var_idx = 0 , ignore_args = ( 1 , 3 , 4 ) )
@cast_type ( arg_idxs = ( 0 , ) )
@extract_and_transpose ( do_transpose = False )
def _vertcross ( field3d , xy , var2dz , z_var2d , missingval , outview = None ) :
""" Return the vertical cross section.
@ -180,14 +182,14 @@ def _vertcross(field3d, xy, var2dz, z_var2d, missingval, outview=None):
@@ -180,14 +182,14 @@ def _vertcross(field3d, xy, var2dz, z_var2d, missingval, outview=None):
var2dtmp = _interp2dxy ( field3d , xy )
for i in py3range ( xy . shape [ 0 ] ) :
outview [ : , i ] = _interp1d ( var2dtmp [ : , i ] , var2dz [ : , i ] , z_var2d ,
outview [ : , i ] = _interp1d ( var2dtmp [ : , i ] , var2dz [ : , i ] , z_var2d ,
missingval )
return outview
@left_iteration ( 2 , combine_dims ( [ ( 1 , 0 ) ] ) , ref_var_idx = 0 , ignore_args = ( 1 , ) )
@cast_type ( arg_idxs = ( 0 , ) )
@left_iteration ( 2 , combine_dims ( [ ( 1 , 0 ) ] ) , ref_var_idx = 0 , ignore_args = ( 1 , ) )
@cast_type ( arg_idxs = ( 0 , ) )
@extract_and_transpose ( do_transpose = False )
def _interpline ( field2d , xy , outview = None ) :
""" Return the two-dimensional field interpolated to a line.
@ -204,7 +206,7 @@ def _interpline(field2d, xy, outview=None):
@@ -204,7 +206,7 @@ def _interpline(field2d, xy, outview=None):
tmp_shape = ( 1 , ) + field2d . shape
var2dtmp = np . empty ( tmp_shape , field2d . dtype )
var2dtmp [ 0 , : , : ] = field2d [ : , : ]
var2dtmp [ 0 , : , : ] = field2d [ : , : ]
var1dtmp = _interp2dxy ( var2dtmp , xy )
@ -213,9 +215,9 @@ def _interpline(field2d, xy, outview=None):
@@ -213,9 +215,9 @@ def _interpline(field2d, xy, outview=None):
return outview
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 ) )
@left_iteration ( 3 , 2 , ref_var_idx = 0 )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 ) )
@extract_and_transpose ( )
def _slp ( z , t , p , q , outview = None ) :
""" Wrapper for dcomputeseaprs.
@ -250,9 +252,9 @@ def _slp(z, t, p, q, outview=None):
@@ -250,9 +252,9 @@ def _slp(z, t, p, q, outview=None):
return result
@check_args ( 0 , 3 , ( 3 , 3 ) )
@check_args ( 0 , 3 , ( 3 , 3 ) )
@left_iteration ( 3 , 3 , ref_var_idx = 0 )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@extract_and_transpose ( )
def _tk ( pressure , theta , outview = None ) :
""" Wrapper for dcomputetk.
@ -272,9 +274,9 @@ def _tk(pressure, theta, outview=None):
@@ -272,9 +274,9 @@ def _tk(pressure, theta, outview=None):
return result
@check_args ( 0 , 2 , ( 2 , 2 ) )
@check_args ( 0 , 2 , ( 2 , 2 ) )
@left_iteration ( 2 , 2 , ref_var_idx = 0 )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@extract_and_transpose ( )
def _td ( pressure , qv_in , outview = None ) :
""" Wrapper for dcomputetd.
@ -294,9 +296,9 @@ def _td(pressure, qv_in, outview=None):
@@ -294,9 +296,9 @@ def _td(pressure, qv_in, outview=None):
return result
@check_args ( 0 , 2 , ( 2 , 2 , 2 ) )
@check_args ( 0 , 2 , ( 2 , 2 , 2 ) )
@left_iteration ( 2 , 2 , ref_var_idx = 0 )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@extract_and_transpose ( )
def _rh ( qv , q , t , outview = None ) :
""" Wrapper for dcomputerh.
@ -318,12 +320,12 @@ def _rh(qv, q, t, outview=None):
@@ -318,12 +320,12 @@ def _rh(qv, q, t, outview=None):
# Note: combining the -3 and -2 dimensions from u, then the -1 dimension
# from v
@check_args ( 0 , 3 , ( 3 , 3 , 2 , 2 , 2 , 2 ) , stagger = ( - 1 , - 2 , - 1 , - 2 , None , None ) ,
@check_args ( 0 , 3 , ( 3 , 3 , 2 , 2 , 2 , 2 ) , stagger = ( - 1 , - 2 , - 1 , - 2 , None , None ) ,
refstagdim = - 1 )
@left_iteration ( 3 , combine_dims ( [ ( 0 , ( - 3 , - 2 ) ) ,
( 1 , ( - 1 , ) ) ] ) ,
ref_var_idx = 0 , ignore_args = ( 6 , 7 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 ) )
@left_iteration ( 3 , combine_dims ( [ ( 0 , ( - 3 , - 2 ) ) ,
( 1 , ( - 1 , ) ) ] ) ,
ref_var_idx = 0 , ignore_args = ( 6 , 7 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 ) )
@extract_and_transpose ( )
def _avo ( u , v , msfu , msfv , msfm , cor , dx , dy , outview = None ) :
""" Wrapper for dcomputeabsvort.
@ -332,7 +334,7 @@ def _avo(u, v, msfu, msfv, msfm, cor, dx, dy, outview=None):
@@ -332,7 +334,7 @@ def _avo(u, v, msfu, msfv, msfm, cor, dx, dy, outview=None):
"""
if outview is None :
outshape = ( v . shape [ 0 ] , ) + u . shape [ 1 : ]
outshape = ( v . shape [ 0 ] , ) + u . shape [ 1 : ]
outview = np . empty ( outshape , np . float64 , order = " F " )
result = dcomputeabsvort ( outview ,
@ -348,11 +350,10 @@ def _avo(u, v, msfu, msfv, msfm, cor, dx, dy, outview=None):
@@ -348,11 +350,10 @@ def _avo(u, v, msfu, msfv, msfm, cor, dx, dy, outview=None):
return result
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 , 2 , 2 , 2 , 2 ) , stagger = ( - 1 , - 2 , None , None , - 1 , - 2 , None ,
None ) ,
refstagdim = - 1 )
@left_iteration ( 3 , 3 , ref_var_idx = 2 , ignore_args = ( 8 , 9 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 , 2 , 2 , 2 , 2 ) ,
stagger = ( - 1 , - 2 , None , None , - 1 , - 2 , None , None ) , refstagdim = - 1 )
@left_iteration ( 3 , 3 , ref_var_idx = 2 , ignore_args = ( 8 , 9 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ) )
@extract_and_transpose ( )
def _pvo ( u , v , theta , prs , msfu , msfv , msfm , cor , dx , dy , outview = None ) :
""" Wrapper for dcomputepv.
@ -378,9 +379,9 @@ def _pvo(u, v, theta, prs, msfu, msfv, msfm, cor, dx, dy, outview=None):
@@ -378,9 +379,9 @@ def _pvo(u, v, theta, prs, msfu, msfv, msfm, cor, dx, dy, outview=None):
return result
@check_args ( 0 , 3 , ( 3 , 3 , 3 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 3 ) )
@left_iteration ( 3 , 3 , ref_var_idx = 0 )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@extract_and_transpose ( )
def _eth ( qv , tk , p , outview = None ) :
""" Wrapper for deqthecalc.
@ -400,11 +401,13 @@ def _eth(qv, tk, p, outview=None):
@@ -400,11 +401,13 @@ def _eth(qv, tk, p, outview=None):
@uvmet_left_iter ( )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 ) )
@extract_and_transpose ( )
def _uvmet ( u , v , lat , lon , cen_long , cone , isstag = 0 , has_missing = False ,
umissing = default_fill ( np . float64 ) , vmissing = default_fill ( np . float64 ) ,
uvmetmissing = default_fill ( np . float64 ) , outview = None ) :
umissing = default_fill ( np . float64 ) ,
vmissing = default_fill ( np . float64 ) ,
uvmetmissing = default_fill ( np . float64 ) ,
outview = None ) :
""" Wrapper for dcomputeuvmet.
Located in wrf_user . f90 .
@ -437,9 +440,9 @@ def _uvmet(u, v, lat, lon, cen_long, cone, isstag=0, has_missing=False,
@@ -437,9 +440,9 @@ def _uvmet(u, v, lat, lon, cen_long, cone, isstag=0, has_missing=False,
return result
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 ) )
@left_iteration ( 3 , 3 , ref_var_idx = 0 )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 ) )
@extract_and_transpose ( )
def _omega ( qv , tk , w , p , outview = None ) :
""" Wrapper for omgcalc.
@ -459,9 +462,9 @@ def _omega(qv, tk, w, p, outview=None):
@@ -459,9 +462,9 @@ def _omega(qv, tk, w, p, outview=None):
return result
@check_args ( 0 , 3 , ( 3 , 3 ) )
@check_args ( 0 , 3 , ( 3 , 3 ) )
@left_iteration ( 3 , 3 , ref_var_idx = 0 )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@extract_and_transpose ( )
def _tv ( tk , qv , outview = None ) :
""" Wrapper for virtual_temp.
@ -479,9 +482,9 @@ def _tv(tk, qv, outview=None):
@@ -479,9 +482,9 @@ def _tv(tk, qv, outview=None):
return result
@check_args ( 0 , 3 , ( 3 , 3 , 3 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 3 ) )
@left_iteration ( 3 , 3 , ref_var_idx = 0 , ignore_args = ( 3 , ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@extract_and_transpose ( )
def _wetbulb ( p , tk , qv , psafile = psafilepath ( ) , outview = None ) :
""" Wrapper for wetbulbcalc.
@ -509,9 +512,9 @@ def _wetbulb(p, tk, qv, psafile=psafilepath(), outview=None):
@@ -509,9 +512,9 @@ def _wetbulb(p, tk, qv, psafile=psafilepath(), outview=None):
return result
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 2 , 2 ) )
@left_iteration ( 3 , 2 , ref_var_idx = 0 , ignore_args = ( 5 , ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 2 , 2 ) )
@left_iteration ( 3 , 2 , ref_var_idx = 0 , ignore_args = ( 5 , ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 ) )
@extract_and_transpose ( )
def _srhel ( u , v , z , ter , lats , top , outview = None ) :
""" Wrapper for dcalrelhl.
@ -533,9 +536,9 @@ def _srhel(u, v, z, ter, lats, top, outview=None):
@@ -533,9 +536,9 @@ def _srhel(u, v, z, ter, lats, top, outview=None):
return result
@check_args ( 2 , 3 , ( 3 , 2 , 3 , 3 , 3 ) , stagger = ( - 3 , None , None , None , - 3 ) )
@left_iteration ( 3 , 2 , ref_var_idx = 2 , ignore_args = ( 5 , 6 , 7 , 8 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 ) )
@check_args ( 2 , 3 , ( 3 , 2 , 3 , 3 , 3 ) , stagger = ( - 3 , None , None , None , - 3 ) )
@left_iteration ( 3 , 2 , ref_var_idx = 2 , ignore_args = ( 5 , 6 , 7 , 8 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 ) )
@extract_and_transpose ( )
def _udhel ( zstag , mapfct , u , v , wstag , dx , dy , bottom , top , outview = None ) :
""" Wrapper for dcalcuh.
@ -567,9 +570,9 @@ def _udhel(zstag, mapfct, u, v, wstag, dx, dy, bottom, top, outview=None):
@@ -567,9 +570,9 @@ def _udhel(zstag, mapfct, u, v, wstag, dx, dy, bottom, top, outview=None):
return result
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 ) , stagger = ( None , None , None , - 3 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 ) , stagger = ( None , None , None , - 3 ) )
@left_iteration ( 3 , 2 , ref_var_idx = 0 )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 ) )
@extract_and_transpose ( )
def _pw ( p , tv , qv , ht , outview = None ) :
""" Wrapper for dcomputepw.
@ -589,9 +592,9 @@ def _pw(p, tv, qv, ht, outview=None):
@@ -589,9 +592,9 @@ def _pw(p, tv, qv, ht, outview=None):
return result
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 , 3 , 3 ) )
@left_iteration ( 3 , 3 , ref_var_idx = 0 , ignore_args = ( 6 , 7 , 8 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 , 3 , 3 ) )
@left_iteration ( 3 , 3 , ref_var_idx = 0 , ignore_args = ( 6 , 7 , 8 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 ) )
@extract_and_transpose ( )
def _dbz ( p , tk , qv , qr , qs , qg , sn0 , ivarint , iliqskin , outview = None ) :
""" Wrapper for calcdbz.
@ -618,7 +621,7 @@ def _dbz(p, tk, qv, qr, qs, qg, sn0, ivarint, iliqskin, outview=None):
@@ -618,7 +621,7 @@ def _dbz(p, tk, qv, qr, qs, qg, sn0, ivarint, iliqskin, outview=None):
@check_cape_args ( )
@cape_left_iter ( )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 ) , outviews = ( " capeview " , " cinview " ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 ) , outviews = ( " capeview " , " cinview " ) )
@extract_and_transpose ( outviews = ( " capeview " , " cinview " ) )
def _cape ( p_hpa , tk , qv , ht , ter , sfp , missing , i3dflag , ter_follow ,
psafile = psafilepath ( ) , capeview = None , cinview = None ) :
@ -674,12 +677,14 @@ def _cape(p_hpa, tk, qv, ht, ter, sfp, missing, i3dflag, ter_follow,
@@ -674,12 +677,14 @@ def _cape(p_hpa, tk, qv, ht, ter, sfp, missing, i3dflag, ter_follow,
return result
@check_args ( 0 , 3 , ( 3 , 3 ) )
@check_args ( 0 , 3 , ( 3 , 3 ) )
@cloudfrac_left_iter ( )
@cast_type ( arg_idxs = ( 0 , 1 ) , outviews = ( " lowview " , " midview " , " highview " ) )
@extract_and_transpose ( outviews = ( " lowview " , " midview " , " highview " ) )
def _cloudfrac ( vert , rh , vert_inc_w_height , low_thresh , mid_thresh ,
high_thresh , missing , lowview = None , midview = None , highview = None ) :
high_thresh , missing , lowview = None , midview = None ,
highview = None ) :
""" Wrapper for dcloudfrac2.
Located in wrf_cloud_fracf . f90 .
@ -789,9 +794,9 @@ def _xytoll(map_proj, truelat1, truelat2, stdlon, lat1, lon1,
@@ -789,9 +794,9 @@ def _xytoll(map_proj, truelat1, truelat2, stdlon, lat1, lon1,
return result
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 , 3 , 3 , 2 ) )
@left_iteration ( 3 , 2 , ref_var_idx = 0 , ignore_args = ( 7 , 8 , 9 , 10 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 , 6 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 , 3 , 3 , 2 ) )
@left_iteration ( 3 , 2 , ref_var_idx = 0 , ignore_args = ( 7 , 8 , 9 , 10 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 , 6 ) )
@extract_and_transpose ( )
def _ctt ( p_hpa , tk , qice , qcld , qv , ght , ter , haveqci , fill_nocloud ,
missing , opt_thresh , outview = None ) :
@ -822,9 +827,9 @@ def _ctt(p_hpa, tk, qice, qcld, qv, ght, ter, haveqci, fill_nocloud,
@@ -822,9 +827,9 @@ def _ctt(p_hpa, tk, qice, qcld, qv, ght, ter, haveqci, fill_nocloud,
return result
@check_args ( 0 , 2 , ( 2 , ) )
@left_iteration ( 2 , 2 , ref_var_idx = 0 , ignore_args = ( 1 , 2 ) )
@cast_type ( arg_idxs = ( 0 , ) )
@check_args ( 0 , 2 , ( 2 , ) )
@left_iteration ( 2 , 2 , ref_var_idx = 0 , ignore_args = ( 1 , 2 ) )
@cast_type ( arg_idxs = ( 0 , ) )
@extract_and_transpose ( )
def _smooth2d ( field , passes , cenweight , outview = None ) :
""" Wrapper for dfilter2d.
@ -856,9 +861,9 @@ def _smooth2d(field, passes, cenweight, outview=None):
@@ -856,9 +861,9 @@ def _smooth2d(field, passes, cenweight, outview=None):
return outview
@check_args ( 0 , 3 , ( 3 , 3 , 2 ) )
@left_iteration ( 3 , 3 , ref_var_idx = 0 , ignore_args = ( 3 , 4 , 5 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 2 ) )
@left_iteration ( 3 , 3 , ref_var_idx = 0 , ignore_args = ( 3 , 4 , 5 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 ) )
@extract_and_transpose ( )
def _monotonic ( var , lvprs , coriolis , idir , delta , icorsw , outview = None ) :
""" Wrapper for wrf_monotonic.
@ -885,11 +890,11 @@ def _monotonic(var, lvprs, coriolis, idir, delta, icorsw, outview=None):
@@ -885,11 +890,11 @@ def _monotonic(var, lvprs, coriolis, idir, delta, icorsw, outview=None):
# Output shape is interp_levels.shape + field.shape[-2:]
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 , 3 , 2 , 2 , 2 , 3 ) )
@left_iteration ( 3 , combine_dims ( [ ( 9 , ( - 1 , ) ) ,
( 0 , ( - 2 , - 1 ) ) ] ) ,
ref_var_idx = 0 , ignore_args = ( 9 , 10 , 11 , 12 , 13 , 14 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ) )
@check_args ( 0 , 3 , ( 3 , 3 , 3 , 3 , 3 , 2 , 2 , 2 , 3 ) )
@left_iteration ( 3 , combine_dims ( [ ( 9 , ( - 1 , ) ) ,
( 0 , ( - 2 , - 1 ) ) ] ) ,
ref_var_idx = 0 , ignore_args = ( 9 , 10 , 11 , 12 , 13 , 14 ) )
@cast_type ( arg_idxs = ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ) )
@extract_and_transpose ( )
def _vintrp ( field , pres , tk , qvp , ght , terrain , sfp , smsfp ,
vcarray , interp_levels , icase , extrap , vcor , logp ,
@ -933,9 +938,10 @@ def _vintrp(field, pres, tk, qvp, ght, terrain, sfp, smsfp,
@@ -933,9 +938,10 @@ def _vintrp(field, pres, tk, qvp, ght, terrain, sfp, smsfp,
return result
@check_args ( 0 , 2 , ( 2 , 2 ) )
@check_args ( 0 , 2 , ( 2 , 2 ) )
@left_iteration ( 2 , 2 , ref_var_idx = 0 )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@extract_and_transpose ( )
def _wspd ( u , v , outview = None ) :
""" Wrapper for dcomputewspd.
@ -953,9 +959,9 @@ def _wspd(u, v, outview=None):
@@ -953,9 +959,9 @@ def _wspd(u, v, outview=None):
return result
@check_args ( 0 , 2 , ( 2 , 2 ) )
@check_args ( 0 , 2 , ( 2 , 2 ) )
@left_iteration ( 2 , 2 , ref_var_idx = 0 )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@cast_type ( arg_idxs = ( 0 , 1 ) )
@extract_and_transpose ( )
def _wdir ( u , v , outview = None ) :
""" Wrapper for dcomputewdir.
@ -1651,6 +1657,3 @@ def omp_get_wtick():
@@ -1651,6 +1657,3 @@ def omp_get_wtick():
"""
return fomp_get_wtick ( )