• implemented Data@Vuln_CAL in generating CAL samples. Data@Vuln_CAA is not currently implemented
• added extended argument to multiMSE to report N-at-age in MMSE@Misc$extended$N
• added optional MOM@SexPars$share_par = FALSE argument that turns off parameter mirroring of stock-recruit, depletion parameters; fleet parameters related to effort trends; and all observation/implementation parameters. This can be used to generalize a 2-sex MOM to a multi-stock model with shared spawning output (SexPars$SSBfrom) and/or movement-at-age between stocks (SexPars$Herm). ### Fixes • minor fix to SS2OM when empirical weight-at-age is not available • minor fix to L95 calculation when all age classes are mature (defaults to 1.5) ### New additions • added additional indices to plot.Data • added option for custom stock-recruitment function (in development/testing) ### Minor changes • Add Misc information to PPD for MMSE • remove devtools from Suggests and replace with remotes • updates to SS2MOM_plots plots ### Fixes • fix minor bugs in SS2Data • fix bug in calculating selectivity/retention in SSMOM2OM • fix bug in calculating fecundity-at-age for SS2OM in SSinternal • fix minor bug in SS2MOM_plots • fix calculation of L95array when Mat_age passed in through cpars • fix minor bug in SS2OM when report=TRUE ### Major changes • By default, MPs are now no longer run in parallel mode when parallel=TRUE in runMSE and multiMSE. To run MPs in parallel, specify a named list with the name of the MP(s) assigned as TRUE. For example,parallel=list(AvC=TRUE). ### New additions • added summary.MMSE generic function • added Lag_Data function to be used internally in custom MPs to lag all time-series data by specified number of time-steps (or optionally only some data slots). See ?Lag_Data for more information. • added stock and fleet names (if provided in MOM) to (multiHist) • added Real.Data.Map to cpars. This allows mapping of simulated data across stocks in MOMs where the real data is not stock-specific; e.g., cases where MOM includes male and female stocks but the real data in cpars$Data is not sex-specific
• runMSE can use the split-apply-combine technique to run projections in parallel with argument parallel = "sac". Implementation details and notable issues are documented in the help doc ?runMSE. This is the fastest method for running simulations but may not be suitable for all operating models and it may be more difficult to troubleshoot errors.

### Minor changes

• minor patch to ASAP2Data
• minor patch in Assess2OM
• removed duplicated information in multiHist object (now only returns biological information for fleet=1)
• patch to gettaxa function for species that are found in FishBase database but not in FishLife database
• update joinData, joinHist, joinMSE, and addMPs functions
• runMSE calculates vulnerable biomass from fishery weight at age cpars$Wt_age_C if provided. • the realized catch from TAC is no longer constrained 0.5 * VBiomass (a legacy feature which is now removed). The constraint is updated to 0.999 * Biomass. • increase iteration limit to 300 when solving for Baranov F during the MP projections. ### New additions • added check for OM completeness and default values for some parameters • historical MPAs now work in multiMSE • argument parallel in runMSE can takes a named list of MPs • two new functions WHAM2OM and ASAP2OM to import assessments into operating models • Assess2MOM to generate a multi-fleet operating model, either for a 2-sex population where recruitment is predicted from female spawning output, or a single-sex population. • Assess2OM supports Ricker stock-recruit relationship. ### Minor changes • fix to fleet-specific vulnerable biomass provided to MMPs • updated code for conditioning observation parameters on observed indices • add message showing range of estimated von Bert. parameters when OM@cpars$Len_age is provided.
• fix bug in SSBpR for 2-sex MOM (introduced in 3.4.0)

### Fixes

• patch bug in generation of size composition data (introduced in v3.1.0)
• fix minor issue with SSMOM2OM where it was generating redundant rec devs

• added plot_SS2MOM to compare MOM dynamics with SS3 predictions

• Dynamic and equilibrium spawning potential ratio (SPR) are now calculated for the historical and projection years.
• add option to include empirical weight-at-age for the catches with cpars$Wt_age_C • F_crash, F_med, and other reference points have been added to Hist@Ref$ByYear
• can now optimize for depletion in terms of SB/SBMSY with control$D <- 'SBMSY' • option to simulate CAL data including removals (retained + discards) with OM@cpars$control$CAL="removals". Default is to simulate only retained catch-at-length. • option to apply TAC to all removals with OM@cpars$control$TAC="removals". Default is to for TAC to refer to retained catch (i.e., removals will be greater than TAC if there are discards) ### Minor changes • add more informative messages when conditioning on real data • add conditioning on real data for multiMSE • MSY calculations now in C++ for significant speed increase ### Fixes • fix the plus-group calculations in popdynOneTScpp • fix issue with simulated index in AddInd in the projection years ### Updates • Help description has been updated for Stock, Fleet, and Obs objects (many thanks to Sarah Valencia). ### Fixes • fix minor bugs in XL2Data for importing data from CSV ### Minor Changes • Add I_beta, SpI_beta, and VI_beta for the individual indices. Defaults to use OM@beta for all, unless a real index is supplied, e.g., OM@cpars$Data@Ind, OM@cpars$Data@SpInd, or OM@cpars$Data@VInd, or if supplied in cpars, e.g., OM@cpars$I_beta ### Fixes • fix bug where variability in von Bert K with OM@Ksd was not implemented correctly (5e6e8c6). • fix error with incorrect beta values when conditioning with real index (ie ) • fix randomly occurring bug in C++ code that was causing crashes • fix issue with importing composition data with new('Data',..) (issue #33) • fix cpars$beta and cpars\$Esd issue (issue #34)
• fix issue with importing Data files from csv

This is a new major release of the MSEtool package. It is not backwards compatible with previous versions of MSEtool or DLMtool.

### Major Changes

• The most significant change in this version is that the MSEtool package now contains all code related to generating operating models, simulating fisheries dynamics, conducting management strategy evaluation, and examining the results (previously in the DLMtool package). This change was primarily done to better align the actual contents of the packages with the respective package names.
• MSEtool now only has a set of reference management procedures (e.g., FMSYref)
• The Data-Limited Methods Toolkit package now contains the collection of data-limited methods, and uses MSEtool V3+ as a dependency; i.e., installing and loading DLMtool will also install and load MSEtool and make all functions for generating OMs, conducting MSE, etc available.
• The operating model has been updated and an age-0 age-class has been added to the population dynamics model; i.e., recruitment is now to age-0 (previously the OM in DLMtool had recruitment to age-1).
• The catch-at-age (CAA) in the Data object now includes age-0 (i.e., all age data must be length maxage+1)