subroutine set_J0_cell(igrid,wJ0,ixImin1,ixImin2,ixImin3,ixImax1,ixImax2,&
ixImax3,ixmin1,ixmin2,ixmin3,ixmax1,ixmax2,ixmax3)
use mod_usr_methods, only: usr_set_J0
use mod_global_parameters
use mod_geometry
integer, intent(in):: igrid,ixImin1,ixImin2,ixImin3,ixImax1,ixImax2,&
ixImax3,ixmin1,ixmin2,ixmin3,ixmax1,ixmax2,ixmax3
double precision, intent(inout) :: wJ0(ixImin1:ixImax1,ixImin2:ixImax2,&
ixImin3:ixImax3,7-2*ndir:3)
integer :: idirmin0, idirmin
if(associated(usr_set_J0)) then
call usr_set_J0(ixImin1,ixImin2,ixImin3,ixImax1,ixImax2,ixImax3,ixmin1,&
ixmin2,ixmin3,ixmax1,ixmax2,ixmax3,ps(igrid)%x,wJ0)
else
idirmin0 = 7-2*ndir
call curlvector(ps(igrid)%B0(ixImin1:ixImax1,ixImin2:ixImax2,&
ixImin3:ixImax3,:,0),ixImin1,ixImin2,ixImin3,ixImax1,ixImax2,ixImax3,&
ixmin1,ixmin2,ixmin3,ixmax1,ixmax2,ixmax3,wJ0,idirmin,idirmin0,ndir)
end if
end subroutine set_J0_cell