From 5df79c53745fde5d6c3340a2979b1429cd5892c1 Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Sat, 8 Oct 2011 20:30:28 +0200 Subject: Initial import of htcd system 1.0 Signed-off-by: Henrik Rydberg --- src/labat/grad.f | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/labat/grad.f (limited to 'src/labat/grad.f') diff --git a/src/labat/grad.f b/src/labat/grad.f new file mode 100644 index 0000000..845ed5a --- /dev/null +++ b/src/labat/grad.f @@ -0,0 +1,26 @@ + subroutine grad(r,db,i,imin,imax,done,gradd,gradup,graddn) +c grad calculates the derivative of db with respect to r, at +c position r(i). +c input r : radial coordinate (array) +c input db : spin-up and down densities (array) +c input i : counter, i.e. current position = r(i) +c input imin : min value of i +c input imax : max value of i +c in/output done : true if density is splined +c output gradd : grad(density) +c output gradup,graddn : grad(density), spin up and down + implicit logical (a-z) + logical done + double precision r,db,gradd,gradup,graddn,db2,deriv + integer i,imin,imax + dimension r(561),db(2,561),db2(2,561) + common/ggagra/db2 + if (.not.done) then + call spline(r,imin+1,imax,db,db2) + done = .true. + endif + gradup = deriv(r,db,db2,1,i,imin,imax) + graddn = deriv(r,db,db2,-1,i,imin,imax) + gradd = gradup + graddn + return + end -- cgit v1.2.3