Skip to content

[Bug]: add warning for age 0 maturity #654

@Rick-Methot-NOAA

Description

@Rick-Methot-NOAA

Describe the solution you would like.

A user with an EWAA model had mature fish occurring at age 0.
It was annual model, with spawn_seas = 1.0 and settlement also at month 1.0.
During the time series, the age 0 fish do not get created until after SSB is calculated, so the SSB does not include any age 0 fish even though they are mature.
During the forecast, the multiple loops cause the age 0 fish to get populated in the first loop and then exist in later loops, so get included in the SSB.
This needs to be prevented.

Note that empirical wtatage takes precedence over First_Mature _Age, so adding a warning specific to EWAA

@alexjensen-NOAA

  • New warning added for wtatage.ss scenarios:
Warning 1 : WTATAGE.SS has positive fecundity at age 0 for year = 1970 Are you sure? fecundity is only used at the time of spawning and age 0 fish normally do not exist at time of spawning`
  • add code to zero out the age 0 fish in the forecast. This is not an issue during the time series.
  natage(t, p, g, 0) = 0.0; // these fish should not exist at beginning of year.  They are created after spawning.  Are here in array only due to Fcast_Loop1
 SSB_pop_gp(y, p, GP4(g)) += fracfemale_mult * fec(g) * natage(t, p, g); // accumulates SSB by area and by growthpattern
  • add warning regarding age 0 maturity
  if (First_Mature_Age == 0)  {
    warnstream<<"First_Mature_Age read as:  " << First_Mature_Age << ", which is unusual. Check logic of spawn_month and settlement time & age";

Describe alternatives you have considered

none obvious

Statistical validity, if applicable

NA

Describe if this is needed for a management application

yes, upcoming assessment

Additional context

No response

Metadata

Metadata

Labels

Type

No type

Projects

Status

Done

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions