surface1 version with critical regions
surface1 version with reduction arrays