fBase_compare Subroutine

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

compare sf with the input type fBase

Type Bound

t_fBase

Arguments

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

self

type(t_fBase), intent(in) :: tocompare
logical, intent(out), optional :: is_same
logical, intent(out), optional :: cond_out(:)

Called by

proc~~fbase_compare~~CalledByGraph proc~fbase_compare t_fBase%fBase_compare proc~fbase_change_base t_fBase%fBase_change_base proc~fbase_change_base->proc~fbase_compare proc~fbase_test fBase_test proc~fbase_test->proc~fbase_compare proc~fbase_test->proc~fbase_change_base proc~fbase_init t_fBase%fBase_init proc~fbase_test->proc~fbase_init proc~base_change_base t_base%base_change_base proc~base_change_base->proc~fbase_change_base proc~bff_convert_to_modes t_boundaryFromFile%bff_convert_to_modes proc~bff_convert_to_modes->proc~fbase_change_base proc~fbase_new fBase_new proc~bff_convert_to_modes->proc~fbase_new proc~fbase_init->proc~fbase_test proc~get_boozer_sinterp t_sfl_boozer%Get_Boozer_sinterp proc~get_boozer_sinterp->proc~fbase_change_base proc~get_boozer_sinterp->proc~fbase_new proc~buildtransform_sfl t_transform_sfl%BuildTransform_SFL proc~buildtransform_sfl->proc~get_boozer_sinterp proc~transform_angles_sinterp Transform_Angles_sinterp proc~buildtransform_sfl->proc~transform_angles_sinterp proc~fbase_copy t_fBase%fBase_copy proc~fbase_copy->proc~fbase_init proc~fbase_new->proc~fbase_init proc~get_boozer get_boozer proc~get_boozer->proc~get_boozer_sinterp proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->proc~bff_convert_to_modes proc~base_new Base_new proc~initmhd3d->proc~base_new proc~restartfromstate RestartFromState proc~restartfromstate->proc~base_change_base interface~readstate ReadState proc~restartfromstate->interface~readstate proc~base_new->proc~fbase_new proc~hmap_axisnb_init_params hmap_axisNB_init_params proc~hmap_axisnb_init_params->proc~fbase_new proc~init_base Init_Base proc~init_base->proc~fbase_new proc~init_base->proc~base_new proc~sfl_boozer_new sfl_boozer_new proc~sfl_boozer_new->proc~fbase_new proc~transform_angles_sinterp->proc~fbase_new interface~t_hmap_axisnb t_hmap_axisNB interface~t_hmap_axisnb->proc~hmap_axisnb_init_params proc~hmap_axisnb_init hmap_axisNB_init interface~t_hmap_axisnb->proc~hmap_axisnb_init proc~hmap_axisnb_init->proc~hmap_axisnb_init_params proc~init_gvec_to_jorek init_gvec_to_jorek proc~init_gvec_to_jorek->proc~init_base proc~init_gvec_to_jorek->interface~readstate proc~readstatefilefromascii ReadStateFileFromASCII proc~readstatefilefromascii->proc~base_new proc~transform_sfl_init t_transform_sfl%transform_SFL_init proc~transform_sfl_init->proc~base_new interface~readstate->proc~readstatefilefromascii proc~transform_sfl_new transform_sfl_new proc~transform_sfl_new->proc~transform_sfl_init

Source Code

SUBROUTINE fBase_compare( sf , tocompare,is_same, cond_out)
! MODULES
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  CLASS(t_fBase),  INTENT(IN   ) :: sf !! self
  TYPE(t_fBase),  INTENT(IN   ) :: tocompare
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  LOGICAL,OPTIONAL,INTENT(  OUT) :: is_same
  LOGICAL,OPTIONAL,INTENT(  OUT) :: cond_out(:)
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
  LOGICAL  :: cond(5)
!===================================================================================================================================
  IF(.NOT.tocompare%initialized) THEN
    CALL abort(__STAMP__, &
        "fBase_compare: tried to compare with non-initialized fBase!")
  END IF

  cond(1)= ALL( sf%mn_max(:)      .EQ.  tocompare%mn_max(:)       )
  cond(2)=    ( sf%nfp            .EQ.  tocompare%nfp             )
  cond(3)=    ( sf%modes          .EQ.  tocompare%modes           )
  cond(4)=    ( sf%sin_cos        .EQ.  tocompare%sin_cos         )
  cond(5)=    ( sf%exclude_mn_zero.EQV. tocompare%exclude_mn_zero )

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

END SUBROUTINE fBase_compare