IffGit has a new shared runner for building Docker images in GitLab CI. Visit https://iffgit.fz-juelich.de/examples/ci-docker-in-docker for more details.

Commit 7b3f96d4 authored by Gregor Michalicek's avatar Gregor Michalicek
Browse files

Reintroduce the difcub function to fleur

It is needed for the Wannier code.
parent 014b83d5
......@@ -22,6 +22,7 @@ math/sphbes.f
math/sphpts.f
math/util.F
math/ylm4.f
math/difcub.f
)
set(fleur_F90 ${fleur_F90}
math/differentiate.f90
......
!--------------------------------------------------------------------------------
! Copyright (c) 2017 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_difcub
CONTAINS
REAL FUNCTION difcub(x,f,xi)
c **********************************************************
c differentiate the function f, given at the
c points x0,x1,x2,x3 at the point xi by lagrange
c interpolation for polynomial of 3rd order
c r.p.
c ***********************************************************
IMPLICIT NONE
C .. Scalar Arguments ..
REAL xi
C ..
C .. Array Arguments ..
REAL f(0:3),x(0:3)
C ..
difcub = ((xi-x(1))* (xi-x(2))+ (xi-x(1))* (xi-x(3))+
+ (xi-x(2))* (xi-x(3)))*f(0)/ ((x(0)-x(1))* (x(0)-x(2))*
+ (x(0)-x(3))) + ((xi-x(0))* (xi-x(2))+
+ (xi-x(0))* (xi-x(3))+ (xi-x(2))* (xi-x(3)))*f(1)/
+ ((x(1)-x(0))* (x(1)-x(2))* (x(1)-x(3))) +
+ ((xi-x(0))* (xi-x(1))+ (xi-x(0))* (xi-x(3))+
+ (xi-x(1))* (xi-x(3)))*f(2)/ ((x(2)-x(0))* (x(2)-x(1))*
+ (x(2)-x(3))) + ((xi-x(0))* (xi-x(1))+
+ (xi-x(0))* (xi-x(2))+ (xi-x(1))* (xi-x(2)))*f(3)/
+ ((x(3)-x(0))* (x(3)-x(1))* (x(3)-x(2)))
RETURN
END FUNCTION difcub
END MODULE m_difcub
......@@ -3,10 +3,9 @@
SUBROUTINE d2fdz2(jmtd,jri,rmsh,dx,f,fac,d2f)
IMPLICIT NONE
USE m_difcub
REAL difcub
EXTERNAL difcub
IMPLICIT NONE
REAL, INTENT(INOUT) :: d2f(jmtd)
REAL, INTENT(IN) :: fac(jmtd)
......
......@@ -3,10 +3,9 @@
SUBROUTINE d2fdz2cmplx(jmtd,jri,rmsh,dx,f,fac,d2f)
IMPLICIT NONE
USE m_difcub
REAL difcub
EXTERNAL difcub
IMPLICIT NONE
COMPLEX, INTENT(INOUT) :: d2f(jmtd)
COMPLEX, INTENT(IN) :: fac(jmtd)
......
......@@ -4,10 +4,9 @@
SUBROUTINE dujdr(jmtd,jri,rmsh,dx,ub,j2,b,l,lmaxd,dub)
USE m_constants
IMPLICIT NONE
USE m_difcub
REAL difcub
EXTERNAL difcub
IMPLICIT NONE
REAL, INTENT(IN) :: rmsh(jmtd),dx
REAL, INTENT(IN) :: ub(jmtd,2) ! u(b2)
......
......@@ -5,10 +5,9 @@
USE m_intgr, ONLY : intgr3
USE m_constants
IMPLICIT NONE
USE m_difcub
REAL difcub
EXTERNAL difcub
IMPLICIT NONE
REAL, INTENT(IN) :: f(jmtd,2),g(jmtd,2)
REAL, INTENT(IN) :: vr(jmtd)
......
......@@ -9,10 +9,9 @@
USE m_intgr, ONLY : intgr3
USE m_constants
IMPLICIT NONE
USE m_difcub
REAL difcub
EXTERNAL difcub
IMPLICIT NONE
REAL, INTENT(IN) :: p(jmtd,2)
REAL, INTENT(IN) :: q(jmtd,2)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment