compare sf with input sbase
| Type | Intent | Optional | 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(:) |
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