1subroutine select_nl_init(edge, nl_init, two_edges, n_lanczos)
2  USE kinds, ONLY : DP
3  USE io_global, ONLY : stdout
4  IMPLICIT NONE
5  logical :: two_edges
6  integer :: n_lanczos
7  integer, dimension(2) :: nl_init
8  character(LEN=16) :: edge
9  CHARACTER(LEN=10) :: dummy_char, n_0, l_0
10
11  if( TRIM(ADJUSTL(edge)) .eq. 'K' ) edge = 'K1'
12  dummy_char = TRIM(ADJUSTL(edge))
13  n_0 = dummy_char(1:1)
14  if( len(TRIM(ADJUSTL(edge))) == 2 ) then
15    l_0 = dummy_char(2:2)
16    two_edges = .false.
17  else
18    l_0 = dummy_char(2:3)
19    two_edges = .true.
20  end if
21
22  select case (n_0)
23    case('K')
24      nl_init(1) = 1
25    case('L')
26      nl_init(1) = 2
27    case('M')
28      nl_init(1) = 3
29    case('N')
30      nl_init(1) = 4
31    case default
32      write(stdout,*) 'Needs to be extended'
33  end select
34
35   select case (l_0)
36    case('1')
37      nl_init(2) = 0
38      n_lanczos = 1
39    case('2')
40      nl_init(2) = 1
41      n_lanczos = 2    ! the manifold
42    case('3')
43      nl_init(2) = 1
44      n_lanczos = 4
45    case('4')
46      nl_init(2) = 2
47      n_lanczos = 4
48    case('5')
49      nl_init(2) = 2
50      n_lanczos = 6
51    case('6')
52      nl_init(2) = 3
53      n_lanczos = 6
54    case('7')
55      nl_init(2) = 3
56      n_lanczos = 6
57    case('23')
58      nl_init(2) = 1
59      n_lanczos = 6
60    case('45')
61      nl_init(2) = 2
62      n_lanczos = 10
63    case('67')
64      nl_init(2) = 3
65      n_lanczos = 14
66    case default
67      write(stdout,*) 'Needs to be extended'
68  end select
69
70
71end subroutine select_nl_init
72