sBase_compare Subroutine

private subroutine sBase_compare(sf, tocompare, is_same, cond_out)

compare sf with input sbase

Type Bound

t_sBase

Arguments

Type IntentOptional Attributes Name
class(t_sBase), intent(in) :: sf

self

class(c_sbase), intent(in) :: tocompare
logical, intent(out), optional :: is_same
logical, intent(out), optional :: cond_out(:)

Calls

proc~~sbase_compare~~CallsGraph proc~sbase_compare t_sBase%sBase_compare proc~sgrid_compare t_sGrid%sGrid_compare proc~sbase_compare->proc~sgrid_compare

Called by

proc~~sbase_compare~~CalledByGraph proc~sbase_compare t_sBase%sBase_compare proc~base_compare t_base%base_compare proc~base_compare->proc~sbase_compare proc~sbase_change_base t_sBase%sBase_change_base proc~sbase_change_base->proc~sbase_compare proc~sbase_test sBase_test proc~sbase_test->proc~sbase_compare proc~sbase_test->proc~sbase_change_base proc~sbase_new sBase_new proc~sbase_test->proc~sbase_new proc~sbase_init t_sBase%sBase_init proc~sbase_init->proc~sbase_test proc~sbase_copy t_sBase%sBase_copy proc~sbase_copy->proc~sbase_init proc~sbase_new->proc~sbase_init proc~base_copy t_base%base_copy proc~base_copy->proc~sbase_copy proc~base_new Base_new proc~base_new->proc~sbase_new proc~readstatefilefromascii ReadStateFileFromASCII proc~readstatefilefromascii->proc~sbase_new proc~readstatefilefromascii->proc~base_new interface~readstate ReadState interface~readstate->proc~readstatefilefromascii proc~init_base Init_Base proc~init_base->proc~base_new proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->proc~base_new proc~transform_sfl_init t_transform_sfl%transform_SFL_init proc~transform_sfl_init->proc~base_new proc~init_gvec_to_jorek init_gvec_to_jorek proc~init_gvec_to_jorek->interface~readstate proc~init_gvec_to_jorek->proc~init_base proc~restartfromstate RestartFromState proc~restartfromstate->interface~readstate proc~transform_sfl_new transform_sfl_new proc~transform_sfl_new->proc~transform_sfl_init

Source Code

SUBROUTINE sBase_compare( sf , tocompare,is_same,cond_out)
! MODULES
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  CLASS(t_sBase),  INTENT(IN   ) :: sf !! self
  CLASS(c_sBase),  INTENT(IN   ) :: tocompare
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  LOGICAL,OPTIONAL,INTENT(  OUT) :: is_same
  LOGICAL,OPTIONAL,INTENT(  OUT) :: cond_out(:)
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
  LOGICAL  :: cond(5)
!===================================================================================================================================
  SELECT TYPE(tocompare); CLASS IS(t_sbase)
  IF(.NOT.tocompare%initialized) THEN
    CALL abort(__STAMP__, &
        "sBase_compare: tried to compare to non-initialized sBase!")
  END IF

  CALL sf%grid%compare(tocompare%grid,cond(1))
  IF(cond(1)) THEN
    !same grid, compare basis
    cond(2)= (sf%nbase      .EQ. tocompare%nbase     )
    cond(3)= (sf%deg        .EQ. tocompare%deg       )
    cond(4)= (sf%continuity .EQ. tocompare%continuity)
  ELSE
    cond(2:4)=.FALSE.
  END IF

  cond(5)=.FALSE.
  SELECT TYPE(tocompare)
  TYPE IS(t_sbase_disc)
    SELECT TYPE(sf)
    TYPE IS(t_sbase_disc)
      cond(5)=.TRUE.
    END SELECT
  TYPE IS(t_sbase_spl)
    SELECT TYPE(sf)
    TYPE IS(t_sbase_spl)
     cond(5)=.TRUE.
    END SELECT
  END SELECT !TYPE(tocompare)

  IF(PRESENT(is_same)) is_same=ALL(cond)
  !IF(.NOT.ALL(cond)) WRITE(*,*)'DEBUG, not all cond in sbase for compare', cond

  IF(PRESENT(cond_out)) cond_out(1:5)=cond

  END SELECT !TYPE(tocompare)

END SUBROUTINE sbase_compare