Skip to content

[Bug]: age discard with discard mortality using wrong vector #662

@Rick-Methot-NOAA

Description

@Rick-Methot-NOAA

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

Labels

bugSomething isn't working; don't remove label after fixingchange loguse for issues that should appear in change logdiscard & retention

Type

Projects

Status

Done

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions