Read kpts.txt
file and kmask_info.txt
file on master and from there determine if
some k-points can be thrown out. The input of the kmask_info.txt
file determines the behavior of this routine:
* file not present: take all k-points
* 1 in first line (determines mode): ring-like region around R0=(kx,ky) [in line 2] with inner and outer radii being R1 and R2 [lines 3 and 4]
* 2 in first line: take box defined by kx_min, kx_max, ky_min, ky_max (each given in a new line)
* 3 in first line: read predefined mask (1/0) values need to be given for all k-points, each in a new line
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nofks |
number of k-points |
||
integer, | intent(out) | :: | k_end |
number of k-points after filtering |
||
real(kind=dp), | intent(in) | :: | bzkp(3,nofks) |
k-points array |
||
integer, | intent(out), | allocatable | :: | kmask(:) |
kmask array labelling points (either inside or outside of masked region) |
|
real(kind=dp), | intent(out), | allocatable | :: | rhoq_kmask(:,:) |
output array holding kpoints and indices in reduced region only |