sol_var_MHD3D_AXBY Subroutine

private subroutine sol_var_MHD3D_AXBY(sf, aa, X, bb, Y)

res=aX+bY , where X,Y,res are of type t_var_sol

Type Bound

t_sol_var_MHD3D

Arguments

Type IntentOptional Attributes Name
class(t_sol_var_MHD3D), intent(inout) :: sf
real(kind=wp), intent(in) :: aa
class(c_sol_var), intent(in) :: X
real(kind=wp), intent(in) :: bb
class(c_sol_var), intent(in) :: Y

Called by

proc~~sol_var_mhd3d_axby~~CalledByGraph proc~sol_var_mhd3d_axby t_sol_var_MHD3D%sol_var_MHD3D_AXBY proc~minimizemhd3d_descent t_minimizer_mhd3d%MinimizeMHD3D_descent proc~minimizemhd3d_descent->proc~sol_var_mhd3d_axby proc~sol_var_mhd3d_test sol_var_MHD3D_test proc~sol_var_mhd3d_test->proc~sol_var_mhd3d_axby proc~sol_var_mhd3d_copy t_sol_var_MHD3D%sol_var_MHD3D_copy proc~sol_var_mhd3d_test->proc~sol_var_mhd3d_copy proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~minimizemhd3d->proc~minimizemhd3d_descent proc~sol_var_mhd3d_init t_sol_var_MHD3D%sol_var_MHD3D_init proc~sol_var_mhd3d_init->proc~sol_var_mhd3d_test proc~minimize minimize proc~minimize->proc~minimizemhd3d 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~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~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_AXBY(sf,aa,X,bb,Y)
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  REAL(wp)        , INTENT(IN   ) :: aa
  CLASS(c_sol_var), INTENT(IN   ) :: X
  REAL(wp)        , INTENT(IN   ) :: bb
  CLASS(c_sol_var), INTENT(IN   ) :: Y
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  CLASS(t_sol_var_MHD3D), INTENT(INOUT) :: sf
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
  INTEGER :: i
!===================================================================================================================================
  SELECT TYPE(X);  TYPE IS(t_sol_var_MHD3D)
  IF(.NOT.X%initialized) CALL abort(__STAMP__,&
                                      'AXBY: X not initialized')

  SELECT TYPE(Y);  TYPE IS(t_sol_var_MHD3D)
  IF(.NOT.Y%initialized) CALL abort(__STAMP__,&
                                       'AXBY: Y not initialized')

!$OMP PARALLEL DO        &
!$OMP   SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i)
  DO i=1,sf%offset(3)
    sf%q(i) = aa*X%q(i) + bb*Y%q(i)
  END DO
!$OMP END PARALLEL DO
  END SELECT !Type
  END SELECT !Type
END SUBROUTINE sol_var_MHD3D_AXBY