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]