File sparskit-2.0.0-undefined-symbol.patch of Package sparskit

diff -aruN SPARSKIT2.orig/MATGEN/FDIF/functns.f SPARSKIT2/MATGEN/FDIF/functns.f
--- SPARSKIT2.orig/MATGEN/FDIF/functns.f	1998-08-13 23:00:41.000000000 +0200
+++ SPARSKIT2/MATGEN/FDIF/functns.f	2012-12-09 17:45:42.934104503 +0100
@@ -169,3 +169,32 @@
 
       return
       end
+c-----------------------------------------------------------------------
+	subroutine oped(n,x,y,diag,ioff,ndiag)
+c======================================================
+c this kernel performs a matrix by vector multiplication
+c for a diagonally structured  matrix stored in diagonal format
+c======================================================
+	implicit real*8 (a-h,o-z)
+	real*8 x(n), y(n), diag(n,ndiag)
+	common nope, nmvec
+	integer j, n, ioff(ndiag)
+CDIR$ IVDEP
+	do 1 j=1, n
+		y(j) = 0.00
+ 1	continue	
+c
+	do 10 j=1,ndiag
+	io = ioff(j)
+	i1=max0(1,1-io)
+	i2=min0(n,n-io)
+CDIR$ IVDEP
+	do 9 k=i1,i2
+	y(k) = y(k)+diag(k,j)*x(k+io)
+ 9	continue
+ 10	continue
+	nmvec  = nmvec + 1 
+	nope = nope + 2*ndiag*n
+	return
+	end
+c
diff -aruN SPARSKIT2.orig/MATGEN/FDIF/functns.f~ SPARSKIT2/MATGEN/FDIF/functns.f~
--- SPARSKIT2.orig/MATGEN/FDIF/functns.f~	1970-01-01 01:00:00.000000000 +0100
+++ SPARSKIT2/MATGEN/FDIF/functns.f~	1998-08-13 23:00:41.000000000 +0200
@@ -0,0 +1,171 @@
+c-----------------------------------------------------------------------
+c     contains the functions needed for defining the PDE poroblems. 
+c
+c     first for the scalar 5-point and 7-point PDE 
+c-----------------------------------------------------------------------
+      function afun (x,y,z)
+      real*8 afun, x,y,z 
+      afun = -1.0d0
+      return 
+      end
+
+      function bfun (x,y,z)
+      real*8 bfun, x,y,z 
+      bfun = -1.0d0
+      return 
+      end
+
+      function cfun (x,y,z)
+      real*8 cfun, x,y,z 
+      cfun = -1.0d0
+      return 
+      end
+
+      function dfun (x,y,z)
+      real*8 dfun, x,y,z 
+      data gamma /100.0/ 
+c     dfun = gamma * exp( x * y )
+      dfun = 10.d0
+      return 
+      end
+
+      function efun (x,y,z)
+      real*8 efun, x,y,z
+      data gamma /100.0/ 
+c     efun = gamma * exp( (- x) * y ) 
+      efun = 0.d0
+      return 
+      end
+
+      function ffun (x,y,z)
+      real*8 ffun, x,y,z 
+      ffun = 0.0
+      return 
+      end
+
+      function gfun (x,y,z)
+      real*8 gfun, x,y,z 
+      gfun = 0.0 
+      return 
+      end
+
+      function hfun(x, y, z)
+      real*8 hfun, x, y, z
+      hfun = 0.0
+      return
+      end
+
+      function betfun(side, x, y, z)
+      real*8 betfun, x, y, z
+      character*2 side
+      betfun = 1.0
+      return
+      end
+
+      function gamfun(side, x, y, z)
+      real*8 gamfun, x, y, z
+      character*2 side
+      if (side.eq.'x2') then
+         gamfun = 5.0
+      else if (side.eq.'y1') then
+         gamfun = 2.0
+      else if (side.eq.'y2') then
+         gamfun = 7.0
+      else
+         gamfun = 0.0
+      endif
+      return
+      end
+
+c-----------------------------------------------------------------------
+c     functions for the block PDE's 
+c-----------------------------------------------------------------------
+      subroutine afunbl (nfree,x,y,z,coeff)
+      real*8 x, y, z, coeff(100) 
+      do 2 j=1, nfree
+         do 1 i=1, nfree
+            coeff((j-1)*nfree+i) = 0.0d0
+ 1       continue
+         coeff((j-1)*nfree+j) = -1.0d0
+ 2    continue
+      return 
+      end
+
+      subroutine bfunbl (nfree,x,y,z,coeff)
+      real*8 x, y, z, coeff(100) 
+      do 2 j=1, nfree
+         do 1 i=1, nfree
+            coeff((j-1)*nfree+i) = 0.0d0
+ 1       continue
+         coeff((j-1)*nfree+j) = -1.0d0
+ 2    continue
+      return 
+      end
+
+      subroutine cfunbl (nfree,x,y,z,coeff)
+      real*8 x, y, z, coeff(100) 
+      do 2 j=1, nfree
+         do 1 i=1, nfree
+            coeff((j-1)*nfree+i) = 0.0d0
+ 1       continue
+         coeff((j-1)*nfree+j) = -1.0d0
+ 2    continue
+      return 
+      end
+
+      subroutine dfunbl (nfree,x,y,z,coeff)
+      real*8 x, y, z, coeff(100) 
+      do 2 j=1, nfree
+         do 1 i=1, nfree
+            coeff((j-1)*nfree+i) = 0.0d0
+ 1       continue
+ 2    continue
+      return 
+      end
+
+      subroutine efunbl (nfree,x,y,z,coeff)
+      real*8 x, y, z, coeff(100) 
+      do 2 j=1, nfree
+         do 1 i=1, nfree
+            coeff((j-1)*nfree+i) = 0.0d0
+ 1       continue
+ 2    continue
+      return 
+      end
+
+      subroutine ffunbl (nfree,x,y,z,coeff)
+      real*8 x, y, z, coeff(100) 
+      do 2 j=1, nfree
+         do 1 i=1, nfree
+            coeff((j-1)*nfree+i) = 0.0d0
+ 1       continue
+ 2    continue
+      return 
+      end
+
+      subroutine gfunbl (nfree,x,y,z,coeff)
+      real*8 x, y, z, coeff(100) 
+      do 2 j=1, nfree
+         do 1 i=1, nfree
+            coeff((j-1)*nfree+i) = 0.0d0
+ 1       continue
+ 2    continue
+      return 
+      end
+c-----------------------------------------------------------------------
+c     The material property function xyk for the 
+c     finite element problem 
+c-----------------------------------------------------------------------
+      subroutine xyk(nel,xyke,x,y,ijk,node)
+      implicit real*8 (a-h,o-z)
+      dimension xyke(2,2), x(*), y(*), ijk(node,*)
+c     
+c     this is the identity matrix.
+c     
+      xyke(1,1) = 1.0d0
+      xyke(2,2) = 1.0d0
+      xyke(1,2) = 0.0d0
+      xyke(2,1) = 0.0d0
+
+      return
+      end
openSUSE Build Service is sponsored by