Development of a multi-layer canopy model for E3SM Land Model with support for heterogeneous computing