def wavenumber(zsrc, zrec, lsrc, lrec, depth, etaH, etaV, zetaH, zetaV, lambd,
               ab, xdirect, msrc, mrec, use_ne_eval):
    r
    PTM, PTE = greenfct(zsrc, zrec, lsrc, lrec, depth, etaH, etaV, zetaH,
                        zetaV, lambd, ab, xdirect, msrc, mrec, use_ne_eval)
    PJ0 = None
    PJ1 = None
    PJ0b = None
    Ptot = (PTM + PTE)/(4*np.pi)
    if mrec:
        sign = -1
    else:
        sign = 1
    if ab in [11, 12, 21, 22, 14, 24, 15, 25]:
        if ab in [14, 22]:
            sign *= -1
        PJ0b = sign/2*Ptot*lambd
        PJ1 = -sign*Ptot
        if ab in [11, 22, 24, 15]:
            if ab in [22, 24]:
                sign *= -1
            PJ0 = sign*(PTM - PTE)/(8*np.pi)*lambd
    elif ab in [13, 23, 31, 32, 34, 35, 16, 26]:
        PJ1 = sign*Ptot*lambd*lambd
        if ab in [34, 26]:
            PJ1 *= -1
    elif ab in [33, ]:
        PJ0 = sign*Ptot*lambd*lambd*lambd
    return PJ0, PJ1, PJ0b