set_J0_cell Subroutine

private subroutine set_J0_cell(igrid, wJ0, ixImin1, ixImin2, ixImin3, ixImax1, ixImax2, ixImax3, ixmin1, ixmin2, ixmin3, ixmax1, ixmax2, ixmax3)

Uses

  • proc~~set_j0_cell~~UsesGraph proc~set_j0_cell set_J0_cell module~mod_geometry mod_geometry proc~set_j0_cell->module~mod_geometry module~mod_global_parameters mod_global_parameters proc~set_j0_cell->module~mod_global_parameters module~mod_usr_methods mod_usr_methods proc~set_j0_cell->module~mod_usr_methods module~mod_comm_lib mod_comm_lib module~mod_geometry->module~mod_comm_lib module~mod_basic_types mod_basic_types module~mod_global_parameters->module~mod_basic_types module~mod_connectivity mod_connectivity module~mod_global_parameters->module~mod_connectivity module~mod_constants mod_constants module~mod_global_parameters->module~mod_constants module~mod_physicaldata mod_physicaldata module~mod_global_parameters->module~mod_physicaldata module~mod_variables mod_variables module~mod_global_parameters->module~mod_variables mpi mpi module~mod_global_parameters->mpi module~mod_variables->module~mod_basic_types

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: igrid
double precision, intent(inout) :: wJ0(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,7-2*ndir:3)
integer, intent(in) :: ixImin1
integer, intent(in) :: ixImin2
integer, intent(in) :: ixImin3
integer, intent(in) :: ixImax1
integer, intent(in) :: ixImax2
integer, intent(in) :: ixImax3
integer, intent(in) :: ixmin1
integer, intent(in) :: ixmin2
integer, intent(in) :: ixmin3
integer, intent(in) :: ixmax1
integer, intent(in) :: ixmax2
integer, intent(in) :: ixmax3

Calls

proc~~set_j0_cell~~CallsGraph proc~set_j0_cell set_J0_cell proc~curlvector curlvector proc~set_j0_cell->proc~curlvector dcos dcos proc~curlvector->dcos dsin dsin proc~curlvector->dsin proc~mpistop mpistop proc~curlvector->proc~mpistop mpi_abort mpi_abort proc~mpistop->mpi_abort

Called by

proc~~set_j0_cell~~CalledByGraph proc~set_j0_cell set_J0_cell proc~set_b0_grid set_B0_grid proc~set_b0_grid->proc~set_j0_cell proc~alloc_node alloc_node proc~alloc_node->proc~set_b0_grid proc~alloc_node~2 alloc_node proc~alloc_node~2->proc~set_b0_grid proc~alloc_node~3 alloc_node proc~alloc_node~3->proc~set_b0_grid proc~alloc_node~4 alloc_node proc~alloc_node~4->proc~set_b0_grid

Source Code

  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