From bfcb72060e4e5f1bf9e5dc0c09ad7afd206cb702 Mon Sep 17 00:00:00 2001 From: "Richard.Methot" <1365818351113302@mil> Date: Thu, 4 Sep 2025 12:37:42 -0700 Subject: [PATCH 1/4] augment F reporting --- SS_write_report.tpl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SS_write_report.tpl b/SS_write_report.tpl index d706a7dc..05feece8 100644 --- a/SS_write_report.tpl +++ b/SS_write_report.tpl @@ -3096,6 +3096,7 @@ FUNCTION void write_bigoutput() SS2out << "Asel_is_age_selectivity_alone" << endl; SS2out << "Asel2_is_Asel*(selL*size_at_age(ALK)); Q and F parameters may appear higher than expected because Asel2 may have max < 1.0; " << endl; SS2out << "Aret_is_age_retention" << endl; + SS2out << "F_is_F*Asel2;_F+_is_F*sel_dead_so_matches_the_mortality_calculations" << endl; SS2out << "COMBINED_ALK*selL*selA*wtlen*ret*discmort_in_makefishsel_yr: " << makefishsel_yr << " With_MeanSel_From: " << Fcast_Sel_yr1 << " - " << Fcast_Sel_yr2; // SS_Label_380 SS2out << "; Year_styr-3_(" << styr - 3 << ")_stores_average_used_for_benchmark" << endl; @@ -3164,6 +3165,7 @@ FUNCTION void write_bigoutput() if (fleet_type(f) <= 2) SS2out << "F " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_F" << Hrate(f, t) * save_sel_num(t, f, g) << endl; + SS2out << "F+ " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_F+" << Hrate(f, t) * sel_dead_num(t, f, g) << endl; SS2out << "bodywt " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_bodywt" << Wt_Age_t(t, f, g) << endl; } } From 5e3cd4db4c2c235df20a981472acdf7c1a79563a Mon Sep 17 00:00:00 2001 From: "Richard.Methot" <1365818351113302@mil> Date: Thu, 4 Sep 2025 13:41:08 -0700 Subject: [PATCH 2/4] better with year dim on the array --- SS_param.tpl | 1 + SS_selex.tpl | 4 ++-- SS_write_report.tpl | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/SS_param.tpl b/SS_param.tpl index d8ff05f9..8d2cefb4 100644 --- a/SS_param.tpl +++ b/SS_param.tpl @@ -533,6 +533,7 @@ PARAMETER_SECTION 4darray sel_dead_bio(1,nseas,1,Nfleet,1,gmorph,0,nages); // sel * (retain + (1-retain)*discmort) * wt 4darray save_sel_num(styr-3*nseas,TimeMax_Fcast_std+nseas,1,Nfleet,1,gmorph,0,nages) // save sel_num (Asel_2) and save fecundity for output; +nseas covers no forecast setups + 4darray save_F_plus(styr-3*nseas,TimeMax_Fcast_std+nseas,1,Nfleet,1,gmorph,0,nages) // save sel_num (Asel_2) and save fecundity for output; +nseas covers no forecast setups 4darray Sel_for_tag(TG_timestart*Do_TG,TimeMax*Do_TG,1,Nfleet,1,gmorph*Do_TG,0,nages) vector TG_report(1,Nfleet*Do_TG); diff --git a/SS_selex.tpl b/SS_selex.tpl index 1806d646..531388c1 100644 --- a/SS_selex.tpl +++ b/SS_selex.tpl @@ -2053,7 +2053,7 @@ FUNCTION void Make_FishSelex() << " " << f << " " << Wt_Age_t(tz, f, g) << " #wt_flt_" << f << endl; } } // end need to do it - save_sel_num(t, f, g) = sel_num(s, f, g); // save sel_num in save_fecundity array for output - + save_sel_num(t, f, g) = sel_num(s, f, g); // save sel_num for output in age_selex report + save_F_plus(t, f, g) = sel_dead_num(s, f, g); // save for output } // end fleet loop for mortality, retention } // end Make_FishSelex diff --git a/SS_write_report.tpl b/SS_write_report.tpl index 05feece8..a838c02b 100644 --- a/SS_write_report.tpl +++ b/SS_write_report.tpl @@ -3165,7 +3165,7 @@ FUNCTION void write_bigoutput() if (fleet_type(f) <= 2) SS2out << "F " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_F" << Hrate(f, t) * save_sel_num(t, f, g) << endl; - SS2out << "F+ " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_F+" << Hrate(f, t) * sel_dead_num(t, f, g) << endl; + SS2out << "F+ " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_F+" << Hrate(f, t) * save_F_plus(t, f, g) << endl; SS2out << "bodywt " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_bodywt" << Wt_Age_t(t, f, g) << endl; } } From 272350631cd421936cb3af95a1d6d16408f2b30f Mon Sep 17 00:00:00 2001 From: "Richard.Methot" <1365818351113302@mil> Date: Fri, 5 Sep 2025 14:00:10 -0700 Subject: [PATCH 3/4] change name to Fdead --- SS_param.tpl | 2 +- SS_selex.tpl | 2 +- SS_write_report.tpl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SS_param.tpl b/SS_param.tpl index 8d2cefb4..00a97dbd 100644 --- a/SS_param.tpl +++ b/SS_param.tpl @@ -533,7 +533,7 @@ PARAMETER_SECTION 4darray sel_dead_bio(1,nseas,1,Nfleet,1,gmorph,0,nages); // sel * (retain + (1-retain)*discmort) * wt 4darray save_sel_num(styr-3*nseas,TimeMax_Fcast_std+nseas,1,Nfleet,1,gmorph,0,nages) // save sel_num (Asel_2) and save fecundity for output; +nseas covers no forecast setups - 4darray save_F_plus(styr-3*nseas,TimeMax_Fcast_std+nseas,1,Nfleet,1,gmorph,0,nages) // save sel_num (Asel_2) and save fecundity for output; +nseas covers no forecast setups + 4darray save_F_dead(styr-3*nseas,TimeMax_Fcast_std+nseas,1,Nfleet,1,gmorph,0,nages) // save sel_num (Asel_2) and save fecundity for output; +nseas covers no forecast setups 4darray Sel_for_tag(TG_timestart*Do_TG,TimeMax*Do_TG,1,Nfleet,1,gmorph*Do_TG,0,nages) vector TG_report(1,Nfleet*Do_TG); diff --git a/SS_selex.tpl b/SS_selex.tpl index 531388c1..9141ee67 100644 --- a/SS_selex.tpl +++ b/SS_selex.tpl @@ -2054,6 +2054,6 @@ FUNCTION void Make_FishSelex() } } // end need to do it save_sel_num(t, f, g) = sel_num(s, f, g); // save sel_num for output in age_selex report - save_F_plus(t, f, g) = sel_dead_num(s, f, g); // save for output + save_F_dead(t, f, g) = sel_dead_num(s, f, g); // save for output } // end fleet loop for mortality, retention } // end Make_FishSelex diff --git a/SS_write_report.tpl b/SS_write_report.tpl index a838c02b..9bedb207 100644 --- a/SS_write_report.tpl +++ b/SS_write_report.tpl @@ -3165,7 +3165,7 @@ FUNCTION void write_bigoutput() if (fleet_type(f) <= 2) SS2out << "F " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_F" << Hrate(f, t) * save_sel_num(t, f, g) << endl; - SS2out << "F+ " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_F+" << Hrate(f, t) * save_F_plus(t, f, g) << endl; + SS2out << "Fdead " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_Fdead" << Hrate(f, t) * save_F_dead(t, f, g) << endl; SS2out << "bodywt " << f << " " << y << " " << s << " " << sx(g) << " " << g << " " << y << "_" << f << "_bodywt" << Wt_Age_t(t, f, g) << endl; } } From d1390d33ab4dc5599fd9787c61f95eb122ef892c Mon Sep 17 00:00:00 2001 From: Rick Methot Date: Tue, 9 Sep 2025 10:28:55 -0700 Subject: [PATCH 4/4] correct Fdead terminology --- SS_write_report.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SS_write_report.tpl b/SS_write_report.tpl index 9bedb207..a56371b5 100644 --- a/SS_write_report.tpl +++ b/SS_write_report.tpl @@ -3096,7 +3096,7 @@ FUNCTION void write_bigoutput() SS2out << "Asel_is_age_selectivity_alone" << endl; SS2out << "Asel2_is_Asel*(selL*size_at_age(ALK)); Q and F parameters may appear higher than expected because Asel2 may have max < 1.0; " << endl; SS2out << "Aret_is_age_retention" << endl; - SS2out << "F_is_F*Asel2;_F+_is_F*sel_dead_so_matches_the_mortality_calculations" << endl; + SS2out << "F_is_F*Asel2;_Fdead_is_F*sel_dead_so_matches_the_mortality_calculations" << endl; SS2out << "COMBINED_ALK*selL*selA*wtlen*ret*discmort_in_makefishsel_yr: " << makefishsel_yr << " With_MeanSel_From: " << Fcast_Sel_yr1 << " - " << Fcast_Sel_yr2; // SS_Label_380 SS2out << "; Year_styr-3_(" << styr - 3 << ")_stores_average_used_for_benchmark" << endl;