lattice3d Subroutine

public subroutine lattice3d(alat, bravais, recbv, ngmax, nrmax, nshlg, nshlr, nsg, nsr, gn, rm, rmax, gmax, iprint, nmaxd, ishld)

Generates the lattice vectors of direct and reciprocal space from basic translation vectors for a 3D system

Note

Popescu May 2004: The routine has been brought to a form which is very similar to LATTICE2D -- from which it has been originally derived. Dimension of arrays GN,RM changed from (4,*) to (2,*), the 4th one it is used only locally (GNR/RMR)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: alat

Lattice constant in a.u.

real(kind=dp), intent(in), dimension (3, 3) :: bravais

Bravais lattice vectors

real(kind=dp), intent(in), dimension (3, 3) :: recbv

Reciprocal basis vectors

integer, intent(out) :: ngmax

Number of reciprocal space vectors

integer, intent(out) :: nrmax

Number of real space vectors rr

integer, intent(out) :: nshlg

Shells in reciprocal space

integer, intent(out) :: nshlr

Shells in real space

integer, intent(inout), dimension (ishld) :: nsg
integer, intent(inout), dimension (ishld) :: nsr
real(kind=dp), intent(inout), dimension (3, nmaxd) :: gn

x,y,z of

real(kind=dp), intent(inout), dimension (3, nmaxd) :: rm

x,y,z of

real(kind=dp), intent(inout) :: rmax

Ewald summation cutoff parameter for real space summation

real(kind=dp), intent(inout) :: gmax

Ewald summation cutoff parameter for reciprocal space summation

integer, intent(in) :: iprint

Printing index control

integer, intent(in) :: nmaxd

Paremeters for the Ewald summations

integer, intent(in) :: ishld

Paremeters for the Ewald summations