;+ ; NAME: ; vt3d_vtstep_expl_1loc ; PURPOSE: (one line) ; step the temperature one time step ; DESCRIPTION: ; step the temperature one time step ; CATEGORY: ; Volatile Transport ; CALLING SEQUENCE: ; vt3d_step_expl_1loc, alpha_i, beta_0, beta_i, gamma_0, gamma_J, temp_0, temp_i ; INPUTS: ; alpha_i: dependance of new temp[1..J] on old temp[0..J-1], unitless, float[J] ; beta_0: dependance of new temp[0] on old temp[1], unitless, float ; beta_i: dependance of new temp[1..J] on old temp[2..J+1], unitless, float[J] ; gamma_0: net flux at upper boundary, K, float ; gamma_J: net flux at lower boundary, K, float ; INPUT-OUTPUTS: ; temp_0 : temperature at layer 0, K, float. ; temp_i : temperature at layer 1..J, K, float[J] ; Old temperatures are passed, new temperatures are returned. ; COMMON BLOCKS: ; None ; SIDE EFFECTS: ; temp_0 and temp_i are modified ; RESTRICTIONS: ; nsurf = 0 or 1 ; PROCEDURE: ; Young, L. A. 2016, Volatile transport on inhomogeneous surfaces: II. Numerical calculations (VT3D) ; Resubmitted to Icarus. ; Eq. 3.4-2 ; MODIFICATION HISTORY: ; Written 2011 Feb 6, by Leslie Young, SwRI ; 2016 Mar 24 LAY. Modified for inclusion in vt3d library. ;- pro vt3d_step_expl_1loc, alpha_i, beta_0, beta_i, gamma_0, gamma_J, temp_0, temp_i n_j = n_elements(alpha_i) eta_0 = 1 - beta_0 ; Young 2016, table 3 eta_i = 1 - alpha_i - beta_i ; Young 2016, tables 4-5 t_0 = eta_0 * temp_0 + beta_0 * temp_i[0] + gamma_0 t_i = eta_i * temp_i + beta_i[0:n_j-1]*[temp_i[1:n_j-1],0] + alpha_i*[temp_0,temp_i[0:n_j-2]] t_i[n_j-1] += gamma_J temp_0 = t_0 temp_i = t_i end