Errors when solving the model to 3third order

Hi all,

I tried running the replication package I downloaded from Brent Bundick’s website (Basu and Bundick 2017).

An error message popped out:
Not enough input arguments.

In the sss.m file, line 37, called ‘simult_’ and ‘simult_’ function requires 6 arguments, but in the sss.m file, only 4 are given. So I fix this problem by giving ‘simult_’ full 6 arguments (it misses the first two: M_ and options_).

But another error showed:
*Error using assignin *
Must be a text scalar.
Error in bbeffectivedemand.driver (line 603)
assignin(‘base’,[deblank(M_.endo_names(ivariable,:)) ‘_sss’],…

I guess it should be the ‘{}’ instead of ‘()’ when appending the string : deblank(M_.endo_names{ivariable,:})

But this file (bbeffectivedemand.driver) seems to be generated during the processing; next time, this error is still there.

I’m just wondering if these errors are due to me using the wrong version of the dynare, which is not compatible with Matlab (matlab version: 2021a and I tried dynare 4.8, 5.1, 5.4). My laptop is macOS big sur. I don’t know if this issue is specific to models solved to the 3 order (requires the stochastic ss file-sss.m)?

Any suggestions for this issue? Thanks in advance!


You need to find out which Dynare version they used, most probably 4.5.7. Later versions are not compatible with their codes. Their base model for newer versions is at DSGE_mod/Basu_Bundick_2017 at master · JohannesPfeifer/DSGE_mod · GitHub

Thank you so much, Professor Pfeifer. The BB model on your GitHub repository worked on my computer.

Sorry, I have a follow-up question: Which part of the model cause this issue: the later version Dynare unsuitable for the mod file written in the early version? Is this issue specific to the model with a user-written steady-state calculation file? Cause I use the latest Dynare (5.4) to solve the model I wrote three years ago, no errors.

Many thanks again.


In Dyare, we aim for backward compatibility with respect to the Dynare language used in mod-files. But there are occasional changes in the function and their interface underlying Dynare.
As documented at BreakingFeaturesIn4.6 · Wiki · Dynare / dynare · GitLab there was a break with user-defined steady state files when we phased out global variables and used cell arrays. The replication files rely on the use of char arrays instead of cells. That causes the biggest issues.

Wow, Thank you so much. This document really helps.


Thank you again, that document clears all me questions.