Set the number of gaussian weights for an atomic number
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(out) | :: | ngw(:) |
Number of gaussian weights |
||
integer, | intent(in) | :: | num |
Atomic number |
pure subroutine set_refgw_num(ngw, num) !> Number of gaussian weights integer, intent(out) :: ngw(:) !> Atomic number integer, intent(in) :: num integer, parameter :: max_cn = 19 integer :: icn, ir, ref integer :: cnc(0:max_cn) ngw(:) = 1 if (num > 0 .and. num <= size(refn)) then ref = get_nref(num) cnc(:) = [1, spread(0, 1, max_cn)] do ir = 1, ref icn = min(nint(refcn(ir, num)), max_cn) cnc(icn) = cnc(icn) + 1 end do do ir = 1, ref icn = cnc(min(nint(refcn(ir, num)), max_cn)) ngw(ir) = icn*(icn+1)/2 end do end if end subroutine set_refgw_num