Ejemplo n.º 1
0
def tv_wrap(temp_k, qvapor, omp_threads=1):
    from wrf.extension import _tv, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _tv(temp_k, qvapor)

    return result
Ejemplo n.º 2
0
def eth_wrap(qv, tk, full_p, omp_threads=1):
    from wrf.extension import _eth, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _eth(qv, tk, full_p)

    return result
Ejemplo n.º 3
0
def td_wrap(full_p, qvapor, omp_threads=1):
    from wrf.extension import _td, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _td(full_p, qvapor)

    return result
Ejemplo n.º 4
0
def slp_wrap(destag_ph, tk, full_p, qvapor, omp_threads=1):
    from wrf.extension import _slp, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _slp(destag_ph, tk, full_p, qvapor)

    return result
Ejemplo n.º 5
0
def tk_wrap(full_p, full_t, omp_threads=1):
    from wrf.extension import _tk, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _tk(full_p, full_t)

    return result
Ejemplo n.º 6
0
def rh_wrap(qvapor, full_p, tk, omp_threads=1):
    from wrf.extension import _rh, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _rh(qvapor, full_p, tk)

    return result
Ejemplo n.º 7
0
def avo_wrap(u, v, msfu, msfv, msfm, cor, dx, dy, omp_threads=1):
    from wrf.extension import _avo, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _avo(u, v, msfu, msfv, msfm, cor, dx, dy)

    return result
Ejemplo n.º 8
0
def omega_wrap(qv, tk, wa, full_p, omp_threads=1):
    from wrf.extension import _omega, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _omega(qv, tk, wa, full_p)

    return result
Ejemplo n.º 9
0
def pw_wrap(full_p, tv, qv, ht, omp_threads=1):
    from wrf.extension import _pw, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _pw(full_p, tv, qv, ht)

    return result
Ejemplo n.º 10
0
def udhel_wrap(zp, mapfct, u, v, wstag, dx, dy, bottom, top, omp_threads=1):
    from wrf.extension import _udhel, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _udhel(zp, mapfct, u, v, wstag, dx, dy, bottom, top)

    return result
Ejemplo n.º 11
0
def srh_wrap(u1, v1, z1, ter, lats, top, omp_threads=1):
    from wrf.extension import _srhel, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _srhel(u1, v1, z1, ter, lats, top)

    return result
Ejemplo n.º 12
0
def wetbulb_wrap(full_p, tk, qv, omp_threads=1):
    # NOTE: _wetbulb is potentially not thread-safe, this may require a re-write at some point, but just to be aware.
    from wrf.extension import _wetbulb, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _wetbulb(full_p, tk, qv)

    return result
Ejemplo n.º 13
0
def wrapped_interpz3d_lev2d(field3d,
                            z,
                            lev2d,
                            missingval,
                            outview=None,
                            omp_threads=1):
    from wrf.extension import _interpz3d_lev2d, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _interpz3d_lev2d(field3d, z, lev2d, missingval, outview)

    return result
Ejemplo n.º 14
0
def dbz_wrap(full_p,
             tk,
             qv,
             qr,
             qs,
             qg,
             sn0,
             ivarint,
             iliqskin,
             omp_threads=1):
    from wrf.extension import _dbz, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _dbz(full_p, tk, qv, qr, qs, qg, sn0, ivarint, iliqskin)

    return result
Ejemplo n.º 15
0
def cape_wrap(p_hpa,
              tk,
              qv,
              z,
              ter,
              psfc_hpa,
              missing,
              i3dflag,
              ter_follow,
              omp_threads=1):
    # NOTE: _cape is potentially not thread-safe, this may require a re-write at some point, but just to be aware.
    from wrf.extension import _cape, omp_set_num_threads

    omp_set_num_threads(omp_threads)
    result = _cape(p_hpa, tk, qv, z, ter, psfc_hpa, missing, i3dflag,
                   ter_follow)

    return result
Ejemplo n.º 16
0
def wrapped_interplevel(field3d,
                        vert,
                        desiredlev,
                        missing=default_fill(np.float64),
                        omp_threads=1,
                        num_workers=1):
    from wrf.extension import omp_set_num_threads
    import dask.array.ma as ma
    from dask.array import map_blocks

    omp_set_num_threads(omp_threads)
    dtype = field3d.dtype

    _desiredlev = da.asarray(desiredlev)
    if _desiredlev.ndim == 0:
        _desiredlev = np.array([desiredlev], np.float64)
        levsare2d = False
    else:
        levsare2d = _desiredlev.ndim >= 2

    desiredlev_da = da.from_array(_desiredlev)

    if not levsare2d:
        result = map_blocks(wrapped_interpz3d,
                            field3d,
                            vert,
                            desiredlev_da,
                            missing,
                            omp_threads=omp_threads,
                            dtype=dtype)
    else:
        result = map_blocks(wrapped_interpz3d_lev2d,
                            field3d,
                            vert,
                            desiredlev_da,
                            missing,
                            omp_threads=omp_threads,
                            dtype=dtype)

    #TODO: Fill this
    masked = ma.masked_values(result, missing)
    return masked.compute(num_workers=num_workers)