subroutine check_variableOperations_byIndex(res, general, varSys, indices)
logical, intent(inout) :: res
type(tem_general_type), intent(in) :: general
type(tem_varSys_type), intent(in) :: varSys
integer, intent(in) :: indices(:,:)
real(kind=rk) :: resVar(1)
integer :: varPos
varPos = positionOfVal(varSys%varname, 'true_and_true')
call varSys%method%val(varPos)%get_valOfIndex( &
& varSys = varSys, &
& time = general%simControl%now, &
& iLevel = 1, &
& idx = indices(varPos,:), &
& nVals = 1, &
& res = resVar )
write(*,*) resVar
res = res .and. realToLogical(resVar(1))
call checkResult( res, 'Logical operator: true_and_true' )
varPos = positionOfVal(varSys%varname, 'true_and_false')
call varSys%method%val(varPos)%get_valOfIndex( &
& varSys = varSys, &
& time = general%simControl%now, &
& iLevel = 1, &
& idx = indices(varPos,:), &
& nVals = 1, &
& res = resVar )
write(*,*) resVar
res = res .and..not. realToLogical(resVar(1))
call checkResult( res, 'Logical operator: true_and_false' )
varPos = positionOfVal(varSys%varname, 'true_or_true')
call varSys%method%val(varPos)%get_valOfIndex( &
& varSys = varSys, &
& time = general%simControl%now, &
& iLevel = 1, &
& idx = indices(varPos,:), &
& nVals = 1, &
& res = resVar )
write(*,*) resVar
res = res .and. realToLogical(resVar(1))
call checkResult( res, 'Logical operator: true_or_true' )
varPos = positionOfVal(varSys%varname, 'true_or_false')
call varSys%method%val(varPos)%get_valOfIndex( &
& varSys = varSys, &
& time = general%simControl%now, &
& iLevel = 1, &
& idx = indices(varPos,:), &
& nVals = 1, &
& res = resVar )
write(*,*) resVar
res = res .and. realToLogical(resVar(1))
call checkResult( res, 'Logical operator: true_or_false' )
varPos = positionOfVal(varSys%varname, 'false_or_false')
call varSys%method%val(varPos)%get_valOfIndex( &
& varSys = varSys, &
& time = general%simControl%now, &
& iLevel = 1, &
& idx = indices(varPos,:), &
& nVals = 1, &
& res = resVar )
write(*,*) resVar
res = res .and..not. realToLogical(resVar(1))
call checkResult( res, 'Logical operator: false_or_false' )
end subroutine check_variableOperations_byIndex