! -*- f90 -*- python module __user__routines interface function saprod(transa,m,n,x,y,dparm,iparm) character*1 :: transa integer intent(in) :: m integer intent(in) :: n real depend(m,n),check(len(x)>=(transa[0] == 'n' ? n : m)),dimension((transa[0] == 'n' ? n : m)) :: x real depend(m,n),check(len(y)>=(transa[0] == 'n' ? m : n)),dimension((transa[0] == 'n' ? m : n)) :: y integer dimension(*) :: iparm real dimension(*) :: dparm end function saprod end interface end python module __user__routines python module _spropack ! in interface ! in :_spropack subroutine slansvd(jobu,jobv,m,n,k,kmax,aprod,u,ldu,sigma,bnd,v,ldv,tolin,work,lwork,iwork,liwork,doption,ioption,info,dparm,iparm) ! in :_spropack:PROPACK/single/slansvd.F use __user__routines, aprod=>saprod character*1 intent(in) :: jobu character*1 intent(in) :: jobv integer intent(in) :: m integer intent(in) :: n integer intent(in) :: k integer intent(in) :: kmax external aprod real intent(in,out),dimension(ldu,kmax+1) :: u integer optional,check(shape(u,0)==ldu),depend(u) :: ldu=shape(u,0) real intent(out),dimension(k) :: sigma real intent(out),dimension(k) :: bnd real intent(in,out),dimension(ldv,kmax) :: v integer optional,check(shape(v,0)==ldv),depend(v) :: ldv=shape(v,0) real intent(in) :: tolin real intent(in),dimension(lwork) :: work integer optional,check(len(work)>=lwork),depend(work) :: lwork=len(work) integer intent(in),dimension(liwork) :: iwork integer optional,check(len(iwork)>=liwork),depend(iwork) :: liwork=len(iwork) real intent(in),dimension(3) :: doption integer intent(in),dimension(2) :: ioption integer intent(out) :: info real intent(in),dimension(*) :: dparm integer intent(in),dimension(*) :: iparm integer :: nopx integer :: nreorth integer :: ndot integer :: nreorthu integer :: nreorthv integer :: nitref integer :: nrestart integer :: nbsvd real :: tmvopx real :: tgetu0 real :: tupdmu real :: tupdnu real :: tintv real :: tlanbpro real :: treorth real :: treorthu real :: treorthv real :: telru real :: telrv real :: tbsvd real :: tnorm2 real :: tlansvd integer :: nlandim real :: tritzvec real :: trestart real :: tdot integer :: nsing common /timing/ nopx,nreorth,ndot,nreorthu,nreorthv,nitref,nrestart,nbsvd,tmvopx,tgetu0,tupdmu,tupdnu,tintv,tlanbpro,treorth,treorthu,treorthv,telru,telrv,tbsvd,tnorm2,tlansvd,nlandim,tritzvec,trestart,tdot,nsing end subroutine slansvd subroutine slansvd_irl(which,jobu,jobv,m,n,dim,p,neig,maxiter,aprod,u,ldu,sigma,bnd,v,ldv,tolin,work,lwork,iwork,liwork,doption,ioption,info,dparm,iparm) ! in :_spropack:PROPACK/single/slansvd_irl.F use __user__routines, aprod=>saprod character*1 intent(in) :: which character*1 intent(in) :: jobu character*1 intent(in) :: jobv integer intent(in) :: m integer intent(in) :: n integer intent(in) :: dim integer intent(in) :: p integer intent(in) :: neig integer intent(in) :: maxiter external aprod real intent(in,out),dimension(ldu,dim+1) :: u integer optional,check(shape(u,0)==ldu),depend(u) :: ldu=shape(u,0) real intent(out),dimension(neig) :: sigma real intent(out),dimension(neig) :: bnd real intent(in,out),dimension(ldv,dim) :: v integer optional,check(shape(v,0)==ldv),depend(v) :: ldv=shape(v,0) real intent(in) :: tolin real intent(in),dimension(lwork) :: work integer optional,check(len(work)>=lwork),depend(work) :: lwork=len(work) integer intent(in),dimension(liwork) :: iwork integer optional,check(len(iwork)>=liwork),depend(iwork) :: liwork=len(iwork) real intent(in),dimension(4) :: doption integer intent(in),dimension(2) :: ioption integer intent(out) :: info real intent(in),dimension(*) :: dparm integer intent(in),dimension(*) :: iparm integer :: nopx integer :: nreorth integer :: ndot integer :: nreorthu integer :: nreorthv integer :: nitref integer :: nrestart integer :: nbsvd real :: tmvopx real :: tgetu0 real :: tupdmu real :: tupdnu real :: tintv real :: tlanbpro real :: treorth real :: treorthu real :: treorthv real :: telru real :: telrv real :: tbsvd real :: tnorm2 real :: tlansvd integer :: nlandim real :: tritzvec real :: trestart real :: tdot integer :: nsing common /timing/ nopx,nreorth,ndot,nreorthu,nreorthv,nitref,nrestart,nbsvd,tmvopx,tgetu0,tupdmu,tupdnu,tintv,tlanbpro,treorth,treorthu,treorthv,telru,telrv,tbsvd,tnorm2,tlansvd,nlandim,tritzvec,trestart,tdot,nsing end subroutine slansvd_irl end interface end python module _spropack