mirror of https://gitlab.com/QEF/q-e.git
Merge branch 'patch-12' into 'develop'
Add more uses of beef_interface See merge request QEF/q-e!1001
This commit is contained in:
commit
94b92041ab
|
@ -17,13 +17,13 @@ MODULE beef_interface
|
|||
#if defined(use_beef)
|
||||
!
|
||||
PUBLIC :: beefx, beeflocalcorr, beeflocalcorrspin, beefsetmode, &
|
||||
beefrandinit, beefrandinitdef, beefensemble
|
||||
beefrandinit, beefrandinitdef, beefensemble, beef_set_type
|
||||
!
|
||||
INTERFACE
|
||||
!
|
||||
SUBROUTINE beefx( r, g, e, dr, dg, addlda ) BIND(C, NAME="beefx_")
|
||||
USE iso_c_binding
|
||||
REAL (C_DOUBLE), INTENT(INOUT) :: r, g, e, dr, dg
|
||||
REAL (C_DOUBLE) :: r, g, e, dr, dg
|
||||
INTEGER(C_INT), INTENT(IN) :: addlda
|
||||
END SUBROUTINE beefx
|
||||
!
|
||||
|
@ -59,14 +59,38 @@ MODULE beef_interface
|
|||
REAL (C_DOUBLE), INTENT(INOUT) :: beefxc(*), ensemble(*)
|
||||
END SUBROUTINE beefensemble
|
||||
!
|
||||
FUNCTION beef_set_type(tbeef, ionode) BIND(C,name="beef_set_type_") RESULT(r)
|
||||
USE iso_c_binding
|
||||
INTEGER(C_INT), INTENT(IN) :: tbeef, ionode
|
||||
LOGICAL(C_INT) :: r
|
||||
END FUNCTION beef_set_type
|
||||
FUNCTION beef_set_type_interface(tbeef, ionode) &
|
||||
BIND(C,name="beef_set_type_") RESULT(r)
|
||||
USE iso_c_binding
|
||||
INTEGER(C_INT), INTENT(IN) :: tbeef, ionode
|
||||
INTEGER(C_INT) :: r
|
||||
END FUNCTION beef_set_type_interface
|
||||
!
|
||||
END INTERFACE
|
||||
!
|
||||
CONTAINS
|
||||
! ====================================================================
|
||||
!
|
||||
FUNCTION beef_set_type(tbeef, ionode) RESULT(r)
|
||||
INTEGER, INTENT(IN) :: tbeef
|
||||
LOGICAL, INTENT(IN) :: ionode
|
||||
LOGICAL :: r
|
||||
! ... local variables ...
|
||||
INTEGER :: ionode_ = 0
|
||||
INTEGER :: r_
|
||||
!
|
||||
IF ( ionode ) ionode_ = 1
|
||||
!
|
||||
r_ = beef_set_type_interface(tbeef, ionode_)
|
||||
!
|
||||
IF ( r_ /= 0 ) THEN
|
||||
r = .TRUE.
|
||||
ELSE
|
||||
r = .FALSE.
|
||||
END IF
|
||||
!
|
||||
END FUNCTION beef_set_type
|
||||
!
|
||||
#endif
|
||||
!
|
||||
END MODULE beef_interface
|
||||
|
|
|
@ -38,6 +38,10 @@ MODULE funct
|
|||
#if defined(__LIBXC)
|
||||
USE xc_f90_types_m
|
||||
USE xc_f90_lib_m
|
||||
#endif
|
||||
!
|
||||
#if defined(use_beef)
|
||||
USE beef_interface, ONLY: beef_set_type
|
||||
#endif
|
||||
!
|
||||
IMPLICIT NONE
|
||||
|
@ -368,7 +372,6 @@ MODULE funct
|
|||
!
|
||||
#ifdef use_beef
|
||||
INTEGER :: beeftype = -1
|
||||
LOGICAL, EXTERNAL :: beef_set_type
|
||||
INTEGER :: beefvdw = 0
|
||||
#endif
|
||||
!
|
||||
|
|
|
@ -763,6 +763,9 @@ SUBROUTINE gcx_spin( length, rho_in, grho2_in, sx_tot, v1x_out, v2x_out )
|
|||
!! Gradient corrections for exchange - Hartree a.u.
|
||||
!
|
||||
USE exch_gga
|
||||
#if defined(use_beef)
|
||||
USE beef_interface, ONLY: beefx
|
||||
#endif
|
||||
!
|
||||
IMPLICIT NONE
|
||||
!
|
||||
|
|
Loading…
Reference in New Issue