There are some differences in the way soil parameters are specified between the LSM and the routing code. NoahMP currently allows parameters to vary in 3 dimensions, spatially as well as by soil layer (depth). However, the subsurface lateral routing uses parameters specified in 2 dimensions (spatially) only and makes some assumptions about if/how the parameters change with depth (e.g., Ksat decay with depth). In the simplest use of the create_SoilProperties script, where you are simply mapping from the TBL files to a 2d soil type map, all soil layers in the
soil_properties.nc file and the one (and only) layer in
hydro2dtbl.nc will all have the same values. However, in more advanced use of the create_SoilProperties script, depth-varying properties can be averaged in different ways to get a single value for
hydro2dtbl.nc. The files you are seeing are different ways of averaging the 3d soil parameters in
soil_properties.nc to 2d parameters for
hydro2dtbl.nc: TOP1 uses the values from the top layer as-is, TOP2 calculates a depth-averaged mean of the top 2 layers, and ALL calculates a depth-averaged mean across all layers. For most users these will all be identical and you can use any of the files in your model run.
I do have a simplified version of this script that only generates one file, so this is a good reminder that we should distribute that simplified version to reduce confusion.