-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Describe the bug
The problem is that the vector created to represent dead fish not using a correct component.
It is calculated here:
discmort2_a(y, fs, 1) = elem_prod(sel_a(y, fs, 1), retain_a(y, fs, 1) + elem_prod((1. - retain_a(y, fs, 1)), discmort_a(y, fs, 1)));
then with docheckup turned on you can get it output as:
if (docheckup == 1 && y == styr) echoinput << " dead " << discmort2_a(y, fs) << endl;
But I do not see it getting used in a place like here:
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.
The problem seems related to which vectors get created and stored with a "y" subscript, and which are created from them and stored with a "s" season subscript for use in the catch calculations.
To Reproduce
reported dead catch in a model with age-based retention is shown as discard_mortality * retained_catch, rather than the correct value
Expected behavior
// 4darray sel_dead_num(1,nseas,1,gmorph,1,Nfleet,0,nages); // sel * (retain + (1-retain)*discmort)
// 4darray sel_dead_bio(1,nseas,1,gmorph,1,Nfleet,0,nages); // sel * (retain + (1-retain)*discmort) * wt
Screenshots
No response
Which OS are you seeing the problem on?
No response
Which version of SS3 are you seeing the problem on?
3.30.22. Probably has been incorrect since age-retention was created
Additional Context
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Status