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