diff --git a/src/gkcoulomb_coeffs_mod.f90 b/src/gkcoulomb_coeffs_mod.f90
index a31205e..0612fb9 100644
--- a/src/gkcoulomb_coeffs_mod.f90
+++ b/src/gkcoulomb_coeffs_mod.f90
@@ -1,644 +1,508 @@
 module gkcoulomb_coeffs
   ! loads the pre-computed coefficients for gkcoulomb operator: Tljpmf, curlyNpjmn, Pipjm
 
   ! Note: - used for GK Coulomb collision operator
 
   use prec_const
   use basic
   use model 
   use array
   use coeff
 
   implicit none
 
   PUBLIC 
 
   INTEGER, SAVE :: fid_
 
   INTEGER, SAVE :: IDXMAX ! ... maximum indices for Tljpmf
 
   ! Tljpmf maximum indices
   INTEGER, SAVE :: Tidx_l_max, Tidx_j_max, Tidx_p_max, Tidx_f_max
 
   ! CurlyNpjmn maximum indices
   INTEGER, SAVE :: Nidx_p_max, Nidx_j_max, Nidx_n_max
 
 
   CHARACTER(len=*),PARAMETER :: Tljpmf_in = 'log.in'
   CHARACTER(len=*),PARAMETER :: CurlyNpjmn_in = 'log.in'
   CHARACTER(len=*),PARAMETER :: Pipjm_in = 'Pipjm.in'
 
-  CHARACTER(len=*), PARAMETER :: Tljpmf_dir = 'Tljpmf'
-  CHARACTER(len=*), PARAMETER :: CurlyNpjmn_dir = 'CurlyNpjmn'
+  CHARACTER(len=*), PARAMETER :: Tljpmf_dir = 'gkcoulomb_suite'
+  CHARACTER(len=*), PARAMETER :: CurlyNpjmn_dir = 'gkcoulomb_suite'
 
 contains
   !
   !___________________________________________________________
   !
   subroutine load_gk_coulomb_coeffs(dirCab)
     ! load the Tljpmf and curlyNpjmn coeffs precomputed for gkcoulomb
     implicit none
     
     ! directory where the coefficients are stored
     CHARACTER(len=*), intent(in) :: dirCab ! species depend directory
 
     IF( me .eq. 0) WRITE(*,*) 'Load GK Coulomb coefficients: ', dirCab, ' ...'
 
-    CALL load_Tljpmf_v2(dirCab)
+    CALL load_Tljpmf(dirCab)
     call load_CurlyNpjmn
     CALL eval_ALL2L
 
     IF(me .eq. 0) WRITE(*,*) '... done'
 
     CALL mpi_barrier(MPI_COMM_WORLD,ierr)
 
   end subroutine load_gk_coulomb_coeffs
   !
   !___________________________________________________________
   !
-  subroutine load_Tljpmf(dirCab)
-    !
-    ! read NN Tljpmf coefficients from Tljpmf directory dir
-    !
-    implicit none
-    !
-    ! directory where the coefficients are stored
-    CHARACTER(len=*), intent(in) :: dirCab ! species depend directory
-
-    ! locs. vars.
-    integer :: NN,ENDOF,iNN
-    CHARACTER(len=llen) :: buff_,filename_
-    INTEGER :: IT1,IT2,IT3,IT4,IT5
-    INTEGER :: FMAXX
-    CHARACTER(len=100),DIMENSION(:),ALLOCATABLE :: TableNames
-    INTEGER :: Ntab,iTab
-    CHARACTER(len=FMlen) :: coeffstr
-    !
-    !
-    !    1. Get the number of NN coefficients 
-    !
-    FMAXX = max(Jmaxe,Jmaxi) + max(neFLR,niFLR)
-    IDXMAX = max(FMAXX,JEmaxx,PMMAXX,PMAXI,PMAXE)+1
-    !
-    WRITE(filename_, *) trim(adjustl(cosolver_dir))//'/'// Tljpmf_dir // '/' // dirCab // '/'// Tljpmf_in
-    !
-    !    IF( me .eq. 0) WRITE(*, *) 'Read log.in file ', trim(adjustl(filename_))
-    !
-    OPEN(fid_,FILE=trim(adjustl(filename_)))
-
-    ! Count the number of files 
-    NTab = 0
-    ENDOF = 0 
-    DO WHILE(ENDOF .eq. 0)
-       READ(fid_,*,IOSTAT =ENDOF) buff_
-       NTab = NTab +1
-    ENDDO
-    !
-    NTab = NTab -1
-    !
-    CLOSE(fid_)
-    !
-    ! Allocate array of Tljpmf table
-    IF( allocated(TableNames)) deallocate(TableNames)
-    ALLOCATE(TableNames(1:NTab))
-    !    
-    !
-    ! Get the name of the table containing T5 coeff.
-    !
-    OPEN(fid_ ,FILE=trim(adjustl(filename_))) 
-
-    ENDOF = 0 
-    iTab = 1
-    DO WHILE (ENDOF .eq. 0 ) 
-       READ(fid_,*,IOSTAT=ENDOF) buff_
-       IF (iTab .le. NTab) THEN 
-          TableNames(iTab) = adjustl(trim(buff_))
-          iTab = iTab +1
-       ENDIF
-    ENDDO
-    CLOSE(fid_)
-    !
-    !
-    Tidx_l_max = 0
-    Tidx_j_max = 0 
-    Tidx_p_max = 0
-    Tidx_f_max = 0 
-    !
-    NN = 0
-    DO iTab=1,NTab 
-       ! name of table to read
-       write(filename_, *) trim(adjustl(cosolver_dir))//'/'// Tljpmf_dir // '/' // dirCab // '/'// TableNames(iTab)
-
-       OPEN(fid_,FILE = trim(adjustl(filename_)))
-       ENDOF = 0
-       DO WHILE (ENDOF .eq. 0 ) 
-          READ(fid_,*,IOSTAT=ENDOF) IT1,IT2,IT3,IT4,IT5
-          IF (IT1 .le. IDXMAX .and. IT2 .le. IDXMAX .and. IT3 .le. IDXMAX .and. IT4 .le. IDXMAX .and. IT5 .le. IDXMAX) THEN 
-             IF( IT1 .gt. Tidx_l_max ) Tidx_l_max = IT1
-             IF( IT2 .gt. Tidx_j_max ) Tidx_j_max = IT2
-             IF( IT3 .gt. Tidx_p_max ) Tidx_p_max = IT3
-             IF( IT5 .gt. Tidx_f_max ) Tidx_f_max = IT5
-             NN = NN+1
-          ENDIF
-       ENDDO
-       CLOSE(fid_)
-    ENDDO
-    !
-    ! IF( me .eq. 0) WRITE(*,*) '(l,j,p,m,f)< (', Tidx_l_max, ',', Tidx_j_max, ',', Tidx_p_max, ',:,', Tidx_f_max, ')'
-    !
-    !    2. Allocate arrays
-    !
-    IF( allocated(TljpmfSTR)) deallocate(TljpmfSTR)
-    allocate(TljpmfSTR(1:NN))
-    IF( allocated(NNLJPMF)) deallocate(NNLJPMF)
-    allocate(NNLJPMF(1:NN))
-    !
-    !    3. Inquire NN coefficients
-    !
-    iNN = 1
-    !
-    DO iTab =1, NTab
-       write(filename_, *) trim(adjustl(cosolver_dir))//'/'// Tljpmf_dir // '/' // dirCab // '/'// TableNames(iTab)
-       OPEN(FID_,FILE = filename_)
-       ENDOF = 0
-       DO WHILE (ENDOF .eq. 0 ) 
-          READ(fid_,*,IOSTAT=ENDOF) IT1,IT2,IT3,IT4,IT5,coeffstr
-          IF (IT1 .le. IDXMAX .and. IT2 .le. IDXMAX .and. IT3 .le. IDXMAX .and. IT4 .le. IDXMAX .and. IT5 .le. IDXMAX ) THEN 
-             !
-             CALL GET_NNLJPMF(IT1,IT2,IT3,IT4,IT5,NNLJPMF(iNN))
-             TljpmfSTR(iNN) = coeffstr
-!!!             write(*,*) NNLJPMF(iNN),TljpmfSTR(iNN)
-             IF(ENDOF .eq. 0) iNN = iNN+1
-          ENDIF
-       ENDDO
-       !
-       CLOSE(fid_)
-    ENDDO
-    !
-    !
-    !
-    ! Free memory
-    DEALLOCATE(TableNames)
-    !
-  end subroutine load_Tljpmf
-  !
-  !______________________________________________________________________________________________
-  !
- subroutine load_Tljpmf_v2(dirCab)
+ subroutine load_Tljpmf(dirCab)
     !
     ! read NN Tljpmf coefficients from Tljpmf directory dir
     !
     implicit none
     !
     ! directory where the coefficients are stored
     CHARACTER(len=*), intent(in) :: dirCab ! species depend directory
 
     ! locs. vars.
     integer :: NN,ENDOF,iNN
     CHARACTER(len=llen ) :: buff_,filename_
     INTEGER :: IT1,IT2,IT3,IT4,IT5
     INTEGER :: FMAXX
     CHARACTER(len=100),DIMENSION(:),ALLOCATABLE :: TableNames
     INTEGER :: Ntab,iTab
     CHARACTER(len=FMlen) :: buffc_
     !
     !
     !    1. Get the number of NN coefficients 
     !
     FMAXX = max(Jmaxe,Jmaxi) + max(neFLR,niFLR)
     IDXMAX = max(FMAXX,JEmaxx,PMMAXX,PMAXI,PMAXE)+1
     !
     WRITE(filename_, *) trim(adjustl(cosolver_dir))//'/'// Tljpmf_dir // '/' // dirCab // '/'// Tljpmf_in
     !
-    !!    IF( me .eq. 0) WRITE(*, *) 'Read log.in file ', trim(adjustl(filename_))
+    IF( me .eq. 0) WRITE(*, *) 'Read log.in file ', trim(adjustl(filename_))
     !
     OPEN(fid_,FILE=trim(adjustl(filename_)))
 
     ! Count the number of files 
     NTab = 0
     ENDOF = 0 
     DO WHILE(ENDOF .eq. 0)
        READ(fid_,*,IOSTAT =ENDOF) buff_
        NTab = NTab +1
     ENDDO
     !
     NTab = NTab -1
     !
     CLOSE(fid_)
     !
     ! Allocate array of Tljpmf table
     IF( allocated(TableNames)) deallocate(TableNames)
     ALLOCATE(TableNames(1:NTab))
     !    
     !
     ! Get the name of the table containing T5 coeff.
     !
     OPEN(fid_ ,FILE=trim(adjustl(filename_))) 
 
     ENDOF = 0 
     iTab = 1
     DO WHILE (ENDOF .eq. 0 ) 
        READ(fid_,*,IOSTAT=ENDOF) buff_
        IF (iTab .le. NTab) THEN 
           TableNames(iTab) = adjustl(trim(buff_))
           iTab = iTab +1
        ENDIF
     ENDDO
     CLOSE(fid_)
     !
     !
     Tidx_l_max = 0
     Tidx_j_max = 0 
     Tidx_p_max = 0
     Tidx_f_max = 0 
     !
     NN = 0
     DO iTab=1,NTab 
        ! name of table to read
        write(filename_, *) trim(adjustl(cosolver_dir))//'/'// Tljpmf_dir // '/' // dirCab // '/'// TableNames(iTab)
 
        OPEN(fid_,FILE = trim(adjustl(filename_)))
        ENDOF = 0
        DO WHILE (ENDOF .eq. 0 ) 
           READ(fid_,*,IOSTAT=ENDOF) IT1,IT2,IT3,IT4,IT5
           IF (IT1 .le. IDXMAX .and. IT2 .le. IDXMAX .and. IT3 .le. IDXMAX .and. IT4 .le. IDXMAX .and. IT5 .le. IDXMAX) THEN 
              IF( IT1 .gt. Tidx_l_max ) Tidx_l_max = IT1
              IF( IT2 .gt. Tidx_j_max ) Tidx_j_max = IT2
              IF( IT3 .gt. Tidx_p_max ) Tidx_p_max = IT3
              IF( IT5 .gt. Tidx_f_max ) Tidx_f_max = IT5
 
              NN = NN+1
           ENDIF
        ENDDO
        CLOSE(fid_)
     ENDDO
     !
-    !!    IF( me .eq. 0) WRITE(*,*) '(l,j,p,m,f)< (', Tidx_l_max, ',', Tidx_j_max, ',', Tidx_p_max, ',:,', Tidx_f_max, ')'
-    !
     !    2. Allocate arrays
     !
     ! revert the indices (column-major): f, m, p, j, l
     if( allocated(Tljpmf_STR)) deallocate(Tljpmf_STR)
     !    allocate( Tljpmf_STR(0: max(Pmaxi, Pmaxe) ,0:JEmaxx, 0:  PMMAXX, 0:PMMAXX, 0 : FMAXX )) ! l, j, p , m, f
     allocate( Tljpmf_STR( 0 : FMAXX,  0:PMMAXX,  0:  PMMAXX , 0:JEmaxx, 0:max(Pmaxi, Pmaxe))) ! f, m, p, j, l
     !
     !    3. Inquire NN coefficients
     !
     iNN = 1
     !
     DO iTab =1, NTab
        write(filename_, *) trim(adjustl(cosolver_dir))//'/'// Tljpmf_dir // '/' // dirCab // '/'// TableNames(iTab)
        OPEN(FID_,FILE = filename_)
        ENDOF = 0
        DO WHILE (ENDOF .eq. 0 ) 
           READ(fid_,*,IOSTAT=ENDOF) IT1,IT2,IT3,IT4,IT5, buffc_
           IF (IT1 .le. max(Pmaxi, Pmaxe)  .and. &
              IT2 .le. JEmaxx  .and. & 
              IT3 .le.  PMMAXX .and. & 
              IT4 .le. PMMAXX  .and. &
              IT5 .le.  FMAXX  ) THEN 
-!             Tljpmf_STR(IT1, IT2, IT3, IT4, IT5) = buffc_
              Tljpmf_STR(IT5, IT4, IT3, IT2, IT1) = buffc_
-             !!             print*, IT1, IT2, IT3, IT4, IT5, buffc_ ! dbg line 
              IF(ENDOF .eq. 0) iNN = iNN+1
           ENDIF
        ENDDO
        !
        CLOSE(fid_)
     ENDDO
     ! Free memory
     DEALLOCATE(TableNames)
     !
-  end subroutine load_Tljpmf_v2
+  end subroutine load_Tljpmf
   !
   !______________________________________________________________________________________________
   !
   SUBROUTINE GET_NNLJPMF(l,j,p,m,f,NNLJPMF_)
     !
     ! construct character string l//$//j//$//p//$//m//$//f
     !
     IMPLICIT NONE
     !
     INTEGER,intent(in) :: l,j,p,m,f
     CHARACTER(len=NNLJPMFlen),intent(inout) :: NNLJPMF_
     !
     CHARACTER*2 :: SIT1,SIT2,SIT3,SIT4,SIT5
     !
     ! Convert int to string
     WRITE(SIT1,'(i2)') l
     WRITE(SIT2,'(i2)') j
     WRITE(SIT3,'(i2)') p
     WRITE(SIT4,'(i2)') m
     WRITE(SIT5,'(i2)') f
     !
     NNLJPMF_ = trim(adjustl(SIT1))//'$'//trim(adjustl(SIT2))//'$'//trim(adjustl(SIT3))//'$'//trim(adjustl(SIT4))//'$'//trim(adjustl(SIT5))
     !
   END SUBROUTINE GET_NNLJPMF
   !______________________________________________________________________________________________
   !
   SUBROUTINE GET_NNPJM(p,j,m,NNPJM_)
     !
     ! construct character string p//$//j//$//m
     !
     IMPLICIT NONE
     !
     INTEGER,intent(in) :: p,j,m
     CHARACTER(len=NNPJMlen),intent(inout) :: NNPJM_
     !
     CHARACTER*2 :: SIT1,SIT2,SIT3
     !
     ! Convert int to string
     WRITE(SIT1,'(i2)') p
     WRITE(SIT2,'(i2)') j
     WRITE(SIT3,'(i2)') m
     !
     NNPJM_ = trim(adjustl(SIT1))//'$'//trim(adjustl(SIT2))//'$'//trim(adjustl(SIT3))
     !
   END SUBROUTINE GET_NNPJM
   !______________________________________________________________________________________________
   !
   FUNCTION GET_Tljpmf(l,j,p,m,f) RESULT(Tljpmfstr_)
     ! 
     ! Returns the Tljpmf string from character string array Tljpmfstr
     !
     ! This routines can be obtained by converting the present implementation into an array.
 
     IMPLICIT NONE
     !
     INTEGER,intent(in) :: l,j,p,m,f
     CHARACTER(len=FMlen) :: Tljpmfstr_
     ! Local variables
     CHARACTER(len=NNLJPMFlen) :: NNLJPMF_
     INTEGER :: POS,i,inquireMaxInd
     !
     !
     IF( l .gt. Tidx_l_max .or. j .gt. Tidx_j_max .or. p .gt. Tidx_p_max .or. f .gt. Tidx_f_max) THEN
       WRITE(*,* ) 'ERROR Tljpmf: inquire unexisting indices', l,'/' , Tidx_l_max, ',',j,',', Tidx_j_max, ', ', p , '/', Tidx_p_max, ',',f ,'/' ,Tidx_f_max
       STop
     ENDIF
 
     POS =0
     !      Get string id
     CALL GET_NNLJPMF(l,j,p,m,f,NNLJPMF_)
 
     ! Get Tljpmf position 
     DO i=1,size(NNLJPMF)       
        IF( NNLJPMF(i) == NNLJPMF_) THEN 
           POS = i
           GOTO  55
        ENDIF
     ENDDO
 55  CONTINUE
 
     ! Retrieve coeff string from array
     IF( POS .gt. 0) THEN
        Tljpmfstr_ = TljpmfSTR(POS)
     ELSE 
        Tljpmfstr_ = '0.0'
     ENDIF
 
   END FUNCTION GET_Tljpmf
   !
   !____________________________________________________________________________________________
   !
   subroutine read_Pipjm
     !
     ! read NN Pipjm coefficients
     !
     implicit none
     !
     integer :: NN,ENDOF,iNN
     CHARACTER(len=FMlen) :: buff_,filename_
     INTEGER :: IT1,IT2,IT3
     CHARACTER(len=FMlen),DIMENSION(:),ALLOCATABLE :: PipjmTableNames
     INTEGER :: Ntab,iTab
     CHARACTER(len=FMlen) :: coeffstr
     !
     !
     !    1. Get the number of NN coefficients 
     !
     !
     OPEN(fid_,FILE=Pipjm_in)
     ! Count the number of files 
     NTab = 0
     ENDOF = 0 
     DO WHILE(ENDOF .eq. 0)
        READ(fid_,*,IOSTAT =ENDOF) buff_
        NTab = NTab +1
     ENDDO
     !
     NTab = NTab -1
     !
     CLOSE(fid_)
     !
     ! Allocate array of Tljpmf table)
     ALLOCATE(PipjmTableNames(1:NTab))
     !    
     !
     !
     OPEN(fid_,FILE=Pipjm_in) 
     ENDOF = 0 
     iTab = 1
     DO WHILE (ENDOF .eq. 0 ) 
        READ(fid_,*,IOSTAT=ENDOF) buff_
        IF (iTab .le. NTab) THEN 
           PipjmTableNames(iTab) = adjustl(trim(buff_))
           iTab = iTab +1
        ENDIF
     ENDDO
     CLOSE(fid_)
     !
     !    3. Inquire NN coefficients
     !
     iNN = 1
     !
     DO iTab =1, NTab
        filename_  = trim(adjustl('./Pipjm/'//PipjmTableNames(iTab)))
        OPEN(FID_,FILE = filename_)
        ENDOF = 0
        DO WHILE (ENDOF .eq. 0 ) 
           READ(fid_,*,IOSTAT=ENDOF) IT1,IT2,IT3,coeffstr
           IF (IT1 .le. PMMAXX .and. IT2 .le. JEmaxx .and. IT3 .le. PMMAXX) THEN 
              PipjmSTR(IT1,IT2,IT3) = coeffstr
              IF(ENDOF .eq. 0) iNN = iNN+1
           ENDIF
        ENDDO
        !
        CLOSE(fid_)
     ENDDO
     !
     !
     !
     ! Free memory
     DEALLOCATE(PipjmTableNames)
     !
   end subroutine read_Pipjm
   !______________________________________________________________________________________________
   !
   subroutine load_curlyNpjmn
     ! load GK row Vector Npj from *.csv file to character array
     ! Note: only important the non-zero coefficients
     implicit none
     ! 
     ! directory where the coefficients are stored
     CHARACTER(len=1) :: dirCab ! species depend directory
 
     ! local vars.
     INTEGER :: ENDOF
     INTEGER :: IT1,IT2,IT3,IT4,IT5
     INTEGER :: PMAXX_,MMAXX_,NMAXX_,ROWMAXX_
     CHARACTER(len=100),DIMENSION(:),ALLOCATABLE :: TableNames
     INTEGER :: Ntab,iTab,NN,iNN
     CHARACTER(len=FMlen) :: buff_
     CHARACTER(len=llen) :: filename_
     !
     ! Maximum indices to load
     MMAXX_ = PMAXX
     NMAXX_ = NPFLRMAXX
     ROWMAXX_ = numbb(Pmaxb,Jmaxb)
     !
     if( allocated( curlyNpjmn_STR)) deallocate(curlyNpjmn_STR)
     !
     ! revert the indices (column-major order): icol, np, m, j, p
 
     ! ion 
     if( coll_ab .eq. 'ie' .or. coll_ab .eq. 'ii' ) THEN 
        CALL allocate_array(curlyNpjmn_STR,numbi(0,0),numbi(Pmaxi,Jmaxi),0,NPFLRMAXX, 0,PMMAXX, 0,JEmaxx, 0,PMMAXX )
 !       CALL allocate_array(curlyNpjmn_STR,0,PMMAXX,0,JEmaxx,0,PMMAXX,0,NPFLRMAXX,numbi(0,0),numbi(Pmaxi,Jmaxi))
        dirCab = 'i'
     ENDIF
 
     ! electron
     IF( coll_ab .eq. 'ei' .or. coll_ab .eq. 'ee' ) THEN
        dirCab = 'e'
        CALL allocate_array(curlyNpjmn_STR,numbe(0,0),numbe(Pmaxe,Jmaxe),0,NPFLRMAXX, 0,PMMAXX, 0,JEmaxx, 0,PMMAXX )
 
 !       CALL allocate_array(curlyNpjmn_STR,0,PMMAXX,0,JEmaxx,0,PMMAXX,0,NPFLRMAXX,numbe(0,0),numbe(Pmaxe,Jmaxe))
     ENDIF
     !
     WRITE(filename_, *) trim(adjustl(cosolver_dir))//'/' //CurlyNpjmn_dir // '/' // dirCab // '/'// curlyNpjmn_in
     !
-    ! IF( me .eq. 0) WRITE(*, *) 'Read log.in file ', trim(adjustl(filename_))
+    IF( me .eq. 0) WRITE(*, *) 'Read log.in file ', trim(adjustl(filename_))
     !
     OPEN(fid_,FILE = trim(adjustl(filename_)))
     !
     ! 1. Count the number of files and coeff
     !
     NTab = 0
     ENDOF = 0 
     DO WHILE(ENDOF .eq. 0)
        READ(fid_,*,IOSTAT =ENDOF) buff_
        NTab = NTab +1
     ENDDO
     !
     NTab = NTab -1
     !
     CLOSE(fid_)
     !
     ! Allocate array of
     IF( allocated(TableNames)) deallocate(TableNames)
     ALLOCATE(TableNames(1:NTab))
     !
     OPEN(fid_,FILE= trim(adjustl(filename_))) 
     !
     ENDOF = 0 
     iTab = 1
     DO WHILE (ENDOF .eq. 0 ) 
        READ(fid_,*,IOSTAT=ENDOF) buff_
        IF (iTab .le. NTab) THEN 
           TableNames(iTab) = adjustl(trim(buff_))
           iTab = iTab +1
        ENDIF
     ENDDO
     CLOSE(fid_)
     !
     Nidx_p_max = 0
     Nidx_j_max = 0
     Nidx_n_max = 0
     !
     iNN =1
     DO iTab=1,NTab       
        ! name of table to read
        write(filename_, *)  trim(adjustl(cosolver_dir))//'/' // curlyNpjmn_dir // '/' // dirCab // '/'// TableNames(iTab)
       
        OPEN(fid_,FILE = filename_)
        ENDOF = 0
        DO WHILE (ENDOF .eq. 0 ) 
           READ(fid_,*,IOSTAT=ENDOF) IT1,IT2,IT3,IT4,IT5,buff_
           IF( IT1 .gt. Nidx_p_max ) Nidx_p_max = IT1
           IF( IT2 .gt. Nidx_j_max ) Nidx_j_max = IT2
           IF( IT4 .gt. Nidx_n_max ) Nidx_n_max = IT4
 
           IF (IT1 .le. PMMAXX .and. IT2 .le. JEmaxx .and. IT3 .le. MMAXX_ .and. IT4 .le. NMAXX_ .and. IT5 .le. ROWMAXX_) THEN 
-             ! revert the indices (column-major order): icol, np, m, j, p
-!             curlyNpjmn_STR(IT1,IT2,IT3,IT4,IT5) = buff_
              curlyNpjmn_STR(IT5,IT4,IT3,IT2,IT1) = buff_
-!             print*,  buff_
           ENDIF
        ENDDO
        CLOSE(fid_)
     ENDDO
     !    
     IF( PMMAXX .gt. Nidx_p_max  .or. JEmaxx .gt. Nidx_j_max  .or. NMAXX_ .gt. Nidx_n_max ) THEN 
        WRITE(*,*) 'Error CurlNpjmn: inquire unexisting indices', PMMAXX , '/', Nidx_p_max, ', ', JEmaxx, '/', Nidx_j_max, ', :,', NMAXX_, '/', Nidx_n_max
        STOP
     ENDIF
     ! 
     ! Free memory
     DEALLOCATE(TableNames)
     !
   end subroutine load_curlyNpjmn
   !______________________________________________________________________________________________
   !
   subroutine GET_PJMNCOL(p,j,m,n,col,PJMNCOL_)
     !
     ! construct character string p//$//j//$//m//$//n//$//col
     !
     implicit none
     !
     INTEGER,intent(in) :: p,j,m,n,col
     CHARACTER(len=PJMNCOLlen),intent(inout) :: PJMNCOL_
     !
     CHARACTER*2 :: SIT1,SIT2,SIT3,SIT4,SIT5
     ! Convert int to string
     WRITE(SIT1,'(i2)') p
     WRITE(SIT2,'(i2)') j
     WRITE(SIT3,'(i2)') m
     WRITE(SIT4,'(i2)') n
     WRITE(SIT5,'(i2)') col
     !
     PJMNCOL_ = trim(adjustl(SIT1))//'$'//trim(adjustl(SIT2))//'$'//trim(adjustl(SIT3))//'$'//trim(adjustl(SIT4))//'$'//trim(adjustl(SIT5))
     !
   end subroutine get_PJMNCOL
   !______________________________________________________________________________________________
   !
-
-  subroutine eval_ALL2L ! LECHOT
+  subroutine eval_ALL2L 
 
   ! precomputes ALL2L coefficients before entering the prec_GK_coulomb subroutine
 
      implicit none
 
      INTEGER :: ff,mm,kk,nn
      character(len= FMlen) :: val_str
      
      ! allocate array
      call allocate_array(array_ALL2L,0, max(Jmaxi,Jmaxe) + max(niFLR,neFLR),0,PMMAXX,0,max(Jmaxe,Jmaxi),0,max(niFLR,neFLR))
 
      !array_ALL2L = ZEROFM
      CALL FM_ENTER_USER_ROUTINE
      DO nn=0,max(neFLR,niFLR)
           DO kk=0,max(Jmaxe,Jmaxi)
               DO mm=0,PMMAXX
                   DO ff=0,(max(Jmaxi,Jmaxe) + max(niFLR,neFLR))
                      CALL FMFORM('F60.40',ALL2L(nn,kk,ff,mm), val_str)
                      array_ALL2L(ff,mm,kk,nn) = val_str
                   ENDDO
               ENDDO
           ENDDO
      ENDDO
      CALL FM_EXIT_USER_ROUTINE
 
   end subroutine eval_ALL2L
   !
 end module gkcoulomb_coeffs