Giter VIP home page Giter VIP logo

aoslib's People

Contributors

david-ian-brown avatar greghat avatar jjhelmus avatar jwblin avatar scollis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aoslib's Issues

How should we assign code review?

When someone makes a pull request, do we want to delegate someone to do the review? If so, do y'all want me to do that or would someone else like to?

Install Failed...error with smooth and tsoar

Hello all...is this package still alive and being actively worked? I have a problem when trying to install the package it fails on building smooth.f and there also seems to be a problem with tsoar.f and i'm not sure how to fix this. Below is output from my python setup.py build command. Thanks for any help you can provide!

running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "aoslib.awips" sources
creating build
creating build/src.linux-x86_64-2.7
creating build/src.linux-x86_64-2.7/aoslib
f2py options: []
f2py: aoslib/awips.pyf
Reading fortran codes...
Reading file 'aoslib/awips.pyf' (format:free)
Post-processing...
Block: awips
Block: add_aray
Block: dgeocomps
Block: meanomega
Block: smooth
Block: add_by_cnst
Block: div_aray
Block: mixrat
Block: alt2press
Block: dmixr
Block: mslp2thkns
Block: spechum2
Block: avwind
Block: dotvectors
Block: mult_aray
Block: spechum
Block: richno
Block: dzdlnp
Block: mult_by_cnst
Block: sub_aray
Block: calccondprdef
Block: eqlev
Block: radnorm
Block: soldec
Block: timeq
Block: calccondpr
Block: eqp
Block: nadgdt
Block: sweat
Block: calcdpd
Block: esat
Block: natlog
Block: sweatidx
Block: calcli
Block: exp_aray
Block: negarea
Block: tdofesat
Block: calcpv
Block: fndiverg
Block: temp2theta
Block: calcrh2
Block: posarea
Block: theta2temp
Block: calcrh
Block: fortconbuf
Block: contr1_b
Block: smoothing_b
Block: zeroitoutbuf
Block: pottemp
Block: thetawa
Block: calctd2
Block: frontogen
Block: powercalc
Block: totals
Block: calctd
Block: frzlev
Block: press2alt
Block: tplcl
Block: calcthetae2
Block: fsdiverg
Block: pres_stability
Block: tpzlcl
Block: calcthetae
Block: g2gkinematics
Block: pseudolift
Block: pmalrrhs
Block: tsoar
Block: calctv2
Block: gusts
Block: ptozsa
Block: tv2temp
Block: calctv
Block: hailsiz
Block: pvadv
Block: uvcomp
Block: calctw
Block: mytw
Block: calchelicity
Block: pvalue
Block: ver_pts
Block: cclpar
Block: hgt2pres
Block: pvpres
Block: ver_range
Block: cgp
Block: interp1
Block: qdiverg
Block: virttemp
Block: comp_by
Block: intpos
Block: qvector
Block: virtualt
Block: constant
Block: b1_odd
Block: i4_odd
Block: bitest
Block: jnint
Block: jint
Block: jmax0
Block: jmin0
Block: jisign
Block: jiabs
Block: iiand
Block: iishft
Block: iior
Block: imod
Block: radiation
Block: vp
Block: crossvectors
Block: isen_stability
Block: radrtns
Block: sunset
Block: vvel
Block: ctop
Block: koffset
Block: rang2d
Block: cv_date2jul
Block: lapserate
Block: replinrange
Block: winddir
Block: cvgust
Block: lclpar
Block: windspeed
Block: ddff
Block: lfcpar
Block: rotvectors
Block: wndrho
Block: deftrk
Block: liftedp
Block: setqsmooth
Block: ztopsa
Block: density
Block: lintrans
Block: slfront
Block: derivative
Block: matsln
Block: slqdiv
Block: derived_icing
Block: max_min
Block: slqvect
Block: forecast
Block: mxtp
Block: rhbar
Block: solax
Post-processing (stage 2)...
Building modules...
Building module "awips"...
Constructing wrapper function "add_aray"...
result = add_aray(a,b,[ni,mode])
Constructing wrapper function "dgeocomps"...
dugdx,dugdy,dvgdx,dvgdy = dgeocomps(z,f,spax,spay,[nx,ny])
Constructing wrapper function "meanomega"...
omega = meanomega(p1,u1,v1,p2,u2,v2,dx,dy,dt,[nx])
Constructing wrapper function "smooth"...
output = smooth(input,smth,[ix])
Constructing wrapper function "add_by_cnst"...
result = add_by_cnst(a,const_bn,[ni])
Constructing wrapper function "div_aray"...
result = div_aray(a,b,[ni])
Constructing wrapper function "mixrat"...
q = mixrat(p,t,rh,[ni])
Constructing wrapper function "alt2press"...
p = alt2press(alt,z,[ni])
Creating wrapper for Fortran function "dmixr"("dmixr")...
Constructing wrapper function "dmixr"...
dmixr = dmixr(temp,pres,iw)
Constructing wrapper function "mslp2thkns"...
thkns = mslp2thkns(mslp,hgt,[ni])
Constructing wrapper function "spechum2"...
q = spechum2(p,td,[ni])
Constructing wrapper function "avwind"...
avwind(elev,top,bot,hw,pw,tw,uw,vw,uavg,vavg,avdir,avspd,[nw])
Constructing wrapper function "dotvectors"...
result = dotvectors(ax,ay,bx,by,[ni])
Constructing wrapper function "mult_aray"...
mult_aray(a,b,result,ni,[mni,nj])
Constructing wrapper function "spechum"...
q = spechum(p,t,rh,[ni])
Constructing wrapper function "richno"...
richno(ht,hw,uw,vw,rho,buoy,richnum,[nlvls,nw])
Creating wrapper for Fortran function "dzdlnp"("dzdlnp")...
Constructing wrapper function "dzdlnp"...
dzdlnp = dzdlnp(p,t,td)
Constructing wrapper function "mult_by_cnst"...
result = mult_by_cnst(a,const_bn,[ni])
Constructing wrapper function "sub_aray"...
sub_aray(a,b,result,ni,[mni,nj])
Constructing wrapper function "calccondprdef"...
q = calccondprdef(p,t,rh,[ni])
Constructing wrapper function "eqlev"...
eqlev(p,ht,tp,te,plfc,eptpar,peqlev,heqlev,teqlev,[npar])
Creating wrapper for Fortran function "radnorm"("radnorm")...
Constructing wrapper function "radnorm"...
radnorm = radnorm(jd)
Creating wrapper for Fortran function "soldec"("soldec")...
Constructing wrapper function "soldec"...
soldec = soldec(jd)
Creating wrapper for Fortran function "timeq"("timeq")...
Constructing wrapper function "timeq"...
timeq = timeq(jd)
Constructing wrapper function "calccondpr"...
q = calccondpr(p,t,rh,[ni])
Constructing wrapper function "eqp"...
eqp(deltap,p,ht,t,td,n,pp,htt,tt,ttd,nn)
Constructing wrapper function "nadgdt"...
nadgdt(u,v,a,ni,dx,dy,dadxdt,dadydt,[mni,nj])
Constructing wrapper function "sweat"...
sweat(p,t,td,pw,uw,vw,swidx,[nlvls,nw])
Constructing wrapper function "calcdpd"...
dpd = calcdpd(t,rh,[ni])
Creating wrapper for Fortran function "esat"("esat")...
Constructing wrapper function "esat"...
esat = esat(t)
Constructing wrapper function "natlog"...
b = natlog(a,[ni])
Constructing wrapper function "sweatidx"...
sweatidx(tt,td8,u8,v8,u5,v5,ni,q,[mni,nj])
Constructing wrapper function "calcli"...
li = calcli(p,t,rh,t5,[p5,ni])
Constructing wrapper function "exp_aray"...
b = exp_aray(a,[ni])
Constructing wrapper function "negarea"...
negarea(pcb,tcb,hcb,plfc,hlfc,tlfc,thdpar,eptpar,p,ht,te,tp,cinfrmcape,negbuoy,[npar])
Creating wrapper for Fortran function "tdofesat"("tdofesat")...
Constructing wrapper function "tdofesat"...
tdofesat = tdofesat(es)
Constructing wrapper function "calcpv"...
pvort = calcpv(p_up,p_low,o_up,o_low,u_up,v_up,u_low,v_low,dx,dy,coriolis,[ni])
Constructing wrapper function "fndiverg"...
fndiverg(zmid,ztop,zbot,ptop,pbot,ni,dx,dy,f,fnx,fny,w1,dtdx,dtdy,qx,qy,fndiv,[mni,nj])
Constructing wrapper function "temp2theta"...
temp2theta(p,aflgp,t,aflgt,theta,nx,[mnx,ny])
Constructing wrapper function "calcrh2"...
rh = calcrh2(p,t,q,[ni])
Constructing wrapper function "posarea"...
posarea(plfc,peqlev,tlfc,teqlev,hlfc,heqlev,eptpar,p,ht,te,tp,buoy,cin,[npar])
Constructing wrapper function "theta2temp"...
theta2temp(p,aflgp,theta,aflgth,t,nx,[mnx,ny])
Constructing wrapper function "calcrh"...
rh = calcrh(t,td,[ni])
Constructing wrapper function "fortconbuf"...
getarrdims:warning: assumed shape array, using 0 instead of '
'
getarrdims:warning: assumed shape array, using 0 instead of '
'
getarrdims:warning: assumed shape array, using 0 instead of '
'
getarrdims:warning: assumed shape array, using 0 instead of '
'
fortconbuf(array,work,scale,offset,mode,seed,xpoints,ypoints,npoints,badlo,badhi,status,[mnx,nx,ny])
Constructing wrapper function "contr1_b"...
getarrdims:warning: assumed shape array, using 0 instead of '
'
getarrdims:warning: assumed shape array, using 0 instead of ''
getarrdims:warning: assumed shape array, using 0 instead of '
'
contr1_b(istart,jstart,sstart,dat,work,xpoints,ypoints,npoints,[mnx,nx,ny])
Constructing wrapper function "smoothing_b"...
smoothing_b(smoothness,npass)
Constructing wrapper function "zeroitoutbuf"...
getarrdims:warning: assumed shape array, using 0 instead of ''
zeroitoutbuf(work,nn)
Creating wrapper for Fortran function "pottemp"("pottemp")...
Constructing wrapper function "pottemp"...
pottemp = pottemp(temp,dwpt,pres,iw)
Creating wrapper for Fortran function "thetawa"("thetawa")...
Constructing wrapper function "thetawa"...
thetawa = thetawa(temp,dwpt,pres,iw)
Constructing wrapper function "calctd2"...
td = calctd2(p,t,q,[ni])
Constructing wrapper function "frontogen"...
frontogen(zmid,ztop,zbot,ptop,pbot,ni,dx,dy,f,w1,w2,w3,dtdx,dtdy,qx,qy,fgen,[mni,nj])
Constructing wrapper function "powercalc"...
result = powercalc(a,b,[ni])
Constructing wrapper function "totals"...
totals(p,t,td,nlvls,totidx,crstot,vertot)
Constructing wrapper function "calctd"...
td = calctd(t,rh,[ni])
Constructing wrapper function "frzlev"...
frzlev(elev,p,ht,t,pfrz,hfrz,[nlvls])
Constructing wrapper function "press2alt"...
alt = press2alt(p,z,[ni])
Constructing wrapper function "tplcl"...
tplcl(tk,td,pinit,tl,pl,ier)
Constructing wrapper function "calcthetae2"...
q = calcthetae2(p,t,td,[ni])
Constructing wrapper function "fsdiverg"...
fsdiverg(zmid,ztop,zbot,ptop,pbot,ni,dx,dy,f,fsx,fsy,w1,dtdx,dtdy,qx,qy,fsdiv,[mni,nj])
Constructing wrapper function "pres_stability"...
pres_stability(t_up,t_low,p_up,p_low,stab,ni,[mni,nj])
Constructing wrapper function "tpzlcl"...
tpzlcl(tk,tdk,pinit,iw,tl,pl,zl,ier)
Constructing wrapper function "calcthetae"...
q = calcthetae(p,t,rh,[ni])
Constructing wrapper function "g2gkinematics"...
g2gkinematics(udx,vdy,q,spax,spay,nx,ny,choice,scalar,[mnx,mny])
Constructing wrapper function "pseudolift"...
pseudolift(pstart,pfinish,soln,[n])
Creating wrapper for Fortran function "pmalrrhs"("pmalrrhs")...
Constructing wrapper function "pmalrrhs"...
pmalrrhs = pmalrrhs(p,tk)
Constructing wrapper function "tsoar"...
tsoar(elev,p,z,t,theta,tpmax,ptlxec,zlnec,tlnec,zlxec,tlxec,soarindx,trigtemp,[nl])
Constructing wrapper function "calctv2"...
tv = calctv2(t,q,[ni])
Constructing wrapper function "gusts"...
gusts(p,t,td,gstpot,[np])
Creating wrapper for Fortran function "ptozsa"("ptozsa")...
Constructing wrapper function "ptozsa"...
ptozsa = ptozsa(p)
Constructing wrapper function "tv2temp"...
t = tv2temp(tv,q,[ni])
Constructing wrapper function "calctv"...
tv = calctv(p,t,rh,[ni])
Constructing wrapper function "hailsiz"...
hailsiz(vvmax,hsize)
Constructing wrapper function "pvadv"...
pvadv(p_up,p_low,o_up,o_low,pva,pvort,ni,u_up,v_up,u_low,v_low,dx,dy,coriolis,u,v,[mni,nj])
Constructing wrapper function "uvcomp"...
uvcomp(dir,spd,u,v,nlvls)
Constructing wrapper function "calctw"...
tw = calctw(p,t,rh,[ni])
Creating wrapper for Fortran function "mytw"("mytw")...
Constructing wrapper function "mytw"...
mytw = mytw(k,kd,p)
Constructing wrapper function "calchelicity"...
calchelicity(hw,pw,uw,vw,elev,ztop,ghx,ghy,diravg,spdavg,stmdir,stmspdkts,helicity,srhel,[nw])
Constructing wrapper function "pvalue"...
pvalue(pres,p,np,param,value)
Constructing wrapper function "ver_pts"...
ver_pts(inp,count,init,ni,[mni,nj])
Constructing wrapper function "cclpar"...
pccl,tccl,hccl = cclpar(mix,p,ht,t)
Constructing wrapper function "hgt2pres"...
p = hgt2pres(z,[ni])
Constructing wrapper function "pvpres"...
pvpres(t_up,t_low,p_up,p_low,pvort,ni,u_up,v_up,u_low,v_low,avort1,avort2,dtdx1,dtdy1,dtdx2,dtdy2,dx,dy,coriolis,[mni,nj])
Constructing wrapper function "ver_range"...
ver_range(inp,count,minval,maxval,mode,ni,[mni,nj])
Creating wrapper for Fortran function "cgp"("cgp")...
Constructing wrapper function "cgp"...
cgp = cgp(tempip,dwptip,presip,thetawip,sfcpres,toppres,iw,deltap)
Creating wrapper for Fortran function "interp1"("interp1")...
Constructing wrapper function "interp1"...
interp1 = interp1(y1,y3,x1,x2,x3)
Constructing wrapper function "qdiverg"...
qdiverg(zmid,ztop,zbot,ptop,pbot,ni,dx,dy,f,w1,w2,w3,w4,w5,qx,qy,qdiv,[mni,nj])
Creating wrapper for Fortran function "virttemp"("virttemp")...
Constructing wrapper function "virttemp"...
virttemp = virttemp(t,td,p)
Constructing wrapper function "comp_by"...
comp_by(u,v,uu,vv,ni,control,comp,comp2,[mni,nj])
Constructing wrapper function "intpos"...
intpos(vdif,ht,p,t,nlvls)
Constructing wrapper function "qvector"...
qvector(zmid,ztop,zbot,ptop,pbot,ni,dx,dy,f,dugdx,dvgdx,dugdy,dvgdy,dtdx,dtdy,qx,qy,[mni,nj])
Constructing wrapper function "virtualt"...
virtualt(t,td,p,tvir,[nlvls])
Constructing wrapper function "constant"...
a = constant(a,const_bn,[ni])
Creating wrapper for Fortran function "b1_odd"("b1_odd")...
Constructing wrapper function "b1_odd"...
b1_odd = b1_odd(arg)
Creating wrapper for Fortran function "i4_odd"("i4_odd")...
Constructing wrapper function "i4_odd"...
i4_odd = i4_odd(arg)
Creating wrapper for Fortran function "bitest"("bitest")...
Constructing wrapper function "bitest"...
bitest = bitest(arg1,arg2)
Creating wrapper for Fortran function "jnint"("jnint")...
Constructing wrapper function "jnint"...
jnint = jnint(arg)
Creating wrapper for Fortran function "jint"("jint")...
Constructing wrapper function "jint"...
jint = jint(arg)
Creating wrapper for Fortran function "jmax0"("jmax0")...
Constructing wrapper function "jmax0"...
jmax0 = jmax0(arg1,arg2)
Creating wrapper for Fortran function "jmin0"("jmin0")...
Constructing wrapper function "jmin0"...
jmin0 = jmin0(arg1,arg2)
Creating wrapper for Fortran function "jisign"("jisign")...
Constructing wrapper function "jisign"...
jisign = jisign(arg1,arg2)
Creating wrapper for Fortran function "jiabs"("jiabs")...
Constructing wrapper function "jiabs"...
jiabs = jiabs(arg)
Creating wrapper for Fortran function "iiand"("iiand")...
Constructing wrapper function "iiand"...
iiand = iiand(arg1,arg2)
Creating wrapper for Fortran function "iishft"("iishft")...
Constructing wrapper function "iishft"...
iishft = iishft(arg1,arg2)
Creating wrapper for Fortran function "iior"("iior")...
Constructing wrapper function "iior"...
iior = iior(arg1,arg2)
Creating wrapper for Fortran function "imod"("imod")...
Constructing wrapper function "imod"...
imod = imod(arg1,arg2)
Constructing wrapper function "radiation"...
radiation(lat,lng,lsm,jd,hr,bext,od,solrad)
Creating wrapper for Fortran function "vp"("vp")...
Constructing wrapper function "vp"...
vp = vp(tk,iw)
Constructing wrapper function "crossvectors"...
result = crossvectors(ax,ay,bx,by,[ni])
Constructing wrapper function "isen_stability"...
isen_stability(p_up,p_low,o_up,o_low,stab,ni,[mni,nj])
Constructing wrapper function "radrtns"...
radrtns()
Constructing wrapper function "etravg"...
etravg(do_bn,lat,dec,hour,deltim,hetrhz,hetrdn)
Constructing wrapper function "etrhrly"...
etrhrly(do_bn,lat,dec,midhr,hetrhz,hetrdn)
Constructing wrapper function "etrday"...
etrday(lat,dec,do_bn,detrhz)
Creating wrapper for Fortran function "sunset"("sunset")...
Constructing wrapper function "sunset"...
sunset = sunset(lat,dec)
Constructing wrapper function "vvel"...
vvel(pcb,peqlev,p,ht,tp,tve,tvp,wlcl,vv,vvmax,[npar])
Constructing wrapper function "ctop"...
cldtop = ctop(p,ht,vv,peqlev,[npar])
Constructing wrapper function "koffset"...
k0 = koffset(temp,[ni])
Creating wrapper for Fortran function "rang2d"("rang2d")...
Constructing wrapper function "rang2d"...
getarrdims:warning: assumed shape array, using 0 instead of '
'
rang2d = rang2d(a,nx,ny,lo,hi,[mnx])
Constructing wrapper function "cv_date2jul"...
cv_date2jul(yr,mon,day,jd,istatus)
Constructing wrapper function "lapserate"...
lapserate(tlo,pzlo,thi,pzhi,vc,nx,lapse,[mnx,ny])
Constructing wrapper function "replinrange"...
replinrange(a,testop,lo,hi,repl,result,ni,[mni,nj])
Constructing wrapper function "winddir"...
winddir(u,v,ff,ni,[mni,nj])
Constructing wrapper function "cvgust"...
cvgust(dd7,ui,gstpot)
Constructing wrapper function "lclpar"...
lclpar(meanmix,ts,p,ht,t,td,plcl,tlcl,hlcl,[nlvls])
Constructing wrapper function "windspeed"...
windspeed(u,v,ff,ni,[mni,nj])
Constructing wrapper function "ddff"...
ddff(u,v,dir,spd,nlvls)
Constructing wrapper function "lfcpar"...
lfcpar(eptpar,pcb,tcb,hcb,t1,t2,p1,ht1,plfc1,hlfc1,tlfc1,plfc2,hlfc2,tlfc2,[npar])
Constructing wrapper function "rotvectors"...
rotvectors(ax,ay,angle,bx,by,ni,[mni,nj])
Constructing wrapper function "wndrho"...
wndrho(rho,ht,nlvls,hw,nw,rhow)
Constructing wrapper function "deftrk"...
deftrk(tcb,pcb,thdpar,eptpar)
Constructing wrapper function "liftedp"...
liftedp(p,t,ht,tvir,pcb,hcb,tcb,wcb,thdpar,eptpar,pl,tl,pp,htp,tp,tvirp,te,tvire,nparcel,[nlvls,npar])
Constructing wrapper function "setqsmooth"...
setqsmooth(npass,smthwgt)
Creating wrapper for Fortran function "ztopsa"("ztopsa")...
Constructing wrapper function "ztopsa"...
ztopsa = ztopsa(z)
Constructing wrapper function "density"...
density(p,tvir,rho,[nlvls])
Constructing wrapper function "lintrans"...
result = lintrans(a,mult,add,[ni])
Constructing wrapper function "slfront"...
fgen = slfront(z,t,p,dx,dy,coriolis,[ni])
Constructing wrapper function "derivative"...
result = derivative(a1,a2,b1,b2,[ni])
Constructing wrapper function "matsln"...
matsln(a,v,p,s,n,status,[mn])
Constructing wrapper function "slqdiv"...
slqdiv(z,t,p,dx,dy,coriolis,ni,slqd,slqx,slqy,w1,w2,w3,w4,w5,[mni,nj])
Constructing wrapper function "derived_icing"...
icg = derived_icing(t,rh,[ni])
Constructing wrapper function "max_min"...
max_min(a,b,result,ni,mode,[mni,nj])
Constructing wrapper function "slqvect"...
slqvect(z,t,p,dx,dy,coriolis,ni,slqx,slqy,dugdx,dugdy,dvgdx,dvgdy,dtdx,dtdy,[mni,nj])
Constructing wrapper function "forecast"...
forecast(yr,mon,day,hr,min_bn,stnid,snow,slat,slon,p,ht,t,td,ftmax,status,[nlvls])
Constructing wrapper function "mxtp"...
getarrdims:warning: assumed shape array, using 0 instead of ''
getarrdims:warning: assumed shape array, using 0 instead of '
'
mxtp(ansol,deltap,sfcp,p2,tl,deltaz,lvl,ctmax)
Constructing wrapper function "rhbar"...
getarrdims:warning: assumed shape array, using 0 instead of ''
getarrdims:warning: assumed shape array, using 0 instead of '
'
getarrdims:warning: assumed shape array, using 0 instead of ''
getarrdims:warning: assumed shape array, using 0 instead of '
'
getarrdims:warning: assumed shape array, using 0 instead of '_'
rhbar(endlvl,mrh,nclyr,sfcp,p,tl,tdl)
Constructing wrapper function "solax"...
solax(julday,month,slat,tyminc,tstart,tstop,tsrad)
Constructing COMMON block support for "connewcmnbuf"...
celcnt,labsep,dlx,dld,dly,c,labsep2,patern,labstr,chrn,conval,convals,mxavg,mnavg,cmask
Constructing COMMON block support for "smoothcmnbuf"...
npasses,wgt1
Constructing COMMON block support for "qsmthcmn"...
passes,smoothness
Wrote C/API module "_awips" to file "build/src.linux-x86_64-2.7/aoslib/_awipsmodule.c"
Fortran 77 wrappers are saved to "build/src.linux-x86_64-2.7/aoslib/_awips-f2pywrappers.f"
adding 'build/src.linux-x86_64-2.7/fortranobject.c' to sources.
adding 'build/src.linux-x86_64-2.7' to include_dirs.
copying /home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/f2py/src/fortranobject.c -> build/src.linux-x86_64-2.7
copying /home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/f2py/src/fortranobject.h -> build/src.linux-x86_64-2.7
adding 'build/src.linux-x86_64-2.7/aoslib/_awips-f2pywrappers.f' to sources.
building data_files sources
build_src: building npy-pkg config files
running build_py
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/aoslib
copying aoslib/version.py -> build/lib.linux-x86_64-2.7/aoslib
copying aoslib/awips.py -> build/lib.linux-x86_64-2.7/aoslib
copying aoslib/setup.py -> build/lib.linux-x86_64-2.7/aoslib
copying aoslib/init.py -> build/lib.linux-x86_64-2.7/aoslib
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
customize Gnu95FCompiler
Found executable /usr/bin/gfortran
customize Gnu95FCompiler
customize Gnu95FCompiler using build_ext
building 'aoslib._awips' extension
compiling C sources
C compiler: gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC

creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/build
creating build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/aoslib
creating build/temp.linux-x86_64-2.7/aoslib
creating build/temp.linux-x86_64-2.7/aoslib/src
compile options: '-Ibuild/src.linux-x86_64-2.7 -I/home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include -I/home/aaron_anderson/anaconda/envs/ounwrfwebimages/include/python2.7 -c'
gcc: aoslib/src/interp.c
gcc: aoslib/src/temp_mixratio.c
gcc: build/src.linux-x86_64-2.7/aoslib/_awipsmodule.c
In file included from /home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1804,
from /home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:17,
from /home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
from build/src.linux-x86_64-2.7/fortranobject.h:13,
from build/src.linux-x86_64-2.7/aoslib/_awipsmodule.c:18:
/home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION"
build/src.linux-x86_64-2.7/aoslib/_awipsmodule.c:219: warning: ‘f2py_size’ defined but not used
gcc: build/src.linux-x86_64-2.7/fortranobject.c
In file included from /home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1804,
from /home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:17,
from /home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
from build/src.linux-x86_64-2.7/fortranobject.h:13,
from build/src.linux-x86_64-2.7/fortranobject.c:2:
/home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION"
gcc: aoslib/src/temp_of_te.c
gcc: aoslib/src/adiabatic_te.c
compiling Fortran sources
Fortran f77 compiler: /usr/bin/gfortran -fno-range-check -fPIC -O3 -funroll-loops
Fortran f90 compiler: /usr/bin/gfortran -Wall -g -fno-second-underscore -fPIC -O3 -funroll-loops
Fortran fix compiler: /usr/bin/gfortran -Wall -g -ffixed-form -fno-second-underscore -Wall -g -fno-second-underscore -fPIC -O3 -funroll-loops
compile options: '-Ibuild/src.linux-x86_64-2.7 -I/home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include -I/home/aaron_anderson/anaconda/envs/ounwrfwebimages/include/python2.7 -c'
gfortran:f77: aoslib/src/replinrange.f
gfortran:f77: aoslib/src/dmixr.f
gfortran:f77: aoslib/src/calctd2.f
gfortran:f77: aoslib/src/helicity.f
gfortran:f77: aoslib/src/qdiverg.f
gfortran:f77: aoslib/src/windspeed.f
gfortran:f77: aoslib/src/maxmin.f
gfortran:f77: aoslib/src/frzlev.f
gfortran:f77: aoslib/src/mxtp.f
gfortran:f77: aoslib/src/calctd.f
gfortran:f77: aoslib/src/slfront.f
gfortran:f77: aoslib/src/tplcl.f
gfortran:f77: aoslib/src/BulkRichNo.f
gfortran:f77: aoslib/src/vvel.f
gfortran:f77: aoslib/src/cvgust.f
gfortran:f77: aoslib/src/calcdpd.f
gfortran:f77: aoslib/src/setqsmooth.f
gfortran:f77: aoslib/src/tdofesat.f
gfortran:f77: aoslib/src/solax.f
gfortran:f77: aoslib/src/ddff.f
gfortran:f77: aoslib/src/spechum.f
gfortran:f77: aoslib/src/cgp.f
gfortran:f77: aoslib/src/fsdiverg.f
gfortran:f77: aoslib/src/calcpv.f
gfortran:f77: aoslib/src/cclpar.f
gfortran:f77: aoslib/src/calcthetae2.f
gfortran:f77: aoslib/src/temp2theta.f
gfortran:f77: aoslib/src/wndrho.f
gfortran:f77: aoslib/src/dzdlnp.f
gfortran:f77: aoslib/src/dgeocomps.f
gfortran:f77: aoslib/src/addbycnst.f
gfortran:f77: aoslib/src/eqp.f
gfortran:f77: aoslib/src/pvalue.f
gfortran:f77: aoslib/src/pottemp.f
gfortran:f77: aoslib/src/multaray.f
gfortran:f77: aoslib/src/slqdiv.f
gfortran:f77: aoslib/src/crossvectors.f
gfortran:f77: aoslib/src/radrtns.f
gfortran:f77: aoslib/src/virtualt.f
gfortran:f77: aoslib/src/IntrinsicFunctions.f
gfortran:f77: aoslib/src/lapserate.f
gfortran:f77: aoslib/src/totals.f
gfortran:f77: aoslib/src/rang2d.f
gfortran:f77: aoslib/src/subaray.f
gfortran:f77: aoslib/src/calctv2.f
gfortran:f77: aoslib/src/esat.f
gfortran:f77: aoslib/src/matsln.f
gfortran:f77: aoslib/src/hailsiz.f
gfortran:f77: aoslib/src/vp.f
gfortran:f77: aoslib/src/mslp2thkns.f
gfortran:f77: aoslib/src/isenstable.f
gfortran:f77: aoslib/src/lintrans.f
gfortran:f77: aoslib/src/deftrk.f
gfortran:f77: aoslib/src/uvcomp.f
gfortran:f77: aoslib/src/avwind.f
gfortran:f77: aoslib/src/theta2temp.f
gfortran:f77: aoslib/src/powercalc.f
gfortran:f77: aoslib/src/interp1.f
gfortran:f77: aoslib/src/presstable.f
gfortran:f77: aoslib/src/press2alt.f
gfortran:f77: aoslib/src/sweat.f
gfortran:f77: aoslib/src/divaray.f
gfortran:f77: aoslib/src/constant.f
gfortran:f77: aoslib/src/multbycnst.f
gfortran:f77: aoslib/src/g2gkinematics.f
gfortran:f77: aoslib/src/nadgdt.f
gfortran:f77: aoslib/src/fortconbuf.f
gfortran:f77: aoslib/src/dotvectors.f
gfortran:f77: aoslib/src/mixrat.f
gfortran:f77: aoslib/src/pvpres.f
gfortran:f77: aoslib/src/natlog.f
gfortran:f77: aoslib/src/calctv.f
gfortran:f77: aoslib/src/derivative.f
gfortran:f77: aoslib/src/verpts.f
gfortran:f77: aoslib/src/lfcpar.f
gfortran:f77: aoslib/src/cv_date2jul.f
gfortran:f77: aoslib/src/rhbar.f
gfortran:f77: aoslib/src/hgt2pres.f
gfortran:f77: aoslib/src/alt2press.f
gfortran:f77: aoslib/src/ptozsa.f
gfortran:f77: aoslib/src/forecast.f
gfortran:f77: aoslib/src/slqvect.f
gfortran:f77: aoslib/src/calcli.f
gfortran:f77: aoslib/src/rotvectors.f
gfortran:f77: aoslib/src/virttemp.f
gfortran:f77: aoslib/src/comp_by.f
gfortran:f77: aoslib/src/koffset.f
gfortran:f77: aoslib/src/posarea.f
gfortran:f77: aoslib/src/tv2temp.f
gfortran:f77: aoslib/src/calcthetae.f
gfortran:f77: aoslib/src/winddir.f
gfortran:f77: aoslib/src/smooth.f
In file aoslib/src/smooth.f:43

        IF (INPUT(I,J).GT.FLG .OR.                                  
                                 1

Error: Syntax error in expression at (1)
In file aoslib/src/smooth.f:44

   1       INPUT(IP,JP).GT.FLG .OR. INPUT(IM,JM).GT.FLG .OR.        
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:45

   1       INPUT(IP,JM).GT.FLG .OR. INPUT(IM,JP).GT.FLG .OR.        
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:46

   1       INPUT(I,JP).GT.FLG .OR. INPUT(I,JM).GT.FLG .OR.          
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:47

   1       INPUT(IP,J).GT.FLG .OR. INPUT(IM,J).GT.FLG) THEN         
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:49

       ELSE                                                         
                                                                   1

Error: Unexpected ELSE statement at (1)
In file aoslib/src/smooth.f:51

   1      + INPUT (IP,JP) + INPUT (IP,JM)                           
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:53

   1      + INPUT (I ,JM) + INPUT (IM,J )                           
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:54

     OUTPUT(I,J) = SMTH1*SUM1 + SMTH2*SUM2 +                        
                                           1

Error: Syntax error in expression at (1)
In file aoslib/src/smooth.f:55

   1        SMTH3*INPUT(I,J)                                        
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:56

       END IF                                                       
         1

Error: Expecting END DO statement at (1)
In file aoslib/src/smooth.f:69

        IF (INPUT(I,J).GT.FLG .OR.                                  
                                 1

Error: Syntax error in expression at (1)
In file aoslib/src/smooth.f:70

   1       INPUT(IP,J).GT.FLG .OR. INPUT(IM,J).GT.FLG) THEN         
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:72

       ELSE                                                         
                                                                   1

Error: Unexpected ELSE statement at (1)
In file aoslib/src/smooth.f:74

   1      + SMTH5 * (INPUT(IM,J) + INPUT(IP,J))                     
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:75

       END IF                                                       
         1

Error: Expecting END DO statement at (1)
In file aoslib/src/smooth.f:85

        IF (INPUT(I,J).GT.FLG .OR.                                  
                                 1

Error: Syntax error in expression at (1)
In file aoslib/src/smooth.f:86

   1       INPUT(I,JM).GT.FLG .OR. INPUT(I,JP).GT.FLG) THEN         
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:88

       ELSE                                                         
                                                                   1

Error: Unexpected ELSE statement at (1)
In file aoslib/src/smooth.f:90

   1      + SMTH5 * (INPUT(I,JM) + INPUT(I,JP))                     
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:91

       END IF                                                       
         1

Error: Expecting END DO statement at (1)
In file aoslib/src/smooth.f:43

        IF (INPUT(I,J).GT.FLG .OR.                                  
                                 1

Error: Syntax error in expression at (1)
In file aoslib/src/smooth.f:44

   1       INPUT(IP,JP).GT.FLG .OR. INPUT(IM,JM).GT.FLG .OR.        
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:45

   1       INPUT(IP,JM).GT.FLG .OR. INPUT(IM,JP).GT.FLG .OR.        
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:46

   1       INPUT(I,JP).GT.FLG .OR. INPUT(I,JM).GT.FLG .OR.          
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:47

   1       INPUT(IP,J).GT.FLG .OR. INPUT(IM,J).GT.FLG) THEN         
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:49

       ELSE                                                         
                                                                   1

Error: Unexpected ELSE statement at (1)
In file aoslib/src/smooth.f:51

   1      + INPUT (IP,JP) + INPUT (IP,JM)                           
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:53

   1      + INPUT (I ,JM) + INPUT (IM,J )                           
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:54

     OUTPUT(I,J) = SMTH1*SUM1 + SMTH2*SUM2 +                        
                                           1

Error: Syntax error in expression at (1)
In file aoslib/src/smooth.f:55

   1        SMTH3*INPUT(I,J)                                        
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:56

       END IF                                                       
         1

Error: Expecting END DO statement at (1)
In file aoslib/src/smooth.f:69

        IF (INPUT(I,J).GT.FLG .OR.                                  
                                 1

Error: Syntax error in expression at (1)
In file aoslib/src/smooth.f:70

   1       INPUT(IP,J).GT.FLG .OR. INPUT(IM,J).GT.FLG) THEN         
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:72

       ELSE                                                         
                                                                   1

Error: Unexpected ELSE statement at (1)
In file aoslib/src/smooth.f:74

   1      + SMTH5 * (INPUT(IM,J) + INPUT(IP,J))                     
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:75

       END IF                                                       
         1

Error: Expecting END DO statement at (1)
In file aoslib/src/smooth.f:85

        IF (INPUT(I,J).GT.FLG .OR.                                  
                                 1

Error: Syntax error in expression at (1)
In file aoslib/src/smooth.f:86

   1       INPUT(I,JM).GT.FLG .OR. INPUT(I,JP).GT.FLG) THEN         
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:88

       ELSE                                                         
                                                                   1

Error: Unexpected ELSE statement at (1)
In file aoslib/src/smooth.f:90

   1      + SMTH5 * (INPUT(I,JM) + INPUT(I,JP))                     
  1

Error: Unclassifiable statement at (1)
In file aoslib/src/smooth.f:91

       END IF                                                       
         1

Error: Expecting END DO statement at (1)
error: Command "/usr/bin/gfortran -fno-range-check -fPIC -O3 -funroll-loops -Ibuild/src.linux-x86_64-2.7 -I/home/aaron_anderson/anaconda/envs/ounwrfwebimages/lib/python2.7/site-packages/numpy/core/include -I/home/aaron_anderson/anaconda/envs/ounwrfwebimages/include/python2.7 -c -c aoslib/src/smooth.f -o build/temp.linux-x86_64-2.7/aoslib/src/smooth.o" failed with exit status 1

Motivation for the package

Let me start out with my thoughts about motivation (in no particular order):

(1) There are many meteorological, climatological, and oceanographic quantities that have standardized definitions. This includes constants (e.g., dry gas constant) as well as derived quantities (e.g., saturation vapor pressure, isentropic potential vorticity, potential temperature). It doesn't make sense that every person/research group writes their own routines to make such calculations as that leads to duplicated effort, routines whose results are not invertible between one another (e.g., routines using different numbers of significant figures for constants), and uneven levels of testing of each group's individual routines.

(2) A number of existing and developing projects (e.g., cdms, PyClimate, Iris) provide well-tested routines to calculate some of these quantities but not many of them. Creating a standardized suite would also mean the still-developing projects would not have to write their own version if they did not want to.

(3) While existing projects provide very powerful OOP structured interfaces and data structures that leverage metadata, there is still a need for a suite of procedures that primarily act on just arrays. For many if not most of the standardized quanities described, metadata does not play a substantial role. Additionally, these algorithms can
be readily adapted to other planetary environments if they are just quantities that are calculated from arrays. Finally, such a suite of array-based procedures would be a halfway-house for people making the transition from Matlab/IDL to OOP. For such users, using an OOP-centric package with many dependencies can be cognitively daunting, when all they want to do is calculate potential temperature for an array.

(4) Many of these routines exist in Fortran form and, while not having been tested formally using software engineering best-practices, nonetheless have been substantially tested via use over several decades (e.g., the AWIPS I routines). Making use of these routines in some way would be an easy first-cut at creating a standardized library.

Thoughts? Responses? What motivations do y'all think should be included? I figure with a list of motivations, this will give us a goals list.

Towards that end, let me make one comment regarding goals/scope: My own view of this package is that it should calculate basically any AOS quantity you would want, and in that way is very broad, but that it should do little more than that, and in that way is very narrow. I don't think it should duplicate what cdms, Iris, pandas, or other more sophisticated data/object structures are capable of doing as someone who wants that capability, it seems to me, would be better served using cdms, Iris, etc. utilities. It also introduces more dependencies to the package. I think it's fine for routines in the package to accept cdms, Iris, pandas, etc. objects to operate on, but the output would still be an array (or maybe a pandas dataframe). This is just my $0.02; am happy to be convinced otherwise :). One problem I see is what about quantities that require manipulation of the time axis? Do we accept only input where time has been adequately processed? Or not calculate those quantities and leave those to cdms, Iris, etc.?

Agreement With License and Certification of Code

Hi all,

We're at the point where we should agree on a license for the package. The current front-runners are 2-clause and 3-clause BSD. Please put in a comment as to your vote. After we settle on a license, every contributor should put in a GitHub comment here saying that they agree to the license and that all code they've contributed and will contribute is their own work and/or that they have permission to contribute the code to this package. Thanks!

Best,
-Johnny

Should provenance be recorded in the code files?

Jonathan H. wrote: "As for the provenance/version of the files, I would vote against including this information in the file themselves or a python docstring. I think that a betterplace for information like this belongs in the version control system (git) or a separate text file." I was wondering if Jonathan (and others who agree) could share why you feel this way. If provenance changes often I can see why this would be good, but for code that doesn't get changed very often, wouldn't it be a net plus to include where the code came from in the file?

Sub-module organization

David mentioned: "Another possibility is that functions from particular sources should be contained in sub-modules, e.g. aos.awips. However, this option would probably get in the way of grouping the codes that are related in functionality."

Here's an initial thought I have about this. How about creating sub-module groupings that relate to code structure rather than functionality but importing and assigning the functions in sub-modules at the module level. Thus, while the foo function may be in the module submod, in the init.py or aoslib.py file there would be a line import submod.foo as foo. This way, new users would have access to all the package's functions in the package without having to import sub-modules. Thoughts?

Wrapping steps

Jonathan H. wrote: "In the PR I tried to give an example of what needs to be done using the calctd rountine. The steps were:

  1. Adjust the f2py signature for the subroutine to properly reflect the input, output and hidden parameters.
  2. Write a Python function which calls the wrapped function.
  3. Create a docstring consistent with the Numpy/SciPy docstring standard, much of this can be modified from documentation in the Fortran file.
    (https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt)
  4. Create a test function (or class) which can run with nose+unittest
  5. Add the documentation and rebuild.

This was an iterative/parallel process and some of the detail should be discussed before we do start performing this for all the routines in the library."

Thoughts from folks?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.