Compare commits

...

17 Commits

Author SHA1 Message Date
Stéphane Adjemian (Argos) f5a5ebb910
Document dplot Matlab command. 2024-01-29 20:57:58 +01:00
Sébastien Villemot 6145bf9b31 Merge branch 'annual_shock_decomp' into 'master'
annualized_shock_decomposition.m: fix bug introduced in 735bd66d

Closes #1919

See merge request Dynare/dynare!2271
2024-01-29 17:10:32 +00:00
Stéphane Adjemian (Argos) 415a86d1d9
Add example for PAC equation (with estimation). 2024-01-29 15:23:03 +01:00
Stéphane Adjemian (Argos) 8eab48aa5e
Document composite targets in PAC equation. 2024-01-29 15:23:03 +01:00
Stéphane Adjemian (Argos) 9f9f4a99ba
Throw an error if composite PAC target ∧ trend_component aux. model. 2024-01-29 15:23:03 +01:00
Stéphane Adjemian (Argos) a48a03bc67
Bug fix (wrong condition).
Also add comments about the choice for the definition of the linear
combination of the VAR companion variables.

We should test the numbe of output arguments, not the number of input
arguments. This was bug was probably not affecting the outcomes since
the number of input arguments is always greater than 1.
2024-01-29 15:23:03 +01:00
Stéphane Adjemian (Argos) 942d8846e4
Cosmetic changes. 2024-01-29 15:23:03 +01:00
Johannes Pfeifer 2ed416532b annualized_shock_decomposition.m: fix bug introduced in 735bd66d
Use dedicated indicator instead of nargout to only request decomposition; closes #1919
2024-01-29 14:42:16 +01:00
Sébastien Villemot 60e3b6a19f
Windows and macOS packages: fix installation path of x13as
The binary location had not been updated following the move of the dseries
submodule (commit e962cb4dba).
2024-01-29 14:12:38 +01:00
Sébastien Villemot 505084f20b
README.md: fix testsuite documentation for running a whole directory of tests
[skip ci]
2024-01-29 13:59:41 +01:00
Sébastien Villemot b956a2253e
C++20 modernization: use abbreviated function template syntax 2024-01-26 16:43:00 +01:00
Sébastien Villemot 00bba09986
Preprocessor / Occbin: improve messages for consistency checks for bind/relax tag 2024-01-26 12:47:02 +01:00
Sébastien Villemot 6a0ee900a4
Preprocessor / dseries: fix handling of monthly dates for months 10-12
Closes: #1918
2024-01-25 17:51:07 +01:00
Sébastien Villemot 8954a682c7
Bytecode: error out when using det_cond_forecast with perfect_foresight shocks
They’re not implemented in bytecode.

Closes: #1884
2024-01-25 12:22:48 +01:00
Sébastien Villemot 13c9acba57
Preprocessor / Occbin: add various consistency checks for bind/relax tags 2024-01-24 18:05:16 +01:00
Sébastien Villemot aee581fd0b
libkorder: make symiterator::operator== const
This fixes an ambiguity due to C++20 rewriting rules.
2024-01-24 09:52:11 +01:00
Sébastien Villemot 855e44cb17
Windows and macOS packages: bump to SLICOT 5.8 2024-01-23 12:23:57 +01:00
22 changed files with 1010 additions and 81 deletions

View File

@ -149,9 +149,10 @@ Note that running the testsuite with Octave requires the additional packages `ps
Often, it does not make sense to run the complete testsuite. For instance, if you modify codes only related to the perfect foresight model solver, you can decide to run only a subset of the integration tests, with:
```sh
meson test -C <builddir> deterministic_simulations
meson test -C <builddir> --suite deterministic_simulations
```
This will run all the integration tests in `tests/deterministic_simulations`.
This syntax also works with a nested directory (e.g. `--suite deterministic_simulations/purely_forward`).
Finally if you want to run a single integration test, e.g. `deterministic_simulations/lbj/rbc.mod`:
```sh

View File

@ -234,23 +234,92 @@ Dynare misc commands
*Example*
Assuming that we already ran a `.mod` file and that the workspace has not
been cleaned after, we can search for all the equations containing variable `X`
Assuming that we already ran a `.mod` file and that the workspace has not
been cleaned after, we can search for all the equations containing variable `X`
::
::
>> search X
>> search X
Y = alpha*X/(1-X)+e;
Y = alpha*X/(1-X)+e;
diff(X) = beta*(X(-1)-mX) + gamma1*Z + gamma2*R + u;
diff(X) = beta*(X(-1)-mX) + gamma1*Z + gamma2*R + u;
To replace the parameters with estimated or calibrated parameters:
To replace the parameters with estimated or calibrated parameters:
::
::
>> search X withparamvalues
>> search X withparamvalues
Y = 1.254634*X/(1-X)+e;
Y = 1.254634*X/(1-X)+e;
diff(X) = -0.031459*(X(-1)-mX) + 0.1*Z - 0.2*R + u;
diff(X) = -0.031459*(X(-1)-mX) + 0.1*Z - 0.2*R + u;
|br|
.. matcomm:: dplot [OPTION VALUE[ ...]]
Plot expressions extracting data from different dseries objects.
*Options*
.. option:: --expression EXPRESSION
``EXPRESSION`` is a mathematical expression involving variables
available in the dseries objects, dseries methods, numbers or
parameters. All the referenced objects are supposed to be
available in the calling workspace.
.. option:: --dseries NAME
``NAME`` is the name of a dseries object from which the
variables involved in ``EXPRESSION`` will be extracted.
.. option:: --range DATE1:DATE2
This option is not mandatory and allows to plot the expressions
only over a sub-range. ``DATE1`` and ``DATE2`` must be dates as
defined in :ref:`dates in mod file`.
.. option:: --style MATLAB_SCRIPT_NAME
Name of a Matlab script (without extension) containing Matlab
commands to customize the produced figure.
.. option:: --title MATLAB_STRING
Adds a title to the figure.
.. option:: --with-legend
Prints a legend below the produced plot.
*Remarks*
- More than one --expression argument is allowed, and they must come first.
- For each dseries object we plot all the expressions. We use two
nested loops, the outer loop is over the dseries objects and the
inner loop over the expressions. This determines the ordering of
the plotted lines.
- All dseries objects must be defined in the calling workspace, if a
dseries object is missing the routine throws a warning (we only
build the plots for the available dseries objects), if all dseries
objects are missing the routine throws an error.
- If the range is not provided, the expressions cannot involve leads or lags.
*Example*
::
>> toto = dseries(randn(100,3), dates('2000Q1'), {'x','y','z'});
>> noddy = dseries(randn(100,3), dates('2000Q1'), {'x','y','z'});
>> b = 3;
>> dplot --expression 2/b*cumsum(x/y(-1)-1) --dseries toto --dseries noddy --range 2001Q1:2024Q1 --title 'This is my plot'
will produce plots for ``2/b*cumsum(x/y(-1)-1)``, where ``x`` and
``y`` are variables in dseries objects ``toto`` and ``noddy``, in
the same figure.

View File

@ -14299,7 +14299,7 @@ a trend target to which the endogenous variables may be attracted in the long-ru
:math:`n\times 1` vector of parameters, :math:`A_i` (:math:`i=0,\ldots,p`)
are :math:`n\times n` matrices of parameters, and :math:`A_0` is non
singular square matrix. Vector :math:`\mathbf{c}` and matrices :math:`A_i`
(:math:`i=0,\ldots,p`) are set by Dynare by parsing the equations in the
(:math:`i=0,\ldots,p`) are set by parsing the equations in the
``model`` block. Then, Dynare builds a VAR(1)-companion form model for
:math:`\mathcal{Y}_t = (1, Y_t, \ldots, Y_{t-p+1})'` as:
@ -14510,7 +14510,7 @@ up to time :math:`t-\tau`, :math:`\mathcal{Y}_{\underline{t-\tau}}`) is:
In a semi-structural model, variables appearing in :math:`t+h` (*e.g.*
the expected output gap in a dynamic IS curve or expected inflation in a
(New Keynesian) Phillips curve) will be replaced by the expectation implied by an auxiliary VAR
New Keynesian Phillips curve) will be replaced by the expectation implied by an auxiliary VAR
model. Another use case is for the computation of permanent
incomes. Typically, consumption will depend on something like:
@ -14518,13 +14518,13 @@ incomes. Typically, consumption will depend on something like:
\sum_{h=0}^{\infty} \beta^h y_{t+h|t-\tau}
Assuming that $0<\beta<1$ and knowing the limit of geometric series, the conditional expectation of this variable can be evaluated based on the same auxiliary model:
Assuming that :math:`0<\beta<1` and knowing the limit of geometric series, the conditional expectation of this variable can be evaluated based on the same auxiliary model:
.. math ::
\mathbb E \left[\sum_{h=0}^{\infty} \beta^h y_{t+h}\Biggl| \mathcal{Y}_{\underline{t-\tau}}\right] = \alpha \mathcal{C}^\tau(I-\beta\mathcal{C})^{-1}\mathcal{Y}_{t-\tau}
More generally, it is possible to consider finite discounted sums.
Finite discounted sums can also be considered.
.. command:: var_expectation_model (OPTIONS...);
@ -14709,7 +14709,7 @@ simply add the exogenous variables to the PAC equation (without the weight
``trend_component_model``, to compute the VAR based expectations for the
expected changes in the target, *i.e.* to evaluate
:math:`\sum_{i=0}^{\infty} d_i \Delta y^{\star}_{t+i}`. The infinite sum
will then be replaced by a linear combination of the variables involved in
will then be replaced by a linear combination, defined by a vector :math:`h`, of the variables involved in
the companion representation of the auxiliary model. The weights defining
the linear combination are nonlinear functions of the
:math:`(a_i)_{i=0}^{m-1}` coefficients in the PAC equation. This option is
@ -14729,6 +14729,16 @@ simply add the exogenous variables to the PAC equation (without the weight
or expression is given) is consistent with the asymptotic growth rate of the
endogenous variable.
.. option:: kind = dd | dl
Instructs Dynare how to compute the vector :math:`h`, the weights
defining the linear combination of the companion VAR
variables. The default value ``dd`` must be used if the target
appears in first difference in the auxiliary model, see equation
(A.79) in *Brayton et alii (2000)*, while value ``dl`` must be
used if the target shows up in level in the auxiliary model,
equation (A.74) in *Brayton et alii (2000)*.
.. operator:: pac_expectation (NAME_OF_PAC_MODEL);
@ -14739,7 +14749,89 @@ simply add the exogenous variables to the PAC equation (without the weight
the variables involved in the companion representation of the auxiliary model
or by a recursive forward equation.
|br|
The PAC equation target can be composite and defined as a weighted sum
of stationary and non stationary components. Such a target requires an
additional equation in the model block, with the target variable on
the left hand-side and the components in the right hand-side. Each
component must be an endogenous variable in the auxiliary model. The
characteristics of each component must be described in the
``pac_target_info`` block, see below, and the
``pac_target_nonstationary`` operator must be used in the error
correction term of the PAC equation to link the target to the provided
description. Note that composite targets make only sense if the
auxiliary model is not a trend component model (where all the
variables are non stationary).
.. block:: pac_target_info (NAME_OF_PAC_MODEL);
|br| This block enables the user to provide the properties of each
component of a target in PAC models with a composite target. The
``NAME_OF_PAC_MODEL`` argument refers to a PAC model (must match
the value of option ``model_name`` in the declaration of a PAC
model).
On the first line of the block, the name of the composite target
variable must be provided using the following syntax::
target VARIABLE_NAME ;
where ``VARIABLE_NAME`` is a declared endogenous variable, its
associated equation is not part of the auxiliary model but all the
components (the variables on the right hand-side) must be defined
in the auxiliary model. Next, the following line declares the name
of the auxilary variable that will appear in the error correction
term, this variable contains only the non stationary components of
the target::
auxname_target_nonstationary NAME ;
The block should contain the following group of lines for each
stationary component::
component STATIONARY_VARIABLE_NAME ;
kind ll ;
auxname AUX_VAR_NAME ;
where ``STATIONARY_VARIABLE_NAME`` is the name of a stationary
variable appearing in the right hand-side of the equation defining
the target ``VARIABLE_NAME``. The second line instructs Dynare that
the component appears in levels in the auxiliary model and in the
PAC expectations. The third line specifies the name of the
auxiliary variable created by Dynare for the component of the PAC
expectation related to ``STATIONARY_VARIABLE_NAME``.
The block should contain the following group of lines for each
nonstationary component::
component NONSTATIONARY_VARIABLE_NAME ;
kind dd | dl ;
auxname AUX_VAR_NAME ;
growth PARAMETER_NAME | VARIABLE_NAME | EXPRESSION | DOUBLE ;
where ``NONSTATIONARY_VARIABLE_NAME`` is the name of a
nonstationary variable appearing in the right hand-side of the
equation defining the target ``VARIABLE_NAME``. The second line
instructs Dynare on how to calculate the weights that define the linear
combination of the companion VAR variables. Use value ``dd`` if the
target appears in first difference in the auxiliary model, or
``dl`` if the target shows up in level in the auxiliary model. The
third line sets the name of the auxiliary variable created by
Dynare for the component of the PAC expectation related to
``NONSTATIONARY_VARIABLE_NAME``. The fourth line is mandatory if a
growth neutrality correction is required. The provided value for
this option must be consistent with the asymptotic growth rate of
the PAC endogenous variable.
.. operator:: pac_target_nonstationary (NAME_OF_PAC_MODEL);
|br| This operator is only required in presence of a composite
target in the PAC equation. The operator, used in the error
correction term of the PAC equation, selects the non stationary
components of the target.
.. matcomm:: pac.initialize(NAME_OF_PAC_MODEL);
.. matcomm:: pac.update(NAME_OF_PAC_MODEL);
@ -14752,33 +14844,33 @@ simply add the exogenous variables to the PAC equation (without the weight
the infinite sum in the MCE case).
*Example*
*Example (trend component auxiliary model)*
::
trend_component_model(model_name=toto, eqtags=['eq:x1', 'eq:x2', 'eq:x1bar', 'eq:x2bar'], targets=['eq:x1bar', 'eq:x2bar']);
pac_model(auxiliary_model_name=toto, discount=beta, growth=diff(x1(-1)), model_name=pacman);
pac_model(auxiliary_model_name=toto, discount=beta, model_name=pacman);
model;
[name='eq:y']
y = rho_1*y(-1) + rho_2*y(-2) + ey;
[name='eq:y']
y = (1-rho_1-rho_2)*diff(x2(-1)) + rho_1*y(-1) + rho_2*y(-2) + ey;
[name='eq:x1']
diff(x1) = a_x1_0*(x1(-1)-x1bar(-1)) + a_x1_1*diff(x1(-1)) + a_x1_2*diff(x1(-2)) + a_x1_x2_1*diff(x2(-1)) + a_x1_x2_2*diff(x2(-2)) + ex1;
[name='eq:x1']
diff(x1) = a_x1_0*(x1(-1)-x1bar(-1)) + a_x1_1*diff(x1(-1)) + a_x1_2*diff(x1(-2)) + a_x1_x2_1*diff(x2(-1)) + a_x1_x2_2*diff(x2(-2)) + ex1;
[name='eq:x2']
diff(x2) = a_x2_0*(x2(-1)-x2bar(-1)) + a_x2_1*diff(x1(-1)) + a_x2_2*diff(x1(-2)) + a_x2_x1_1*diff(x2(-1)) + a_x2_x1_2*diff(x2(-2)) + ex2;
[name='eq:x2']
diff(x2) = a_x2_0*(x2(-1)-x2bar(-1)) + a_x2_1*diff(x1(-1)) + a_x2_2*diff(x1(-2)) + a_x2_x1_1*diff(x2(-1)) + a_x2_x1_2*diff(x2(-2)) + ex2;
[name='eq:x1bar']
x1bar = x1bar(-1) + ex1bar;
[name='eq:x1bar']
x1bar = x1bar(-1) + ex1bar;
[name='eq:x2bar']
x2bar = x2bar(-1) + ex2bar;
[name='eq:x2bar']
x2bar = x2bar(-1) + ex2bar;
[name='zpac']
diff(z) = e_c_m*(x1(-1)-z(-1)) + c_z_1*diff(z(-1)) + c_z_2*diff(z(-2)) + pac_expectation(pacman) + ez;
[name='zpac']
diff(z) = e_c_m*(x1(-1)-z(-1)) + c_z_1*diff(z(-1)) + c_z_2*diff(z(-2)) + pac_expectation(pacman) + ez;
end;
@ -14787,6 +14879,51 @@ simply add the exogenous variables to the PAC equation (without the weight
pac.update.expectation('pacman');
*Example (VAR auxiliary model and composite target)*
::
var_model(model_name=toto, eqtags=['eq:x', 'eq:y']);
pac_model(auxiliary_model_name=toto, discount=beta, model_name=pacman);
pac_target_info(pacman);
target v;
auxname_target_nonstationary vns;
component y;
auxname pv_y_;
kind ll;
component x;
growth diff(x(-1));
auxname pv_dx_;
kind dd;
end;
model;
[name='eq:y']
y = a_y_1*y(-1) + a_y_2*diff(x(-1)) + b_y_1*y(-2) + b_y_2*diff(x(-2)) + ey ;
[name='eq:x']
diff(x) = b_x_1*y(-2) + b_x_2*diff(x(-1)) + ex ;
[name='eq:v']
v = x + d_y*y ; // Composite PAC target, no residuals here only variables defined in the auxiliary model.
[name='zpac']
diff(z) = e_c_m*(pac_target_nonstationary(pacman)-z(-1)) + c_z_1*diff(z(-1)) + c_z_2*diff(z(-2)) + pac_expectation(pacman) + ez;
end;
pac.initialize('pacman');
pac.update.expectation('pacman');
Estimation of a PAC equation
----------------------------

View File

@ -22,6 +22,8 @@ Dates
=====
.. highlight:: matlab
.. _dates in a mod file:
Dates in a mod file
-------------------

View File

@ -60,7 +60,7 @@ class DynareLexer(RegexLexer):
"addSeries","addParagraph","addVspace","write","compile")
operators = (
"STEADY_STATE","EXPECTATION","var_expectation","pac_expectation")
"STEADY_STATE","EXPECTATION","var_expectation","pac_expectation","pac_target_nonstationary")
macro_dirs = (
"@#includepath", "@#include", "@#define", "@#if",
@ -83,7 +83,8 @@ class DynareLexer(RegexLexer):
'osr_params_bounds','ramsey_constraints','irf_calibration',
'moment_calibration','identification','svar_identification',
'matched_moments','occbin_constraints','surprise','overwrite','bind','relax',
'verbatim','end','node','cluster','paths','hooks'), prefix=r'\b', suffix=r'\s*\b'),Keyword.Reserved),
'verbatim','end','node','cluster','paths','hooks','target','pac_target_info','auxname_target_nonstationary',
'component', 'growth', 'auxname', 'kind'), prefix=r'\b', suffix=r'\s*\b'),Keyword.Reserved),
# FIXME: Commands following multiline comments are not highlighted properly.
(words(commands + report_commands,

101
examples/pacmodel.mod Normal file
View File

@ -0,0 +1,101 @@
// --+ options: json=compute, stochastic +--
var y x z v;
varexo ex ey ez ;
parameters a_y_1 a_y_2 b_y_1 b_y_2 b_x_1 b_x_2 d_y; // VAR parameters
parameters beta e_c_m c_z_1 c_z_2; // PAC equation parameters
a_y_1 = .2;
a_y_2 = .3;
b_y_1 = .1;
b_y_2 = .4;
b_x_1 = -.1;
b_x_2 = -.2;
d_y = .5;
beta = .9;
e_c_m = .1;
c_z_1 = .7;
c_z_2 = -.3;
var_model(model_name=toto, eqtags=['eq:x', 'eq:y']);
pac_model(auxiliary_model_name=toto, discount=beta, model_name=pacman);
pac_target_info(pacman);
target v;
auxname_target_nonstationary vns;
component y;
auxname pv_y_;
kind ll;
component x;
growth diff(x(-1));
auxname pv_dx_;
kind dd;
end;
model;
[name='eq:y']
y = a_y_1*y(-1) + a_y_2*diff(x(-1)) + b_y_1*y(-2) + b_y_2*diff(x(-2)) + ey ;
[name='eq:x']
diff(x) = b_x_1*y(-2) + b_x_2*diff(x(-1)) + ex ;
[name='eq:v']
v = x + d_y*y ; // Composite target, no residuals here only variables defined in the auxiliary VAR model.
[name='zpac']
diff(z) = e_c_m*(pac_target_nonstationary(pacman)-z(-1)) + c_z_1*diff(z(-1)) + c_z_2*diff(z(-2)) + pac_expectation(pacman) + ez;
end;
shocks;
var ex = .10;
var ey = .15;
var ez = .05;
end;
// Initialize the PAC model (build the Companion VAR representation for the auxiliary model).
pac.initialize('pacman');
// Update the parameters of the PAC expectation model (h0 and h1 vectors).
pac.update.expectation('pacman');
/*
**
** Simulate artificial dataset
**
*/
// Set initial conditions to zero.
initialconditions = dseries(zeros(10, M_.endo_nbr+M_.exo_nbr), 2000Q1, vertcat(M_.endo_names,M_.exo_names));
// Simulate the model for 5000 periods
TrueData = simul_backward_model(initialconditions, 5000);
/*
**
** Estimate PAC equation (using the artificial data)
**
*/
// Provide initial conditions for the estimated parameters
clear eparams
eparams.e_c_m = .9;
eparams.c_z_1 = .5;
eparams.c_z_2 = .2;
edata = TrueData; // Set the dataset used for estimation
edata.ez = dseries(NaN, 2000Q1); // Remove residuals for the PAC equation from the database.
pac.estimate.nls('zpac', eparams, edata, 2005Q1:2005Q1+4000, 'fmincon'); // Should produce a table with the estimates (close to the calibration given in lines 21-23)

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Copyright © 2019-2023 Dynare Team
# Copyright © 2019-2024 Dynare Team
#
# This file is part of Dynare.
#
@ -150,8 +150,8 @@ cp "$ROOTDIR"/build-doc/*.pdf "$PKGFILES"
cp "$ROOTDIR"/build-doc/preprocessor/doc/*.pdf "$PKGFILES"/doc
cp -r "$ROOTDIR"/build-doc/dynare-manual.html "$PKGFILES"/doc
mkdir -p "$PKGFILES"/matlab/modules/dseries/externals/x13/macOS/64
cp -p "$ROOTDIR"/macOS/deps/"$PKG_ARCH"/lib64/x13as/x13as "$PKGFILES"/matlab/modules/dseries/externals/x13/macOS/64
mkdir -p "$PKGFILES"/matlab/dseries/externals/x13/macOS/64
cp -p "$ROOTDIR"/macOS/deps/"$PKG_ARCH"/lib64/x13as/x13as "$PKGFILES"/matlab/dseries/externals/x13/macOS/64
cd "$ROOTDIR"/macOS/pkg

View File

@ -1,4 +1,4 @@
# Copyright © 2019-2023 Dynare Team
# Copyright © 2019-2024 Dynare Team
#
# This file is part of Dynare.
#
@ -59,10 +59,11 @@ $(DEPS_ARCH)/sources64/slicot-$(SLICOT_VERSION): tarballs/slicot-$(SLICOT_VERSIO
rm -rf $(DEPS_ARCH)/sources64/slicot-*
mkdir -p $@
tar xf $< --directory $@ --strip-components=1
patch -d $@ -p1 < ../../windows/deps/slicot-build-system.patch
touch $@
$(DEPS_ARCH)/lib64/slicot/libslicot64_pic.a: $(DEPS_ARCH)/sources64/slicot-$(SLICOT_VERSION)
make -C $< FORTRAN=$(BREWDIR)/bin/gfortran LOADER=$(BREWDIR)/bin/gfortran SLICOTLIB=../libslicot64_pic.a OPTS="-O3 -fdefault-integer-8" lib -j$(NTHREADS)
make -C $< -f makefile_Unix FC=$(BREWDIR)/bin/gfortran LOADER=$(BREWDIR)/bin/gfortran SLICOTLIB=../libslicot64_pic.a FFLAGS="-O3 -fdefault-integer-8" lib -j$(NTHREADS)
strip -S $</libslicot64_pic.a
mkdir -p $(dir $@)
cp $</libslicot64_pic.a $@

View File

@ -1,2 +1,2 @@
SLICOT_VERSION = 5.0+20101122
SLICOT_VERSION = 5.8+20230223.git401037e
X13AS_VERSION = 1-1-b60

View File

@ -13,7 +13,7 @@ function M_ = parameters(pacname, M_, oo_, verbose)
% SPECIAL REQUIREMENTS
% none
% Copyright © 2018-2023 Dynare Team
% Copyright © 2018-2024 Dynare Team
%
% This file is part of Dynare.
%
@ -78,6 +78,11 @@ else
numberofcomponents = 0;
end
% Makes no sense to have a composite PAC target with a trend component auxiliary model (where all the variables are non stationnary)
if numberofcomponents>0 && strcmp(M_.pac.pacman.auxiliary_model_type, 'trend_component')
error('Composite PAC target not allowed with trend component model.')
end
% Build the vector of PAC parameters (ECM parameter + autoregressive parameters).
pacvalues = M_.params([pacmodel.ec.params; pacmodel.ar.params(1:pacmodel.max_lag)']);
@ -90,7 +95,7 @@ if numberofcomponents
% Find the auxiliary variables if any
ad = find(cell2mat(cellfun(@(x) isauxiliary(x, [8 10]), varmodel.list_of_variables_in_companion_var, 'UniformOutput', false)));
if isempty(ad)
error('Cannot find the trend variable in the Companion VAR/VECM model.')
error('Cannot find the trend variable in the Companion VAR model.')
else
for j=1:length(ad)
auxinfo = M_.aux_vars(get_aux_variable_id(varmodel.list_of_variables_in_companion_var{ad(j)}));
@ -105,7 +110,7 @@ if numberofcomponents
end
end
if isempty(id{i})
error('Cannot find the trend variable in the Companion VAR/VECM model.')
error('Cannot find the trend variable in the Companion VAR model.')
end
end
end
@ -115,7 +120,7 @@ else
% Find the auxiliary variables if any
ad = find(cell2mat(cellfun(@(x) isauxiliary(x, [8 10]), varmodel.list_of_variables_in_companion_var, 'UniformOutput', false)));
if isempty(ad)
error('Cannot find the trend variable in the Companion VAR/VECM model.')
error('Cannot find the trend variable in the auxiliary VAR / Trend component model.')
else
for i=1:length(ad)
auxinfo = M_.aux_vars(get_aux_variable_id(varmodel.list_of_variables_in_companion_var{ad(i)}));
@ -130,7 +135,7 @@ else
end
end
if isempty(id{1})
error('Cannot find the trend variable in the Companion VAR/VECM model.')
error('Cannot find the trend variable in the auxiliary VAR / Trend component model.')
end
end
end

View File

@ -18,7 +18,7 @@ function [h, lrcp] = hVectors(params, H, auxmodel, kind, id)
% params(2:end-1) ⟶ Autoregressive parameters.
% params(end) ⟶ Discount factor.
% Copyright © 2018-2021 Dynare Team
% Copyright © 2018-2024 Dynare Team
%
% This file is part of Dynare.
%
@ -52,21 +52,21 @@ n = length(H);
tmp = eye(n*m)-kron(G, transpose(H)); % inv(W2)
switch kind
case 'll'
case 'll' % (A.84), page 28 in Brayton, Davis and Tulip (2000) ⟹ The target is stationary (level-level).
h = A_1*A_b*((kron(iota(m, m), H))'*(tmp\kron(iota(m, m), iota(n, id))));
case 'dd'
case 'dd' % (A.79), page 26 in Brayton, Davis and Tulip (2000) ⟹ The target appears in first difference as a dependent variable in the auxiliary model.
h = A_1*A_b*(kron(iota(m, m)'*inv(eye(m)-G), H')*(tmp\kron(iota(m, m), iota(n, id))));
case 'dl'
case 'dl' % (A.74), page 24 in Brayton, Davis and Tulip (2000) ⟹ The target appears in level as a dependent variable in the auxiliary model.
h = A_1*A_b*(kron(iota(m, m)'*inv(eye(m)-G), (H'-eye(length(H))))*(tmp\kron(iota(m, m), iota(n, id))));
otherwise
error('Unknown kind value in PAC model.')
end
if nargin>1
if nargout>1
if isequal(kind, 'll')
lrcp = NaN;
else
d = A_1*A_b*(iota(m, m)'*inv((eye(m)-G)*(eye(m)-G))*iota(m, m));
lrcp = (1-sum(params(2:end-1))-d);
end
end
end

View File

@ -129,7 +129,7 @@ if realtime_==0
myopts=options_;
myopts.plot_shock_decomp.type='qoq';
myopts.plot_shock_decomp.realtime=0;
z = plot_shock_decomposition(M_,oo_,myopts,[]);
z = plot_shock_decomposition(M_,oo_,myopts,[],true);
else
z = oo_;
end
@ -139,7 +139,7 @@ if realtime_==0
myopts=options_;
myopts.plot_shock_decomp.type='qoq';
myopts.plot_shock_decomp.realtime=0;
[y_aux, steady_state_aux] = plot_shock_decomposition(M_,oo_,myopts,aux.y);
[y_aux, steady_state_aux] = plot_shock_decomposition(M_,oo_,myopts,aux.y,true);
aux.y=y_aux;
aux.yss=steady_state_aux;
end
@ -158,13 +158,13 @@ if realtime_ && isstruct(oo_) && isfield(oo_, 'realtime_shock_decomposition')
myopts.plot_shock_decomp.realtime=1;
myopts.plot_shock_decomp.vintage=i;
% retrieve quarterly shock decomp
z = plot_shock_decomposition(M_,oo_,myopts,[]);
z = plot_shock_decomposition(M_,oo_,myopts,[],true);
zdim = size(z);
z = z(i_var,:,:);
if isstruct(aux)
if ischar(aux0.y)
% retrieve quarterly shock decomp for aux variable
[y_aux, steady_state_aux] = plot_shock_decomposition(M_,oo_,myopts,aux0.y);
[y_aux, steady_state_aux] = plot_shock_decomposition(M_,oo_,myopts,aux0.y,true);
aux.y=y_aux;
aux.yss=steady_state_aux;
end
@ -185,13 +185,13 @@ if realtime_ && isstruct(oo_) && isfield(oo_, 'realtime_shock_decomposition')
if qvintage_>i-4 && qvintage_<i
myopts.plot_shock_decomp.vintage=qvintage_;
% retrieve quarterly shock decomp
z = plot_shock_decomposition(M_,oo_,myopts,[]);
z = plot_shock_decomposition(M_,oo_,myopts,[],true);
z(:,:,end+1:zdim(3))=nan; % fill with nan's remaining time points to reach Q4
z = z(i_var,:,:);
if isstruct(aux)
if ischar(aux0.y)
% retrieve quarterly shock decomp for aux variable
[y_aux, steady_state_aux] = plot_shock_decomposition(M_,oo_,myopts,aux0.y);
[y_aux, steady_state_aux] = plot_shock_decomposition(M_,oo_,myopts,aux0.y,true);
y_aux(:,:,end+1:zdim(3))=nan; % fill with nan's remaining time points to reach Q4
aux.y=y_aux;
aux.yss=steady_state_aux;

View File

@ -1,4 +1,4 @@
function [out, steady_state] = plot_shock_decomposition(M_,oo_,options_,varlist)
function [out, steady_state] = plot_shock_decomposition(M_,oo_,options_,varlist,get_decomp_only)
% function plot_shock_decomposition(M_,oo_,options_,varlist)
% Plots the results of shock_decomposition
%
@ -7,11 +7,12 @@ function [out, steady_state] = plot_shock_decomposition(M_,oo_,options_,varlist)
% oo_: [structure] Storage of results
% options_: [structure] Options
% varlist: [char] List of variables
%
% get_decomp_only [bool] indicator on whether to only return with
% basic decomposition (required for e.g. annualized_shock_decomposition)
% SPECIAL REQUIREMENTS
% none
% Copyright © 2016-2019 Dynare Team
% Copyright © 2016-2023 Dynare Team
%
% This file is part of Dynare.
%
@ -28,6 +29,10 @@ function [out, steady_state] = plot_shock_decomposition(M_,oo_,options_,varlist)
% You should have received a copy of the GNU General Public License
% along with Dynare. If not, see <https://www.gnu.org/licenses/>.
if nargin<5
get_decomp_only=false;
end
options_.nodisplay = options_.plot_shock_decomp.nodisplay;
options_.graph_format = options_.plot_shock_decomp.graph_format;
@ -532,7 +537,7 @@ if steadystate
options_.plot_shock_decomp.steady_state=steady_state;
end
if nargout == 2
if get_decomp_only
out=z(i_var,:,:);
steady_state = steady_state(i_var);
return

View File

@ -1,5 +1,5 @@
/*
* Copyright © 2007-2023 Dynare Team
* Copyright © 2007-2024 Dynare Team
*
* This file is part of Dynare.
*
@ -262,6 +262,22 @@ mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
if (!shock_str_date_)
mexErrMsgTxt(
"The extended_path description structure does not contain the member: shock_str_date_");
mxArray* shock_perfect_foresight_
= mxGetField(extended_path_struct, 0, "shock_perfect_foresight_");
if (!shock_perfect_foresight_)
mexErrMsgTxt("The extended_path description structure does not contain the member: "
"shock_perfect_foresight_");
// Check that there is no 'perfect_foresight' shocks, which are not implemented
double* constrained_pf = mxGetPr(constrained_perfect_foresight_);
double* shock_pf = mxGetPr(shock_perfect_foresight_);
if (auto is_pf = [](double v) { return v != 0; };
any_of(constrained_pf,
constrained_pf + mxGetNumberOfElements(constrained_perfect_foresight_), is_pf)
|| any_of(shock_pf, shock_pf + mxGetNumberOfElements(shock_perfect_foresight_), is_pf))
mexErrMsgTxt(
"Shocks of type 'perfect_foresight' are not supported with the bytecode option.");
int nb_constrained = mxGetM(constrained_vars_) * mxGetN(constrained_vars_);
int nb_controlled = 0;
mxArray* options_cond_fcst_ = mxGetField(extended_path_struct, 0, "options_cond_fcst_");

View File

@ -127,7 +127,7 @@ public:
return run;
}
[[nodiscard]] bool
operator==(const symiterator& it)
operator==(const symiterator& it) const
{
return dim == it.dim && run == it.run;
}

View File

@ -2,7 +2,7 @@
**
** Pseudo code of the algorithm is given at http://home.online.no/~pjacklam/notes/invnorm
**
** Copyright © 2010-2023 Dynare Team
** Copyright © 2010-2024 Dynare Team
**
** This file is part of Dynare.
**
@ -104,9 +104,8 @@ icdf(const T uniform)
return gaussian;
}
template<typename T>
void
icdfm(int n, T* U)
icdfm(int n, auto* U)
{
#pragma omp parallel for
for (int i = 0; i < n; i++)
@ -114,9 +113,8 @@ icdfm(int n, T* U)
return;
}
template<typename T>
void
icdfmSigma(int d, int n, T* U, const double* LowerCholSigma)
icdfmSigma(int d, int n, auto* U, const double* LowerCholSigma)
{
double one = 1.0;
double zero = 0.0;
@ -128,9 +126,8 @@ icdfmSigma(int d, int n, T* U, const double* LowerCholSigma)
copy_n(tmp.begin(), d * n, U);
}
template<typename T>
void
usphere(int d, int n, T* U)
usphere(int d, int n, auto* U)
{
icdfm(n * d, U);
#pragma omp parallel for
@ -147,9 +144,8 @@ usphere(int d, int n, T* U)
}
}
template<typename T>
void
usphereRadius(int d, int n, double radius, T* U)
usphereRadius(int d, int n, double radius, auto* U)
{
icdfm(n * d, U);
#pragma omp parallel for

@ -1 +1 @@
Subproject commit e32025a76fb156a9af8101f9f43faf7eaa2f72ef
Subproject commit b134dba32c9bfc8e0ee25c4977e37558721d7737

View File

@ -5,7 +5,7 @@
# The binaries are cross compiled for Windows (64-bit), Octave and MATLAB
# (all supported versions).
# Copyright © 2017-2023 Dynare Team
# Copyright © 2017-2024 Dynare Team
#
# This file is part of Dynare.
#
@ -127,8 +127,8 @@ mkdir "$ZIPDIR"/preprocessor
cp -p build-win-matlab/preprocessor/src/dynare-preprocessor.exe "$ZIPDIR"/preprocessor
cp -pr matlab "$ZIPDIR"
cp -p build-win-matlab/dynare_version.m "$ZIPDIR"/matlab
mkdir -p "$ZIPDIR"/matlab/modules/dseries/externals/x13/windows/64
cp -p windows/deps/lib64/x13as/x13as.exe "$ZIPDIR"/matlab/modules/dseries/externals/x13/windows/64
mkdir -p "$ZIPDIR"/matlab/dseries/externals/x13/windows/64
cp -p windows/deps/lib64/x13as/x13as.exe "$ZIPDIR"/matlab/dseries/externals/x13/windows/64
cp -pr examples "$ZIPDIR"
mkdir -p "$ZIPDIR"/scripts
cp -p scripts/dynare.el "$ZIPDIR"/scripts

View File

@ -1,4 +1,4 @@
# Copyright © 2017-2023 Dynare Team
# Copyright © 2017-2024 Dynare Team
#
# This file is part of Dynare.
#
@ -55,22 +55,24 @@ sources64/slicot-$(SLICOT_VERSION)-with-64bit-integer: tarballs/slicot-$(SLICOT_
rm -rf sources64/slicot-*-with-64bit-integer
mkdir -p $@
tar xf $< --directory $@ --strip-components=1
patch -d $@ -p1 < slicot-build-system.patch
touch $@
sources64/slicot-$(SLICOT_VERSION)-with-32bit-integer-and-underscore: tarballs/slicot-$(SLICOT_VERSION).tar.gz
rm -rf sources64/slicot-*-with-32bit-integer-and-underscore
mkdir -p $@
tar xf $< --directory $@ --strip-components=1
patch -d $@ -p1 < slicot-build-system.patch
touch $@
lib64/Slicot/without-underscore/libslicot64_pic.a: sources64/slicot-$(SLICOT_VERSION)-with-64bit-integer
make -C $< lib SLICOTLIB=../libslicot64_pic.a OPTS="$(FFLAGS) -fno-underscoring -fdefault-integer-8" FORTRAN=x86_64-w64-mingw32-gfortran LOADER=x86_64-w64-mingw32-gfortran ARCH=x86_64-w64-mingw32-ar
make -C $< -f makefile_Unix lib SLICOTLIB=../libslicot64_pic.a FFLAGS="$(FFLAGS) -fno-underscoring -fdefault-integer-8" FC=x86_64-w64-mingw32-gfortran LOADER=x86_64-w64-mingw32-gfortran ARCH=x86_64-w64-mingw32-ar
x86_64-w64-mingw32-strip --strip-debug $</libslicot64_pic.a
mkdir -p $(dir $@)
cp $</libslicot64_pic.a $@
lib64/Slicot/with-underscore/libslicot_pic.a: sources64/slicot-$(SLICOT_VERSION)-with-32bit-integer-and-underscore
make -C $< lib SLICOTLIB=../libslicot_pic.a OPTS="$(FFLAGS)" FORTRAN=x86_64-w64-mingw32-gfortran LOADER=x86_64-w64-mingw32-gfortran ARCH=x86_64-w64-mingw32-ar
make -C $< -f makefile_Unix lib SLICOTLIB=../libslicot_pic.a FFLAGS="$(FFLAGS)" FC=x86_64-w64-mingw32-gfortran LOADER=x86_64-w64-mingw32-gfortran ARCH=x86_64-w64-mingw32-ar
x86_64-w64-mingw32-strip --strip-debug $</libslicot_pic.a
mkdir -p $(dir $@)
cp $</libslicot_pic.a $@

View File

@ -0,0 +1,593 @@
Description: Various fixes to the build system
Author: Sébastien Villemot <sebastien@debian.org>
Forwarded: https://github.com/SLICOT/SLICOT-Reference/pull/14
Last-Update: 2024-01-16
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/makefile_Unix
+++ b/makefile_Unix
@@ -43,15 +43,15 @@ all: lib example
clean: cleanlib cleanexample
lib:
- ( cd src; $(MAKE) )
- ( cd src_aux; $(MAKE) )
+ ( cd src; $(MAKE) -f makefile_Unix )
+ ( cd src_aux; $(MAKE) -f makefile_Unix )
example:
- ( cd examples; $(MAKE) )
+ ( cd examples; $(MAKE) -f makefile_Unix )
cleanlib:
- ( cd src; $(MAKE) clean )
- ( cd src_aux; $(MAKE) clean )
+ ( cd src; $(MAKE) -f makefile_Unix clean )
+ ( cd src_aux; $(MAKE) -f makefile_Unix clean )
cleanexample:
- ( cd examples; $(MAKE) clean )
+ ( cd examples; $(MAKE) -f makefile_Unix clean )
--- a/src/makefile_Unix
+++ b/src/makefile_Unix
@@ -28,7 +28,7 @@
#
#######################################################################
-include ../make.inc
+include ../make_Unix.inc
SLSRC = \
AB01MD.o AB01ND.o AB01OD.o AB04MD.o AB05MD.o AB05ND.o AB05OD.o \
@@ -78,8 +78,8 @@ SLSRC = \
MB04GD.o MB04HD.o MB04ID.o MB04IY.o MB04IZ.o MB04JD.o MB04KD.o \
MB04LD.o MB04MD.o MB04ND.o MB04NY.o MB04OD.o MB04OW.o MB04OX.o \
MB04OY.o MB04PA.o MB04PB.o MB04PU.o MB04PY.o MB04QB.o MB04QC.o \
- MB04QF.o MB04QS.o MB04QU.o MB04RB.o MB04RD.o MB04RS.o MB04RT.o \
- MB04RU.o MB04RV.o MB04RW.o MB04RZ.o MB04SU.o MB04TB.o MB04TS.o \
+ MB04QF.o MB04QS.o MB04QU.o MB04RB.o \
+ MB04RU.o MB04SU.o MB04TB.o MB04TS.o \
MB04TT.o MB04TU.o MB04TV.o MB04TW.o MB04TX.o MB04TY.o MB04UD.o \
MB04VD.o MB04VX.o MB04WD.o MB04WP.o MB04WR.o MB04WU.o MB04XD.o \
MB04XY.o MB04YD.o MB04YW.o MB04ZD.o MB05MD.o MB05MY.o MB05ND.o \
@@ -121,8 +121,7 @@ SLSRC = \
TG01HD.o TG01HU.o TG01HX.o TG01HY.o TG01ID.o TG01JD.o TG01JY.o \
TG01KD.o TG01KZ.o TG01LD.o TG01LY.o TG01MD.o TG01ND.o TG01NX.o \
TG01OA.o TG01OB.o TG01OD.o TG01OZ.o TG01PD.o TG01QD.o TG01WD.o \
- UD01BD.o UD01CD.o UD01DD.o UD01MD.o UD01MZ.o UD01ND.o UE01MD.o \
- zelctg.o
+ UD01BD.o UD01CD.o UD01DD.o UD01MD.o UD01MZ.o UD01ND.o UE01MD.o
all: $(SLSRC)
$(ARCH) $(ARCHFLAGS) $(SLICOTLIB) $(SLSRC)
@@ -136,4 +135,4 @@ clean:
rm -f *.o
.f.o:
- $(FORTRAN) $(OPTS) -c $<
+ $(FC) $(FFLAGS) -c $<
--- a/examples/makefile_Unix
+++ b/examples/makefile_Unix
@@ -850,248 +850,248 @@ cleanup:
TTG01ID TTG01JD TTG01JY TTG01LD TTG01MD TTG01ND TTG01PD TTG01QD \
TUD01BD TUD01CD TUD01DD TUD01MD TUD01ND
-TAB01MD.o: TAB01MD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB01ND.o: TAB01ND.f ; $(FORTRAN) $(OPTS) -c $<
-TAB01OD.o: TAB01OD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB04MD.o: TAB04MD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB05MD.o: TAB05MD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB05ND.o: TAB05ND.f ; $(FORTRAN) $(OPTS) -c $<
-TAB05OD.o: TAB05OD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB05PD.o: TAB05PD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB05QD.o: TAB05QD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB05RD.o: TAB05RD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB07MD.o: TAB07MD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB07ND.o: TAB07ND.f ; $(FORTRAN) $(OPTS) -c $<
-TAB08ND.o: TAB08ND.f ; $(FORTRAN) $(OPTS) -c $<
-TAB08NW.o: TAB08NW.f ; $(FORTRAN) $(OPTS) -c $<
-TAB08NZ.o: TAB08NZ.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09AD.o: TAB09AD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09BD.o: TAB09BD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09CD.o: TAB09CD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09DD.o: TAB09DD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09ED.o: TAB09ED.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09FD.o: TAB09FD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09GD.o: TAB09GD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09HD.o: TAB09HD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09ID.o: TAB09ID.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09JD.o: TAB09JD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09KD.o: TAB09KD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09MD.o: TAB09MD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB09ND.o: TAB09ND.f ; $(FORTRAN) $(OPTS) -c $<
-TAB13AD.o: TAB13AD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB13BD.o: TAB13BD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB13CD.o: TAB13CD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB13DD.o: TAB13DD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB13ED.o: TAB13ED.f ; $(FORTRAN) $(OPTS) -c $<
-TAB13FD.o: TAB13FD.f ; $(FORTRAN) $(OPTS) -c $<
-TAB13ID.o: TAB13ID.f ; $(FORTRAN) $(OPTS) -c $<
-TAB13MD.o: TAB13MD.f ; $(FORTRAN) $(OPTS) -c $<
-TAG08BD.o: TAG08BD.f ; $(FORTRAN) $(OPTS) -c $<
-TAG08BZ.o: TAG08BZ.f ; $(FORTRAN) $(OPTS) -c $<
-TBB01AD.o: TBB01AD.f ; $(FORTRAN) $(OPTS) -c $<
-TBB02AD.o: TBB02AD.f ; $(FORTRAN) $(OPTS) -c $<
-TBB03AD.o: TBB03AD.f ; $(FORTRAN) $(OPTS) -c $<
-TBB04AD.o: TBB04AD.f ; $(FORTRAN) $(OPTS) -c $<
-TBD01AD.o: TBD01AD.f ; $(FORTRAN) $(OPTS) -c $<
-TBD02AD.o: TBD02AD.f ; $(FORTRAN) $(OPTS) -c $<
-TDE01OD.o: TDE01OD.f ; $(FORTRAN) $(OPTS) -c $<
-TDE01PD.o: TDE01PD.f ; $(FORTRAN) $(OPTS) -c $<
-TDF01MD.o: TDF01MD.f ; $(FORTRAN) $(OPTS) -c $<
-TDG01MD.o: TDG01MD.f ; $(FORTRAN) $(OPTS) -c $<
-TDG01ND.o: TDG01ND.f ; $(FORTRAN) $(OPTS) -c $<
-TDG01OD.o: TDG01OD.f ; $(FORTRAN) $(OPTS) -c $<
-TDK01MD.o: TDK01MD.f ; $(FORTRAN) $(OPTS) -c $<
-TFB01QD.o: TFB01QD.f ; $(FORTRAN) $(OPTS) -c $<
-TFB01RD.o: TFB01RD.f ; $(FORTRAN) $(OPTS) -c $<
-TFB01SD.o: TFB01SD.f ; $(FORTRAN) $(OPTS) -c $<
-TFB01TD.o: TFB01TD.f ; $(FORTRAN) $(OPTS) -c $<
-TFB01VD.o: TFB01VD.f ; $(FORTRAN) $(OPTS) -c $<
-TFD01AD.o: TFD01AD.f ; $(FORTRAN) $(OPTS) -c $<
-TIB01AD.o: TIB01AD.f ; $(FORTRAN) $(OPTS) -c $<
-TIB01BD.o: TIB01BD.f ; $(FORTRAN) $(OPTS) -c $<
-TIB01CD.o: TIB01CD.f ; $(FORTRAN) $(OPTS) -c $<
-TIB03AD.o: TIB03AD.f ; $(FORTRAN) $(OPTS) -c $<
-TIB03BD.o: TIB03BD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB01TD.o: TMB01TD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02CD.o: TMB02CD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02DD.o: TMB02DD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02ED.o: TMB02ED.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02FD.o: TMB02FD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02GD.o: TMB02GD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02HD.o: TMB02HD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02ID.o: TMB02ID.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02JD.o: TMB02JD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02JX.o: TMB02JX.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02KD.o: TMB02KD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02MD.o: TMB02MD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02ND.o: TMB02ND.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02QD.o: TMB02QD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02SD.o: TMB02SD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB02VD.o: TMB02VD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03BD.o: TMB03BD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03BZ.o: TMB03BZ.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03FZ.o: TMB03FZ.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03KD.o: TMB03KD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03LD.o: TMB03LD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03LF.o: TMB03LF.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03LZ.o: TMB03LZ.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03MD.o: TMB03MD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03ND.o: TMB03ND.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03OD.o: TMB03OD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03PD.o: TMB03PD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03QD.o: TMB03QD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03QG.o: TMB03QG.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03RD.o: TMB03RD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03SD.o: TMB03SD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03TD.o: TMB03TD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03UD.o: TMB03UD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03VD.o: TMB03VD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03WD.o: TMB03WD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03XD.o: TMB03XD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03XP.o: TMB03XP.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03XZ.o: TMB03XZ.f ; $(FORTRAN) $(OPTS) -c $<
-TMB03ZD.o: TMB03ZD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04AD.o: TMB04AD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04AZ.o: TMB04AZ.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04BD.o: TMB04BD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04BZ.o: TMB04BZ.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04DD.o: TMB04DD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04DL.o: TMB04DL.f ; $(FORTRAN) $(OPTS) -c $<
-TMB4DLZ.o: TMB4DLZ.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04DP.o: TMB04DP.f ; $(FORTRAN) $(OPTS) -c $<
-TMB4DPZ.o: TMB4DPZ.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04DS.o: TMB04DS.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04DY.o: TMB04DY.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04DZ.o: TMB04DZ.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04ED.o: TMB04ED.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04FD.o: TMB04FD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04GD.o: TMB04GD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04MD.o: TMB04MD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04OD.o: TMB04OD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04PB.o: TMB04PB.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04PU.o: TMB04PU.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04TB.o: TMB04TB.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04TS.o: TMB04TS.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04UD.o: TMB04UD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04VD.o: TMB04VD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04XD.o: TMB04XD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04YD.o: TMB04YD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB04ZD.o: TMB04ZD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB05MD.o: TMB05MD.f ; $(FORTRAN) $(OPTS) -c $<
-TMB05ND.o: TMB05ND.f ; $(FORTRAN) $(OPTS) -c $<
-TMB05OD.o: TMB05OD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01MD.o: TMC01MD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01ND.o: TMC01ND.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01OD.o: TMC01OD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01PD.o: TMC01PD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01QD.o: TMC01QD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01RD.o: TMC01RD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01SD.o: TMC01SD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01TD.o: TMC01TD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01VD.o: TMC01VD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01WD.o: TMC01WD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC01XD.o: TMC01XD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC03MD.o: TMC03MD.f ; $(FORTRAN) $(OPTS) -c $<
-TMC03ND.o: TMC03ND.f ; $(FORTRAN) $(OPTS) -c $<
-TMD03AD.o: TMD03AD.f ; $(FORTRAN) $(OPTS) -c $<
-TMD03BD.o: TMD03BD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB01BD.o: TSB01BD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB01DD.o: TSB01DD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB01MD.o: TSB01MD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB02MD.o: TSB02MD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB02ND.o: TSB02ND.f ; $(FORTRAN) $(OPTS) -c $<
-TSB02OD.o: TSB02OD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB02PD.o: TSB02PD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB02QD.o: TSB02QD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB02RD.o: TSB02RD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB02SD.o: TSB02SD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB03MD.o: TSB03MD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB03OD.o: TSB03OD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB03QD.o: TSB03QD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB03SD.o: TSB03SD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB03TD.o: TSB03TD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB03UD.o: TSB03UD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB04MD.o: TSB04MD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB04ND.o: TSB04ND.f ; $(FORTRAN) $(OPTS) -c $<
-TSB04OD.o: TSB04OD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB04PD.o: TSB04PD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB04QD.o: TSB04QD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB04RD.o: TSB04RD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB06ND.o: TSB06ND.f ; $(FORTRAN) $(OPTS) -c $<
-TSB08CD.o: TSB08CD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB08DD.o: TSB08DD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB08ED.o: TSB08ED.f ; $(FORTRAN) $(OPTS) -c $<
-TSB08FD.o: TSB08FD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB08MD.o: TSB08MD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB08ND.o: TSB08ND.f ; $(FORTRAN) $(OPTS) -c $<
-TSB09MD.o: TSB09MD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB10DD.o: TSB10DD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB10ED.o: TSB10ED.f ; $(FORTRAN) $(OPTS) -c $<
-TSB10FD.o: TSB10FD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB10HD.o: TSB10HD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB10ID.o: TSB10ID.f ; $(FORTRAN) $(OPTS) -c $<
-TSB10KD.o: TSB10KD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB10ZD.o: TSB10ZD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB16AD.o: TSB16AD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB16BD.o: TSB16BD.f ; $(FORTRAN) $(OPTS) -c $<
-TSB16CD.o: TSB16CD.f ; $(FORTRAN) $(OPTS) -c $<
-TSG02AD.o: TSG02AD.f ; $(FORTRAN) $(OPTS) -c $<
-TSG02ND.o: TSG02ND.f ; $(FORTRAN) $(OPTS) -c $<
-TSG03AD.o: TSG03AD.f ; $(FORTRAN) $(OPTS) -c $<
-TSG03BD.o: TSG03BD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01ID.o: TTB01ID.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01IZ.o: TTB01IZ.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01KD.o: TTB01KD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01LD.o: TTB01LD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01MD.o: TTB01MD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01ND.o: TTB01ND.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01PD.o: TTB01PD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01PX.o: TTB01PX.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01TD.o: TTB01TD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01UD.o: TTB01UD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01UY.o: TTB01UY.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01WD.o: TTB01WD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01WX.o: TTB01WX.f ; $(FORTRAN) $(OPTS) -c $<
-TTB01ZD.o: TTB01ZD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB03AD.o: TTB03AD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB04AD.o: TTB04AD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB04BD.o: TTB04BD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB04CD.o: TTB04CD.f ; $(FORTRAN) $(OPTS) -c $<
-TTB05AD.o: TTB05AD.f ; $(FORTRAN) $(OPTS) -c $<
-TTC01OD.o: TTC01OD.f ; $(FORTRAN) $(OPTS) -c $<
-TTC04AD.o: TTC04AD.f ; $(FORTRAN) $(OPTS) -c $<
-TTC05AD.o: TTC05AD.f ; $(FORTRAN) $(OPTS) -c $<
-TTD03AD.o: TTD03AD.f ; $(FORTRAN) $(OPTS) -c $<
-TTD04AD.o: TTD04AD.f ; $(FORTRAN) $(OPTS) -c $<
-TTD05AD.o: TTD05AD.f ; $(FORTRAN) $(OPTS) -c $<
-TTF01MD.o: TTF01MD.f ; $(FORTRAN) $(OPTS) -c $<
-TTF01ND.o: TTF01ND.f ; $(FORTRAN) $(OPTS) -c $<
-TTF01OD.o: TTF01OD.f ; $(FORTRAN) $(OPTS) -c $<
-TTF01PD.o: TTF01PD.f ; $(FORTRAN) $(OPTS) -c $<
-TTF01QD.o: TTF01QD.f ; $(FORTRAN) $(OPTS) -c $<
-TTF01RD.o: TTF01RD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01AD.o: TTG01AD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01AZ.o: TTG01AZ.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01CD.o: TTG01CD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01DD.o: TTG01DD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01ED.o: TTG01ED.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01FD.o: TTG01FD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01FZ.o: TTG01FZ.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01GD.o: TTG01GD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01HD.o: TTG01HD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01ID.o: TTG01ID.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01JD.o: TTG01JD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01JY.o: TTG01JY.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01LD.o: TTG01LD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01MD.o: TTG01MD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01ND.o: TTG01ND.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01PD.o: TTG01PD.f ; $(FORTRAN) $(OPTS) -c $<
-TTG01QD.o: TTG01QD.f ; $(FORTRAN) $(OPTS) -c $<
-TUD01BD.o: TUD01BD.f ; $(FORTRAN) $(OPTS) -c $<
-TUD01CD.o: TUD01CD.f ; $(FORTRAN) $(OPTS) -c $<
-TUD01DD.o: TUD01DD.f ; $(FORTRAN) $(OPTS) -c $<
-TUD01MD.o: TUD01MD.f ; $(FORTRAN) $(OPTS) -c $<
-TUD01ND.o: TUD01ND.f ; $(FORTRAN) $(OPTS) -c $<
+TAB01MD.o: TAB01MD.f ; $(FC) $(FFLAGS) -c $<
+TAB01ND.o: TAB01ND.f ; $(FC) $(FFLAGS) -c $<
+TAB01OD.o: TAB01OD.f ; $(FC) $(FFLAGS) -c $<
+TAB04MD.o: TAB04MD.f ; $(FC) $(FFLAGS) -c $<
+TAB05MD.o: TAB05MD.f ; $(FC) $(FFLAGS) -c $<
+TAB05ND.o: TAB05ND.f ; $(FC) $(FFLAGS) -c $<
+TAB05OD.o: TAB05OD.f ; $(FC) $(FFLAGS) -c $<
+TAB05PD.o: TAB05PD.f ; $(FC) $(FFLAGS) -c $<
+TAB05QD.o: TAB05QD.f ; $(FC) $(FFLAGS) -c $<
+TAB05RD.o: TAB05RD.f ; $(FC) $(FFLAGS) -c $<
+TAB07MD.o: TAB07MD.f ; $(FC) $(FFLAGS) -c $<
+TAB07ND.o: TAB07ND.f ; $(FC) $(FFLAGS) -c $<
+TAB08ND.o: TAB08ND.f ; $(FC) $(FFLAGS) -c $<
+TAB08NW.o: TAB08NW.f ; $(FC) $(FFLAGS) -c $<
+TAB08NZ.o: TAB08NZ.f ; $(FC) $(FFLAGS) -c $<
+TAB09AD.o: TAB09AD.f ; $(FC) $(FFLAGS) -c $<
+TAB09BD.o: TAB09BD.f ; $(FC) $(FFLAGS) -c $<
+TAB09CD.o: TAB09CD.f ; $(FC) $(FFLAGS) -c $<
+TAB09DD.o: TAB09DD.f ; $(FC) $(FFLAGS) -c $<
+TAB09ED.o: TAB09ED.f ; $(FC) $(FFLAGS) -c $<
+TAB09FD.o: TAB09FD.f ; $(FC) $(FFLAGS) -c $<
+TAB09GD.o: TAB09GD.f ; $(FC) $(FFLAGS) -c $<
+TAB09HD.o: TAB09HD.f ; $(FC) $(FFLAGS) -c $<
+TAB09ID.o: TAB09ID.f ; $(FC) $(FFLAGS) -c $<
+TAB09JD.o: TAB09JD.f ; $(FC) $(FFLAGS) -c $<
+TAB09KD.o: TAB09KD.f ; $(FC) $(FFLAGS) -c $<
+TAB09MD.o: TAB09MD.f ; $(FC) $(FFLAGS) -c $<
+TAB09ND.o: TAB09ND.f ; $(FC) $(FFLAGS) -c $<
+TAB13AD.o: TAB13AD.f ; $(FC) $(FFLAGS) -c $<
+TAB13BD.o: TAB13BD.f ; $(FC) $(FFLAGS) -c $<
+TAB13CD.o: TAB13CD.f ; $(FC) $(FFLAGS) -c $<
+TAB13DD.o: TAB13DD.f ; $(FC) $(FFLAGS) -c $<
+TAB13ED.o: TAB13ED.f ; $(FC) $(FFLAGS) -c $<
+TAB13FD.o: TAB13FD.f ; $(FC) $(FFLAGS) -c $<
+TAB13ID.o: TAB13ID.f ; $(FC) $(FFLAGS) -c $<
+TAB13MD.o: TAB13MD.f ; $(FC) $(FFLAGS) -c $<
+TAG08BD.o: TAG08BD.f ; $(FC) $(FFLAGS) -c $<
+TAG08BZ.o: TAG08BZ.f ; $(FC) $(FFLAGS) -c $<
+TBB01AD.o: TBB01AD.f ; $(FC) $(FFLAGS) -c $<
+TBB02AD.o: TBB02AD.f ; $(FC) $(FFLAGS) -c $<
+TBB03AD.o: TBB03AD.f ; $(FC) $(FFLAGS) -c $<
+TBB04AD.o: TBB04AD.f ; $(FC) $(FFLAGS) -c $<
+TBD01AD.o: TBD01AD.f ; $(FC) $(FFLAGS) -c $<
+TBD02AD.o: TBD02AD.f ; $(FC) $(FFLAGS) -c $<
+TDE01OD.o: TDE01OD.f ; $(FC) $(FFLAGS) -c $<
+TDE01PD.o: TDE01PD.f ; $(FC) $(FFLAGS) -c $<
+TDF01MD.o: TDF01MD.f ; $(FC) $(FFLAGS) -c $<
+TDG01MD.o: TDG01MD.f ; $(FC) $(FFLAGS) -c $<
+TDG01ND.o: TDG01ND.f ; $(FC) $(FFLAGS) -c $<
+TDG01OD.o: TDG01OD.f ; $(FC) $(FFLAGS) -c $<
+TDK01MD.o: TDK01MD.f ; $(FC) $(FFLAGS) -c $<
+TFB01QD.o: TFB01QD.f ; $(FC) $(FFLAGS) -c $<
+TFB01RD.o: TFB01RD.f ; $(FC) $(FFLAGS) -c $<
+TFB01SD.o: TFB01SD.f ; $(FC) $(FFLAGS) -c $<
+TFB01TD.o: TFB01TD.f ; $(FC) $(FFLAGS) -c $<
+TFB01VD.o: TFB01VD.f ; $(FC) $(FFLAGS) -c $<
+TFD01AD.o: TFD01AD.f ; $(FC) $(FFLAGS) -c $<
+TIB01AD.o: TIB01AD.f ; $(FC) $(FFLAGS) -c $<
+TIB01BD.o: TIB01BD.f ; $(FC) $(FFLAGS) -c $<
+TIB01CD.o: TIB01CD.f ; $(FC) $(FFLAGS) -c $<
+TIB03AD.o: TIB03AD.f ; $(FC) $(FFLAGS) -c $<
+TIB03BD.o: TIB03BD.f ; $(FC) $(FFLAGS) -c $<
+TMB01TD.o: TMB01TD.f ; $(FC) $(FFLAGS) -c $<
+TMB02CD.o: TMB02CD.f ; $(FC) $(FFLAGS) -c $<
+TMB02DD.o: TMB02DD.f ; $(FC) $(FFLAGS) -c $<
+TMB02ED.o: TMB02ED.f ; $(FC) $(FFLAGS) -c $<
+TMB02FD.o: TMB02FD.f ; $(FC) $(FFLAGS) -c $<
+TMB02GD.o: TMB02GD.f ; $(FC) $(FFLAGS) -c $<
+TMB02HD.o: TMB02HD.f ; $(FC) $(FFLAGS) -c $<
+TMB02ID.o: TMB02ID.f ; $(FC) $(FFLAGS) -c $<
+TMB02JD.o: TMB02JD.f ; $(FC) $(FFLAGS) -c $<
+TMB02JX.o: TMB02JX.f ; $(FC) $(FFLAGS) -c $<
+TMB02KD.o: TMB02KD.f ; $(FC) $(FFLAGS) -c $<
+TMB02MD.o: TMB02MD.f ; $(FC) $(FFLAGS) -c $<
+TMB02ND.o: TMB02ND.f ; $(FC) $(FFLAGS) -c $<
+TMB02QD.o: TMB02QD.f ; $(FC) $(FFLAGS) -c $<
+TMB02SD.o: TMB02SD.f ; $(FC) $(FFLAGS) -c $<
+TMB02VD.o: TMB02VD.f ; $(FC) $(FFLAGS) -c $<
+TMB03BD.o: TMB03BD.f ; $(FC) $(FFLAGS) -c $<
+TMB03BZ.o: TMB03BZ.f ; $(FC) $(FFLAGS) -c $<
+TMB03FZ.o: TMB03FZ.f ; $(FC) $(FFLAGS) -c $<
+TMB03KD.o: TMB03KD.f ; $(FC) $(FFLAGS) -c $<
+TMB03LD.o: TMB03LD.f ; $(FC) $(FFLAGS) -c $<
+TMB03LF.o: TMB03LF.f ; $(FC) $(FFLAGS) -c $<
+TMB03LZ.o: TMB03LZ.f ; $(FC) $(FFLAGS) -c $<
+TMB03MD.o: TMB03MD.f ; $(FC) $(FFLAGS) -c $<
+TMB03ND.o: TMB03ND.f ; $(FC) $(FFLAGS) -c $<
+TMB03OD.o: TMB03OD.f ; $(FC) $(FFLAGS) -c $<
+TMB03PD.o: TMB03PD.f ; $(FC) $(FFLAGS) -c $<
+TMB03QD.o: TMB03QD.f ; $(FC) $(FFLAGS) -c $<
+TMB03QG.o: TMB03QG.f ; $(FC) $(FFLAGS) -c $<
+TMB03RD.o: TMB03RD.f ; $(FC) $(FFLAGS) -c $<
+TMB03SD.o: TMB03SD.f ; $(FC) $(FFLAGS) -c $<
+TMB03TD.o: TMB03TD.f ; $(FC) $(FFLAGS) -c $<
+TMB03UD.o: TMB03UD.f ; $(FC) $(FFLAGS) -c $<
+TMB03VD.o: TMB03VD.f ; $(FC) $(FFLAGS) -c $<
+TMB03WD.o: TMB03WD.f ; $(FC) $(FFLAGS) -c $<
+TMB03XD.o: TMB03XD.f ; $(FC) $(FFLAGS) -c $<
+TMB03XP.o: TMB03XP.f ; $(FC) $(FFLAGS) -c $<
+TMB03XZ.o: TMB03XZ.f ; $(FC) $(FFLAGS) -c $<
+TMB03ZD.o: TMB03ZD.f ; $(FC) $(FFLAGS) -c $<
+TMB04AD.o: TMB04AD.f ; $(FC) $(FFLAGS) -c $<
+TMB04AZ.o: TMB04AZ.f ; $(FC) $(FFLAGS) -c $<
+TMB04BD.o: TMB04BD.f ; $(FC) $(FFLAGS) -c $<
+TMB04BZ.o: TMB04BZ.f ; $(FC) $(FFLAGS) -c $<
+TMB04DD.o: TMB04DD.f ; $(FC) $(FFLAGS) -c $<
+TMB04DL.o: TMB04DL.f ; $(FC) $(FFLAGS) -c $<
+TMB4DLZ.o: TMB4DLZ.f ; $(FC) $(FFLAGS) -c $<
+TMB04DP.o: TMB04DP.f ; $(FC) $(FFLAGS) -c $<
+TMB4DPZ.o: TMB4DPZ.f ; $(FC) $(FFLAGS) -c $<
+TMB04DS.o: TMB04DS.f ; $(FC) $(FFLAGS) -c $<
+TMB04DY.o: TMB04DY.f ; $(FC) $(FFLAGS) -c $<
+TMB04DZ.o: TMB04DZ.f ; $(FC) $(FFLAGS) -c $<
+TMB04ED.o: TMB04ED.f ; $(FC) $(FFLAGS) -c $<
+TMB04FD.o: TMB04FD.f ; $(FC) $(FFLAGS) -c $<
+TMB04GD.o: TMB04GD.f ; $(FC) $(FFLAGS) -c $<
+TMB04MD.o: TMB04MD.f ; $(FC) $(FFLAGS) -c $<
+TMB04OD.o: TMB04OD.f ; $(FC) $(FFLAGS) -c $<
+TMB04PB.o: TMB04PB.f ; $(FC) $(FFLAGS) -c $<
+TMB04PU.o: TMB04PU.f ; $(FC) $(FFLAGS) -c $<
+TMB04TB.o: TMB04TB.f ; $(FC) $(FFLAGS) -c $<
+TMB04TS.o: TMB04TS.f ; $(FC) $(FFLAGS) -c $<
+TMB04UD.o: TMB04UD.f ; $(FC) $(FFLAGS) -c $<
+TMB04VD.o: TMB04VD.f ; $(FC) $(FFLAGS) -c $<
+TMB04XD.o: TMB04XD.f ; $(FC) $(FFLAGS) -c $<
+TMB04YD.o: TMB04YD.f ; $(FC) $(FFLAGS) -c $<
+TMB04ZD.o: TMB04ZD.f ; $(FC) $(FFLAGS) -c $<
+TMB05MD.o: TMB05MD.f ; $(FC) $(FFLAGS) -c $<
+TMB05ND.o: TMB05ND.f ; $(FC) $(FFLAGS) -c $<
+TMB05OD.o: TMB05OD.f ; $(FC) $(FFLAGS) -c $<
+TMC01MD.o: TMC01MD.f ; $(FC) $(FFLAGS) -c $<
+TMC01ND.o: TMC01ND.f ; $(FC) $(FFLAGS) -c $<
+TMC01OD.o: TMC01OD.f ; $(FC) $(FFLAGS) -c $<
+TMC01PD.o: TMC01PD.f ; $(FC) $(FFLAGS) -c $<
+TMC01QD.o: TMC01QD.f ; $(FC) $(FFLAGS) -c $<
+TMC01RD.o: TMC01RD.f ; $(FC) $(FFLAGS) -c $<
+TMC01SD.o: TMC01SD.f ; $(FC) $(FFLAGS) -c $<
+TMC01TD.o: TMC01TD.f ; $(FC) $(FFLAGS) -c $<
+TMC01VD.o: TMC01VD.f ; $(FC) $(FFLAGS) -c $<
+TMC01WD.o: TMC01WD.f ; $(FC) $(FFLAGS) -c $<
+TMC01XD.o: TMC01XD.f ; $(FC) $(FFLAGS) -c $<
+TMC03MD.o: TMC03MD.f ; $(FC) $(FFLAGS) -c $<
+TMC03ND.o: TMC03ND.f ; $(FC) $(FFLAGS) -c $<
+TMD03AD.o: TMD03AD.f ; $(FC) $(FFLAGS) -c $<
+TMD03BD.o: TMD03BD.f ; $(FC) $(FFLAGS) -c $<
+TSB01BD.o: TSB01BD.f ; $(FC) $(FFLAGS) -c $<
+TSB01DD.o: TSB01DD.f ; $(FC) $(FFLAGS) -c $<
+TSB01MD.o: TSB01MD.f ; $(FC) $(FFLAGS) -c $<
+TSB02MD.o: TSB02MD.f ; $(FC) $(FFLAGS) -c $<
+TSB02ND.o: TSB02ND.f ; $(FC) $(FFLAGS) -c $<
+TSB02OD.o: TSB02OD.f ; $(FC) $(FFLAGS) -c $<
+TSB02PD.o: TSB02PD.f ; $(FC) $(FFLAGS) -c $<
+TSB02QD.o: TSB02QD.f ; $(FC) $(FFLAGS) -c $<
+TSB02RD.o: TSB02RD.f ; $(FC) $(FFLAGS) -c $<
+TSB02SD.o: TSB02SD.f ; $(FC) $(FFLAGS) -c $<
+TSB03MD.o: TSB03MD.f ; $(FC) $(FFLAGS) -c $<
+TSB03OD.o: TSB03OD.f ; $(FC) $(FFLAGS) -c $<
+TSB03QD.o: TSB03QD.f ; $(FC) $(FFLAGS) -c $<
+TSB03SD.o: TSB03SD.f ; $(FC) $(FFLAGS) -c $<
+TSB03TD.o: TSB03TD.f ; $(FC) $(FFLAGS) -c $<
+TSB03UD.o: TSB03UD.f ; $(FC) $(FFLAGS) -c $<
+TSB04MD.o: TSB04MD.f ; $(FC) $(FFLAGS) -c $<
+TSB04ND.o: TSB04ND.f ; $(FC) $(FFLAGS) -c $<
+TSB04OD.o: TSB04OD.f ; $(FC) $(FFLAGS) -c $<
+TSB04PD.o: TSB04PD.f ; $(FC) $(FFLAGS) -c $<
+TSB04QD.o: TSB04QD.f ; $(FC) $(FFLAGS) -c $<
+TSB04RD.o: TSB04RD.f ; $(FC) $(FFLAGS) -c $<
+TSB06ND.o: TSB06ND.f ; $(FC) $(FFLAGS) -c $<
+TSB08CD.o: TSB08CD.f ; $(FC) $(FFLAGS) -c $<
+TSB08DD.o: TSB08DD.f ; $(FC) $(FFLAGS) -c $<
+TSB08ED.o: TSB08ED.f ; $(FC) $(FFLAGS) -c $<
+TSB08FD.o: TSB08FD.f ; $(FC) $(FFLAGS) -c $<
+TSB08MD.o: TSB08MD.f ; $(FC) $(FFLAGS) -c $<
+TSB08ND.o: TSB08ND.f ; $(FC) $(FFLAGS) -c $<
+TSB09MD.o: TSB09MD.f ; $(FC) $(FFLAGS) -c $<
+TSB10DD.o: TSB10DD.f ; $(FC) $(FFLAGS) -c $<
+TSB10ED.o: TSB10ED.f ; $(FC) $(FFLAGS) -c $<
+TSB10FD.o: TSB10FD.f ; $(FC) $(FFLAGS) -c $<
+TSB10HD.o: TSB10HD.f ; $(FC) $(FFLAGS) -c $<
+TSB10ID.o: TSB10ID.f ; $(FC) $(FFLAGS) -c $<
+TSB10KD.o: TSB10KD.f ; $(FC) $(FFLAGS) -c $<
+TSB10ZD.o: TSB10ZD.f ; $(FC) $(FFLAGS) -c $<
+TSB16AD.o: TSB16AD.f ; $(FC) $(FFLAGS) -c $<
+TSB16BD.o: TSB16BD.f ; $(FC) $(FFLAGS) -c $<
+TSB16CD.o: TSB16CD.f ; $(FC) $(FFLAGS) -c $<
+TSG02AD.o: TSG02AD.f ; $(FC) $(FFLAGS) -c $<
+TSG02ND.o: TSG02ND.f ; $(FC) $(FFLAGS) -c $<
+TSG03AD.o: TSG03AD.f ; $(FC) $(FFLAGS) -c $<
+TSG03BD.o: TSG03BD.f ; $(FC) $(FFLAGS) -c $<
+TTB01ID.o: TTB01ID.f ; $(FC) $(FFLAGS) -c $<
+TTB01IZ.o: TTB01IZ.f ; $(FC) $(FFLAGS) -c $<
+TTB01KD.o: TTB01KD.f ; $(FC) $(FFLAGS) -c $<
+TTB01LD.o: TTB01LD.f ; $(FC) $(FFLAGS) -c $<
+TTB01MD.o: TTB01MD.f ; $(FC) $(FFLAGS) -c $<
+TTB01ND.o: TTB01ND.f ; $(FC) $(FFLAGS) -c $<
+TTB01PD.o: TTB01PD.f ; $(FC) $(FFLAGS) -c $<
+TTB01PX.o: TTB01PX.f ; $(FC) $(FFLAGS) -c $<
+TTB01TD.o: TTB01TD.f ; $(FC) $(FFLAGS) -c $<
+TTB01UD.o: TTB01UD.f ; $(FC) $(FFLAGS) -c $<
+TTB01UY.o: TTB01UY.f ; $(FC) $(FFLAGS) -c $<
+TTB01WD.o: TTB01WD.f ; $(FC) $(FFLAGS) -c $<
+TTB01WX.o: TTB01WX.f ; $(FC) $(FFLAGS) -c $<
+TTB01ZD.o: TTB01ZD.f ; $(FC) $(FFLAGS) -c $<
+TTB03AD.o: TTB03AD.f ; $(FC) $(FFLAGS) -c $<
+TTB04AD.o: TTB04AD.f ; $(FC) $(FFLAGS) -c $<
+TTB04BD.o: TTB04BD.f ; $(FC) $(FFLAGS) -c $<
+TTB04CD.o: TTB04CD.f ; $(FC) $(FFLAGS) -c $<
+TTB05AD.o: TTB05AD.f ; $(FC) $(FFLAGS) -c $<
+TTC01OD.o: TTC01OD.f ; $(FC) $(FFLAGS) -c $<
+TTC04AD.o: TTC04AD.f ; $(FC) $(FFLAGS) -c $<
+TTC05AD.o: TTC05AD.f ; $(FC) $(FFLAGS) -c $<
+TTD03AD.o: TTD03AD.f ; $(FC) $(FFLAGS) -c $<
+TTD04AD.o: TTD04AD.f ; $(FC) $(FFLAGS) -c $<
+TTD05AD.o: TTD05AD.f ; $(FC) $(FFLAGS) -c $<
+TTF01MD.o: TTF01MD.f ; $(FC) $(FFLAGS) -c $<
+TTF01ND.o: TTF01ND.f ; $(FC) $(FFLAGS) -c $<
+TTF01OD.o: TTF01OD.f ; $(FC) $(FFLAGS) -c $<
+TTF01PD.o: TTF01PD.f ; $(FC) $(FFLAGS) -c $<
+TTF01QD.o: TTF01QD.f ; $(FC) $(FFLAGS) -c $<
+TTF01RD.o: TTF01RD.f ; $(FC) $(FFLAGS) -c $<
+TTG01AD.o: TTG01AD.f ; $(FC) $(FFLAGS) -c $<
+TTG01AZ.o: TTG01AZ.f ; $(FC) $(FFLAGS) -c $<
+TTG01CD.o: TTG01CD.f ; $(FC) $(FFLAGS) -c $<
+TTG01DD.o: TTG01DD.f ; $(FC) $(FFLAGS) -c $<
+TTG01ED.o: TTG01ED.f ; $(FC) $(FFLAGS) -c $<
+TTG01FD.o: TTG01FD.f ; $(FC) $(FFLAGS) -c $<
+TTG01FZ.o: TTG01FZ.f ; $(FC) $(FFLAGS) -c $<
+TTG01GD.o: TTG01GD.f ; $(FC) $(FFLAGS) -c $<
+TTG01HD.o: TTG01HD.f ; $(FC) $(FFLAGS) -c $<
+TTG01ID.o: TTG01ID.f ; $(FC) $(FFLAGS) -c $<
+TTG01JD.o: TTG01JD.f ; $(FC) $(FFLAGS) -c $<
+TTG01JY.o: TTG01JY.f ; $(FC) $(FFLAGS) -c $<
+TTG01LD.o: TTG01LD.f ; $(FC) $(FFLAGS) -c $<
+TTG01MD.o: TTG01MD.f ; $(FC) $(FFLAGS) -c $<
+TTG01ND.o: TTG01ND.f ; $(FC) $(FFLAGS) -c $<
+TTG01PD.o: TTG01PD.f ; $(FC) $(FFLAGS) -c $<
+TTG01QD.o: TTG01QD.f ; $(FC) $(FFLAGS) -c $<
+TUD01BD.o: TUD01BD.f ; $(FC) $(FFLAGS) -c $<
+TUD01CD.o: TUD01CD.f ; $(FC) $(FFLAGS) -c $<
+TUD01DD.o: TUD01DD.f ; $(FC) $(FFLAGS) -c $<
+TUD01MD.o: TUD01MD.f ; $(FC) $(FFLAGS) -c $<
+TUD01ND.o: TUD01ND.f ; $(FC) $(FFLAGS) -c $<
-.f.o: ; $(FORTRAN) $(OPTS) -c $<
+.f.o: ; $(FC) $(FFLAGS) -c $<
--- a/make_Unix.inc
+++ b/make_Unix.inc
@@ -14,7 +14,6 @@ SHELL = /bin/sh
#
FC = gfortran
FFLAGS = -O2 -fPIC -fdefault-integer-8
-FFLAGS_NOOPT = -O0
# Define LDFLAGS to the desired linker options for your machine.
#
@@ -24,10 +23,11 @@ LDFLAGS =
# (library). If your system has no ranlib, set RANLIB = echo.
#
ARCH = ar
-ARFLAGS = cr
+ARCHFLAGS = cr
# ARCHFLAGS= r
# RANLIB = ranlib
+LOADER = $(FC)
LOADOPTS = $(SLICOTLIB) $(LPKAUXLIB) $(LAPACKLIB) $(BLASLIB)
#
# The location of the libraries to which you will link. (The
--- a/src_aux/makefile_Unix
+++ b/src_aux/makefile_Unix
@@ -47,4 +47,4 @@ clean:
rm -f *.o
.f.o:
- $(FORTRAN) $(OPTS) -c $<
+ $(FC) $(FFLAGS) -c $<

View File

@ -1,4 +1,4 @@
SLICOT_VERSION = 5.0+20101122
SLICOT_VERSION = 5.8+20230223.git401037e
X13AS_VERSION = 1-1-b60
OCTAVE_VERSION = 8.4.0

View File

@ -60,7 +60,7 @@ Section "Dynare core (preprocessor and M-files)"
SetOutPath $INSTDIR\matlab\preprocessor64
File ..\matlab\preprocessor64\dynare_m.exe
SetOutPath $INSTDIR\matlab\modules\dseries\externals\x13\windows\64
SetOutPath $INSTDIR\matlab\dseries\externals\x13\windows\64
File deps\lib64\x13as\x13as.exe
SetOutPath $INSTDIR\contrib