addsource_local Subroutine

private subroutine addsource_local(qdt, dtfactor, qtC, wCT, wCTprim, qt, wnew, x, dr, qsourcesplit)

Uses

    • mod_usr
    • mod_radiative_cooling
  • proc~~addsource_local~6~~UsesGraph proc~addsource_local~6 addsource_local mod_radiative_cooling mod_radiative_cooling proc~addsource_local~6->mod_radiative_cooling mod_usr mod_usr proc~addsource_local~6->mod_usr

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: qdt
real(kind=dp), intent(in) :: dtfactor
real(kind=dp), intent(in) :: qtC
real(kind=dp), intent(in) :: wCT(nw_phys)
real(kind=dp), intent(in) :: wCTprim(nw_phys)
real(kind=dp), intent(in) :: qt
real(kind=dp), intent(inout) :: wnew(nw_phys)
real(kind=dp), intent(in) :: x(1:ndim)
real(kind=dp), intent(in) :: dr(ndim)
logical, intent(in) :: qsourcesplit

Calls

proc~~addsource_local~6~~CallsGraph proc~addsource_local~6 addsource_local gravity_field gravity_field proc~addsource_local~6->gravity_field radiative_cooling_add_source radiative_cooling_add_source proc~addsource_local~6->radiative_cooling_add_source

Called by

proc~~addsource_local~6~~CalledByGraph proc~addsource_local~6 addsource_local proc~finite_volume_local_muscl_hllc~2 finite_volume_local_muscl_hllc proc~finite_volume_local_muscl_hllc~2->proc~addsource_local~6 proc~finite_volume_local_muscl_hll~2 finite_volume_local_muscl_hll proc~finite_volume_local_muscl_hll~2->proc~addsource_local~6 proc~finite_volume_local_muscl_llf~2 finite_volume_local_muscl_llf proc~finite_volume_local_muscl_llf~2->proc~addsource_local~6 proc~finite_volume_local~2 finite_volume_local proc~finite_volume_local~2->proc~finite_volume_local_muscl_hllc~2 proc~finite_volume_local~2->proc~finite_volume_local_muscl_hll~2 proc~finite_volume_local~2->proc~finite_volume_local_muscl_llf~2

Source Code

subroutine addsource_local(qdt, dtfactor, qtC, wCT, wCTprim, qt, wnew, x, dr, &
    qsourcesplit)
  use mod_usr, only: gravity_field
  use mod_radiative_cooling, only: rc_fl, radiative_cooling_add_source
  

  real(dp), intent(in)     :: qdt, dtfactor, qtC, qt
  real(dp), intent(in)     :: wCT(nw_phys), wCTprim(nw_phys)
  real(dp), intent(in)     :: x(1:ndim), dr(ndim)
  real(dp), intent(inout)  :: wnew(nw_phys)
  logical, intent(in)      :: qsourcesplit
  ! .. local ..
  integer                  :: idim
  real(dp)                 :: field

  if (.not. qsourcesplit) then 
     !---------------------------------
     ! unsplit sources
     !---------------------------------

     do idim = 1, ndim
        field = gravity_field(wCT, x, idim)
        wnew(iw_mom(idim)) = wnew(iw_mom(idim)) + qdt * field * wCT(iw_rho)
        wnew(iw_e)         = wnew(iw_e) + qdt * field * wCT(iw_mom(idim))
     end do

     call radiative_cooling_add_source(qdt,wCT,wCTprim,wnew,x)

  else
     !---------------------------------
     ! split sources     
     !---------------------------------

     ! Not yet implemented

  end if

end subroutine addsource_local