Re: [f2py] f2py and lapack DLARUV
Stephane Raynaud <[email protected]> Fri, 20 May 2011 16:58:05 +0200
| Newsgroups | gmane.comp.python.f2py.user |
|---|---|
| Message-ID | <[email protected]> |
I can't since my goal is to use a series of third party specific fortran modules that use lapack. However, I think about rewritting (one day...) these modules in python and use scipy as you suggest. On Fri, May 20, 2011 at 4:36 PM, Paul Anton Letnes <[email protected]> wrote: > Just a thought, maybe I'm missing something, but: can't you simply use scipy? It contains thin wrappers for alot of LAPACK calls in: > from scipy.linalg.lapack import flapack as lapack > Now, I think this will give you a list of routine names that are wrapped: > for routine in dir(lapack): > print routine > > There is probably some "bloat" by using all of scipy, but it will save you a lot of compiling. Also, you could look at how scipy wraps lapack, and learn from that. > > YMMV > Paul > > On 20. mai 2011, at 05.02, Stephane Raynaud wrote: > >> Since the only subroutine used from lapack is DLARUV with no >> dependencies, I folowed your excellent idea : >> ---- >> f2py -m testmod testfile.f90 -h testfile.pyf >> f2py testfile.pyf dlaruv.f >> --- >> >> It failed on the second phase : >> --- >> |...] >> Block: DLARUV >> Post-processing (stage 2)... >> Tip: If your original code is Fortran source then you must use -m option. >> [...] >> TypeError: All blocks must be python module blocks but got 'subroutine' >> --- >> >> However, it work using the same idea with : >> ---- >> f2py -m testmod testfile.f90 -h testfile.pyf # setup interface only >> for testfunc >> f2py -c -m testmod testfile.f90 testfile.pyf dlaruv.f # build >> --- >> >> >> Thus, this solution is sufficient for me, thanks alot !!! >> >> However, it would be great to have a solution for the when using the >> lapack/blas library itself. >> >> On Fri, May 20, 2011 at 11:35 AM, Pearu Peterson >> <[email protected]> wrote: >>> >>> >>> On 05/20/2011 10:39 AM, Stephane Raynaud wrote: >>>> Hi, >>>> >>>> trying to build a fortran extension linked to lapack (f77), I faced a >>>> problem that I reduced to the following example. >>>> >>>> ------------ testfile.f90 ------------ >>>> subroutine testfunc >>>> integer,parameter :: n=2 >>>> integer :: iseed(4) >>>> real(kind=8) :: x(n) >>>> iseed = (/0,1,3,4/) >>>> call DLARUV(iseed, n, x) >>>> end subroutine testfunc >>>> -------------------------------------- >>>> >>>> Then : f2py -c -m testmod -llapack -lblas >>>> -L/home/raynaud/soft/lapack_gfortran/lib testfile.f90 >>>> >>>> It rises the following error (using gfortran) : >>>> >>>> /usr/bin/gfortran -Wall -Wall -shared >>>> /tmp/tmpzBIKPf/tmp/tmpzBIKPf/src.linux-x86_64-2.6/testmodule.o >>>> /tmp/tmpzBIKPf/tmp/tmpzBIKPf/src.linux-x86_64-2.6/fortranobject.o >>>> /tmp/tmpzBIKPf/test.o -L/home/raynaud/soft/lapack_gfortran/lib >>>> -L/soft/cdat/5.2.0/lib -llapack -lblas -lpython2.6 -lgfortran -o >>>> ./test.so >>>> /usr/bin/ld: >>>> /home/raynaud/soft/lapack_gfortran/lib/liblapack.a(dlaruv.o): >>>> relocation R_X86_64_32S against `.data' can not be used when making a >>>> shared object; recompile with -fPIC >>>> /home/raynaud/soft/lapack_gfortran/lib/liblapack.a: could not read >>>> symbols: Bad value >>>> >>>> >>>> BLAS and LAPACK where compilated with gfortran and options '-fPIC -O3'. >>> >>> Are you absolutely sure? >>> >>> Can you try creating the testmod without using lapack and blas libraries >>> but their sources? For example: >>> >>> f2py -m testmod testfile.f90 -h testfile.pyf >>> f2py testfile.pyf /path/to/lapack/src/*.f /path/to/blas/src/*.f >>> >>> Pearu >>> >>>> I tried to use the DATA statement directly in a subroutine that I >>>> converted to a python module, and it worked. >>>> >>>> >>>> Any idea ? >>>> >>>> Thanks. >>>> >>> >>> _______________________________________________ >>> f2py-users mailing list >>> [email protected] >>> http://cens.ioc.ee/mailman/listinfo/f2py-users >>> >> >> >> >> -- >> Stephane Raynaud >> >> _______________________________________________ >> f2py-users mailing list >> [email protected] >> http://cens.ioc.ee/mailman/listinfo/f2py-users > > > _______________________________________________ > f2py-users mailing list > [email protected] > http://cens.ioc.ee/mailman/listinfo/f2py-users > -- Stephane Raynaud _______________________________________________ f2py-users mailing list [email protected] http://cens.ioc.ee/mailman/listinfo/f2py-users