function [prdData, info] = predict_Ampullaceana_balthica(par, data, auxData)
% file generated by prt_predict

% unpack par, data, auxData
cPar = parscomp_st(par); vars_pull(par);
v2struct(par); v2struct(cPar); v2struct(data); v2struct(auxData);

% compute temperature correction factors
pars_T = T_A;
TC_ab = tempcorr(temp.ab, T_ref, pars_T);
TC_ab_15 = tempcorr(temp.ab_15, T_ref, pars_T);
TC_ab_25 = tempcorr(temp.ab_25, T_ref, pars_T);
TC_tp = tempcorr(temp.tp, T_ref, pars_T);
TC_am = tempcorr(temp.am, T_ref, pars_T);

% life cycle
pars_tj = [g; k; l_T; v_Hb; v_Hj; v_Hp];
[tau_j, tau_p, tau_b, l_j, l_p, l_b, l_i, rho_j, rho_B, info] = get_tj(pars_tj, f);

if info == 0
  prdData = []; return;
end

% birth
a_b = t_0 + tau_b/ k_M/ TC_ab;    % d, age at birth
a_b_15 = t_0 + tau_b/ k_M/ TC_ab_15;    % d, age at birth
a_b_25 = t_0 + tau_b/ k_M/ TC_ab_25;    % d, age at birth

% puberty
L_p = L_m * l_p; % cm, structural length at puberty
t_p = (tau_p - tau_b)/ k_M/ TC_tp; % d, time since birth at puberty
Lw_p = L_p/ del_M; % cm, physical length at puberty

% ultimate
L_i = L_m * l_i; % cm, ultimate structural length
Lw_i = l_i * L_m/ del_M; % cm, ultimate physical length
pars_tm = [g; l_T; h_a/ k_M^2; s_G]; % compose parameter vector
tau_m = get_tm_s(pars_tm, f, l_b); % -, scaled mean life span
a_m = tau_m/ k_M/ TC_am; % d, mean life span

% pack to output
prdData.ab = a_b;
prdData.ab_15 = a_b_15;
prdData.ab_25 = a_b_25;
prdData.tp = t_p;
prdData.am = a_m;
prdData.Lp = Lw_p;
prdData.Li = Lw_i;

% length - wet weight
LWw = (LWw(:,1) * del_M).^3 * (1 + f_LWw * ome); % g, wet weight

% pack to output
prdData.LWw = LWw;

