src.monarchs.physics.Numba.extract_args.extract_args_fixedsfc

src.monarchs.physics.Numba.extract_args.extract_args_fixedsfc(args)

NumbaMinpack gives large performance boosts, but has very crude syntax which requires us to place all of our arguments to heateqn in a single vector. This function retrieves the relevant arrays from the “args” vector and separates them into physically-meaningful variables. This is split into a separate function to extract_args, since using conditionals causes issues with Numba (since the code is pre-compiled, any shape or dtype differences as is the case here cause issues).

Parameters:

args (float64[:]) – Input vector of arguments. Generated using args_array from <module_name>.

Returns:

  • T (float64[:]) – Temperature of each vertical point in the ice shelf. [K]

  • Sfrac (float64[:]) – Solid fraction of each vertical point.

  • Lfrac (float64[:]) – Liquid fraction in each vertical point.

  • k_air (float64) – Thermal conductivity of air.

  • k_water (float64) – Thermal conductivity of water.

  • cp_air (float64) – Heat capacity of air.

  • cp_water (float64) – Heat capacity of air.

  • dt (float64) – Timestep. [s].

  • dz (float64) – Change in firn height with respect to a step in vertical point [m]

  • Tsfc (float64) – Surface temperature [K]