From a26ea630d7490e003e4f28786785eebfa4c833cb Mon Sep 17 00:00:00 2001 From: Richard Methot Date: Tue, 1 Apr 2025 12:11:45 -0700 Subject: [PATCH 1/2] age-based calc of sel_dead_num and bio is repaired --- SS_selex.tpl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/SS_selex.tpl b/SS_selex.tpl index 2c500625..49f8b588 100644 --- a/SS_selex.tpl +++ b/SS_selex.tpl @@ -1973,10 +1973,11 @@ FUNCTION void Make_FishSelex() } case 2: { + // details of retention and mortality already taken into account with calc of discmort2_a sel_ret_bio(s, f, g) = elem_prod(sel_bio(s, f, g), retain_a(y, f, gg)); // retained wt-at-age sel_ret_num(s, f, g) = elem_prod(sel_num(s, f, g), retain_a(y, f, gg)); // retained numbers - sel_dead_bio(s, f, g) = elem_prod(sel_ret_bio(s, f, g), discmort_a(y, f, gg)); // dead wt - sel_dead_num(s, f, g) = elem_prod(sel_ret_num(s, f, g), discmort_a(y, f, gg)); // dead numbers + sel_dead_bio(s, f, g) = elem_prod(Wt_Age_t(tz, f, g), discmort2_a(y, f, gg)); // dead wt + sel_dead_num(s, f, g) = discmort2_a(y, f, gg); // dead numbers break; } case 3: // all selected fish are dead @@ -1988,6 +1989,11 @@ FUNCTION void Make_FishSelex() break; } } + if (docheckup == 1 && y == styr) + { + echoinput << " sel_ret_bio " << sel_ret_bio(s, f, g) << endl + << " sel_dead_bio " << sel_dead_bio(s, f, g) << endl; + } } else // size_selectivity and possible size retention From 247910214a397211a06f17f862e439ebe0c8f74e Mon Sep 17 00:00:00 2001 From: Richard Methot Date: Tue, 1 Apr 2025 14:19:57 -0700 Subject: [PATCH 2/2] improve some code comments --- SS_selex.tpl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SS_selex.tpl b/SS_selex.tpl index 49f8b588..5a8e1dae 100644 --- a/SS_selex.tpl +++ b/SS_selex.tpl @@ -1955,7 +1955,7 @@ FUNCTION void Make_FishSelex() sel_num(s, f, g) = sel_a(yf, f, gg); // selected numbers switch (seltype(f + Nfleet, 2)) // age-retention function { - case 0: + case 0: // no discarding, so just copy the selected quantities { sel_ret_bio(s, f, g) = sel_bio(s, f, g); // retained wt-at-age sel_ret_num(s, f, g) = sel_num(s, f, g); // retained numbers @@ -1963,7 +1963,7 @@ FUNCTION void Make_FishSelex() sel_dead_num(s, f, g) = sel_num(s, f, g); // dead numbers break; } - case 1: + case 1: // age-based retention function is used; all discarded fish assumed dead and have same bodywt as retained fish { sel_ret_bio(s, f, g) = elem_prod(sel_bio(s, f, g), retain_a(y, f, gg)); // retained wt-at-age sel_ret_num(s, f, g) = elem_prod(sel_num(s, f, g), retain_a(y, f, gg)); // retained numbers @@ -1971,7 +1971,7 @@ FUNCTION void Make_FishSelex() sel_dead_num(s, f, g) = sel_ret_num(s, f, g); // dead numbers break; } - case 2: + case 2: // age-based retention and discard mortality, same body wt as retained fish { // details of retention and mortality already taken into account with calc of discmort2_a sel_ret_bio(s, f, g) = elem_prod(sel_bio(s, f, g), retain_a(y, f, gg)); // retained wt-at-age @@ -1980,7 +1980,7 @@ FUNCTION void Make_FishSelex() sel_dead_num(s, f, g) = discmort2_a(y, f, gg); // dead numbers break; } - case 3: // all selected fish are dead + case 3: // all selected fish are dead; use this for a discard only fleet { sel_ret_bio(s, f, g) = 0.0; // retained wt-at-age sel_ret_num(s, f, g) = 0.0; // retained numbers