Carnival stock climbs after earnings surprise