Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 'pvarirf' and 'pvarfevd' invalid in 'pvar' package

    Hello,

    I use the 'pvar' command to test the Pecking Order Theory for natural resource firms. It works well. However, when I want to use the 'pvarirf' and 'pvarfevd', it comes with:

    Code:
    . pvarirf
    invalid 'Irawan' 
    r(198);
    Anyone has ever encountered this problem?

  • #2
    By the way, it only happens on my computer recently. Previously it worked well, but not anymore. I tried on other computers and it is working well. Is there anything wrong with my stata or computer?

    Comment


    • #3
      When you write

      I tried on other computers and it is working well.
      do you mean you copied your data to another computer and ran exactly the same commands (or copied and ran a do-file) using exactly the same data and it worked well?

      it only happens on my computer recently
      Have you recently upgraded to Stata 16.0 and it started happening after that upgrade?

      Comment


      • #4
        do you mean you copied your data to another computer and ran exactly the same commands (or copied and ran a do-file) using exactly the same data and it worked well?
        Yes, I copied my data and tried on two other computers and ran exactly the same commands. It worked. Only on my computer, it could not work.

        Have you recently upgraded to Stata 16.0 and it started happening after that upgrade?
        No, I am still using exactly the same Stata 15.0. I used the same Stata to execute 'pvarirf' and 'pvarfevd' about a couple of weeks before, and it worked. But now, it doesn't.

        Comment


        • #5
          Well, this is difficult.

          I'd say the first thing to do is
          Code:
          net install st0455, from(http://www.stata-journal.com/software/sj16-3)
          which will probably report
          Code:
          . net install st0455, from(http://www.stata-journal.com/software/sj16-3)
          checking st0455 consistency and verifying not already installed...
          all files already exist and are up to date.
          
          .
          but could possibly find a problem with the version installed on your system. I doubt it will find a problem, however.

          Does the following example from the pvar documentation also fail?
          Code:
          webuse nlswork2, clear
          xtset idcode year
          generate wage = exp(ln_wage)
          pvar wage hours
          pvarirf
          If it does work, but your code still fails, then insert the following two commands just before the pvarirf command in your code.
          Code:
          set tracedepth 1
          set trace on
          Then from the Stata Results window, copy everything starting with your pvar command and ending with the "end of do-file" message and paste it into a code block for us to see,

          Comment


          • #6
            Hi Willam,

            Thanks for your help. I tried the following code:

            Code:
            webuse nlswork2, clear
            xtset idcode year
            generate wage = exp(ln_wage)
            pvar wage hours
            pvarirf
            Still, the same problem happens.

            I followed your instruction to put the following code before pvarirf:

            Code:
             
             set tracedepth 1 set trace on  

            The following is the output:

            Code:
            . pvarirf
            ------------------------------------------------------------------------------------------------------------------------- begin pvarirf ---
            - version 11.0
            - syntax [, STep(integer 10) IMPulse(varlist) RESponse(varlist) POrder(varlist) OIRF DM CUMulative MC(integer 0) TABle Level(cilevel) DOTS 
            > SAVE(string) BYOPtion(string) NODRAW * ]
            - local maxlag = e(mlag)
            - local vars = e(depvar)
            - local varsn = wordcount(e(depvar))
            - local N = e(N)
            - if "`dm'" == "dm" {
            = if "" == "dm" {
              pvarirf_dm `*'
              return local porder "."
              return scalar step = `step'
              return scalar iter = `mc'
              exit
              }
            - if "`impulse' `response'" != " " {
            = if " " != " " {
              foreach word in `impulse' `response' {
              if regexm(" `vars' ", " `word' ") == 0 {
              di as err "`word' not in e(depvar)"
              exit 147
              }
              }
              }
            - if "`level'" != "`c(level)'" & `mc' < 2 {
            = if "95" != "95" & 0 < 2 {
              di as err "{bf:level} can only be specified with {bf:mc}(#)>1"
              exit 198
              }
            - if "`porder'" != "" {
            = if "" != "" {
              cap assert wordcount("`porder'") == wordcount("`vars'")
              if _rc != 0 {
              di as err "porder(varlist) does not match pvar varlist"
              exit 198
              }
              else {
              local vars = "`porder'"
              }
              }
            - tempname shock
            - mat `shock' = I(`varsn')
            = mat __000001 = I(2)
            - mat colname `shock' = `vars'
            = mat colname __000001 = wage hours
            - mat rowname `shock' = `vars'
            = mat rowname __000001 = wage hours
            - tempname b b_ P
            - if `mc' > 0 {
            = if 0 > 0 {
              mat `P' = cholesky(e(V))
              }
            - if "`oirf'" == "oirf" {
            = if "" == "oirf" {
              tempname C_ C E Pe L D Dp
              mat `C_' = e(Sigma)
              mat `C' = J(`varsn', `varsn', .)
              mat colname `C' = `vars'
              mat rowname `C' = `vars'
              foreach imp in `vars' {
              foreach res in `vars' {
              mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
              }
              }
              mata: st_matrix("`L'", Lmatrix(`varsn'))
              mata: st_matrix("`D'", Dmatrix(`varsn'))
              mata: st_matrix("`Dp'", pinv(Dmatrix(`varsn')))
              mat `E' = `L' * vec(`C')
              mat `Pe' = cholesky((2/`N') * `Dp' * (`C'#`C') * `Dp'')
              }
            - set more off
            - local iter = 0
            - while `iter' <= `mc' {
            = while 0 <= 0 {
            - if `iter' == 0 {
            = if 0 == 0 {
            - mat `b' = e(b)
            = mat __000002 = e(b)
            - }
            - else {
              mat `b_' = J(1, colsof(e(b)), .)
              local bbb = colsof(`b')
              forval xxx = 1/`bbb' {
              mat `b_'[1,`xxx'] = invnorm(uniform())
              }
              mat `b' = e(b) + (`P' * `b_'')'
              }
            - forval p = 1/ `maxlag' {
            = forval p = 1/ 1 {
            - local coln
            - foreach var in `vars' {
            = foreach var in wage hours {
            - local coln "`coln' L`p'.`var'"
            = local coln " L1.wage"
            - }
            - local coln "`coln' L`p'.`var'"
            = local coln " L1.wage L1.hours"
            - }
            - tempname A`p'
            = tempname A1
            - mat `A`p'' = J(`varsn', `varsn', .)
            = mat __000005 = J(2, 2, .)
            - mat rowname `A`p'' = `vars'
            = mat rowname __000005 = wage hours
            - mat colname `A`p'' = `coln'
            = mat colname __000005 =  L1.wage L1.hours
            - foreach vareq in `vars' {
            = foreach vareq in wage hours {
            - foreach varex in `vars' {
            = foreach varex in wage hours {
            - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
            = mat __000005[rownumb(__000005,"wage"), colnumb(__000005,"L1.wage")] = __000002[1, "wage:L1.wage"]
            - }
            - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
            = mat __000005[rownumb(__000005,"wage"), colnumb(__000005,"L1.hours")] = __000002[1, "wage:L1.hours"]
            - }
            - }
            - foreach varex in `vars' {
            = foreach varex in wage hours {
            - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
            = mat __000005[rownumb(__000005,"hours"), colnumb(__000005,"L1.wage")] = __000002[1, "hours:L1.wage"]
            - }
            - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
            = mat __000005[rownumb(__000005,"hours"), colnumb(__000005,"L1.hours")] = __000002[1, "hours:L1.hours"]
            - }
            - }
            - }
            - tempname irf0
            - mat `irf0' = `shock'
            = mat __000006 = __000001
            - forval iii = 1/`step' {
            = forval iii = 1/10 {
            - tempname irf`iii'
            = tempname irf1
            - mat `irf`iii'' = J(`varsn', `varsn', 0)
            = mat __000007 = J(2, 2, 0)
            - forval jjj = 1/`maxlag' {
            = forval jjj = 1/1 {
            - if `iii' >= `jjj' {
            = if 1 >= 1 {
            - local i_j = `iii' - `jjj'
            = local i_j = 1 - 1
            - tempname irf_`jjj'
            = tempname irf_1
            - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
            = mat __000008 = __000006 * __000005
            - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
            = mat __000007 = __000007 + __000008
            - }
            - }
            - }
            - tempname irf`iii'
            = tempname irf2
            - mat `irf`iii'' = J(`varsn', `varsn', 0)
            = mat __000009 = J(2, 2, 0)
            - forval jjj = 1/`maxlag' {
            = forval jjj = 1/1 {
            - if `iii' >= `jjj' {
            = if 2 >= 1 {
            - local i_j = `iii' - `jjj'
            = local i_j = 2 - 1
            - tempname irf_`jjj'
            = tempname irf_1
            - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
            = mat __00000A = __000007 * __000005
            - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
            = mat __000009 = __000009 + __00000A
            - }
            - }
            - }
            - tempname irf`iii'
            = tempname irf3
            - mat `irf`iii'' = J(`varsn', `varsn', 0)
            = mat __00000B = J(2, 2, 0)
            - forval jjj = 1/`maxlag' {
            = forval jjj = 1/1 {
            - if `iii' >= `jjj' {
            = if 3 >= 1 {
            - local i_j = `iii' - `jjj'
            = local i_j = 3 - 1
            - tempname irf_`jjj'
            = tempname irf_1
            - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
            = mat __00000C = __000009 * __000005
            - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
            = mat __00000B = __00000B + __00000C
            - }
            - }
            - }
            - tempname irf`iii'
            = tempname irf4
            - mat `irf`iii'' = J(`varsn', `varsn', 0)
            = mat __00000D = J(2, 2, 0)
            - forval jjj = 1/`maxlag' {
            = forval jjj = 1/1 {
            - if `iii' >= `jjj' {
            = if 4 >= 1 {
            - local i_j = `iii' - `jjj'
            = local i_j = 4 - 1
            - tempname irf_`jjj'
            = tempname irf_1
            - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
            = mat __00000E = __00000B * __000005
            - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
            = mat __00000D = __00000D + __00000E
            - }
            - }
            - }
            - tempname irf`iii'
            = tempname irf5
            - mat `irf`iii'' = J(`varsn', `varsn', 0)
            = mat __00000F = J(2, 2, 0)
            - forval jjj = 1/`maxlag' {
            = forval jjj = 1/1 {
            - if `iii' >= `jjj' {
            = if 5 >= 1 {
            - local i_j = `iii' - `jjj'
            = local i_j = 5 - 1
            - tempname irf_`jjj'
            = tempname irf_1
            - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
            = mat __00000G = __00000D * __000005
            - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
            = mat __00000F = __00000F + __00000G
            - }
            - }
            - }
            - tempname irf`iii'
            = tempname irf6
            - mat `irf`iii'' = J(`varsn', `varsn', 0)
            = mat __00000H = J(2, 2, 0)
            - forval jjj = 1/`maxlag' {
            = forval jjj = 1/1 {
            - if `iii' >= `jjj' {
            = if 6 >= 1 {
            - local i_j = `iii' - `jjj'
            = local i_j = 6 - 1
            - tempname irf_`jjj'
            = tempname irf_1
            - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
            = mat __00000I = __00000F * __000005
            - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
            = mat __00000H = __00000H + __00000I
            - }
            - }
            - }
            - tempname irf`iii'
            = tempname irf7
            - mat `irf`iii'' = J(`varsn', `varsn', 0)
            = mat __00000J = J(2, 2, 0)
            - forval jjj = 1/`maxlag' {
            = forval jjj = 1/1 {
            - if `iii' >= `jjj' {
            = if 7 >= 1 {
            - local i_j = `iii' - `jjj'
            = local i_j = 7 - 1
            - tempname irf_`jjj'
            = tempname irf_1
            - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
            = mat __00000K = __00000H * __000005
            - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
            = mat __00000J = __00000J + __00000K
            - }
            - }
            - }
            - tempname irf`iii'
            = tempname irf8
            - mat `irf`iii'' = J(`varsn', `varsn', 0)
            = mat __00000L = J(2, 2, 0)
            - forval jjj = 1/`maxlag' {
            = forval jjj = 1/1 {
            - if `iii' >= `jjj' {
            = if 8 >= 1 {
            - local i_j = `iii' - `jjj'
            = local i_j = 8 - 1
            - tempname irf_`jjj'
            = tempname irf_1
            - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
            = mat __00000M = __00000J * __000005
            - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
            = mat __00000L = __00000L + __00000M
            - }
            - }
            - }
            - tempname irf`iii'
            = tempname irf9
            - mat `irf`iii'' = J(`varsn', `varsn', 0)
            = mat __00000N = J(2, 2, 0)
            - forval jjj = 1/`maxlag' {
            = forval jjj = 1/1 {
            - if `iii' >= `jjj' {
            = if 9 >= 1 {
            - local i_j = `iii' - `jjj'
            = local i_j = 9 - 1
            - tempname irf_`jjj'
            = tempname irf_1
            - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
            = mat __00000O = __00000L * __000005
            - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
            = mat __00000N = __00000N + __00000O
            - }
            - }
            - }
            - tempname irf`iii'
            = tempname irf10
            - mat `irf`iii'' = J(`varsn', `varsn', 0)
            = mat __00000P = J(2, 2, 0)
            - forval jjj = 1/`maxlag' {
            = forval jjj = 1/1 {
            - if `iii' >= `jjj' {
            = if 10 >= 1 {
            - local i_j = `iii' - `jjj'
            = local i_j = 10 - 1
            - tempname irf_`jjj'
            = tempname irf_1
            - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
            = mat __00000Q = __00000N * __000005
            - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
            = mat __00000P = __00000P + __00000Q
            - }
            - }
            - }
            - if "`oirf'" == "oirf" {
            = if "" == "oirf" {
              tempname Pc
              if `iter' == 0 {
              mat `Pc' = cholesky(`C')
              }
              else {
              cap drop mat `C'
              tempname C_ C
              mat `C_' = J(1, colsof(`Pe'), .)
              local ccc = colsof(`Pe')
              forval xxx = 1/`ccc' {
              mat `C_'[1,`xxx'] = invnorm(uniform())
              }
              mat `C_' = `D'*(`E' + (`Pe' * `C_''))
              local _s
              local _t
              forval xxx = 1/`varsn' {
              local _s = `_t' + 1
              local _t = `_s' + `varsn' - 1
              mat `C' = nullmat(`C'), `C_'[`_s'..`_t', 1]
              }
              mat rowname `C' = `vars'
              mat colname `C' = `vars'
              cap mat `Pc' = cholesky(`C')
              if _rc == 506 {
              mat `Pc' = J(`varsn', `varsn', .)
              local _errcount = `_errcount' + 1
              }
              }
              forval iii = 0/`step' {
              mat `irf`iii'' = `irf`iii'' * `Pc'
              }
              }
            - local steps
            - tempname pirf addenda
            - forval ttt = 0/`step' {
            = forval ttt = 0/10 {
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 0, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = " 0 "
            - if `ttt' == 0 {
            = if 0 == 0 {
            - mat colname `irf0' = `vars'
            = mat colname __000006 = wage hours
            - mat rowname `irf0' = `vars'
            = mat rowname __000006 = wage hours
            - mat `pirf' = `addenda', vec(`irf0')'
            = mat __00000R = __00000S, vec(__000006)'
            - }
            - else {
              mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
              }
            - }
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 1, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = "0  1 "
            - if `ttt' == 0 {
            = if 1 == 0 {
              mat colname `irf0' = `vars'
              mat rowname `irf0' = `vars'
              mat `pirf' = `addenda', vec(`irf0')'
              }
            - else {
            - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
            = mat __00000R = __00000R \ __00000S, vec(__000007)'
            - }
            - }
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 2, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = "0  1  2 "
            - if `ttt' == 0 {
            = if 2 == 0 {
              mat colname `irf0' = `vars'
              mat rowname `irf0' = `vars'
              mat `pirf' = `addenda', vec(`irf0')'
              }
            - else {
            - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
            = mat __00000R = __00000R \ __00000S, vec(__000009)'
            - }
            - }
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 3, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = "0  1  2  3 "
            - if `ttt' == 0 {
            = if 3 == 0 {
              mat colname `irf0' = `vars'
              mat rowname `irf0' = `vars'
              mat `pirf' = `addenda', vec(`irf0')'
              }
            - else {
            - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
            = mat __00000R = __00000R \ __00000S, vec(__00000B)'
            - }
            - }
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 4, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = "0  1  2  3  4 "
            - if `ttt' == 0 {
            = if 4 == 0 {
              mat colname `irf0' = `vars'
              mat rowname `irf0' = `vars'
              mat `pirf' = `addenda', vec(`irf0')'
              }
            - else {
            - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
            = mat __00000R = __00000R \ __00000S, vec(__00000D)'
            - }
            - }
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 5, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = "0  1  2  3  4  5 "
            - if `ttt' == 0 {
            = if 5 == 0 {
              mat colname `irf0' = `vars'
              mat rowname `irf0' = `vars'
              mat `pirf' = `addenda', vec(`irf0')'
              }
            - else {
            - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
            = mat __00000R = __00000R \ __00000S, vec(__00000F)'
            - }
            - }
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 6, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = "0  1  2  3  4  5  6 "
            - if `ttt' == 0 {
            = if 6 == 0 {
              mat colname `irf0' = `vars'
              mat rowname `irf0' = `vars'
              mat `pirf' = `addenda', vec(`irf0')'
              }
            - else {
            - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
            = mat __00000R = __00000R \ __00000S, vec(__00000H)'
            - }
            - }
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 7, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = "0  1  2  3  4  5  6  7 "
            - if `ttt' == 0 {
            = if 7 == 0 {
              mat colname `irf0' = `vars'
              mat rowname `irf0' = `vars'
              mat `pirf' = `addenda', vec(`irf0')'
              }
            - else {
            - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
            = mat __00000R = __00000R \ __00000S, vec(__00000J)'
            - }
            - }
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 8, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = "0  1  2  3  4  5  6  7  8 "
            - if `ttt' == 0 {
            = if 8 == 0 {
              mat colname `irf0' = `vars'
              mat rowname `irf0' = `vars'
              mat `pirf' = `addenda', vec(`irf0')'
              }
            - else {
            - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
            = mat __00000R = __00000R \ __00000S, vec(__00000L)'
            - }
            - }
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 9, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = "0  1  2  3  4  5  6  7  8  9 "
            - if `ttt' == 0 {
            = if 9 == 0 {
              mat colname `irf0' = `vars'
              mat rowname `irf0' = `vars'
              mat `pirf' = `addenda', vec(`irf0')'
              }
            - else {
            - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
            = mat __00000R = __00000R \ __00000S, vec(__00000N)'
            - }
            - }
            - mat `addenda' = `ttt', `iter'
            = mat __00000S = 10, 0
            - mat colname `addenda' = step iter
            = mat colname __00000S = step iter
            - local steps = "`steps' `ttt' "
            = local steps = "0  1  2  3  4  5  6  7  8  9  10 "
            - if `ttt' == 0 {
            = if 10 == 0 {
              mat colname `irf0' = `vars'
              mat rowname `irf0' = `vars'
              mat `pirf' = `addenda', vec(`irf0')'
              }
            - else {
            - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
            = mat __00000R = __00000R \ __00000S, vec(__00000P)'
            - }
            - }
            - mat rowname `pirf' = `steps'
            = mat rowname __00000R = 0  1  2  3  4  5  6  7  8  9  10 
            - if `iter' == 0 {
            = if 0 == 0 {
            - qui {
            - tempfile error0 error1
            - preserve
            - clear
            - svmat `pirf', names(eqcol)
            = svmat __00000R, names(eqcol)
            - save `error0', replace
            = save C:\Users\Denny Irawan\AppData\Local\Temp\ST_1358_000001.tmp, replace
            invalid 'Irawan' 
              save `error1', replace
              restore
              }
              }
              else {
              qui {
              preserve
              clear
              svmat `pirf', names(eqcol)
              append using `error1'
              save `error1', replace
              restore
              }
              }
              if "`dots'" != "" & `mc' > 0 {
              if _rc != 0 {
              _dots `iter' 1
              }
              else {
              _dots `iter' 0
              }
              }
              local iter = `iter' + 1
              }
            --------------------------------------------------------------------------------------------------------------------------- end pvarirf ---
            r(198);
            I think the error comes because there is a space between the users' folder name 'Denny Irawan'. But it is a bit strange since it worked perfectly before.

            Comment


            • #7
              Good work, thank you. Your results and your conclusion - that the space in the path of the file being saved - matches what I expected to find. I couldn't understand that, since pvarirf doesn't seem to create an output file - I hadn't expected the problem to be with the path to Stata's temporary file directory.

              The problem is the result of two things.

              1) In pvarirf.ado we see the following.
              Code:
                  tempfile error0 error1
              ...
                           save `error0', replace
                           save `error1', replace
              The tempfile command creates path names to two temporary files. On my Mac this results in
              Code:
              . tempfile error1
              
              . display `"`error1'"'
              /var/folders/xr/lm5ccr996k7dspxs35yqzyt80000gp/T//S_08208.000001
              and on a Windows Remote Desktop I have access to
              Code:
              . display `"`error1'"'
              C:\Users\WLISOW~1\AppData\Local\Temp\ST_328_000001.tmp
              where the directory with my name has been shortened with the MS-DOS compatibility abbreviation, while on your system, the results would be
              Code:
              . display `"`error1'"'
              C:\Users\Denny Irawan\AppData\Local\Temp\ST_1358_000001.tmp
              which does not use the MS-DOS compatibility abbreviation so the space is part of the path.

              2) The authors of the package you are using neglected to surround the temporary file macro expansions with (at a minimum) quotation marks
              Code:
                           save "`error0'", replace
              but preferably Stata's compound quotation marks
              Code:
                           save `"`error0'"', replace
              and thus Stata tried to execute the command
              Code:
              save C:\Users\Denny Irawan\AppData\Local\Temp\ST_1358_000001.tmp, replace
              and it takes "C:\Users\Denny" as the filename and doesn't know what to make of the remaining part of the path.

              That was poor programming practice on the part of the authors, but it usually works because as we see, on Linux and macOS systems the temporary directory doesn't have spaces, and it appears that on Windows systems in the past, the TEMP environment variable hid any spaces using the MS-DOS compatibility technique.

              Why did it work before?

              The FAQ for Stata's temporary directory is

              https://www.stata.com/support/faqs/d...ment-variable/

              My guess is that something changed in your Windows environment so that either your home directory got a new name or the TEMP environment variable formerly used the MS-DOS abbreviated version (like the Windows Remote Desktop does for me) that hid the space in your home directory, but now does that no longer.

              How can you solve this problem?

              You have two choices.

              1) Follow the guidance in the FAQ to set the TEMP or STATATMP environment variable in your autoexec.bat file to refer to a directory with no embedded spaces in the path - perhaps by again using the MS-DOS compatibility version for the directory with your name, or perhaps by finding somewhere else to stick temporary files that doesn't include a space in the path.

              2) Open pvarirf.ado in the do-file editor
              Code:
              doedit "`c(sysdir_plus)'/p/pvarirf.ado"
              and wherever you see
              Code:
              `error0' or `error1'
              replace it with
              Code:
              `"`error0'"' or `"`error1'"'
              and save the edited version. Then be sure the unedited version of the pvarirf program is not in memory
              Code:
              program drop pvarirf
              and then try running pvarirf.



              Comment


              • #8
                Hello William,

                I have similar Problem. the webuse wage code works perfectly on my computer but my code still doesn't work. I followed all the recommendations by changing
                Code:
                `error0' or `error1'
                to
                Code:
                 `"`error0'"' or `"`error1'"'
                but got same result.

                Code:
                --------------------------------------------------------------------------------------------------------- begin pvarirf ---
                - version 11.0
                - syntax [, STep(integer 10) IMPulse(varlist) RESponse(varlist) POrder(varlist) OIRF DM CUMulative MC(integer 0) TABle Leve
                > l(cilevel) DOTS SAVE(string) BYOPtion(string) NODRAW * ]
                - local maxlag = e(mlag)
                - local vars = e(depvar)
                - local varsn = wordcount(e(depvar))
                - local N = e(N)
                - if "`dm'" == "dm" {
                = if "" == "dm" {
                  pvarirf_dm `*'
                  return local porder "."
                  return scalar step = `step'
                  return scalar iter = `mc'
                  exit
                  }
                - if "`impulse' `response'" != " " {
                = if " " != " " {
                  foreach word in `impulse' `response' {
                  if regexm(" `vars' ", " `word' ") == 0 {
                  di as err "`word' not in e(depvar)"
                  exit 147
                  }
                  }
                  }
                - if "`level'" != "`c(level)'" & `mc' < 2 {
                = if "95" != "95" & 200 < 2 {
                  di as err "{bf:level} can only be specified with {bf:mc}(#)>1"
                  exit 198
                  }
                - if "`porder'" != "" {
                = if "" != "" {
                  cap assert wordcount("`porder'") == wordcount("`vars'")
                  if _rc != 0 {
                  di as err "porder(varlist) does not match pvar varlist"
                  exit 198
                  }
                  else {
                  local vars = "`porder'"
                  }
                  }
                - tempname shock
                - mat `shock' = I(`varsn')
                = mat __000001 = I(6)
                - mat colname `shock' = `vars'
                = mat colname __000001 = f m a i cpi xt
                - mat rowname `shock' = `vars'
                = mat rowname __000001 = f m a i cpi xt
                - tempname b b_ P
                - if `mc' > 0 {
                = if 200 > 0 {
                - mat `P' = cholesky(e(V))
                = mat __000004 = cholesky(e(V))
                - }
                - if "`oirf'" == "oirf" {
                = if "oirf" == "oirf" {
                - tempname C_ C E Pe L D Dp
                - mat `C_' = e(Sigma)
                = mat __000005 = e(Sigma)
                - mat `C' = J(`varsn', `varsn', .)
                = mat __000006 = J(6, 6, .)
                - mat colname `C' = `vars'
                = mat colname __000006 = f m a i cpi xt
                - mat rowname `C' = `vars'
                = mat rowname __000006 = f m a i cpi xt
                - foreach imp in `vars' {
                = foreach imp in f m a i cpi xt {
                - foreach res in `vars' {
                = foreach res in f m a i cpi xt {
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "f"), colnumb(__000006, "f")] = __000005["f", "f"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "f"), colnumb(__000006, "m")] = __000005["f", "m"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "f"), colnumb(__000006, "a")] = __000005["f", "a"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "f"), colnumb(__000006, "i")] = __000005["f", "i"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "f"), colnumb(__000006, "cpi")] = __000005["f", "cpi"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "f"), colnumb(__000006, "xt")] = __000005["f", "xt"]
                - }
                - }
                - foreach res in `vars' {
                = foreach res in f m a i cpi xt {
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "m"), colnumb(__000006, "f")] = __000005["m", "f"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "m"), colnumb(__000006, "m")] = __000005["m", "m"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "m"), colnumb(__000006, "a")] = __000005["m", "a"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "m"), colnumb(__000006, "i")] = __000005["m", "i"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "m"), colnumb(__000006, "cpi")] = __000005["m", "cpi"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "m"), colnumb(__000006, "xt")] = __000005["m", "xt"]
                - }
                - }
                - foreach res in `vars' {
                = foreach res in f m a i cpi xt {
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "a"), colnumb(__000006, "f")] = __000005["a", "f"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "a"), colnumb(__000006, "m")] = __000005["a", "m"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "a"), colnumb(__000006, "a")] = __000005["a", "a"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "a"), colnumb(__000006, "i")] = __000005["a", "i"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "a"), colnumb(__000006, "cpi")] = __000005["a", "cpi"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "a"), colnumb(__000006, "xt")] = __000005["a", "xt"]
                - }
                - }
                - foreach res in `vars' {
                = foreach res in f m a i cpi xt {
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "i"), colnumb(__000006, "f")] = __000005["i", "f"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "i"), colnumb(__000006, "m")] = __000005["i", "m"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "i"), colnumb(__000006, "a")] = __000005["i", "a"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "i"), colnumb(__000006, "i")] = __000005["i", "i"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "i"), colnumb(__000006, "cpi")] = __000005["i", "cpi"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "i"), colnumb(__000006, "xt")] = __000005["i", "xt"]
                - }
                - }
                - foreach res in `vars' {
                = foreach res in f m a i cpi xt {
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "cpi"), colnumb(__000006, "f")] = __000005["cpi", "f"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "cpi"), colnumb(__000006, "m")] = __000005["cpi", "m"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "cpi"), colnumb(__000006, "a")] = __000005["cpi", "a"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "cpi"), colnumb(__000006, "i")] = __000005["cpi", "i"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "cpi"), colnumb(__000006, "cpi")] = __000005["cpi", "cpi"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "cpi"), colnumb(__000006, "xt")] = __000005["cpi", "xt"]
                - }
                - }
                - foreach res in `vars' {
                = foreach res in f m a i cpi xt {
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "xt"), colnumb(__000006, "f")] = __000005["xt", "f"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "xt"), colnumb(__000006, "m")] = __000005["xt", "m"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "xt"), colnumb(__000006, "a")] = __000005["xt", "a"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "xt"), colnumb(__000006, "i")] = __000005["xt", "i"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "xt"), colnumb(__000006, "cpi")] = __000005["xt", "cpi"]
                - }
                - mat `C'[rownumb(`C', "`imp'"), colnumb(`C', "`res'")] = `C_'["`imp'", "`res'"]
                = mat __000006[rownumb(__000006, "xt"), colnumb(__000006, "xt")] = __000005["xt", "xt"]
                - }
                - }
                - mata: st_matrix("`L'", Lmatrix(`varsn'))
                = mata: st_matrix("__000009", Lmatrix(6))
                - mata: st_matrix("`D'", Dmatrix(`varsn'))
                = mata: st_matrix("__00000A", Dmatrix(6))
                - mata: st_matrix("`Dp'", pinv(Dmatrix(`varsn')))
                = mata: st_matrix("__00000B", pinv(Dmatrix(6)))
                - mat `E' = `L' * vec(`C')
                = mat __000007 = __000009 * vec(__000006)
                - mat `Pe' = cholesky((2/`N') * `Dp' * (`C'#`C') * `Dp'')
                = mat __000008 = cholesky((2/3042) * __00000B * (__000006#__000006) * __00000B')
                - }
                - set more off
                - local iter = 0
                - while `iter' <= `mc' {
                = while 0 <= 200 {
                - if `iter' == 0 {
                = if 0 == 0 {
                - mat `b' = e(b)
                = mat __000002 = e(b)
                - }
                - else {
                  mat `b_' = J(1, colsof(e(b)), .)
                  local bbb = colsof(`b')
                  forval xxx = 1/`bbb' {
                  mat `b_'[1,`xxx'] = invnorm(uniform())
                  }
                  mat `b' = e(b) + (`P' * `b_'')'
                  }
                - forval p = 1/ `maxlag' {
                = forval p = 1/ 1 {
                - local coln
                - foreach var in `vars' {
                = foreach var in f m a i cpi xt {
                - local coln "`coln' L`p'.`var'"
                = local coln " L1.f"
                - }
                - local coln "`coln' L`p'.`var'"
                = local coln " L1.f L1.m"
                - }
                - local coln "`coln' L`p'.`var'"
                = local coln " L1.f L1.m L1.a"
                - }
                - local coln "`coln' L`p'.`var'"
                = local coln " L1.f L1.m L1.a L1.i"
                - }
                - local coln "`coln' L`p'.`var'"
                = local coln " L1.f L1.m L1.a L1.i L1.cpi"
                - }
                - local coln "`coln' L`p'.`var'"
                = local coln " L1.f L1.m L1.a L1.i L1.cpi L1.xt"
                - }
                - tempname A`p'
                = tempname A1
                - mat `A`p'' = J(`varsn', `varsn', .)
                = mat __00000C = J(6, 6, .)
                - mat rowname `A`p'' = `vars'
                = mat rowname __00000C = f m a i cpi xt
                - mat colname `A`p'' = `coln'
                = mat colname __00000C =  L1.f L1.m L1.a L1.i L1.cpi L1.xt
                - foreach vareq in `vars' {
                = foreach vareq in f m a i cpi xt {
                - foreach varex in `vars' {
                = foreach varex in f m a i cpi xt {
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"f"), colnumb(__00000C,"L1.f")] = __000002[1, "f:L1.f"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"f"), colnumb(__00000C,"L1.m")] = __000002[1, "f:L1.m"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"f"), colnumb(__00000C,"L1.a")] = __000002[1, "f:L1.a"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"f"), colnumb(__00000C,"L1.i")] = __000002[1, "f:L1.i"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"f"), colnumb(__00000C,"L1.cpi")] = __000002[1, "f:L1.cpi"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"f"), colnumb(__00000C,"L1.xt")] = __000002[1, "f:L1.xt"]
                - }
                - }
                - foreach varex in `vars' {
                = foreach varex in f m a i cpi xt {
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"m"), colnumb(__00000C,"L1.f")] = __000002[1, "m:L1.f"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"m"), colnumb(__00000C,"L1.m")] = __000002[1, "m:L1.m"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"m"), colnumb(__00000C,"L1.a")] = __000002[1, "m:L1.a"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"m"), colnumb(__00000C,"L1.i")] = __000002[1, "m:L1.i"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"m"), colnumb(__00000C,"L1.cpi")] = __000002[1, "m:L1.cpi"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"m"), colnumb(__00000C,"L1.xt")] = __000002[1, "m:L1.xt"]
                - }
                - }
                - foreach varex in `vars' {
                = foreach varex in f m a i cpi xt {
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"a"), colnumb(__00000C,"L1.f")] = __000002[1, "a:L1.f"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"a"), colnumb(__00000C,"L1.m")] = __000002[1, "a:L1.m"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"a"), colnumb(__00000C,"L1.a")] = __000002[1, "a:L1.a"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"a"), colnumb(__00000C,"L1.i")] = __000002[1, "a:L1.i"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"a"), colnumb(__00000C,"L1.cpi")] = __000002[1, "a:L1.cpi"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"a"), colnumb(__00000C,"L1.xt")] = __000002[1, "a:L1.xt"]
                - }
                - }
                - foreach varex in `vars' {
                = foreach varex in f m a i cpi xt {
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"i"), colnumb(__00000C,"L1.f")] = __000002[1, "i:L1.f"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"i"), colnumb(__00000C,"L1.m")] = __000002[1, "i:L1.m"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"i"), colnumb(__00000C,"L1.a")] = __000002[1, "i:L1.a"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"i"), colnumb(__00000C,"L1.i")] = __000002[1, "i:L1.i"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"i"), colnumb(__00000C,"L1.cpi")] = __000002[1, "i:L1.cpi"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"i"), colnumb(__00000C,"L1.xt")] = __000002[1, "i:L1.xt"]
                - }
                - }
                - foreach varex in `vars' {
                = foreach varex in f m a i cpi xt {
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"cpi"), colnumb(__00000C,"L1.f")] = __000002[1, "cpi:L1.f"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"cpi"), colnumb(__00000C,"L1.m")] = __000002[1, "cpi:L1.m"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"cpi"), colnumb(__00000C,"L1.a")] = __000002[1, "cpi:L1.a"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"cpi"), colnumb(__00000C,"L1.i")] = __000002[1, "cpi:L1.i"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"cpi"), colnumb(__00000C,"L1.cpi")] = __000002[1, "cpi:L1.cpi"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"cpi"), colnumb(__00000C,"L1.xt")] = __000002[1, "cpi:L1.xt"]
                - }
                - }
                - foreach varex in `vars' {
                = foreach varex in f m a i cpi xt {
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"xt"), colnumb(__00000C,"L1.f")] = __000002[1, "xt:L1.f"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"xt"), colnumb(__00000C,"L1.m")] = __000002[1, "xt:L1.m"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"xt"), colnumb(__00000C,"L1.a")] = __000002[1, "xt:L1.a"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"xt"), colnumb(__00000C,"L1.i")] = __000002[1, "xt:L1.i"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"xt"), colnumb(__00000C,"L1.cpi")] = __000002[1, "xt:L1.cpi"]
                - }
                - mat `A`p''[rownumb(`A`p'',"`vareq'"), colnumb(`A`p'',"L`p'.`varex'")] = `b'[1, "`vareq':L`p'.`varex'"]
                = mat __00000C[rownumb(__00000C,"xt"), colnumb(__00000C,"L1.xt")] = __000002[1, "xt:L1.xt"]
                - }
                - }
                - }
                - tempname irf0
                - mat `irf0' = `shock'
                = mat __00000D = __000001
                - forval iii = 1/`step' {
                = forval iii = 1/10 {
                - tempname irf`iii'
                = tempname irf1
                - mat `irf`iii'' = J(`varsn', `varsn', 0)
                = mat __00000E = J(6, 6, 0)
                - forval jjj = 1/`maxlag' {
                = forval jjj = 1/1 {
                - if `iii' >= `jjj' {
                = if 1 >= 1 {
                - local i_j = `iii' - `jjj'
                = local i_j = 1 - 1
                - tempname irf_`jjj'
                = tempname irf_1
                - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
                = mat __00000F = __00000D * __00000C
                - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
                = mat __00000E = __00000E + __00000F
                - }
                - }
                - }
                - tempname irf`iii'
                = tempname irf2
                - mat `irf`iii'' = J(`varsn', `varsn', 0)
                = mat __00000G = J(6, 6, 0)
                - forval jjj = 1/`maxlag' {
                = forval jjj = 1/1 {
                - if `iii' >= `jjj' {
                = if 2 >= 1 {
                - local i_j = `iii' - `jjj'
                = local i_j = 2 - 1
                - tempname irf_`jjj'
                = tempname irf_1
                - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
                = mat __00000H = __00000E * __00000C
                - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
                = mat __00000G = __00000G + __00000H
                - }
                - }
                - }
                - tempname irf`iii'
                = tempname irf3
                - mat `irf`iii'' = J(`varsn', `varsn', 0)
                = mat __00000I = J(6, 6, 0)
                - forval jjj = 1/`maxlag' {
                = forval jjj = 1/1 {
                - if `iii' >= `jjj' {
                = if 3 >= 1 {
                - local i_j = `iii' - `jjj'
                = local i_j = 3 - 1
                - tempname irf_`jjj'
                = tempname irf_1
                - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
                = mat __00000J = __00000G * __00000C
                - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
                = mat __00000I = __00000I + __00000J
                - }
                - }
                - }
                - tempname irf`iii'
                = tempname irf4
                - mat `irf`iii'' = J(`varsn', `varsn', 0)
                = mat __00000K = J(6, 6, 0)
                - forval jjj = 1/`maxlag' {
                = forval jjj = 1/1 {
                - if `iii' >= `jjj' {
                = if 4 >= 1 {
                - local i_j = `iii' - `jjj'
                = local i_j = 4 - 1
                - tempname irf_`jjj'
                = tempname irf_1
                - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
                = mat __00000L = __00000I * __00000C
                - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
                = mat __00000K = __00000K + __00000L
                - }
                - }
                - }
                - tempname irf`iii'
                = tempname irf5
                - mat `irf`iii'' = J(`varsn', `varsn', 0)
                = mat __00000M = J(6, 6, 0)
                - forval jjj = 1/`maxlag' {
                = forval jjj = 1/1 {
                - if `iii' >= `jjj' {
                = if 5 >= 1 {
                - local i_j = `iii' - `jjj'
                = local i_j = 5 - 1
                - tempname irf_`jjj'
                = tempname irf_1
                - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
                = mat __00000N = __00000K * __00000C
                - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
                = mat __00000M = __00000M + __00000N
                - }
                - }
                - }
                - tempname irf`iii'
                = tempname irf6
                - mat `irf`iii'' = J(`varsn', `varsn', 0)
                = mat __00000O = J(6, 6, 0)
                - forval jjj = 1/`maxlag' {
                = forval jjj = 1/1 {
                - if `iii' >= `jjj' {
                = if 6 >= 1 {
                - local i_j = `iii' - `jjj'
                = local i_j = 6 - 1
                - tempname irf_`jjj'
                = tempname irf_1
                - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
                = mat __00000P = __00000M * __00000C
                - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
                = mat __00000O = __00000O + __00000P
                - }
                - }
                - }
                - tempname irf`iii'
                = tempname irf7
                - mat `irf`iii'' = J(`varsn', `varsn', 0)
                = mat __00000Q = J(6, 6, 0)
                - forval jjj = 1/`maxlag' {
                = forval jjj = 1/1 {
                - if `iii' >= `jjj' {
                = if 7 >= 1 {
                - local i_j = `iii' - `jjj'
                = local i_j = 7 - 1
                - tempname irf_`jjj'
                = tempname irf_1
                - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
                = mat __00000R = __00000O * __00000C
                - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
                = mat __00000Q = __00000Q + __00000R
                - }
                - }
                - }
                - tempname irf`iii'
                = tempname irf8
                - mat `irf`iii'' = J(`varsn', `varsn', 0)
                = mat __00000S = J(6, 6, 0)
                - forval jjj = 1/`maxlag' {
                = forval jjj = 1/1 {
                - if `iii' >= `jjj' {
                = if 8 >= 1 {
                - local i_j = `iii' - `jjj'
                = local i_j = 8 - 1
                - tempname irf_`jjj'
                = tempname irf_1
                - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
                = mat __00000T = __00000Q * __00000C
                - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
                = mat __00000S = __00000S + __00000T
                - }
                - }
                - }
                - tempname irf`iii'
                = tempname irf9
                - mat `irf`iii'' = J(`varsn', `varsn', 0)
                = mat __00000U = J(6, 6, 0)
                - forval jjj = 1/`maxlag' {
                = forval jjj = 1/1 {
                - if `iii' >= `jjj' {
                = if 9 >= 1 {
                - local i_j = `iii' - `jjj'
                = local i_j = 9 - 1
                - tempname irf_`jjj'
                = tempname irf_1
                - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
                = mat __00000V = __00000S * __00000C
                - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
                = mat __00000U = __00000U + __00000V
                - }
                - }
                - }
                - tempname irf`iii'
                = tempname irf10
                - mat `irf`iii'' = J(`varsn', `varsn', 0)
                = mat __00000W = J(6, 6, 0)
                - forval jjj = 1/`maxlag' {
                = forval jjj = 1/1 {
                - if `iii' >= `jjj' {
                = if 10 >= 1 {
                - local i_j = `iii' - `jjj'
                = local i_j = 10 - 1
                - tempname irf_`jjj'
                = tempname irf_1
                - mat `irf_`jjj'' = `irf`i_j'' * `A`jjj''
                = mat __00000X = __00000U * __00000C
                - mat `irf`iii'' = `irf`iii'' + `irf_`jjj''
                = mat __00000W = __00000W + __00000X
                - }
                - }
                - }
                - if "`oirf'" == "oirf" {
                = if "oirf" == "oirf" {
                - tempname Pc
                - if `iter' == 0 {
                = if 0 == 0 {
                - mat `Pc' = cholesky(`C')
                = mat __00000Y = cholesky(__000006)
                - }
                - else {
                  cap drop mat `C'
                  tempname C_ C
                  mat `C_' = J(1, colsof(`Pe'), .)
                  local ccc = colsof(`Pe')
                  forval xxx = 1/`ccc' {
                  mat `C_'[1,`xxx'] = invnorm(uniform())
                  }
                  mat `C_' = `D'*(`E' + (`Pe' * `C_''))
                  local _s
                  local _t
                  forval xxx = 1/`varsn' {
                  local _s = `_t' + 1
                  local _t = `_s' + `varsn' - 1
                  mat `C' = nullmat(`C'), `C_'[`_s'..`_t', 1]
                  }
                  mat rowname `C' = `vars'
                  mat colname `C' = `vars'
                  cap mat `Pc' = cholesky(`C')
                  if _rc == 506 {
                  mat `Pc' = J(`varsn', `varsn', .)
                  local _errcount = `_errcount' + 1
                  }
                  }
                - forval iii = 0/`step' {
                = forval iii = 0/10 {
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000D = __00000D * __00000Y
                - }
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000E = __00000E * __00000Y
                - }
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000G = __00000G * __00000Y
                - }
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000I = __00000I * __00000Y
                - }
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000K = __00000K * __00000Y
                - }
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000M = __00000M * __00000Y
                - }
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000O = __00000O * __00000Y
                - }
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000Q = __00000Q * __00000Y
                - }
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000S = __00000S * __00000Y
                - }
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000U = __00000U * __00000Y
                - }
                - mat `irf`iii'' = `irf`iii'' * `Pc'
                = mat __00000W = __00000W * __00000Y
                - }
                - }
                - local steps
                - tempname pirf addenda
                - forval ttt = 0/`step' {
                = forval ttt = 0/10 {
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 0, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = " 0 "
                - if `ttt' == 0 {
                = if 0 == 0 {
                - mat colname `irf0' = `vars'
                = mat colname __00000D = f m a i cpi xt
                - mat rowname `irf0' = `vars'
                = mat rowname __00000D = f m a i cpi xt
                - mat `pirf' = `addenda', vec(`irf0')'
                = mat __00000Z = __000010, vec(__00000D)'
                - }
                - else {
                  mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                  }
                - }
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 1, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = "0  1 "
                - if `ttt' == 0 {
                = if 1 == 0 {
                  mat colname `irf0' = `vars'
                  mat rowname `irf0' = `vars'
                  mat `pirf' = `addenda', vec(`irf0')'
                  }
                - else {
                - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                = mat __00000Z = __00000Z \ __000010, vec(__00000E)'
                - }
                - }
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 2, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = "0  1  2 "
                - if `ttt' == 0 {
                = if 2 == 0 {
                  mat colname `irf0' = `vars'
                  mat rowname `irf0' = `vars'
                  mat `pirf' = `addenda', vec(`irf0')'
                  }
                - else {
                - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                = mat __00000Z = __00000Z \ __000010, vec(__00000G)'
                - }
                - }
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 3, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = "0  1  2  3 "
                - if `ttt' == 0 {
                = if 3 == 0 {
                  mat colname `irf0' = `vars'
                  mat rowname `irf0' = `vars'
                  mat `pirf' = `addenda', vec(`irf0')'
                  }
                - else {
                - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                = mat __00000Z = __00000Z \ __000010, vec(__00000I)'
                - }
                - }
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 4, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = "0  1  2  3  4 "
                - if `ttt' == 0 {
                = if 4 == 0 {
                  mat colname `irf0' = `vars'
                  mat rowname `irf0' = `vars'
                  mat `pirf' = `addenda', vec(`irf0')'
                  }
                - else {
                - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                = mat __00000Z = __00000Z \ __000010, vec(__00000K)'
                - }
                - }
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 5, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = "0  1  2  3  4  5 "
                - if `ttt' == 0 {
                = if 5 == 0 {
                  mat colname `irf0' = `vars'
                  mat rowname `irf0' = `vars'
                  mat `pirf' = `addenda', vec(`irf0')'
                  }
                - else {
                - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                = mat __00000Z = __00000Z \ __000010, vec(__00000M)'
                - }
                - }
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 6, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = "0  1  2  3  4  5  6 "
                - if `ttt' == 0 {
                = if 6 == 0 {
                  mat colname `irf0' = `vars'
                  mat rowname `irf0' = `vars'
                  mat `pirf' = `addenda', vec(`irf0')'
                  }
                - else {
                - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                = mat __00000Z = __00000Z \ __000010, vec(__00000O)'
                - }
                - }
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 7, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = "0  1  2  3  4  5  6  7 "
                - if `ttt' == 0 {
                = if 7 == 0 {
                  mat colname `irf0' = `vars'
                  mat rowname `irf0' = `vars'
                  mat `pirf' = `addenda', vec(`irf0')'
                  }
                - else {
                - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                = mat __00000Z = __00000Z \ __000010, vec(__00000Q)'
                - }
                - }
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 8, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = "0  1  2  3  4  5  6  7  8 "
                - if `ttt' == 0 {
                = if 8 == 0 {
                  mat colname `irf0' = `vars'
                  mat rowname `irf0' = `vars'
                  mat `pirf' = `addenda', vec(`irf0')'
                  }
                - else {
                - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                = mat __00000Z = __00000Z \ __000010, vec(__00000S)'
                - }
                - }
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 9, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = "0  1  2  3  4  5  6  7  8  9 "
                - if `ttt' == 0 {
                = if 9 == 0 {
                  mat colname `irf0' = `vars'
                  mat rowname `irf0' = `vars'
                  mat `pirf' = `addenda', vec(`irf0')'
                  }
                - else {
                - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                = mat __00000Z = __00000Z \ __000010, vec(__00000U)'
                - }
                - }
                - mat `addenda' = `ttt', `iter'
                = mat __000010 = 10, 0
                - mat colname `addenda' = step iter
                = mat colname __000010 = step iter
                - local steps = "`steps' `ttt' "
                = local steps = "0  1  2  3  4  5  6  7  8  9  10 "
                - if `ttt' == 0 {
                = if 10 == 0 {
                  mat colname `irf0' = `vars'
                  mat rowname `irf0' = `vars'
                  mat `pirf' = `addenda', vec(`irf0')'
                  }
                - else {
                - mat `pirf' = `pirf' \ `addenda', vec(`irf`ttt'')'
                = mat __00000Z = __00000Z \ __000010, vec(__00000W)'
                - }
                - }
                - mat rowname `pirf' = `steps'
                = mat rowname __00000Z = 0  1  2  3  4  5  6  7  8  9  10 
                - if `iter' == 0 {
                = if 0 == 0 {
                - qui {
                - tempfile error0 error1
                - preserve
                - clear
                - svmat `pirf', names(eqcol)
                = svmat __00000Z, names(eqcol)
                invalid syntax
                  save `"`error0'"', replace
                  save `"`error1'"', replace
                  restore
                  }
                  }
                  else {
                  qui {
                  preserve
                  clear
                  svmat `pirf', names(eqcol)
                  append using `"`error1'"'
                  save `"`error1'"', replace
                  restore
                  }
                  }
                  if "`dots'" != "" & `mc' > 0 {
                  if _rc != 0 {
                  _dots `iter' 1
                  }
                  else {
                  _dots `iter' 0
                  }
                  }
                  local iter = `iter' + 1
                  }
                ----------------------------------------------------------------------------------------------------------- end pvarirf ---
                r(198);

                Comment

                Working...
                X