sol_var_MHD3D_set_to_solvar Subroutine

private subroutine sol_var_MHD3D_set_to_solvar(sf, toset, scal_in)

set variabes X1,X2,LA of toset => sf, optional argument to scale toset with a scalar (for example -1.0_wp)

Type Bound

t_sol_var_MHD3D

Arguments

Type IntentOptional Attributes Name
class(t_sol_var_MHD3D), intent(inout) :: sf

sf

class(c_sol_var), intent(in) :: toset
real(kind=wp), intent(in), optional :: scal_in

Called by

proc~~sol_var_mhd3d_set_to_solvar~~CalledByGraph proc~sol_var_mhd3d_set_to_solvar t_sol_var_MHD3D%sol_var_MHD3D_set_to_solvar none~set_to t_sol_var_MHD3D%set_to none~set_to->proc~sol_var_mhd3d_set_to_solvar proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->none~set_to proc~logging_mhd3d t_minimizer_mhd3d%Logging_MHD3D proc~logging_mhd3d->none~set_to proc~minimizemhd3d_descent t_minimizer_mhd3d%MinimizeMHD3D_descent proc~minimizemhd3d_descent->none~set_to proc~minimizemhd3d_descent->proc~logging_mhd3d proc~minimizemhd3d_resetdescent t_minimizer_mhd3d%MinimizeMHD3d_ResetDescent proc~minimizemhd3d_descent->proc~minimizemhd3d_resetdescent proc~minimizemhd3d_resetdescent->none~set_to proc~sol_var_mhd3d_init t_sol_var_MHD3D%sol_var_MHD3D_init proc~sol_var_mhd3d_init->none~set_to proc~sol_var_mhd3d_test sol_var_MHD3D_test proc~sol_var_mhd3d_init->proc~sol_var_mhd3d_test proc~sol_var_mhd3d_test->none~set_to proc~sol_var_mhd3d_copy t_sol_var_MHD3D%sol_var_MHD3D_copy proc~sol_var_mhd3d_test->proc~sol_var_mhd3d_copy proc~initsolution InitSolution proc~initsolution->proc~initsolutionmhd3d proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~minimizemhd3d->proc~minimizemhd3d_descent proc~new_minimizer new_minimizer proc~new_minimizer->proc~sol_var_mhd3d_init proc~new_minimizer->proc~sol_var_mhd3d_copy proc~rungvec rungvec proc~rungvec->proc~initsolutionmhd3d proc~rungvec->proc~minimizemhd3d proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~rungvec->proc~initmhd3d proc~sol_var_mhd3d_copy->proc~sol_var_mhd3d_init proc~initmhd3d->proc~new_minimizer proc~minimize minimize proc~minimize->proc~minimizemhd3d proc~start_rungvec start_rungvec proc~start_rungvec->proc~rungvec program~gvec GVEC program~gvec->proc~rungvec proc~init Init proc~init->proc~initmhd3d program~gvec_post GVEC_POST program~gvec_post->proc~initmhd3d

Source Code

SUBROUTINE sol_var_MHD3D_set_to_solvar( sf ,toset,scal_in)
! MODULES
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  CLASS(c_sol_var), INTENT(IN   ) :: toset
  REAL(wp),INTENT(IN),OPTIONAL    :: scal_in
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  CLASS(t_sol_var_MHD3D), INTENT(INOUT) :: sf  !!sf
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
  INTEGER :: i
!===================================================================================================================================
  SELECT TYPE(toset); TYPE IS(t_sol_var_MHD3D)
  IF(.NOT.toset%initialized)THEN
    CALL abort(__STAMP__, &
        "sol_var_MHD3D_set_to: not initialized sol_var from which to set!")
  END IF
  IF(PRESENT(scal_in))THEN
!$OMP PARALLEL DO        &
!$OMP   SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i)
    DO i=1,sf%offset(3)
      sf%q(i)=scal_in*toset%q(i)
    END DO
!$OMP END PARALLEL DO
    sf%W_MHD3D=0.0_wp
  ELSE
!$OMP PARALLEL DO        &
!$OMP   SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i)
    DO i=1,sf%offset(3)
      sf%q(i)=toset%q(i)
    END DO
!$OMP END PARALLEL DO
    sf%W_MHD3D=toset%W_MHD3D
  END IF

  END SELECT !TYPE
END SUBROUTINE sol_var_MHD3D_set_to_solvar