var_set_qvec Function

public function var_set_qvec(ndir, need_bc) result(iw)

Set heat-flux vector variables (anisotropic HTC only): the full Cartesian heat-flux vector, decomposed into field-aligned/cross-field parts

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ndir
logical, intent(in), optional :: need_bc

Return Value integer, (ndir)


Calls

proc~~var_set_qvec~~CallsGraph proc~var_set_qvec var_set_qvec proc~errormsg errormsg proc~var_set_qvec->proc~errormsg

Called by

proc~~var_set_qvec~~CalledByGraph proc~var_set_qvec var_set_qvec proc~phys_init~2 phys_init proc~phys_init~2->proc~var_set_qvec proc~phys_activate~2 phys_activate proc~phys_activate~2->proc~phys_init~2

Source Code

  function var_set_qvec(ndir, need_bc) result(iw)
    integer, intent(in)           :: ndir
    logical, intent(in), optional :: need_bc
    integer                       :: iw(ndir), idir
    logical                       :: add_bc

    add_bc = .true.
    if (present(need_bc)) add_bc = need_bc

    if (allocated(iw_qvec)) call errormsg("Error: set_qvec was already called")
    allocate(iw_qvec(ndir))

    do idir = 1, ndir
      nwflux              = nwflux + 1
      nw                  = nw + 1
      if (add_bc) nwfluxbc = nwfluxbc + 1
      iw_qvec(idir)       = nwflux
      iw(idir)            = nwflux
      write(cons_wnames(nwflux),"(A4,I1)") "qvec", idir
      write(prim_wnames(nwflux),"(A4,I1)") "qvec", idir
    end do
    
  end function var_set_qvec