subroutine nbdep_debug_init

  ! initalize nbdep_debug module (if it is active)

  use nbi_com
  use nbdep_debug

  implicit none

  !--------------------------
  integer ibrys
  !--------------------------

  if(.not.nbdep_debug_active) return

  ibrys=nzcrtk+1
  if(nztkmd.gt.0) ibrys=ibrys+1
  nbdep_nzbdys=ibrys

  if(allocated(r_nbdep)) then
     deallocate(lb_nbdep,lz_nbdep)
     deallocate(r_nbdep,y_nbdep,phi_nbdep,xi_nbdep,th_nbdep,fbeam_nbdep)
     deallocate(ebplas_nbdep,ti_nbdep,te_nbdep,ne_nbdep)
     deallocate(nhs_nbdep,nhes_nbdep,nlis_nbdep,nimp_nbdep,nfas_nbdep)
     deallocate(ahs_nbdep,ahes_nbdep,alis_nbdep,aimp_nbdep,zimp_nbdep)
     deallocate(lmfp_nbdep)

     deallocate(delf_nbdep)
     deallocate(delfie_nbdep,delfii_nbdep,delfix_nbdep,delflo_nbdep)
     deallocate(delfcxh_nbdep,delfcxhe_nbdep)
     deallocate(delfbbii_nbdep,delfbbcx_nbdep)

     deallocate(svie_nbdep,svie2_nbdep)
     deallocate(svii_nbdep,svii2_nbdep)
     deallocate(svix_nbdep,svix2_nbdep)
     deallocate(svcxh_nbdep,svcxh2_nbdep)
     deallocate(svcxhe_nbdep,svcxhe2_nbdep)
     deallocate(excit_nbdep)
  endif

  if(nzcrtk.gt.0) then
     allocate(lb_nbdep(ibrys),lz_nbdep(nzcrtk))
     allocate(r_nbdep(ibrys),y_nbdep(ibrys),phi_nbdep(ibrys))
     allocate(xi_nbdep(ibrys),th_nbdep(ibrys),fbeam_nbdep(ibrys))

     allocate(ebplas_nbdep(nzcrtk),ti_nbdep(nzcrtk),te_nbdep(nzcrtk))
     allocate(ne_nbdep(nzcrtk))
     allocate(nhs_nbdep(nzcrtk),nhes_nbdep(nzcrtk),nlis_nbdep(nzcrtk))
     allocate(nimp_nbdep(nzcrtk),nfas_nbdep(nzcrtk))
     allocate(ahs_nbdep(nzcrtk),ahes_nbdep(nzcrtk),alis_nbdep(nzcrtk))
     allocate(aimp_nbdep(nzcrtk),zimp_nbdep(nzcrtk))

     allocate(lmfp_nbdep(nzcrtk),delf_nbdep(nzcrtk))
     allocate(delfie_nbdep(nzcrtk),delfii_nbdep(nzcrtk))
     allocate(delfix_nbdep(nzcrtk),delflo_nbdep(nzcrtk))
     allocate(delfcxh_nbdep(nzcrtk),delfcxhe_nbdep(nzcrtk))
     allocate(delfbbii_nbdep(nzcrtk),delfbbcx_nbdep(nzcrtk))

     allocate(svie_nbdep(nzcrtk),svie2_nbdep(nzcrtk))
     allocate(svii_nbdep(nzcrtk),svii2_nbdep(nzcrtk))
     allocate(svix_nbdep(nzcrtk),svix2_nbdep(nzcrtk))
     allocate(svcxh_nbdep(nzcrtk),svcxh2_nbdep(nzcrtk))
     allocate(svcxhe_nbdep(nzcrtk),svcxhe2_nbdep(nzcrtk))
     allocate(excit_nbdep(nzcrtk))

  endif

end subroutine nbdep_debug_init

!--------------------------------------------------

subroutine nbdep_debug_activate

  use nbdep_debug

  nbdep_debug_active = .true.

end subroutine nbdep_debug_activate

subroutine nbdep_debug_deactivate

  use nbdep_debug

  nbdep_debug_active = .false.

end subroutine nbdep_debug_deactivate

!--------------------------------------------------

subroutine nbdep_debug_center

  use nbdep_debug

  nbdep_centerline = .true.

end subroutine nbdep_debug_center

subroutine nbdep_debug_decenter

  use nbdep_debug

  nbdep_centerline = .false.

end subroutine nbdep_debug_decenter

!--------------------------------------------------

subroutine nbdep_debug_setbeam(ibeam)

  use nbdep_debug
  implicit none

  integer, intent(in) :: ibeam   ! select beamline number (or 0 for none)

  nbdep_set_beam = ibeam

end subroutine nbdep_debug_setbeam

subroutine nbdep_debug_set_ien(ien)

  use nbdep_debug
  implicit none

  integer, intent(in) :: ien   ! select energy fraction (or 0 for none)

  nbdep_set_ien = ien

end subroutine nbdep_debug_set_ien
