diff --git a/pywafo/src/wafo/c_library.pyd b/pywafo/src/wafo/c_library.pyd index 29a9347..7c80ede 100644 Binary files a/pywafo/src/wafo/c_library.pyd and b/pywafo/src/wafo/c_library.pyd differ diff --git a/pywafo/src/wafo/cov2mod.pyd b/pywafo/src/wafo/cov2mod.pyd index d65754f..bf55e72 100644 Binary files a/pywafo/src/wafo/cov2mod.pyd and b/pywafo/src/wafo/cov2mod.pyd differ diff --git a/pywafo/src/wafo/gaussian.py b/pywafo/src/wafo/gaussian.py index d7ccd89..2d9f89c 100644 --- a/pywafo/src/wafo/gaussian.py +++ b/pywafo/src/wafo/gaussian.py @@ -1,4 +1,4 @@ -from numpy import r_, minimum, maximum, atleast_1d, atleast_2d, mod, ones, floor, \ +from numpy import pi, r_, minimum, maximum, atleast_1d, atleast_2d, mod, ones, floor, \ random, eye, nonzero, where, repeat, sqrt, exp, inf, diag, zeros, sin, arcsin, nan #@UnresolvedImport from numpy import triu #@UnresolvedImport from scipy.special import ndtr as cdfnorm, ndtri as invnorm @@ -10,7 +10,9 @@ import wafo.rindmod as rindmod import warnings from wafo.misc import common_shape -__all__ = ['Rind', 'rindmod', 'mvnprdmod', 'mvn', 'cdflomax' , 'prbnormtndpc', 'prbnormndpc', 'prbnormnd', 'cdfnornd2', 'prbnorm2d','cdfnorm','invnorm'] +__all__ = ['Rind', 'rindmod', 'mvnprdmod', 'mvn', 'cdflomax' , 'prbnormtndpc', + 'prbnormndpc', 'prbnormnd', 'cdfnorm2d', 'prbnorm2d','cdfnorm','invnorm', + 'test_docstring'] class Rind(object): ''' RIND Computes multivariate normal expectations @@ -69,11 +71,12 @@ class Rind(object): Compute Prob{Xi<-1.2} for i=1:5 where Xi are zero mean Gaussian with Cov(Xi,Xj) = 0.3 for i~=j and Cov(Xi,Xi) = 1 otherwise + >>> import wafo.gaussian as wg >>> n = 5 >>> Blo =-np.inf; Bup=-1.2; indI=[-1, n-1] # Barriers >>> m = np.zeros(n); rho = 0.3; >>> Sc =(np.ones((n,n))-np.eye(n))*rho+np.eye(n) - >>> rind = Rind() + >>> rind = wg.Rind() >>> E0, err0, terr0 = rind(Sc,m,Blo,Bup,indI) # exact prob. 0.001946 >>> A = np.repeat(Blo,n); B = np.repeat(Bup,n) # Integration limits @@ -95,7 +98,7 @@ class Rind(object): >>> m2 = [0, 0]; rho2 = np.random.rand(1) >>> Sc2 = [[1, rho2], [rho2 ,1]] >>> Blo2 = 0; Bup2 = np.inf; indI2 = [-1, 1] - >>> rind2 = Rind(method=1) + >>> rind2 = wg.Rind(method=1) >>> g2 = lambda x : (x*(np.pi/2+np.arcsin(x))+np.sqrt(1-x**2))/(2*np.pi) >>> E2 = g2(rho2) # exact value >>> E3 = rind(Sc2,m2,Blo2,Bup2,indI2,nt=0) @@ -396,7 +399,8 @@ def cdflomax(x, alpha, m0): Example ------- - >>> pylab + >>> import pylab + >>> import wafo.gaussian as wg >>> import wafo.spectrum.models as wsm >>> import wafo.objects as wo >>> import wafo.stats as ws @@ -407,9 +411,9 @@ def cdflomax(x, alpha, m0): >>> mM = tp.cycle_pairs() >>> m0 = S.moment(1)[0] >>> alpha = S.characteristic('alpha')[0] - >>> x = linspace(-10,10,200); + >>> x = np.linspace(-10,10,200); >>> mcdf = ws.edf(mM.data) - >>> mcdf.plot(), pylab.plot(x,cdflomax(x,alpha,m0)) + >>> h = mcdf.plot(), pylab.plot(x,wg.cdflomax(x,alpha,m0)) See also -------- @@ -460,10 +464,11 @@ def prbnormtndpc(rho, a, b, D=None, df=0, abseps=1e-4, IERC=0, HNC=0.24): Example: -------- + >>> import wafo.gaussian as wg >>> rho2 = np.random.rand(2); >>> a2 = np.zeros(2); >>> b2 = np.repeat(np.inf,2); - >>> [val2,err2, ift2] = prbnormtndpc(rho2,a2,b2) + >>> [val2,err2, ift2] = wg.prbnormtndpc(rho2,a2,b2) >>> g2 = lambda x : 0.25+np.arcsin(x[0]*x[1])/(2*pi) >>> E2 = g2(rho2) #% exact value >>> np.abs(E2-val2)>> rho3 = np.random.rand(3) >>> a3 = np.zeros(3) >>> b3 = np.repeat(inf,3) - >>> [val3,err3, ift3] = prbnormtndpc(rho3,a3,b3) + >>> [val3,err3, ift3] = wg.prbnormtndpc(rho3,a3,b3) >>> g3 = lambda x : 0.5-sum(np.sort(np.arccos([x[0]*x[1],x[0]*x[2],x[1]*x[2]])))/(4*pi) >>> E3 = g3(rho3) # Exact value >>> np.abs(E3-val3)>> import wafo.gaussian as wg >>> rho2 = np.random.rand(2); >>> a2 = np.zeros(2); >>> b2 = np.repeat(np.inf,2); - >>> [val2,err2, ift2] = prbnormndpc(rho2,a2,b2) + >>> [val2,err2, ift2] = wg.prbnormndpc(rho2,a2,b2) >>> g2 = lambda x : 0.25+np.arcsin(x[0]*x[1])/(2*pi) >>> E2 = g2(rho2) #% exact value >>> np.abs(E2-val2)>> rho3 = np.random.rand(3) >>> a3 = np.zeros(3) >>> b3 = np.repeat(inf,3) - >>> [val3,err3, ift3] = prbnormndpc(rho3,a3,b3) + >>> [val3,err3, ift3] = wg.prbnormndpc(rho3,a3,b3) >>> g3 = lambda x : 0.5-sum(np.sort(np.arccos([x[0]*x[1],x[0]*x[2],x[1]*x[2]])))/(4*pi) >>> E3 = g3(rho3) # Exact value >>> np.abs(E3-val3)>> A = np.repeat(Blo,n) >>> B = np.repeat(Bup,n)-m - >>> [val,err,inform] = prbnormnd(Sc,A,B);val;err;inform + >>> [val,err,inform] = prbnormnd(Sc,A,B);[val, err, inform] + [0.0019456719705212067, 1.0059406844578488e-05, 0] >>> np.abs(val-Et)< err0+terr0 array([ True], dtype=bool) - >>> 'val = %2.6f' % val - 'val = 0.001945' + >>> 'val = %2.5f' % val + 'val = 0.00195' - See also - -------- - prbnormndpc, rind + See also + -------- + prbnormndpc, Rind ''' @@ -755,15 +762,18 @@ def cdfnorm2d(b1, b2, r): and for |r| close to 1. Example - ------- + ------- + >>> import wafo.gaussian as wg >>> x = np.linspace(-5,5,20) >>> [B1,B2] = np.meshgrid(x, x) >>> r = 0.3; - >>> F = cdfnorm2d(B1,B2,r); - surf(x,x,F) + >>> F = wg.cdfnorm2d(B1,B2,r) + + surf(x,x,F) See also - cdfnorm + -------- + cdfnorm Reference --------- @@ -906,10 +916,12 @@ def prbnorm2d(a, b, r): Example ------- + >>> import wafo.gaussian as wg >>> a = [-1, -2] >>> b = [1, 1] >>> r = 0.3 - >>> prbnorm2d(a,b,r) + >>> wg.prbnorm2d(a,b,r) + array([ 0.56659121]) See also -------- @@ -953,10 +965,15 @@ def prbnorm2d(a, b, r): def bvd(lo, up, r): return cdfnorm2d(-lo, -up, r) - +def test_docstrings(): + import doctest + doctest.testmod() + if __name__ == '__main__': - if False: #True: # - test_rind() - else: - import doctest - doctest.testmod() + test_docstrings() +#if __name__ == '__main__': +# if False: #True: # +# test_rind() +# else: +# import doctest +# doctest.testmod() diff --git a/pywafo/src/wafo/graphutil.py b/pywafo/src/wafo/graphutil.py index 1344e2c..8f9ee91 100644 --- a/pywafo/src/wafo/graphutil.py +++ b/pywafo/src/wafo/graphutil.py @@ -10,7 +10,7 @@ import warnings import numpy as np from wafo.plotbackend import plotbackend -__all__ = ['cltext'] +__all__ = ['cltext', 'test_docstrings'] def cltext(levels, percent=False, n=4, xs=0.036, ys=0.94, zs=0): ''' @@ -40,11 +40,12 @@ def cltext(levels, percent=False, n=4, xs=0.036, ys=0.94, zs=0): set(h,'unit','data') Examples: - >>> from wafo.integrate import peaks + >>> import wafo.graphutil as wg + >>> from wafo.demos import peaks >>> import pylab as plt >>> x,y,z = peaks(); >>> h = plt.contour(x,y,z) - >>> h = cltext(h.levels) + >>> h = wg.cltext(h.levels) >>> plt.show() data = rndray(1,2000,2); f = kdebin(data,{'kernel','epan','L2',.5,'inc',128}); @@ -107,5 +108,10 @@ def cltext(levels, percent=False, n=4, xs=0.036, ys=0.94, zs=0): ha2 = plotbackend.figtext(xss, yss, cltxt, **txtProp) return ha1, ha2 + +def test_docstrings(): + import doctest + doctest.testmod() + if __name__ == '__main__': - pass \ No newline at end of file + test_docstrings() \ No newline at end of file diff --git a/pywafo/src/wafo/integrate.py b/pywafo/src/wafo/integrate.py index f99e79f..7dc21c9 100644 --- a/pywafo/src/wafo/integrate.py +++ b/pywafo/src/wafo/integrate.py @@ -10,6 +10,7 @@ import pylab as plb from scipy.integrate import simps, trapz from wafo.misc import is_numlike from wafo.demos import humps + _POINTS_AND_WEIGHTS = {} __all__ = ['dea3', 'clencurt', 'romberg', diff --git a/pywafo/src/wafo/kdetools.py b/pywafo/src/wafo/kdetools.py index 5c49541..0fe4a24 100644 --- a/pywafo/src/wafo/kdetools.py +++ b/pywafo/src/wafo/kdetools.py @@ -34,7 +34,7 @@ _stats_logi = (pi ** 2 / 3, 1. / 6, 1 / 42) _stats_gaus = (1, 1. / (2 * sqrt(pi)), 3. / (8 * sqrt(pi))) __all__ = ['sphere_volume', 'TKDE', 'KDE', 'Kernel', 'accum', 'qlevels', - 'iqrange', 'gridcount', 'kde_demo1', 'kde_demo2'] + 'iqrange', 'gridcount', 'kde_demo1', 'kde_demo2', 'test_docstrings'] def sphere_volume(d, r=1.0): """ Returns volume of d-dimensional sphere with radius r @@ -869,8 +869,9 @@ class Kernel(object): ... 1.10419995, 0.77055114, 0.60288273, 1.36883635, 1.74754326, ... 1.09547561, 1.01671133, 0.73211143, 0.61891719, 0.75903487, ... 1.8919469 , 0.72433808, 1.92973094, 0.44749838, 1.36508452]) - - >>> gauss = Kernel('gaussian') + + >>> import wafo.kdetools as wk + >>> gauss = wk.Kernel('gaussian') >>> gauss.stats() (1, 0.28209479177387814, 0.21157109383040862) >>> gauss.hscv(data) @@ -882,10 +883,10 @@ class Kernel(object): >>> gauss.hldpi(data) array([ 0.1718688]) - >>> Kernel('laplace').stats() + >>> wk.Kernel('laplace').stats() (2, 0.25, inf) - >>> triweight = Kernel('triweight'); triweight.stats() + >>> triweight = wk.Kernel('triweight'); triweight.stats() (0.1111111111111111, 0.81585081585081587, inf) >>> triweight(np.linspace(-1,1,11)) @@ -1843,18 +1844,24 @@ def qlevels(pdf, p=(10, 30, 50, 70, 90, 95, 99, 99.9), x1=None, x2=None): return ui -def qlevels2(r, p=(10,30,50,70,90, 95, 99, 99.9), method=1): +def qlevels2(data, p=(10,30,50,70,90, 95, 99, 99.9), method=1): ''' QLEVELS2 Calculates quantile levels which encloses P% of data CALL: [ql PL] = qlevels2(data,PL,method); ql = the discrete quantile levels, size D X Np - data = data matrix, size D x N (D = # of dimensions) - PL = percent level vector, length Np (default [10:20:90 95 99 99.9]) - method = 1 Interpolation so that F(X_(k)) == (k-0.5)/n. (default) - 2 Interpolation so that F(X_(k)) == k/(n+1). - 3 Based on the empirical distribution. + Parameters + ---------- + data : data matrix, size D x N (D = # of dimensions) + p : percent level vector, length Np (default [10:20:90 95 99 99.9]) + method : integer + 1 Interpolation so that F(X_(k)) == (k-0.5)/n. (default) + 2 Interpolation so that F(X_(k)) == k/(n+1). + 3 Based on the empirical distribution. + + Returns + ------- QLEVELS2 sort the columns of data in ascending order and find the quantile levels for each column which encloses P% of the data. @@ -1863,7 +1870,7 @@ def qlevels2(r, p=(10,30,50,70,90, 95, 99, 99.9), method=1): -------- >>> import wafo.stats as ws >>> PL = np.r_[10:90:20, 90, 95, 99, 99.9] - >>> xs = ws.norm.rvs(size=2000000) + >>> xs = ws.norm.rvs(size=2500000) >>> np.round(qlevels2(ws.norm.pdf(xs), p=PL), decimals=3) array([ 0.396, 0.37 , 0.318, 0.233, 0.103, 0.058, 0.014, 0.002]) @@ -1873,15 +1880,15 @@ def qlevels2(r, p=(10,30,50,70,90, 95, 99, 99.9), method=1): 0.05844507, 0.01445974, 0.00177719]) # Finding the median of xs: - >>> np.round(qlevels2(xs,50), decimals=2) - array([ 0.]) + >>> '%2.2f' % np.abs(qlevels2(xs,50)[0]) + '0.00' See also -------- qlevels ''' q = 100-np.atleast_1d(p) - return percentile(r, q, axis=-1, method=method) + return percentile(data, q, axis=-1, method=method) _PKDICT = {1: lambda k, w, n: (k - w) / (n - 1), @@ -1979,8 +1986,6 @@ def _compute_qth_percentile(sorted, q, axis, out, method): # check and use out array. return np.add.reduce(sorted[indexer] * weights1, axis=axis, out=out) / sumval - - def percentile(a, q, axis=None, out=None, overwrite_input=False, method=1, weights=None): """ Compute the qth percentile of the data along the specified axis. @@ -2077,7 +2082,8 @@ def percentile(a, q, axis=None, out=None, overwrite_input=False, method=1, weigh >>> b = a.copy() >>> wk.percentile(b, 50, axis=None, overwrite_input=True) 3.5 - >>> assert not np.all(a==b) + >>> np.all(a==b) + False """ a = np.asarray(a) @@ -2194,8 +2200,8 @@ def gridcount(data, X): >>> h = plb.plot(x,c,'.') # 1D histogram >>> pdf = c/dx/N >>> h1 = plb.plot(x, pdf) # 1D probability density plot - >>> np.trapz(pdf, x) - 0.99999999999999956 + >>> '%1.3f' % np.trapz(pdf, x) + '1.000' See also -------- @@ -2342,10 +2348,10 @@ def kde_demo2(): pylab.figure(0) -def main(): +def test_docstrings(): import doctest doctest.testmod() if __name__ == '__main__': - main() + test_docstrings() diff --git a/pywafo/src/wafo/misc.py b/pywafo/src/wafo/misc.py index b3c67d5..f9c83f2 100644 --- a/pywafo/src/wafo/misc.py +++ b/pywafo/src/wafo/misc.py @@ -30,8 +30,8 @@ __all__ = ['is_numlike','JITImport', 'DotDict', 'Bunch', 'printf', 'sub_dict_sel 'findextrema', 'findpeaks', 'findrfc', 'rfcfilter', 'findtp', 'findtc', 'findoutliers', 'common_shape', 'argsreduce', 'stirlerr', 'getshipchar', 'betaloge', 'gravity', 'nextpow2', - 'discretize', 'discretize2', 'pol2cart', 'cart2pol', 'meshgrid', 'ndgrid', - 'trangood', 'tranproc', 'plot_histgrm', 'num2pistr'] + 'discretize', 'pol2cart', 'cart2pol', 'meshgrid', 'ndgrid', + 'trangood', 'tranproc', 'plot_histgrm', 'num2pistr', 'test_docstrings'] def is_numlike(obj): @@ -164,11 +164,12 @@ def detrendma(x, L): Examples -------- + >>> import wafo.misc as wm >>> import pylab as plb >>> exp = plb.exp; cos = plb.cos; randn = plb.randn >>> x = plb.linspace(0,1,200) >>> y = exp(x)+cos(5*2*pi*x)+1e-1*randn(x.size) - >>> y0 = detrendma(y,20); tr = y-y0 + >>> y0 = wm.detrendma(y,20); tr = y-y0 >>> h = plb.plot(x, y, x, y0, 'r', x, exp(x), 'k', x, tr, 'm') >>> plb.close('all') @@ -226,13 +227,14 @@ def ecross(t, f, ind, v=0): Example ------- >>> from matplotlib import pylab as plb + >>> import wafo.misc as wm >>> ones = plb.ones >>> t = plb.linspace(0,7*plb.pi,250) >>> x = plb.sin(t) - >>> ind = findcross(x,0.75) + >>> ind = wm.findcross(x,0.75) >>> ind array([ 9, 25, 80, 97, 151, 168, 223, 239]) - >>> t0 = ecross(t,x,ind,0.75) + >>> t0 = wm.ecross(t,x,ind,0.75) >>> t0 array([ 0.84910514, 2.2933879 , 7.13205663, 8.57630119, 13.41484739, 14.85909194, 19.69776067, 21.14204343]) @@ -312,17 +314,18 @@ def findcross(x, v=0.0, kind=None): Example ------- >>> from matplotlib import pylab as plb + >>> import wafo.misc as wm >>> ones = plb.ones >>> findcross([0, 1, -1, 1],0) array([0, 1, 2]) >>> v = 0.75 >>> t = plb.linspace(0,7*plb.pi,250) >>> x = plb.sin(t) - >>> ind = findcross(x,v) # all crossings + >>> ind = wm.findcross(x,v) # all crossings >>> ind array([ 9, 25, 80, 97, 151, 168, 223, 239]) >>> t0 = plb.plot(t,x,'.',t[ind],x[ind],'r.', t, ones(t.shape)*v) - >>> ind2 = findcross(x,v,'u') + >>> ind2 = wm.findcross(x,v,'u') >>> ind2 array([ 9, 80, 151, 223]) >>> t0 = plb.plot(t[ind2],x[ind2],'o') @@ -383,9 +386,10 @@ def findextrema(x): -------- >>> import numpy as np >>> import pylab as pb + >>> import wafo.misc as wm >>> t = np.linspace(0,7*np.pi,250) >>> x = np.sin(t) - >>> ind = findextrema(x) + >>> ind = wm.findextrema(x) >>> a = pb.plot(t,x,'.',t[ind],x[ind],'r.') >>> pb.close('all') @@ -419,9 +423,10 @@ def findpeaks(data, n=2, min_h=None, min_p=0.0): less that 0.3*"global max" and have rainflow amplitude larger than 5. >>> import numpy as np + >>> import wafo.misc as wm >>> x = np.arange(0,10,0.01) >>> data = x**2+10*np.sin(3*x)+0.5*np.sin(50*x) - >>> findpeaks(data, n=8, min_h=5, min_p=0.3) + >>> wm.findpeaks(data, n=8, min_h=5, min_p=0.3) array([908, 694, 481]) See also @@ -480,7 +485,6 @@ def findpeaks(data, n=2, min_h=None, min_p=0.0): def findrfc_astm(tp): """ Return rainflow counted cycles - ============================== Nieslony's Matlab implementation of the ASTM standard practice for rainflow counting ported to a Python C module. @@ -532,12 +536,13 @@ def findrfc(tp, hmin=0.0, method='clib'): Example: -------- >>> import pylab as pb + >>> import wafo.misc as wm >>> t = pb.linspace(0,7*np.pi,250) >>> x = pb.sin(t)+0.1*np.sin(50*t) - >>> ind = findextrema(x) + >>> ind = wm.findextrema(x) >>> ti, tp = t[ind], x[ind] >>> a = pb.plot(t,x,'.',ti,tp,'r.') - >>> ind1 = findrfc(tp,0.3); ind1 + >>> ind1 = wm.findrfc(tp,0.3); ind1 array([ 0, 9, 32, 53, 74, 95, 116, 137]) >>> a = pb.plot(ti[ind1],tp[ind1]) >>> pb.close('all') @@ -795,13 +800,14 @@ def rfcfilter(x, h, method=0): --------- # 1. Filtered signal y is the turning points of x. >>> import wafo.data + >>> import wafo.misc as wm >>> x = wafo.data.sea() - >>> y = rfcfilter(x[:,1], h=0, method=1) + >>> y = wm.rfcfilter(x[:,1], h=0, method=1) >>> y[0:5] array([-1.2004945 , 0.83950546, -0.09049454, -0.02049454, -0.09049454]) # 2. This removes all rainflow cycles with range less than 0.5. - >>> y1 = rfcfilter(x[:,1], h=0.5) + >>> y1 = wm.rfcfilter(x[:,1], h=0.5) >>> y1[0:5] array([-1.2004945 , 0.83950546, -0.43049454, 0.34950546, -0.51049454]) @@ -1273,12 +1279,13 @@ def common_shape(*args, ** kwds): Examples -------- >>> import numpy as np + >>> import wafo.misc as wm >>> A = np.ones((4,1)) >>> B = 2 >>> C = np.ones((1,5))*5 - >>> common_shape(A,B,C) + >>> wm.common_shape(A,B,C) (4, 5) - >>> common_shape(A,B,C,shape=(3,4,1)) + >>> wm.common_shape(A,B,C,shape=(3,4,1)) (3, 4, 5) See also @@ -1348,17 +1355,18 @@ def argsreduce(condition, * args): Example ------- + >>> import wafo.misc as wm >>> import numpy as np >>> rand = np.random.random_sample >>> A = rand((4,5)) >>> B = 2 >>> C = rand((1,5)) >>> cond = np.ones(A.shape) - >>> [A1,B1,C1] = argsreduce(cond,A,B,C) + >>> [A1,B1,C1] = wm.argsreduce(cond,A,B,C) >>> B1.shape (20,) >>> cond[2,:] = 0 - >>> [A2,B2,C2] = argsreduce(cond,A,B,C) + >>> [A2,B2,C2] = wm.argsreduce(cond,A,B,C) >>> B2.shape (15,) @@ -1379,7 +1387,8 @@ def stirlerr(n): Example ------- - >>> stirlerr(2) + >>> import wafo.misc as wm + >>> wm.stirlerr(2) array([ 0.0413407]) See also @@ -1543,7 +1552,9 @@ def betaloge(z, w): for large arguments Example - >>> betaloge(3,2) + ------- + >>> import wafo.misc as wm + >>> wm.betaloge(3,2) array([-2.48490665]) See also @@ -1581,9 +1592,10 @@ def gravity(phi=45): Examples -------- + >>> import wafo.misc as wm >>> import numpy as np >>> phi = np.linspace(0,45,5) - >>> gravity(phi) + >>> wm.gravity(phi) array([ 9.78049 , 9.78245014, 9.78803583, 9.79640552, 9.80629387]) See also @@ -1609,9 +1621,10 @@ def nextpow2(x): Example ------- - >>> nextpow2(10) + >>> import wafo.misc as wm + >>> wm.nextpow2(10) 4 - >>> nextpow2(np.arange(5)) + >>> wm.nextpow2(np.arange(5)) 3 ''' t = isscalar(x) or len(x) @@ -1624,7 +1637,7 @@ def nextpow2(x): n = n - 1 return n -def discretize(fun, a, b, tol=0.005, n=5): +def discretize(fun, a, b, tol=0.005, n=5, method='linear'): ''' Automatic discretization of function @@ -1638,6 +1651,8 @@ def discretize(fun, a, b, tol=0.005, n=5): absoute error tolerance n : scalar integer number of values + method : string + defining method of gridding, options are 'linear' and 'adaptive' Returns ------- @@ -1646,14 +1661,25 @@ def discretize(fun, a, b, tol=0.005, n=5): Example ------- + >>> import wafo.misc as wm >>> import numpy as np >>> import pylab as plb - >>> x,y = discretize(np.cos,0,np.pi) - >>> t = plb.plot(x,y) + >>> x,y = wm.discretize(np.cos, 0, np.pi) + >>> xa,ya = wm.discretize(np.cos, 0, np.pi, method='adaptive') + >>> t = plb.plot(x, y, xa, ya, 'r.') >>> plb.show() >>> plb.close('all') + ''' + if method.startswith('a'): + return _discretize_adaptive(fun, a, b, tol, n) + else: + return _discretize_linear(fun, a, b, tol, n) + +def _discretize_linear(fun, a, b, tol=0.005, n=5): + ''' + Automatic discretization of function, linear gridding ''' tiny = floatinfo.tiny @@ -1675,36 +1701,9 @@ def discretize(fun, a, b, tol=0.005, n=5): err = 0.5 * amax(abs((y00 - y) / (abs(y00 + y) + tiny))) return x, y -def discretize2(fun, a, b, tol=0.005, n=5): +def _discretize_adaptive(fun, a, b, tol=0.005, n=5): ''' - Automatic adaptive discretization of function - - Parameters - ---------- - fun : callable - function to discretize - a,b : real scalars - evaluation limits - tol : real, scalar - absoute error tolerance - n : scalar integer - number of values - - Returns - ------- - x : discretized values - y : fun(x) - - Example - ------- - >>> import numpy as np - >>> import pylab as plb - >>> x,y = discretize2(np.cos,0,np.pi) - >>> t = plb.plot(x,y) - >>> plb.show() - - >>> plb.close('all') - + Automatic discretization of function, adaptive gridding. ''' tiny = floatinfo.tiny n += (mod(n, 2) == 0) # make sure n is odd @@ -2041,11 +2040,12 @@ def tranproc(x, f, x0, *xi): -------- Derivative of g and the transformed Gaussian model. >>> import pylab as plb + >>> import wafo.misc as wm >>> import wafo.transform.models as wtm >>> tr = wtm.TrHermite() >>> x = linspace(-5,5,501) >>> g = tr(x) - >>> gder = tranproc(x, g, x, ones(g.shape[0])) + >>> gder = wm.tranproc(x, g, x, ones(g.shape[0])) >>> h = plb.plot(x, g, x, gder[1]) plb.plot(x,pdfnorm(g)*gder[1],x,pdfnorm(x)) @@ -2257,7 +2257,8 @@ def num2pistr(x, n=3): xtxt = a text string in fractions of pi Example - >>> num2pistr(np.pi*3/4) + >>> import wafo.misc as wm + >>> wm.num2pistr(np.pi*3/4) '3\\pi/4' ''' @@ -2466,14 +2467,7 @@ def _test_discretize(): plb.show() plb.close('all') -def _test_discretize2(): - import numpy as np - import pylab as plb - x, y = discretize2(np.cos, 0, np.pi) - t = plb.plot(x, y) - plb.show() - plb.close('all') - + def _test_stirlerr(): x = linspace(1, 5, 6) print stirlerr(x) @@ -2499,9 +2493,9 @@ def _test_parse_kwargs(): out1 = testfun(opt0['opt1'], **opt0) print out1 +def test_docstrings(): + import doctest + doctest.testmod() + if __name__ == "__main__": - if True:# False: # - import doctest - doctest.testmod() - else: - _test_find_cross() + test_docstrings() \ No newline at end of file diff --git a/pywafo/src/wafo/mvn.pyd b/pywafo/src/wafo/mvn.pyd index 2d56231..d3a19f0 100644 Binary files a/pywafo/src/wafo/mvn.pyd and b/pywafo/src/wafo/mvn.pyd differ diff --git a/pywafo/src/wafo/mvnprdmod.pyd b/pywafo/src/wafo/mvnprdmod.pyd index 70aa3d0..9cff22a 100644 Binary files a/pywafo/src/wafo/mvnprdmod.pyd and b/pywafo/src/wafo/mvnprdmod.pyd differ diff --git a/pywafo/src/wafo/plotbackend.py b/pywafo/src/wafo/plotbackend.py index 9c80173..08e806f 100644 --- a/pywafo/src/wafo/plotbackend.py +++ b/pywafo/src/wafo/plotbackend.py @@ -2,10 +2,12 @@ Modify this file if another plotbackend is wanted. """ import warnings +verbose = False if False: try: from scitools import easyviz as plotbackend - print('wafo.wafodata: plotbackend is set to scitools.easyviz') + if verbose: + print('wafo.wafodata: plotbackend is set to scitools.easyviz') except: warnings.warn('wafo: Unable to load scitools.easyviz as plotbackend') plotbackend = None @@ -13,7 +15,8 @@ else: try: from matplotlib import pyplot as plotbackend plotbackend.interactive(True) - print('wafo.wafodata: plotbackend is set to matplotlib.pyplot') + if verbose: + print('wafo.wafodata: plotbackend is set to matplotlib.pyplot') except: warnings.warn('wafo: Unable to load matplotlib.pyplot as plotbackend') plotbackend = None \ No newline at end of file diff --git a/pywafo/src/wafo/rindmod.pyd b/pywafo/src/wafo/rindmod.pyd index d0fce23..1c75f5e 100644 Binary files a/pywafo/src/wafo/rindmod.pyd and b/pywafo/src/wafo/rindmod.pyd differ diff --git a/pywafo/src/wafo/source/c_codes/c_library.pyd b/pywafo/src/wafo/source/c_codes/c_library.pyd index 29a9347..46547c5 100644 Binary files a/pywafo/src/wafo/source/c_codes/c_library.pyd and b/pywafo/src/wafo/source/c_codes/c_library.pyd differ diff --git a/pywafo/src/wafo/source/mreg/checkmod.mod b/pywafo/src/wafo/source/mreg/checkmod.mod index 770c9ef..1c8a141 100644 --- a/pywafo/src/wafo/source/mreg/checkmod.mod +++ b/pywafo/src/wafo/source/mreg/checkmod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '4' created from mregmodule.f on Tue May 24 14:34:23 2011 -MD5:fe57607d30a725f711d7629678581d81 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from mregmodule.f on Wed Jun 01 14:12:05 2011 +MD5:9338abc0e14d4bf13175cb874e9f7ea5 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -12,35 +12,33 @@ MD5:fe57607d30a725f711d7629678581d81 -- If you edit this, you'll get what you de () -() - (2 'checkmod' 'checkmod' 'checkmod' 1 ((MODULE UNKNOWN-INTENT -UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 -() () () 0 0) +UNKNOWN-PROC UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) 3 'iii0' 'checkmod' 'iii0' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 4 'iii01' 'checkmod' 'iii01' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 5 'iii101' 'checkmod' 'iii101' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 6 'iii11' 'checkmod' 'iii11' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 7 'iii21' 'checkmod' 'iii21' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 8 'iii31' 'checkmod' 'iii31' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 9 'iii41' 'checkmod' 'iii41' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 10 'iii51' 'checkmod' 'iii51' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 11 'iii61' 'checkmod' 'iii61' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 12 'iii71' 'checkmod' 'iii71' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 13 'iii81' 'checkmod' 'iii81' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 14 'iii91' 'checkmod' 'iii91' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) ) ('checkmod' 0 2 'iii0' 0 3 'iii01' 0 4 'iii101' 0 5 'iii11' 0 6 'iii21' diff --git a/pywafo/src/wafo/source/mreg/epsmod.mod b/pywafo/src/wafo/source/mreg/epsmod.mod index 093559e..ecf2f45 100644 --- a/pywafo/src/wafo/source/mreg/epsmod.mod +++ b/pywafo/src/wafo/source/mreg/epsmod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '4' created from mregmodule.f on Tue May 24 14:34:23 2011 -MD5:deb744d8baea0ddd5fc5faf9be58df7e -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from mregmodule.f on Wed Jun 01 14:12:05 2011 +MD5:67523ef735281684c8fb9aae15cdc0a3 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -12,16 +12,14 @@ MD5:deb744d8baea0ddd5fc5faf9be58df7e -- If you edit this, you'll get what you de () -() - (2 'eps' 'epsmod' 'eps' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -IMPLICIT-SAVE 0 0) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +IMPLICIT-SAVE) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 3 'eps0' 'epsmod' 'eps0' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +UNKNOWN IMPLICIT-SAVE) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 4 'epsmod' 'epsmod' 'epsmod' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) 5 'epss' 'epsmod' 'epss' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +UNKNOWN IMPLICIT-SAVE) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) ) ('eps' 0 2 'eps0' 0 3 'epsmod' 0 4 'epss' 0 5) diff --git a/pywafo/src/wafo/source/mreg/expaccmod.mod b/pywafo/src/wafo/source/mreg/expaccmod.mod index ec6e10a..38c4ed9 100644 --- a/pywafo/src/wafo/source/mreg/expaccmod.mod +++ b/pywafo/src/wafo/source/mreg/expaccmod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '4' created from mregmodule.f on Tue May 24 14:34:23 2011 -MD5:d82385a3a446da945f345d09302f933e -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from mregmodule.f on Wed Jun 01 14:12:05 2011 +MD5:2d868304b34a40918a05109c83ff1871 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -12,14 +12,12 @@ MD5:d82385a3a446da945f345d09302f933e -- If you edit this, you'll get what you de () -() - (2 'expaccmod' 'expaccmod' 'expaccmod' 1 ((MODULE UNKNOWN-INTENT -UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 -() () () 0 0) +UNKNOWN-PROC UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) 3 'pmax' 'expaccmod' 'pmax' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 REAL ()) 0 0 () (CONSTANT (REAL 8 -0 0 REAL ()) 0 '0.28000000000000@2') () 0 () () () 0 0) +UNKNOWN IMPLICIT-SAVE) (REAL 8 0 0 REAL ()) 0 0 () (CONSTANT (REAL 8 0 0 +REAL ()) 0 '0.28000000000000@2') () 0 () () () 0 0) ) ('expaccmod' 0 2 'pmax' 0 3) diff --git a/pywafo/src/wafo/source/mreg/infcmod.mod b/pywafo/src/wafo/source/mreg/infcmod.mod index 6aba119..2ade927 100644 --- a/pywafo/src/wafo/source/mreg/infcmod.mod +++ b/pywafo/src/wafo/source/mreg/infcmod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '4' created from mregmodule.f on Tue May 24 14:34:23 2011 -MD5:5dadee8498f04fe7df773933dace020d -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from mregmodule.f on Wed Jun 01 14:12:05 2011 +MD5:806a8e6bde038d8bc47688d3b6e5277f -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -12,23 +12,21 @@ MD5:5dadee8498f04fe7df773933dace020d -- If you edit this, you'll get what you de () -() - (2 'iac' 'infcmod' 'iac' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN EXPLICIT-SAVE 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () -() 0 0) +UNKNOWN EXPLICIT-SAVE) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 +0) 3 'inf' 'infcmod' 'inf' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN 0 0 DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 EXPLICIT ( +UNKNOWN DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 EXPLICIT ( CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) 4 'infcmod' 'infcmod' 'infcmod' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) 5 'info' 'infcmod' 'info' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0 DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 -EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER -4 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +UNKNOWN UNKNOWN DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 EXPLICIT +(CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 +INTEGER ()) 0 '10')) 0 () () () 0 0) 6 'isq' 'infcmod' 'isq' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -EXPLICIT-SAVE 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +EXPLICIT-SAVE) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) ) ('iac' 0 2 'inf' 0 3 'infcmod' 0 4 'info' 0 5 'isq' 0 6) diff --git a/pywafo/src/wafo/source/mreg/mregmod.mod b/pywafo/src/wafo/source/mreg/mregmod.mod index 9e1762f..79e5c56 100644 --- a/pywafo/src/wafo/source/mreg/mregmod.mod +++ b/pywafo/src/wafo/source/mreg/mregmod.mod @@ -1,8 +1,9 @@ -GFORTRAN module version '4' created from mregmodule.f on Tue May 24 14:34:23 2011 -MD5:73d0040f77005ab6be34b297552c2c19 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from mregmodule.f on Wed Jun 01 14:12:06 2011 +MD5:a058cc3e6c0e8bedef8f214da2f5fbdc -- If you edit this, you'll get what you deserve. -(() () () () () () () () () () () () () () () () () () () () () () () -() () () ()) +(() +() () () () () () () () () () () () () () () () () () () () () () () () +() ()) () @@ -12,88 +13,85 @@ MD5:73d0040f77005ab6be34b297552c2c19 -- If you edit this, you'll get what you de () -() - (2 'fi' 'mregmod' 'fi' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL -UNKNOWN 0 0 FUNCTION GENERIC) (REAL 8 0 0 REAL ()) 5 0 (6) () 2 () () () -0 0) +UNKNOWN FUNCTION GENERIC) (REAL 8 0 0 REAL ()) 5 0 (6) () 2 () () () 0 0) 4 'mreg' 'mregmod' 'mreg' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL -UNKNOWN 0 0 SUBROUTINE GENERIC) (UNKNOWN 0 0 0 UNKNOWN ()) 7 0 (8 9 10 -11 12 13 14 15 16 17 18 19 20) () 0 () () () 0 0) +UNKNOWN SUBROUTINE GENERIC) (UNKNOWN 0 0 0 UNKNOWN ()) 7 0 (8 9 10 11 12 +13 14 15 16 17 18 19 20) () 0 () () () 0 0) 3 'rind' 'mregmod' 'rind' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL -UNKNOWN 0 0 SUBROUTINE GENERIC) (UNKNOWN 0 0 0 UNKNOWN ()) 21 0 (22 23 -24 25 26 27 28 29 30 31) () 0 () () () 0 0) -26 'db' '' 'db' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +UNKNOWN SUBROUTINE GENERIC) (UNKNOWN 0 0 0 UNKNOWN ()) 21 0 (22 23 24 25 +26 27 28 29 30 31) () 0 () () () 0 0) +22 'xind' '' 'xind' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +23 'r' '' 'r' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '40401')) 0 () +() () 0 0) +24 'bu' '' 'bu' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '201')) 0 () () () 0 0) -27 'sq' '' 'sq' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +25 'dbun' '' 'dbun' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +26 'db' '' 'db' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '201')) 0 () () () 0 0) -24 'bu' '' 'bu' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +27 'sq' '' 'sq' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '201')) 0 () () () 0 0) -28 'vder' '' 'vder' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +28 'vder' '' 'vder' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -29 'nit' '' 'nit' 21 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -22 'xind' '' 'xind' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -23 'r' '' 'r' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( -INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 -'40401')) 0 () () () 0 0) -25 'dbun' '' 'dbun' 21 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -30 'n' '' 'n' 21 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +29 'nit' '' 'nit' 21 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -31 'infr' '' 'infr' 21 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -6 'xx' '' 'xx' 5 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( -REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -8 'f' '' 'f' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) -(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -9 'r' '' 'r' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( -INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 -'40401')) 0 () () () 0 0) -10 'b' '' 'b' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( -INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 -'201')) 0 () () () 0 0) -18 'n' '' 'n' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +30 'n' '' 'n' 21 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -11 'db' '' 'db' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +31 'infr' '' 'infr' 21 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) +(INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +6 'xx' '' 'xx' 5 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +8 'f' '' 'f' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +9 'r' '' 'r' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '40401')) 0 () +() () 0 0) +10 'b' '' 'b' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '201')) 0 () () +() 0 0) +11 'db' '' 'db' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '201')) 0 () () () 0 0) -12 'aa' '' 'aa' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +12 'aa' '' 'aa' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 EXPLICIT (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '4')) 0 () () () 0 0) -13 'bb' '' 'bb' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +13 'bb' '' 'bb' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '7')) 0 () () () 0 0) -19 'nit' '' 'nit' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) -(INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -14 'a' '' 'a' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( -INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 -'1407')) 0 () () () 0 0) -20 'infr' '' 'infr' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -15 'da' '' 'da' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +14 'a' '' 'a' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1407')) 0 () +() () 0 0) +15 'da' '' 'da' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '7')) 0 () () () 0 0) -16 'vder' '' 'vder' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -17 'm' '' 'm' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +16 'vder' '' 'vder' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) +(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +17 'm' '' 'm' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +18 'n' '' 'n' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +19 'nit' '' 'nit' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +20 'infr' '' 'infr' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) +(INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) ) ('fi' 0 2 'mreg' 0 4 'rind' 0 3) diff --git a/pywafo/src/wafo/source/mreg/quadrmod.mod b/pywafo/src/wafo/source/mreg/quadrmod.mod index d74f43a..ef4c9bf 100644 --- a/pywafo/src/wafo/source/mreg/quadrmod.mod +++ b/pywafo/src/wafo/source/mreg/quadrmod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '4' created from mregmodule.f on Tue May 24 14:34:23 2011 -MD5:60519873a9b0b44a975f51ae49005353 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from mregmodule.f on Wed Jun 01 14:12:05 2011 +MD5:447301769c212f228b6cfa086ba1d48a -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -12,26 +12,24 @@ MD5:60519873a9b0b44a975f51ae49005353 -- If you edit this, you'll get what you de () -() - (2 'h' 'quadrmod' 'h' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN 0 0 DIMENSION DATA) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT ( +UNKNOWN DIMENSION DATA) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT ( CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '126')) 0 () () () 0 0) 3 'i' 'quadrmod' 'i' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 4 'nn' 'quadrmod' 'nn' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN 0 0 DIMENSION DATA) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 -EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER -4 0 0 INTEGER ()) 0 '25')) 0 () () () 0 0) +UNKNOWN DIMENSION DATA) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 EXPLICIT ( +CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 +INTEGER ()) 0 '25')) 0 () () () 0 0) 5 'nnw' 'quadrmod' 'nnw' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( +UNKNOWN IMPLICIT-SAVE) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '13') () 0 () () () 0 0) 6 'quadrmod' 'quadrmod' 'quadrmod' 1 ((MODULE UNKNOWN-INTENT -UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 -() () () 0 0) +UNKNOWN-PROC UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) 7 'z' 'quadrmod' 'z' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN 0 0 DIMENSION DATA) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT ( +UNKNOWN DIMENSION DATA) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT ( CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '126')) 0 () () () 0 0) ) diff --git a/pywafo/src/wafo/source/mreg/rintmod.mod b/pywafo/src/wafo/source/mreg/rintmod.mod index 718ff79..db5cd82 100644 --- a/pywafo/src/wafo/source/mreg/rintmod.mod +++ b/pywafo/src/wafo/source/mreg/rintmod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '4' created from mregmodule.f on Tue May 24 14:34:23 2011 -MD5:c272ea8a24ebb29c49c7755fa1ba58fd -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from mregmodule.f on Wed Jun 01 14:12:05 2011 +MD5:ea81a0bf9bc67a6cbf4024dcd57f4ee3 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -12,14 +12,12 @@ MD5:c272ea8a24ebb29c49c7755fa1ba58fd -- If you edit this, you'll get what you de () -() - (2 'c' 'rintmod' 'c' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -EXPLICIT-SAVE 0 0) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +EXPLICIT-SAVE) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 3 'fc' 'rintmod' 'fc' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -EXPLICIT-SAVE 0 0) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +EXPLICIT-SAVE) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 4 'rintmod' 'rintmod' 'rintmod' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) ) ('c' 0 2 'fc' 0 3 'rintmod' 0 4) diff --git a/pywafo/src/wafo/source/mreg/sizemod.mod b/pywafo/src/wafo/source/mreg/sizemod.mod index 83e7295..4976530 100644 --- a/pywafo/src/wafo/source/mreg/sizemod.mod +++ b/pywafo/src/wafo/source/mreg/sizemod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '4' created from mregmodule.f on Tue May 24 14:34:23 2011 -MD5:9fbc3ee9bf9bf359ed3c3cd78067ab58 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from mregmodule.f on Wed Jun 01 14:12:05 2011 +MD5:b8c9fdc908b66b228beb64d8a241e2e6 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -12,19 +12,17 @@ MD5:9fbc3ee9bf9bf359ed3c3cd78067ab58 -- If you edit this, you'll get what you de () -() - (2 'mmax' 'sizemod' 'mmax' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( +UNKNOWN IMPLICIT-SAVE) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) 3 'nmax' 'sizemod' 'nmax' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( +UNKNOWN IMPLICIT-SAVE) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '201') () 0 () () () 0 0) 4 'rdim' 'sizemod' 'rdim' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( +UNKNOWN IMPLICIT-SAVE) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '40401') () 0 () () () 0 0) 5 'sizemod' 'sizemod' 'sizemod' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) ) ('mmax' 0 2 'nmax' 0 3 'rdim' 0 4 'sizemod' 0 5) diff --git a/pywafo/src/wafo/source/mreg/svd.mod b/pywafo/src/wafo/source/mreg/svd.mod index 4302325..492473e 100644 --- a/pywafo/src/wafo/source/mreg/svd.mod +++ b/pywafo/src/wafo/source/mreg/svd.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '4' created from dsvdc.f on Tue May 24 14:34:21 2011 -MD5:324936151a800ce072449221cf8c2383 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from dsvdc.f on Wed Jun 01 14:12:05 2011 +MD5:504db75f3667c360354623f37288fa05 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -12,82 +12,80 @@ MD5:324936151a800ce072449221cf8c2383 -- If you edit this, you'll get what you de () -() - (2 'dp' 'svd' 'dp' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT (INTEGER -4 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +IMPLICIT-SAVE) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 +0 INTEGER ()) 0 '8') () 0 () () () 0 0) 3 'drot1' 'svd' 'drot1' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL -UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 UNKNOWN ()) 4 0 (5 6 7 8 9) () 0 -() () () 0 0) +UNKNOWN SUBROUTINE) (UNKNOWN 0 0 0 UNKNOWN ()) 4 0 (5 6 7 8 9) () 0 () () +() 0 0) 10 'drotg' 'svd' 'drotg' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL -UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 UNKNOWN ()) 11 0 (12 13 14 15) () -0 () () () 0 0) +UNKNOWN SUBROUTINE) (UNKNOWN 0 0 0 UNKNOWN ()) 11 0 (12 13 14 15) () 0 () +() () 0 0) 16 'dsvdc' 'svd' 'dsvdc' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL -UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 UNKNOWN ()) 17 0 -(18 19 20 21 22 23 24 25 26) () 0 () () () 0 0) +UNKNOWN SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 UNKNOWN ()) 17 0 (18 +19 20 21 22 23 24 25 26) () 0 () () () 0 0) 27 'dswap1' 'svd' 'dswap1' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL -UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 UNKNOWN ()) 28 0 (29 30 31) () 0 -() () () 0 0) +UNKNOWN SUBROUTINE) (UNKNOWN 0 0 0 UNKNOWN ()) 28 0 (29 30 31) () 0 () () +() 0 0) 32 'selected_real_kind' '(intrinsic)' 'selected_real_kind' 1 (( -PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 FUNCTION) ( +PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN FUNCTION) ( UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 32 () () () 0 0) 33 'svd' 'svd' 'svd' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) -30 'dx' '' 'dx' 28 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SIZE (CONSTANT ( -INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -31 'dy' '' 'dy' 28 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SIZE (CONSTANT ( -INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -8 'c' '' 'c' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +12 'da' '' 'da' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) +(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +13 'db' '' 'db' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) +(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +14 'dc' '' 'dc' 11 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -9 's' '' 's' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +15 'ds' '' 'ds' 11 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -5 'n' '' 'n' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +29 'n' '' 'n' 28 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -6 'dx' '' 'dx' 4 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +30 'dx' '' 'dx' 28 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SIZE (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -7 'dy' '' 'dy' 4 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +31 'dy' '' 'dy' 28 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SIZE (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -21 's' '' 's' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT -(INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -22 'e' '' 'e' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT -(INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -23 'u' '' 'u' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT -(INTEGER 4 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 INTEGER ()) -0 '1') ()) 0 () () () 0 0) -24 'v' '' 'v' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT -(INTEGER 4 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 INTEGER ()) -0 '1') ()) 0 () () () 0 0) -25 'job' '' 'job' 17 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -26 'info' '' 'info' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -18 'x' '' 'x' 17 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT -(INTEGER 4 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 INTEGER ()) -0 '1') ()) 0 () () () 0 0) -19 'n' '' 'n' 17 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +5 'n' '' 'n' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -20 'p' '' 'p' 17 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +6 'dx' '' 'dx' 4 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SIZE (CONSTANT (INTEGER 4 +0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +7 'dy' '' 'dy' 4 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SIZE (CONSTANT (INTEGER 4 +0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +8 'c' '' 'c' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (REAL 8 +0 0 REAL ()) 0 0 () () 0 () () () 0 0) +9 's' '' 's' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (REAL 8 +0 0 REAL ()) 0 0 () () 0 () () () 0 0) +18 'x' '' 'x' 17 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT (INTEGER 4 +0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +19 'n' '' 'n' 17 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -15 'ds' '' 'ds' 11 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) -(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -12 'da' '' 'da' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -13 'db' '' 'db' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -14 'dc' '' 'dc' 11 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) -(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -29 'n' '' 'n' 28 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +20 'p' '' 'p' 17 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +21 's' '' 's' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 +0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +22 'e' '' 'e' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 +0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +23 'u' '' 'u' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT (INTEGER 4 +0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +24 'v' '' 'v' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT (INTEGER 4 +0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +25 'job' '' 'job' 17 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +26 'info' '' 'info' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) +(INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) ) ('dp' 0 2 'drot1' 0 3 'drotg' 0 10 'dsvdc' 0 16 'dswap1' 0 27 diff --git a/pywafo/src/wafo/source/mreg/tbrmod.mod b/pywafo/src/wafo/source/mreg/tbrmod.mod index 7586594..47fce17 100644 --- a/pywafo/src/wafo/source/mreg/tbrmod.mod +++ b/pywafo/src/wafo/source/mreg/tbrmod.mod @@ -1,10 +1,8 @@ -GFORTRAN module version '4' created from mregmodule.f on Tue May 24 14:34:23 2011 -MD5:1ca9424273ef49cacfd88e3bffcc7949 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from mregmodule.f on Wed Jun 01 14:12:05 2011 +MD5:43d81dd7165fa3666db9131e212144f1 -- If you edit this, you'll get what you deserve. -(() () () () () () () () () () () () () () () () () () () () () () () -() () () ()) - -() +(() () () () () () () +() () () () () () () () () () () () () () () () () () () ()) () @@ -15,22 +13,22 @@ MD5:1ca9424273ef49cacfd88e3bffcc7949 -- If you edit this, you'll get what you de () (2 'hh' 'tbrmod' 'hh' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN 0 0 DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT ( -CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 -INTEGER ()) 0 '201')) 0 () () () 0 0) +UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 +'201')) 0 () () () 0 0) 3 'mmax' 'sizemod' 'mmax' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( +UNKNOWN IMPLICIT-SAVE) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) 4 'nmax' 'sizemod' 'nmax' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( +UNKNOWN IMPLICIT-SAVE) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '201') () 0 () () () 0 0) 5 'rdim' 'sizemod' 'rdim' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( +UNKNOWN IMPLICIT-SAVE) (INTEGER 4 0 0 INTEGER ()) 0 0 () (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '40401') () 0 () () () 0 0) 6 'sizemod' 'sizemod' 'sizemod' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) 7 'tbrmod' 'tbrmod' 'tbrmod' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) ) ('hh' 0 2 'mmax' 0 3 'nmax' 0 4 'rdim' 0 5 'sizemod' 0 6 'tbrmod' 0 7) diff --git a/pywafo/src/wafo/source/mvn/mvn.pyd b/pywafo/src/wafo/source/mvn/mvn.pyd index 2d56231..d3a19f0 100644 Binary files a/pywafo/src/wafo/source/mvn/mvn.pyd and b/pywafo/src/wafo/source/mvn/mvn.pyd differ diff --git a/pywafo/src/wafo/source/mvnprd/integration1dmodule.mod b/pywafo/src/wafo/source/mvnprd/integration1dmodule.mod index eda1422..e01cae0 100644 --- a/pywafo/src/wafo/source/mvnprd/integration1dmodule.mod +++ b/pywafo/src/wafo/source/mvnprd/integration1dmodule.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '0' created from mvnprodcorrprb.f on Fri Jul 31 00:49:14 2009 -MD5:0f4f78aeb56df870cb724a93e6facf93 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from mvnprodcorrprb.f on Wed Jun 01 13:58:04 2011 +MD5:7a05a34a9fc9c1c84b7469621565e798 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -103,6 +103,20 @@ DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 20 'val' '' 'val' 11 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +23 'f' '' 'f' 22 ((PROCEDURE UNKNOWN-INTENT DUMMY-PROC UNKNOWN UNKNOWN +EXTERNAL DUMMY FUNCTION) (REAL 8 0 0 REAL ()) 0 0 () () 23 () () () 0 0) +24 'a' '' 'a' 22 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +25 'b' '' 'b' 22 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +26 'epsi' '' 'epsi' 22 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) +(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +27 'iflg' '' 'iflg' 22 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) +(INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +28 'abserr' '' 'abserr' 22 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +29 'val' '' 'val' 22 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) +(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 48 'f' '' 'f' 47 ((PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN EXTERNAL DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 49 'a' '' 'a' 47 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( @@ -122,20 +136,6 @@ DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 56 'val' '' 'val' 47 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -23 'f' '' 'f' 22 ((PROCEDURE UNKNOWN-INTENT DUMMY-PROC UNKNOWN UNKNOWN -EXTERNAL DUMMY FUNCTION) (REAL 8 0 0 REAL ()) 0 0 () () 23 () () () 0 0) -24 'a' '' 'a' 22 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -25 'b' '' 'b' 22 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -26 'epsi' '' 'epsi' 22 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) -(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -27 'iflg' '' 'iflg' 22 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) -(INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -28 'abserr' '' 'abserr' 22 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -29 'val' '' 'val' 22 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) -(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 31 'f' '' 'f' 30 ((PROCEDURE UNKNOWN-INTENT DUMMY-PROC UNKNOWN UNKNOWN EXTERNAL DUMMY FUNCTION) (REAL 8 0 0 REAL ()) 0 0 () () 31 () () () 0 0) 32 'a' '' 'a' 30 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( diff --git a/pywafo/src/wafo/source/mvnprd/mvnprdmod.pyd b/pywafo/src/wafo/source/mvnprd/mvnprdmod.pyd index 70aa3d0..9cff22a 100644 Binary files a/pywafo/src/wafo/source/mvnprd/mvnprdmod.pyd and b/pywafo/src/wafo/source/mvnprd/mvnprdmod.pyd differ diff --git a/pywafo/src/wafo/source/rind2007/adaptmod.mod b/pywafo/src/wafo/source/rind2007/adaptmod.mod index e955197..6c6aa82 100644 --- a/pywafo/src/wafo/source/rind2007/adaptmod.mod +++ b/pywafo/src/wafo/source/rind2007/adaptmod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '0' created from intmodule.f on Mon Mar 07 09:38:08 2011 -MD5:6f82304120060b1026ed5eb64a44a657 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from intmodule.f on Wed Jun 01 13:58:08 2011 +MD5:49682d06ef7be297d13abb52c9f1dbaa -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -18,6 +18,13 @@ DECL UNKNOWN SUBROUTINE GENERIC) (UNKNOWN 0 0 0 UNKNOWN ()) 4 0 (5 6 7 8 3 'sadapt' 'adaptmod' 'sadapt' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL UNKNOWN SUBROUTINE GENERIC) (UNKNOWN 0 0 0 UNKNOWN ()) 14 0 (15 16 17 18 19 20 21 22) () 0 () () () 0 0) +15 'n' '' 'n' 14 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +16 'maxpts' '' 'maxpts' 14 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +17 'functn' '' 'functn' 14 ((PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC BODY +UNKNOWN DUMMY FUNCTION ALWAYS_EXPLICIT) (REAL 8 0 0 REAL ()) 23 0 (24 25) +() 17 () () () 0 0) 18 'abseps' '' 'abseps' 14 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 19 'releps' '' 'releps' 14 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN @@ -28,13 +35,17 @@ DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 22 'inform' '' 'inform' 14 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -15 'n' '' 'n' 14 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +24 'n' '' 'n' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -16 'maxpts' '' 'maxpts' 14 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +25 'z' '' 'z' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 +0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +5 'ndim' '' 'ndim' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +6 'mincls' '' 'mincls' 4 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +7 'maxcls' '' 'maxcls' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -17 'functn' '' 'functn' 14 ((PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC BODY -UNKNOWN DUMMY FUNCTION ALWAYS_EXPLICIT) (REAL 8 0 0 REAL ()) 23 0 (24 25) -() 17 () () () 0 0) 8 'functn' '' 'functn' 4 ((PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC BODY UNKNOWN DUMMY FUNCTION ALWAYS_EXPLICIT) (REAL 8 0 0 REAL ()) 26 0 (27 28) () 8 () () () 0 0) @@ -48,22 +59,11 @@ DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 13 'inform' '' 'inform' 4 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -5 'ndim' '' 'ndim' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -6 'mincls' '' 'mincls' 4 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN -DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -7 'maxcls' '' 'maxcls' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 27 'n' '' 'n' 26 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 28 'z' '' 'z' 26 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -24 'n' '' 'n' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -25 'z' '' 'z' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 -0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) ) ('adapt' 0 2 'sadapt' 0 3) diff --git a/pywafo/src/wafo/source/rind2007/c1c2mod.mod b/pywafo/src/wafo/source/rind2007/c1c2mod.mod index de6a79f..e872502 100644 --- a/pywafo/src/wafo/source/rind2007/c1c2mod.mod +++ b/pywafo/src/wafo/source/rind2007/c1c2mod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '0' created from rind71mod.f on Wed Aug 05 06:26:34 2009 -MD5:b430fe7101e61f66883eafc0a9944272 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from rind71mod.f on Wed Jun 01 13:58:12 2011 +MD5:b9fa45d5661c17be39136cf5490c0256 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -17,22 +17,22 @@ UNKNOWN SUBROUTINE GENERIC ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 UNKNOWN ()) 3 0 (4 5 6 7 8 9) () 0 () () () 0 0) 10 'c1c2mod' 'c1c2mod' 'c1c2mod' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) -8 'sq' '' 'sq' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +6 'cm' '' 'cm' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -9 'ind' '' 'ind' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION -DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT ( -INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -6 'cm' '' 'cm' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +7 'b1' '' 'b1' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -4 'c1' '' 'c1' 3 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 5 'c2' '' 'c2' 3 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -7 'b1' '' 'b1' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +8 'sq' '' 'sq' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +4 'c1' '' 'c1' 3 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +9 'ind' '' 'ind' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT ( +INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) ) ('c1c2' 0 2 'c1c2mod' 0 10) diff --git a/pywafo/src/wafo/source/rind2007/funcmod.mod b/pywafo/src/wafo/source/rind2007/funcmod.mod index 049abd3..a5407ba 100644 --- a/pywafo/src/wafo/source/rind2007/funcmod.mod +++ b/pywafo/src/wafo/source/rind2007/funcmod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '0' created from rind71mod.f on Wed Aug 05 05:36:49 2009 -MD5:d64139159f9b7d1a62e18500b19b3b23 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from rind71mod.f on Wed Jun 01 13:58:12 2011 +MD5:2c451be5c9893103ed0c8d39952ddead -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -39,14 +39,6 @@ UNKNOWN ALLOCATABLE DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 DEFERRED () 19 'xd' 'funcmod' 'xd' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN ALLOCATABLE DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 DEFERRED () ()) 0 () () () 0 0) -9 'ndim' '' 'ndim' 8 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -10 'w' '' 'w' 8 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 -0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -11 'xind' '' 'xind' 8 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN RESULT ALWAYS_EXPLICIT) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () -0 0) 13 'ndim' '' 'ndim' 12 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 14 'w' '' 'w' 12 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION @@ -55,6 +47,14 @@ DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 15 'xind' '' 'xind' 12 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN RESULT ALWAYS_EXPLICIT) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +9 'ndim' '' 'ndim' 8 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +10 'w' '' 'w' 8 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 +0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +11 'xind' '' 'xind' 8 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN RESULT ALWAYS_EXPLICIT) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () +0 0) ) ('big' 0 4 'cm' 0 5 'cmn' 0 6 'funcmod' 0 7 'mvnfun' 0 2 'mvnfun2' 0 3 diff --git a/pywafo/src/wafo/source/rind2007/quad.mod b/pywafo/src/wafo/source/rind2007/quad.mod index 1295d4c..b5fc9e0 100644 --- a/pywafo/src/wafo/source/rind2007/quad.mod +++ b/pywafo/src/wafo/source/rind2007/quad.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '0' created from rind71mod.f on Mon Mar 07 09:38:11 2011 -MD5:5fe7f8d121252e680c2bd7d7c177fa9d -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from rind71mod.f on Wed Jun 01 13:58:12 2011 +MD5:e7a984d62438c272e47330bb57cf7213 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -191,33 +191,9 @@ DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 35 'xma' '' 'xma' 30 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -24 'n' '' 'n' 23 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -25 'wfout' '' 'wfout' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT -(INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -26 'bpout' '' 'bpout' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT -(INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -27 'xmi' '' 'xmi' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -28 'xma' '' 'xma' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -29 'n0' '' 'n0' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -37 'n' '' 'n' 36 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -38 'wfout' '' 'wfout' 36 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT -(INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -39 'bpout' '' 'bpout' 36 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN -DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT -(INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) -40 'xmi' '' 'xmi' 36 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -41 'xma' '' 'xma' 36 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +48 'xma' '' 'xma' 43 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -42 'n0' '' 'n0' 36 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +49 'n0' '' 'n0' 43 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) 10 'n' '' 'n' 9 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) @@ -257,10 +233,34 @@ DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) 47 'xmi' '' 'xmi' 43 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -48 'xma' '' 'xma' 43 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +26 'bpout' '' 'bpout' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT +(INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +27 'xmi' '' 'xmi' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -49 'n0' '' 'n0' 43 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +28 'xma' '' 'xma' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +29 'n0' '' 'n0' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +37 'n' '' 'n' 36 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +38 'wfout' '' 'wfout' 36 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT +(INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +39 'bpout' '' 'bpout' 36 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT +(INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +40 'xmi' '' 'xmi' 36 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +41 'xma' '' 'xma' 36 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +42 'n0' '' 'n0' 36 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +24 'n' '' 'n' 23 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +25 'wfout' '' 'wfout' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT +(INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) ) ('__convert_r4_r8' 0 8 'gausshe0' 0 2 'gaussla0' 0 7 'gaussle0' 0 3 diff --git a/pywafo/src/wafo/source/rind2007/rind71mod.mod b/pywafo/src/wafo/source/rind2007/rind71mod.mod index 156da20..a05325e 100644 --- a/pywafo/src/wafo/source/rind2007/rind71mod.mod +++ b/pywafo/src/wafo/source/rind2007/rind71mod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '0' created from rind71mod.f on Mon Mar 07 09:38:12 2011 -MD5:1bad57d2f2489b66d6c5cedb9317e71b -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from rind71mod.f on Wed Jun 01 13:58:14 2011 +MD5:16e69f326bd2d558dd343c376a49c851 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -25,30 +25,18 @@ DECL UNKNOWN SUBROUTINE GENERIC ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 UNKNOWN 5 'setdata' 'rind71mod' 'setdata' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL UNKNOWN SUBROUTINE GENERIC) (UNKNOWN 0 0 0 UNKNOWN ()) 19 0 (20 21 22 23 24 25 26 27 28) () 0 () () () 0 0) -7 'array' '' 'array' 6 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE ( -CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 -INTEGER ()) 0 '1') ()) 0 () () () 0 0) -26 'dxc' '' 'dxc' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( -REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -27 'dnint' '' 'dnint' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -28 'dxsplt' '' 'dxsplt' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -20 'method' '' 'method' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -21 'scale' '' 'scale' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -22 'depss' '' 'depss' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -23 'dreps' '' 'dreps' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -24 'deps2' '' 'deps2' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 25 'dnit' '' 'dnit' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +24 'deps2' '' 'deps2' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +26 'dxc' '' 'dxc' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) ( +REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 9 'speed' '' 'speed' 8 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +7 'array' '' 'array' 6 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +INTEGER ()) 0 '1') ()) 0 () () () 0 0) 11 'fxind' '' 'fxind' 10 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) @@ -76,6 +64,18 @@ DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +27 'dnint' '' 'dnint' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +28 'dxsplt' '' 'dxsplt' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +20 'method' '' 'method' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +21 'scale' '' 'scale' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +22 'depss' '' 'depss' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +23 'dreps' '' 'dreps' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) ) ('echo' 0 2 'initdata' 0 3 'rind71' 0 4 'setdata' 0 5) diff --git a/pywafo/src/wafo/source/rind2007/rindmod.mod b/pywafo/src/wafo/source/rind2007/rindmod.mod index 5f4f16a..f9537ed 100644 --- a/pywafo/src/wafo/source/rind2007/rindmod.mod +++ b/pywafo/src/wafo/source/rind2007/rindmod.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '0' created from rindmod.f on Fri Jul 09 20:01:04 2010 -MD5:bc2c220667849c09b8a376ad185f37fa -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from rindmod.f on Wed Jun 01 13:58:11 2011 +MD5:952989d08389e36ef0c45fd0fff78fc0 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -49,6 +49,12 @@ DECL UNKNOWN SUBROUTINE GENERIC ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 UNKNOWN 3 'setconstants' 'rindmod' 'setconstants' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL UNKNOWN SUBROUTINE GENERIC ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 UNKNOWN ()) 27 0 (28 29 30 31 32 33 34 35 36 37) () 0 () () () 0 0) +28 'method' '' 'method' 27 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +OPTIONAL DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +29 'xcscale' '' 'xcscale' 27 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +OPTIONAL DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +30 'abseps' '' 'abseps' 27 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +OPTIONAL DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 31 'releps' '' 'releps' 27 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN OPTIONAL DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 32 'coveps' '' 'coveps' 27 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN @@ -63,12 +69,6 @@ DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) OPTIONAL DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 37 'nc1c2' '' 'nc1c2' 27 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN OPTIONAL DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -28 'method' '' 'method' 27 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -OPTIONAL DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -29 'xcscale' '' 'xcscale' 27 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -OPTIONAL DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -30 'abseps' '' 'abseps' 27 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN -OPTIONAL DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 16 'vals' '' 'vals' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (1 ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) diff --git a/pywafo/src/wafo/source/rind2007/rindmod.pyd b/pywafo/src/wafo/source/rind2007/rindmod.pyd index d0fce23..1c75f5e 100644 Binary files a/pywafo/src/wafo/source/rind2007/rindmod.pyd and b/pywafo/src/wafo/source/rind2007/rindmod.pyd differ diff --git a/pywafo/src/wafo/spectrum/dispersion_relation.py b/pywafo/src/wafo/spectrum/dispersion_relation.py index a531943..45fed47 100644 --- a/pywafo/src/wafo/spectrum/dispersion_relation.py +++ b/pywafo/src/wafo/spectrum/dispersion_relation.py @@ -53,9 +53,10 @@ def k2w(k1, k2=0e0, h=inf, g=9.81, u1=0e0, u2=0e0): Example ------- >>> from numpy import arange - >>> k2w(arange(0.01,.5,0.2))[0] + >>> import wafo.spectrum.dispersion_relation as wsd + >>> wsd.k2w(arange(0.01,.5,0.2))[0] array([ 0.3132092 , 1.43530485, 2.00551739]) - >>> k2w(arange(0.01,.5,0.2),h=20)[0] + >>> wsd.k2w(arange(0.01,.5,0.2),h=20)[0] array([ 0.13914927, 1.43498213, 2.00551724]) ''' @@ -117,11 +118,12 @@ def w2k(w, theta=0.0, h=inf, g=9.81, count_limit=100): Example ------- >>> import pylab as plb + >>> import wafo.spectrum.dispersion_relation as wsd >>> w = plb.linspace(0,3); >>> h = plb.plot(w,w2k(w)[0]) - >>> w2k(range(4))[0] + >>> wsd.w2k(range(4))[0] array([ 0. , 0.1019368 , 0.4077472 , 0.91743119]) - >>> w2k(range(4),h=20)[0] + >>> wsd.w2k(range(4),h=20)[0] array([ 0. , 0.10503601, 0.40774726, 0.91743119]) >>> plb.close('all') diff --git a/pywafo/src/wafo/wave_theory/__init__.py b/pywafo/src/wafo/wave_theory/__init__.py new file mode 100644 index 0000000..c4a9572 --- /dev/null +++ b/pywafo/src/wafo/wave_theory/__init__.py @@ -0,0 +1,2 @@ +from core import * +import dispersion_relation \ No newline at end of file diff --git a/pywafo/src/wafo/wave_theory/core.py b/pywafo/src/wafo/wave_theory/core.py new file mode 100644 index 0000000..e51ed9a --- /dev/null +++ b/pywafo/src/wafo/wave_theory/core.py @@ -0,0 +1,562 @@ +''' +Created on 3. juni 2011 + +@author: pab +''' +import numpy as np +from numpy import exp, expm1, inf, nan, pi, hstack, where, atleast_1d, cos, sin +from dispersion_relation import w2k, k2w + + +def hyperbolic_ratio(a, b, sa, sb): + ''' + Return ratio of hyperbolic functions + to allow extreme variations of arguments. + + Parameters + ---------- + a, b : array-like + arguments vectors of the same size + sa, sb : scalar integers + defining the hyperbolic function used, i.e., f(x,1)=cosh(x), f(x,-1)=sinh(x) + + Returns + ------- + r : ndarray + f(a,sa)/f(b,sb), ratio of hyperbolic functions of same + size as a and b + Examples + -------- + >>> x = [-2,0,2] + >>> hyperbolic_ratio(x,1,1,1) # gives r=cosh(x)/cosh(1) + array([ 2.438107 , 0.64805427, 2.438107 ]) + >>> hyperbolic_ratio(x,1,1,-1) # gives r=cosh(x)/sinh(1) + array([ 3.20132052, 0.85091813, 3.20132052]) + >>> hyperbolic_ratio(x,1,-1,1) # gives r=sinh(x)/cosh(1) + array([-2.35040239, 0. , 2.35040239]) + >>> hyperbolic_ratio(x,1,-1,-1) # gives r=sinh(x)/sinh(1) + array([-3.08616127, 0. , 3.08616127]) + >>> hyperbolic_ratio(1,x,1,1) # gives r=cosh(1)/cosh(x) + array([ 0.41015427, 1.54308063, 0.41015427]) + >>> hyperbolic_ratio(1,x,1,-1) # gives r=cosh(1)/sinh(x) + array([-0.42545906, inf, 0.42545906]) + >>> hyperbolic_ratio(1,x,-1,1) # gives r=sinh(1)/cosh(x) + array([ 0.3123711 , 1.17520119, 0.3123711 ]) + >>> hyperbolic_ratio(1,x,-1,-1) # gives r=sinh(1)/sinh(x) + array([-0.32402714, inf, 0.32402714]) + + See also + -------- + tran + ''' + + ak, bk, sak, sbk = np.atleast_1d(a, b, np.sign(sa), np.sign(sb)) + # old call + #return exp(ak-bk)*(1+sak*exp(-2*ak))/(1+sbk*exp(-2*bk)) + # TODO: Does not always handle division by zero correctly + + signRatio = np.where(sak * ak < 0, sak, 1) + signRatio = np.where(sbk * bk < 0, sbk * signRatio, signRatio) + + bk = np.abs(bk) + ak = np.abs(ak) + + num = np.where(sak < 0, expm1(-2 * ak), 1 + exp(-2 * ak)) + den = np.where(sbk < 0, expm1(-2 * bk), 1 + exp(-2 * bk)) + iden = np.ones(den.shape) * inf + ind = np.flatnonzero(den != 0) + iden.flat[ind] = 1.0 / den[ind] + val = np.where(num == den, 1, num * iden) + return signRatio * exp(ak - bk) * val #((sak+exp(-2*ak))/(sbk+exp(-2*bk))) + +def sensor_typeid(*sensortypes): + ''' Return ID for sensortype name + + Parameter + --------- + sensortypes : list of strings defining the sensortype + + Returns + ------- + sensorids : list of integers defining the sensortype + + Valid senor-ids and -types for time series are as follows: + 0, 'n' : Surface elevation (n=Eta) + 1, 'n_t' : Vertical surface velocity + 2, 'n_tt' : Vertical surface acceleration + 3, 'n_x' : Surface slope in x-direction + 4, 'n_y' : Surface slope in y-direction + 5, 'n_xx' : Surface curvature in x-direction + 6, 'n_yy' : Surface curvature in y-direction + 7, 'n_xy' : Surface curvature in xy-direction + 8, 'P' : Pressure fluctuation about static MWL pressure + 9, 'U' : Water particle velocity in x-direction + 10, 'V' : Water particle velocity in y-direction + 11, 'W' : Water particle velocity in z-direction + 12, 'U_t' : Water particle acceleration in x-direction + 13, 'V_t' : Water particle acceleration in y-direction + 14, 'W_t' : Water particle acceleration in z-direction + 15, 'X_p' : Water particle displacement in x-direction from its mean position + 16, 'Y_p' : Water particle displacement in y-direction from its mean position + 17, 'Z_p' : Water particle displacement in z-direction from its mean position + + Example: + >>> sensor_typeid('W','v') + [11, 10] + >>> sensor_typeid('rubbish') + [nan] + + See also + -------- + sensor_type + ''' + + sensorid_table = dict(n=0, n_t=1, n_tt=2, n_x=3, n_y=4, n_xx=5, + n_yy=6, n_xy=7, p=8, u=9, v=10, w=11, u_t=12, + v_t=13, w_t=14, x_p=15, y_p=16, z_p=17) + try: + return [sensorid_table.get(name.lower(), nan) for name in sensortypes] + except: + raise ValueError('Input must be a string!') + + + +def sensor_type(*sensorids): + ''' + Return sensortype name + + Parameter + --------- + sensorids : vector or list of integers defining the sensortype + + Returns + ------- + sensornames : tuple of strings defining the sensortype + Valid senor-ids and -types for time series are as follows: + 0, 'n' : Surface elevation (n=Eta) + 1, 'n_t' : Vertical surface velocity + 2, 'n_tt' : Vertical surface acceleration + 3, 'n_x' : Surface slope in x-direction + 4, 'n_y' : Surface slope in y-direction + 5, 'n_xx' : Surface curvature in x-direction + 6, 'n_yy' : Surface curvature in y-direction + 7, 'n_xy' : Surface curvature in xy-direction + 8, 'P' : Pressure fluctuation about static MWL pressure + 9, 'U' : Water particle velocity in x-direction + 10, 'V' : Water particle velocity in y-direction + 11, 'W' : Water particle velocity in z-direction + 12, 'U_t' : Water particle acceleration in x-direction + 13, 'V_t' : Water particle acceleration in y-direction + 14, 'W_t' : Water particle acceleration in z-direction + 15, 'X_p' : Water particle displacement in x-direction from its mean position + 16, 'Y_p' : Water particle displacement in y-direction from its mean position + 17, 'Z_p' : Water particle displacement in z-direction from its mean position + + Example: + >>> sensor_type(range(3)) + ('n', 'n_t', 'n_tt') + + See also + -------- + sensor_typeid, tran + ''' + valid_names = ('n', 'n_t', 'n_tt', 'n_x', 'n_y', 'n_xx', 'n_yy', 'n_xy', + 'p', 'u', 'v', 'w', 'u_t', 'v_t', 'w_t', 'x_p', 'y_p', 'z_p', + nan) + ids = atleast_1d(*sensorids) + if isinstance(ids, list): + ids = hstack(ids) + n = len(valid_names) - 1 + ids = where(((ids < 0) | (n < ids)), n , ids) + return tuple(valid_names[i] for i in ids) + +class TransferFunction(object): + ''' + Class for computing transfer functions based on linear wave theory + of the system with input surface elevation, + eta(x0,y0,t) = exp(i*(kx*x0+ky*y0-w*t)), + and output Y determined by sensortype and position of sensor. + + Member methods + -------------- + tran(w, theta, kw) + + Hw = a function of frequency only (not direction) size 1 x Nf + Gwt = a function of frequency and direction size Nt x Nf + w = vector of angular frequencies in Rad/sec. Length Nf + theta = vector of directions in radians Length Nt (default 0) + ( theta = 0 -> positive x axis theta = pi/2 -> positive y axis) + Member variables + ---------------- + pos : [x,y,z] + vector giving coordinate position relative to [x0 y0 z0] (default [0,0,0]) + sensortype = string + defining the sensortype or transfer function in output. + 0, 'n' : Surface elevation (n=Eta) (default) + 1, 'n_t' : Vertical surface velocity + 2, 'n_tt' : Vertical surface acceleration + 3, 'n_x' : Surface slope in x-direction + 4, 'n_y' : Surface slope in y-direction + 5, 'n_xx' : Surface curvature in x-direction + 6, 'n_yy' : Surface curvature in y-direction + 7, 'n_xy' : Surface curvature in xy-direction + 8, 'P' : Pressure fluctuation about static MWL pressure + 9, 'U' : Water particle velocity in x-direction + 10, 'V' : Water particle velocity in y-direction + 11, 'W' : Water particle velocity in z-direction + 12, 'U_t' : Water particle acceleration in x-direction + 13, 'V_t' : Water particle acceleration in y-direction + 14, 'W_t' : Water particle acceleration in z-direction + 15, 'X_p' : Water particle displacement in x-direction from its mean position + 16, 'Y_p' : Water particle displacement in y-direction from its mean position + 17, 'Z_p' : Water particle displacement in z-direction from its mean position + h : real scalar + water depth (default inf) + g : real scalar + acceleration of gravity (default 9.81 m/s**2) + rho : real scalar + water density (default 1028 kg/m**3) + bet : 1 or -1 + 1, theta given in terms of directions toward which waves travel (default) + -1, theta given in terms of directions from which waves come + igam : 1,2 or 3 + 1, if z is measured positive upward from mean water level (default) + 2, if z is measured positive downward from mean water level + 3, if z is measured positive upward from sea floor + thetax, thetay : real scalars + angle in degrees clockwise from true north to positive x-axis and + positive y-axis, respectively. (default theatx=90, thetay=0) + + Example + ------- + >>> import pylab as plt + >>> N=50; f0=0.1; th0=0; h=50; w0 = 2*pi*f0 + >>> t = np.linspace(0,15,N) + >>> eta0 = np.exp(-1j*w0*t) + >>> stypes = ['n', 'n_x', 'n_y']; + >>> tf = TransferFunction(pos=(0, 0, 0), h=50) + >>> vals = [] + >>> fh = plt.plot(t, eta0.real, 'r.') + >>> plt.hold(True) + >>> for i,stype in enumerate(stypes): + ... tf.sensortype = stype + ... Hw, Gwt = tf.tran(w0,th0) + ... vals.append((Hw*Gwt*eta0).real.ravel()) + ... vals[i] + ... fh = plt.plot(t, vals[i]) + >>> plt.show() + + + See also + -------- + dat2dspec, sensor_type, sensor_typeid + + Reference + --------- + Young I.R. (1994) + "On the measurement of directional spectra", + Applied Ocean Research, Vol 16, pp 283-294 + ''' + def __init__(self, pos=(0, 0, 0), sensortype='n', h=inf, g=9.81, rho=1028, + bet=1, igam=1, thetax=90, thetay=0): + self.pos = pos + self.sensortype = sensortype if isinstance(sensortype, str) else sensor_type(sensortype) + self.h = h + self.g = g + self.rho = rho + self.bet = bet + self.igam = igam + self.thetax = thetax + self.thetay = thetay + self._tran_dict = dict(n=self._n, n_t=self._n_t, n_tt=self._n_tt, + n_x=self._n_x, n_y=self._n_y, n_xx=self._n_xx, + n_yy=self._n_yy, n_xy=self._n_xy, + P=self._p, p=self._p, + U=self._u, u=self._u, + V=self._v, v=self._v, + W=self._w, w=self._w, + U_t=self._u_t, u_t=self._u_t, + V_t=self._v_t, v_t=self._v_t, + W_t=self._w_t, w_t=self._w_t, + X_p=self._x_p, x_p=self._x_p, + Y_p=self._y_p, y_p=self._y_p, + Z_p=self._z_p, z_p=self._z_p) + + def tran(self, w, theta=0, kw=None): + ''' + Return transfer functions based on linear wave theory + of the system with input surface elevation, + eta(x0,y0,t) = exp(i*(kx*x0+ky*y0-w*t)), + and output, + Y = Hw*Gwt*eta, determined by sensortype and position of sensor. + + Parameters + ---------- + w : array-like + vector of angular frequencies in Rad/sec. Length Nf + theta : array-like + vector of directions in radians Length Nt (default 0) + ( theta = 0 -> positive x axis theta = pi/2 -> positive y axis) + kw : array-like + vector of wave numbers corresponding to angular frequencies, w. Length Nf + (default calculated with w2k) + + Returns + ------- + Hw = transfer function of frequency only (not direction) size 1 x Nf + Gwt = transfer function of frequency and direction size Nt x Nf + + The complete transfer function Hwt = Hw*Gwt is a function of + w (columns) and theta (rows) size Nt x Nf + ''' + if kw is None: + kw, unusedkw2 = w2k(w, 0, self.h) #wave number as function of angular frequency + + w, theta, kw = np.atleast_1d(w, theta, kw) + # make sure they have the correct orientation + theta.shape = (-1, 1) + kw.shape = (-1,) + w.shape = (-1,) + + tran_fun = self._tran_dict[self.sensortype] + Hw, Gwt = tran_fun(w, theta, kw) + + # New call to avoid singularities. pab 07.11.2000 + # Set Hw to 0 for expressions w*hyperbolic_ratio(z*k,h*k,1,-1)= 0*inf + ind = np.flatnonzero(1 - np.isfinite(Hw)) + Hw.flat[ind] = 0 + + sgn = np.sign(Hw); + k0 = np.flatnonzero(sgn < 0) + if len(k0): # make sure Hw>=0 ie. transfer negative signs to Gwt + Gwt[:, k0] = -Gwt[:, k0] + Hw[:, k0] = -Hw[:, k0] + + if self.igam == 2: + #pab 09 Oct.2002: bug fix + # Changing igam by 2 should affect the directional result in the same way that changing eta by -eta! + Gwt = -Gwt + return Hw, Gwt + __call__ = tran +#---Private member methods + def _get_ee_cthxy(self, theta, kw): + # convert from angle in degrees to radians + bet = self.bet + thxr = self.thetax * pi / 180 + thyr = self.thetay * pi / 180 + + cthx = bet * cos(theta - thxr + pi / 2) + #cthy = cos(theta-thyr-pi/2) + cthy = bet * sin(theta - thyr) + + # Compute location complex exponential + x, y, unused_z = list(self.pos) + ee = exp((1j * (x * cthx + y * cthy)) * kw) # exp(i*k(w)*(x*cos(theta)+y*sin(theta)) size Nt X Nf + return ee, cthx, cthy + + def _get_zk(self, kw): + h = self.h + z = self.pos[2] + if self.igam == 1: + zk = kw * (h + z) # z measured positive upward from mean water level (default) + elif self.igam == 2: + zk = kw * (h - z) # z measured positive downward from mean water level + else: + zk = kw * z # z measured positive upward from sea floor + return zk + + #--- Surface elevation --- + def _n(self, w, theta, kw): + '''n = Eta = wave profile + ''' + ee, unused_cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + return np.ones_like(w), ee + + #---- Vertical surface velocity and acceleration----- + def _n_t(self, w, theta, kw): + ''' n_t = Eta_t ''' + ee, unused_cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + return w, -1j * ee; + def _n_tt(self, w, theta, kw): + '''n_tt = Eta_tt''' + ee, unused_cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + return w ** 2, -ee + + #--- Surface slopes --- + def _n_x(self, w, theta, kw): + ''' n_x = Eta_x = x-slope''' + ee, cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + return kw, 1j * cthx * ee + def _n_y(self, w, theta, kw): + ''' n_y = Eta_y = y-slope''' + ee, unused_cthx, cthy = self._get_ee_cthxy(theta, kw) + return kw, 1j * cthy * ee + + #--- Surface curvatures --- + def _n_xx(self, w, theta, kw): + ''' n_xx = Eta_xx = Surface curvature (x-dir)''' + ee, cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + return kw ** 2, -(cthx ** 2) * ee + def _n_yy(self, w, theta, kw): + ''' n_yy = Eta_yy = Surface curvature (y-dir)''' + ee, unused_cthx, cthy = self._get_ee_cthxy(theta, kw) + return kw ** 2, -cthy ** 2 * ee + def _n_xy(self, w, theta, kw): + ''' n_xy = Eta_xy = Surface curvature (xy-dir)''' + ee, cthx, cthy = self._get_ee_cthxy(theta, kw) + return kw ** 2, -cthx * cthy * ee + + #--- Pressure--- + def _p(self, w, theta, kw): + ''' pressure fluctuations''' + ee, unused_cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + hk = kw * self.h + zk = self._get_zk(kw) + return self.rho * self.g * hyperbolic_ratio(zk, hk, 1, 1), ee #hyperbolic_ratio = cosh(zk)/cosh(hk) + + #---- Water particle velocities --- + def _u(self, w, theta, kw): + ''' U = x-velocity''' + ee, cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + hk = kw * self.h + zk = self._get_zk(kw) + return w * hyperbolic_ratio(zk, hk, 1, -1), cthx * ee# w*cosh(zk)/sinh(hk), cos(theta)*ee + def _v(self, w, theta, kw): + '''V = y-velocity''' + ee, unused_cthx, cthy = self._get_ee_cthxy(theta, kw) + hk = kw * self.h + zk = self._get_zk(kw) + return w * hyperbolic_ratio(zk, hk, 1, -1), cthy * ee # w*cosh(zk)/sinh(hk), sin(theta)*ee + def _w(self, w, theta, kw): + ''' W = z-velocity''' + ee, unused_cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + hk = kw * self.h + zk = self._get_zk(kw) + return w * hyperbolic_ratio(zk, hk, -1, -1), -1j * ee # w*sinh(zk)/sinh(hk), -? + + #---- Water particle acceleration --- + def _u_t(self, w, theta, kw): + ''' U_t = x-acceleration''' + ee, cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + hk = kw * self.h + zk = self._get_zk(kw) + return (w ** 2) * hyperbolic_ratio(zk, hk, 1, -1), -1j * cthx * ee # w^2*cosh(zk)/sinh(hk), ? + + def _v_t(self, w, theta, kw): + ''' V_t = y-acceleration''' + ee, unused_cthx, cthy = self._get_ee_cthxy(theta, kw) + hk = kw * self.h + zk = self._get_zk(kw) + return (w ** 2) * hyperbolic_ratio(zk, hk, 1, -1), -1j * cthy * ee # w^2*cosh(zk)/sinh(hk), ? + def _w_t(self, w, theta, kw): + ''' W_t = z-acceleration''' + ee, unused_cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + hk = kw * self.h + zk = self._get_zk(kw) + return (w ** 2) * hyperbolic_ratio(zk, hk, -1, -1), -ee # w*sinh(zk)/sinh(hk), ? + + #---- Water particle displacement --- + def _x_p(self, w, theta, kw): + ''' X_p = x-displacement''' + ee, cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + hk = kw * self.h + zk = self._get_zk(kw) + return hyperbolic_ratio(zk, hk, 1, -1), 1j * cthx * ee # cosh(zk)./sinh(hk), ? + def _y_p(self, w, theta, kw): + ''' Y_p = y-displacement''' + ee, unused_cthx, cthy = self._get_ee_cthxy(theta, kw) + hk = kw * self.h + zk = self._get_zk(kw) + return hyperbolic_ratio(zk, hk, 1, -1), 1j * cthy * ee # cosh(zk)./sinh(hk), ? + def _z_p(self, w, theta, kw): + ''' Z_p = z-displacement''' + ee, unused_cthx, unused_cthy = self._get_ee_cthxy(theta, kw) + hk = kw * self.h + zk = self._get_zk(kw) + return hyperbolic_ratio(zk, hk, -1, -1), ee # sinh(zk)./sinh(hk), ee + +def wave_pressure(z, Hm0, h=10000, g=9.81, rho=1028): + ''' + Calculate pressure amplitude due to water waves. + + Parameters + ---------- + z : array-like + depth where pressure is calculated [m] + Hm0 : array-like + significant wave height (same as the average of the 1/3'rd highest + waves in a seastate. [m] + h : real scalar + waterdepth (default 10000 [m]) + g : real scalar + acceleration of gravity (default 9.81 m/s**2) + rho : real scalar + water density (default 1028 kg/m**3) + + + Returns + ------- + p : ndarray + pressure amplitude due to water waves at water depth z. [Pa] + + PRESSURE calculate pressure amplitude due to water waves according to + linear theory. + + Example + ----- + >>> import pylab as plt + >>> z = -np.linspace(10,20) + >>> fh = plt.plot(z, wave_pressure(z, Hm0=1, h=20)) + >>> plt.show() + + See also + -------- + w2k + + + u = psweep.Fn*sqrt(mgf.length*9.81) + z = -10; h = inf; + Hm0 = 1.5;Tp = 4*sqrt(Hm0); + S = jonswap([],[Hm0,Tp]); + Hw = tran(S.w,0,[0 0 -z],'P',h) + Sm = S; + Sm.S = Hw.'.*S.S; + x1 = spec2sdat(Sm,1000); + pwave = pressure(z,Hm0,h) + + plot(psweep.x{1}/u, psweep.f) + hold on + plot(x1(1:100,1)-30,x1(1:100,2),'r') + ''' + + + # Assume seastate with jonswap spectrum: + + Tp = 4 * np.sqrt(Hm0) + gam = jonswap_peakfact(Hm0, Tp) + Tm02 = Tp / (1.30301 - 0.01698 * gam + 0.12102 / gam) + w = 2 * np.pi / Tm02 + kw, unused_kw2 = w2k(w, 0, h) + + hk = kw * h + zk1 = kw * z + zk = hk + zk1 # z measured positive upward from mean water level (default) + #zk = hk-zk1; % z measured positive downward from mean water level + #zk1 = -zk1; + #zk = zk1; % z measured positive upward from sea floor + + # cosh(zk)/cosh(hk) approx exp(zk) for large h + # hyperbolic_ratio(zk,hk,1,1) = cosh(zk)/cosh(hk) + # pr = np.where(np.pi < hk, np.exp(zk1), hyperbolic_ratio(zk, hk, 1, 1)) + pr = hyperbolic_ratio(zk, hk, 1, 1) + pressure = (rho * g * Hm0 / 2) * pr + +# pos = [np.zeros_like(z),np.zeros_like(z),z] +# tf = TransferFunction(pos=pos, sensortype='p', h=h, rho=rho, g=g) +# Hw, Gwt = tf.tran(w,0) +# pressure2 = np.abs(Hw) * Hm0 / 2 + + return pressure + +if __name__ == '__main__': + pass \ No newline at end of file diff --git a/pywafo/src/wafo/wave_theory/dispersion_relation.py b/pywafo/src/wafo/wave_theory/dispersion_relation.py new file mode 100644 index 0000000..45fed47 --- /dev/null +++ b/pywafo/src/wafo/wave_theory/dispersion_relation.py @@ -0,0 +1,205 @@ +""" +Dispersion relation module +-------------------------- +k2w - Translates from wave number to frequency +w2k - Translates from frequency to wave number +""" +import warnings +#import numpy as np +from numpy import (atleast_1d, sqrt, zeros_like, arctan2, where, tanh, any, #@UnresolvedImport + sin, cos, sign, inf, flatnonzero, finfo, cosh, abs) #@UnresolvedImport + +__all__ = ['k2w', 'w2k'] + +def k2w(k1, k2=0e0, h=inf, g=9.81, u1=0e0, u2=0e0): + ''' Translates from wave number to frequency + using the dispersion relation + + Parameters + ---------- + k1 : array-like + wave numbers [rad/m]. + k2 : array-like, optional + second dimension wave number + h : real scalar, optional + water depth [m]. + g : real scalar, optional + acceleration of gravity, see gravity + u1, u2 : real scalars, optional + current velocity [m/s] along dimension 1 and 2. + note: when u1!=0 | u2!=0 then theta is not calculated correctly + + Returns + ------- + w : ndarray + angular frequency [rad/s]. + theta : ndarray + direction [rad]. + + Dispersion relation + ------------------- + w = sqrt(g*K*tanh(K*h)) ( 0 < w < inf) + theta = arctan2(k2,k1) (-pi < theta < pi) + where + K = sqrt(k1**2+k2**2) + + The shape of w and theta is the common shape of k1 and k2 according to the + numpy broadcasting rules. + + See also + -------- + w2k + + Example + ------- + >>> from numpy import arange + >>> import wafo.spectrum.dispersion_relation as wsd + >>> wsd.k2w(arange(0.01,.5,0.2))[0] + array([ 0.3132092 , 1.43530485, 2.00551739]) + >>> wsd.k2w(arange(0.01,.5,0.2),h=20)[0] + array([ 0.13914927, 1.43498213, 2.00551724]) + ''' + + k1i, k2i, hi, gi, u1i, u2i = atleast_1d(k1, k2, h, g, u1, u2) + + if k1i.size == 0: + return zeros_like(k1i) + ku1 = k1i*u1i + ku2 = k2i*u2i + + theta = arctan2(k2, k1) + + k = sqrt(k1i**2+k2i**2) + w = where(k>0, ku1+ku2+sqrt(gi*k*tanh(k*hi)), 0.0) + + cond = (w<0) + if any(cond): + txt0 = ''' + Waves and current are in opposite directions + making some of the frequencies negative. + Here we are forcing the negative frequencies to zero. + ''' + warnings.warn(txt0) + w = where(cond, 0.0, w) # force w to zero + + return w, theta + +def w2k(w, theta=0.0, h=inf, g=9.81, count_limit=100): + ''' + Translates from frequency to wave number + using the dispersion relation + + Parameters + ---------- + w : array-like + angular frequency [rad/s]. + theta : array-like, optional + direction [rad]. + h : real scalar, optional + water depth [m]. + g : real scalar or array-like of size 2. + constant of gravity [m/s**2] or 3D normalizing constant + + Returns + ------- + k1, k2 : ndarray + wave numbers [rad/m] along dimension 1 and 2. + + Description + ----------- + Uses Newton Raphson method to find the wave number k in the dispersion relation + w**2= g*k*tanh(k*h). + The solution k(w) => k1 = k(w)*cos(theta) + k2 = k(w)*sin(theta) + The size of k1,k2 is the common shape of w and theta according to numpy + broadcasting rules. If w or theta is scalar it functions as a constant + matrix of the same shape as the other. + + Example + ------- + >>> import pylab as plb + >>> import wafo.spectrum.dispersion_relation as wsd + >>> w = plb.linspace(0,3); + >>> h = plb.plot(w,w2k(w)[0]) + >>> wsd.w2k(range(4))[0] + array([ 0. , 0.1019368 , 0.4077472 , 0.91743119]) + >>> wsd.w2k(range(4),h=20)[0] + array([ 0. , 0.10503601, 0.40774726, 0.91743119]) + + >>> plb.close('all') + + See also + -------- + k2w + ''' + wi, th, gi = atleast_1d(w, theta, g) + + if wi.size == 0: + return zeros_like(wi) + + k = 1.0*sign(wi)*wi**2.0 #% deep water + if h > 10. ** 25: + k2 = k*sin(th)/gi[-1] #%size np x nf + k1 = k*cos(th)/gi[0] + return k1, k2 + + + if gi.size > 1: + txt0 = ''' + Finite depth in combination with 3D normalization (len(g)=2) is not implemented yet. + ''' + raise ValueError(txt0) + + + find = flatnonzero + eps = finfo(float).eps + + oshape = k.shape + wi, k = wi.ravel(), k.ravel() + + # Newton's Method + # Permit no more than count_limit iterations. + + hn = zeros_like(k) + ix = find((wi<0) | (00 and count < count_limit): + ki = k[ix] + hn[ix] = (ki*tanh(ki*h)-wi[ix]**2.0/gi)/(tanh(ki*h)+ki*h/(cosh(ki*h)**2.0)) + knew = ki - hn[ix] + # Make sure that the current guess is not zero. + # When Newton's Method suggests steps that lead to zero guesses + # take a step 9/10ths of the way to zero: + ksmall = find(abs(knew)==0) + if ksmall.size>0: + knew[ksmall] = ki[ksmall] / 10.0 + hn[ix[ksmall]] = ki[ksmall]-knew[ksmall] + + k[ix] = knew + # disp(['Iteration ',num2str(count),' Number of points left: ' num2str(length(ix)) ]), + + ix = find((abs(hn) > sqrt(eps)*abs(k)) * abs(hn) > sqrt(eps)) + count += 1 + + if count == count_limit: + txt1 = ''' W2K did not converge. + The maximum error in the last step was: %13.8f''' % max(hn[ix]) + warnings.warn(txt1) + + k.shape = oshape + + k2 = k*sin(th) + k1 = k*cos(th) + return k1, k2 + +def main(): + import doctest + doctest.testmod() + +if __name__ == '__main__': + main() \ No newline at end of file