<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">cool, thanks!</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 24, 2014 at 11:37 AM, dave fournier <span dir="ltr"><<a href="mailto:davef@otter-rsch.com" target="_blank">davef@otter-rsch.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div class="gmail_default">On 07/24/2014 11:06 AM, Jim Ianelli - NOAA Federal
      wrote:<br>
      <br>
      You are starting at the wrong place.  Here is what I would do.<br>
      <br>
      1.) put it into a tpl and run tpl2cpp (or tpl2rem if that is
      appropriate)<br>
      Here I use simple.tpl and add a 3darray as well to compare<br>
      <br>
      DATA_SECTION<br>
        init_int nobs<br>
        init_vector Y(1,nobs)<br>
        init_vector x(1,nobs)<br>
        // add 4d array and 3darray<br>
        3darray yyy<br>
        4darray  xxxx<br>
      PARAMETER_SECTION<br>
        init_number a<br>
        init_number b<br>
        vector pred_Y(1,nobs)<br>
        objective_function_value f<br>
      PROCEDURE_SECTION<br>
        pred_Y=a*x+b;<br>
        f=(norm2(pred_Y-Y));<br>
        f=nobs/2.*log(f);    // make it a likelihood function so that<br>
                             // covariance matrix is correct<br>
      <br>
      what I get is<br>
      <br>
      <br>
      warning -- creating unallocated 3darray() at line 38<br>
      Error in line 39 while reading<br>
      x<br>
      <br>
      so tpl2cpp knows about 3darrays but not 4darrays.<br>
      <br>
      So check out the lex code for tpl2cpp to see what neds to be
      added.<br>
      <br>
      code for 3darray is<br>
      <br>
      <DEFINE_DATA>3darray {<br>
          likelihood_found=1;<br>
          BEGIN IN_NAMED_THREE_ARRAY_DEF;<br>
          fprintf(fdat,"%s","  d3_array ");<br>
                           }<br>
      <br>
      What this does is to switch the state of the lexer to
      IN_NAMED_THREE_ARRAY_DEF stuff.<br>
      so in there will be a case when there are no arguments.  Here it
      is.<br>
      <br>
      <IN_NAMED_THREE_ARRAY_DEF>{name} {<br>
          if (warn_unallocated) write_unallocated("3darray()");<br>
      <br>
          strcpy(tmp_string,yytext);  // get x in x(1,4)<br>
          fprintf(fdat,"%s",tmp_string);<br>
          fprintf(fall,"  %s",tmp_string);<br>
          fprintf(fall,"%s",".allocate()");<br>
          //fprintf(fall,"%s",".allocate");<br>
          //after_part(tmp_string1,yytext,'(');  // get x in x(1,4)<br>
          //before_part(tmp_string2,tmp_string1,')');<br>
          //fprintf(fall,"%s)",tmp_string2);<br>
          fprintf(fdat,"%s",";\n");<br>
          fprintf(fall,"%s",";\n");<br>
          if (!params_defined)<br>
          {<br>
            if(likelihood_found) {<br>
              if(likelihood_counter<MAX_LIKE_CHECK)
      sprintf(likelihood_checker[likelihood_counter++],"%s",tmp_string);<br>
              likelihood_found=0;<br>
            }<br>
            BEGIN DEFINE_DATA;<br>
          }<br>
          else<br>
          {<br>
            BEGIN DEFINE_PARAMETERS;<br>
          }<br>
                                  }<br>
      <br>
      So we need a corresponding entry for 4darrays.<br>
      So dup the above and change THREE to FOUR and 3darray to 4darray<br>
      <br>
      <IN_NAMED_FOUR_ARRAY_DEF>{name} {<br>
          if (warn_unallocated) write_unallocated("4darray()");<br>
      <br>
          strcpy(tmp_string,yytext);  // get x in x(1,4)<br>
          fprintf(fdat,"%s",tmp_string);<br>
          fprintf(fall,"  %s",tmp_string);<br>
          fprintf(fall,"%s",".allocate()");<br>
          //fprintf(fall,"%s",".allocate");<br>
          //after_part(tmp_string1,yytext,'(');  // get x in x(1,4)<br>
          //before_part(tmp_string2,tmp_string1,')');<br>
          //fprintf(fall,"%s)",tmp_string2);<br>
          fprintf(fdat,"%s",";\n");<br>
          fprintf(fall,"%s",";\n");<br>
          if (!params_defined)<br>
          {<br>
            if(likelihood_found) {<br>
              if(likelihood_counter<MAX_LIKE_CHECK)
      sprintf(likelihood_checker[likelihood_counter++],"%s",tmp_string);<br>
              likelihood_found=0;<br>
            }<br>
            BEGIN DEFINE_DATA;<br>
          }<br>
          else<br>
          {<br>
            BEGIN DEFINE_PARAMETERS;<br>
          }<br>
                                  }<br>
      <br>
      <br>
      and remake tpl2cpp and run again on the modified simple.tpl<br>
      and you will get<br>
      <br>
      <blockquote type="cite">t/bin/tpl2cpp simple<br>
        warning -- creating unallocated 3darray() at line 38<br>
        warning -- creating unallocated 4darray() at line 39<br>
      </blockquote>
      check the code simple.htp for xxxx and yyyy<br>
      <br>
      class model_data : public ad_comm{<br>
        data_int nobs;<br>
        data_vector Y;<br>
        data_vector x;<br>
        d3_array yyyy;<br>
        d4_array xxxx;<br>
        ~model_data();<br>
        model_data(int argc,char * argv[]);<br>
        friend class model_parameters;<br>
      };<br>
      <br>
      so they are there.  and in simple.cpp<br>
      <br>
      model_data::model_data(int argc,char * argv[]) :
      ad_comm(argc,argv)<br>
      {<br>
        nobs.allocate("nobs");<br>
        Y.allocate(1,nobs,"Y");<br>
        x.allocate(1,nobs,"x");<br>
        yyyy.allocate();<br>
        xxxx.allocate();<br>
      }<br>
      <br>
      So now it is a question of whether admb knows about unallocated 
      d4_arrays.<br>
      So compile simple.cpp.<br>
      <br>
      I think you will find that it compiles so you are done.<br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      f I grep d3_array in nh99 I get 104 lines of code</div>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_default">
          <br>
        </div>
        <div class="gmail_default">grepping d4_array gets 34 lines...</div>
        <div class="gmail_default"><br>
        </div>
        <div class="gmail_default">below are the hits (they keep coming...).</div>
        <div class="gmail_default"><br>
        </div>
        <div class="gmail_default">
          Question is how to identify where the code didn't write
          itself. Ignore if this is stupid, as always.</div>
        <div class="gmail_default">
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  named_dvar3_array&
              operator=(const d3_array& m);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:class named_d3_array : public
              d3_array, public model_name_tag</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  named_d3_array(void) : d3_array(),
              model_name_tag() {;}</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  named_d3_array&
              operator=(const d3_array& m);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:class data_3array : public
              named_d3_array</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  data_3array(void) :
              named_d3_array() {;}</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  dll_data_3array&
              operator=(const d3_array &);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:    const d3_array&
              eigenvals,d3_array& curvcor);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  dll_param_init_d3array&
              operator=(const d3_array&);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  dll_param_d3array&
              operator=(const d3_array&);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">getbigs.cpp:      d3_array &
              H=*(lapprox->block_diagonal_hessian);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">getbigs.cpp:      d3_array &
              Dux=*(lapprox->block_diagonal_Dux);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">getbigs.cpp:      d3_array &
              H=*(lapprox->block_diagonal_hessian);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">lex.yy.c:    fprintf(fdat,"%s","  d3_array ");</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">mod_pmin.cpp:    //d3_array
              hesses(-num_pp,num_pp,1,nvar,1,nvar);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">mod_pmin.cpp:    d3_array
              eigenvals(0,nlp-1,-num_pp,num_pp,1,nvar-1);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">mod_pmin.cpp:    d3_array
              curvcor(0,nlp-1,-num_pp,num_pp,1,nvar-1);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:  
               named_d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax,s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:      *(ad_comm::global_datafile)
              >> d3_array(*this);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:  
               named_d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax,s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:      *(ad_comm::global_datafile)
              >> d3_array(*this);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:  
               named_d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax,s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:      *(ad_comm::global_datafile)
              >> d3_array(*this);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:  
               named_d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax,s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:      *(ad_comm::global_datafile)
              >> d3_array(*this);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:  
               named_d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax,s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:      *(ad_comm::global_datafile)
              >> d3_array(*this);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:  
               named_d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax,s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:      *(ad_comm::global_datafile)
              >> d3_array(*this);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:  
               named_d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax,s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:      *(ad_comm::global_datafile)
              >> d3_array(*this);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:  
               named_d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax,s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model.cpp:      *(ad_comm::global_datafile)
              >> d3_array(*this);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:named_dvar3_array&
              named_dvar3_array::operator=(const d3_array& m)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl,int hsu,int rmin,int rmax,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:
               d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl,int hsu,int rmin,int rmax,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:
               d3_array::allocate(hsl,hsu,rmin,rmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl,int hsu,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:
               d3_array::allocate(hsl,hsu,rmin,rmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl,int hsu,const char * s)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:  d3_array::allocate(hsl,hsu);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void
              named_d3_array::allocate(const char * s)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:  d3_array::allocate();</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl, int hsu, const index_type& rmin,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:
               d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl, int hsu, const ivector& rmin,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:
               d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl,int hsu,int rmin,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:
               d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl, int hsu, const ivector& rmin,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:
               d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl, int hsu, int rmin, int rmax,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:
               d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl, int hsu, int rmin, int rmax,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:
               d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:void named_d3_array::allocate(int
              hsl, int hsu, int rmin, int rmax,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:
               d3_array::allocate(hsl,hsu,rmin,rmax,cmin,cmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:named_d3_array&
              named_d3_array::operator=(const d3_array& m)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model11.cpp:  d3_array::operator=(m);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model35.cpp:
               named_d3_array::allocate(hmin,hmax,rmin,rmax,cmin,cmax,_s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model35.cpp:dll_data_3array&
              dll_data_3array::operator=(const d3_array &m)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model35.cpp:  d3_array::operator = (m);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model35.cpp:dll_param_d3array&
              dll_param_d3array::operator=(const d3_array &m)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model35.cpp:dll_param_init_d3array&
              dll_param_init_d3array::operator=(const d3_array &m)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">newmodmn.cpp:    const d3_array&
              eigenvals,d3_array& curvcor)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">newmodmn.cpp:    const d3_array&
              eigenvals,d3_array& curvcor)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">tpl2cpp.c:    fprintf(fdat,"%s","  d3_array
              ");</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">tpl2cpp.lex:    fprintf(fdat,"%s","  d3_array
              ");</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif"><br>
            </font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  named_dvar4_array&
              operator=(const d4_array& m);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:class named_d4_array : public
              d4_array, public model_name_tag</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  named_d4_array(void) : d4_array(),
              model_name_tag() {;}</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  named_d4_array&
              operator=(const d4_array& m);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:class data_4array : public
              named_d4_array</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">admodel.h:  data_4array(void) :
              named_d4_array() {;}</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">lex.yy.c:    fprintf(fdat,"%s","  d4_array ");</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:void named_d4_array::allocate(int
              hhsl,int hhsu,int hsl,int hsu,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:
               d4_array::allocate(hhsl,hhsu,hsl,hsu,rmin,rmax,cmin,cmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:void named_d4_array::allocate(int
              hhsl,int hhsu,int hsl,int hsu,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:
               d4_array::allocate(hhsl,hhsu,hsl,hsu,rmin,rmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:void named_d4_array::allocate(int
              hhsl,int hhsu,int hsl,int hsu, const char* s)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:
               d4_array::allocate(hhsl,hhsu,hsl,hsu);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:void named_d4_array::allocate(int
              hhsl,int hhsu,const char* s)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:  d4_array::allocate(hhsl,hhsu);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:void
              named_d4_array::allocate(const char* s)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:  d4_array::allocate();</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:void
              named_d4_array::allocate(ad_integer hhsl, ad_integer hhsu,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:
               d4_array::allocate(hhsl,hhsu,hsl,hsu,rmin,rmax,cmin,cmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:void
              named_d4_array::allocate(ad_integer hhsl,ad_integer hhsu,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:
               d4_array::allocate(hhsl,hhsu,hsl,hsu);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:void
              named_d4_array::allocate(ad_integer hhsl,ad_integer
              hhsu,const char* s)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:  d4_array::allocate(hhsl,hhsu);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:void
              named_d4_array::allocate(ad_integer hhsl,ad_integer hhsu,</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:
               d4_array::allocate(hhsl,hhsu,hsl,hsu,rmin,rmax);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:named_d4_array&
              named_d4_array::operator=(const d4_array& m)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:  this->d4_array::operator=(m);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model15.cpp:named_dvar4_array&
              named_dvar4_array::operator=(const d4_array& m)</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model16.cpp:
               named_d4_array::allocate(hhsl,hhsu,hsl,hsu,rmin,rmax,cmin,cmax,s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model16.cpp:  *(ad_comm::global_datafile)
              >> d4_array(*this);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model16.cpp:
               named_d4_array::allocate(hhsl,hhsu,hsl,hsu,rmin,rmax,cmin,cmax,s);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">model16.cpp:  *(ad_comm::global_datafile)
              >> d4_array(*this);</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">tpl2cpp.c:    fprintf(fdat,"%s","  d4_array
              ");</font></div>
          <div class="gmail_default"><font face="trebuchet ms,
              sans-serif">tpl2cpp.lex:    fprintf(fdat,"%s","  d4_array
              ");</font></div>
          <div style="font-family:'trebuchet ms',sans-serif"><br>
          </div>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Thu, Jul 24, 2014 at 10:51 AM, dave
          fournier <span dir="ltr"><<a href="mailto:davef@otter-rsch.com" target="_blank">davef@otter-rsch.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On
            07/24/2014 10:41 AM, John Sibert wrote:<br>
            <br>
            Probably never wrote itself.  Unallocated objects were a
            later development.<br>
            Wouldn't be much work to implement, but getting it into the
            code base ...<br>
            <br>
            <br>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              I was looking for a null constructor to use in the
              DATA_SECTION<br>
                4darray effort_proxy;<br>
              <br>
              and then allocate later<br>
                effort_proxy.allocate(int,int, int,int,
              ivector&,ivector&, ivector&,ivector&)<br>
              <br>
              I do this routinely with d3_arrays:<br>
                 3darray effort;<br>
              <br>
                 effort.allocate(0, nfleet, ilbv, iubv, jlbm, jubm);<br>
              <br>
              John Sibert<br>
              Emeritus Researcher, SOEST<br>
              University of Hawaii at Manoa<br>
              Honolulu HI (GMT-10)<br>
              <a href="tel:808-294-3842" value="+18082943842" target="_blank">808-294-3842</a> (mobile)<br>
              <br>
              Visit the ADMB project <a href="http://admb-project.org/" target="_blank">http://admb-project.org/</a><br>
              <br>
              On 07/23/2014 04:22 PM, dave fournier wrote:<br>
              <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                On 07/23/2014 06:54 PM, John Sibert wrote:<br>
                <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  How does one declare a d4_array in a tpl file?<br>
                  <br>
                </blockquote>
                init_4darray<br>
                <br>
                for initial one but maybe that is not what you want?<br>
                _______________________________________________<br>
                Developers mailing list<br>
                <a href="mailto:Developers@admb-project.org" target="_blank">Developers@admb-project.org</a><br>
                <a href="http://lists.admb-project.org/mailman/listinfo/developers" target="_blank">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                <br>
              </blockquote>
              <br>
              <br>
            </blockquote>
            <br>
            _______________________________________________<br>
            Developers mailing list<br>
            <a href="mailto:Developers@admb-project.org" target="_blank">Developers@admb-project.org</a><br>
            <a href="http://lists.admb-project.org/mailman/listinfo/developers" target="_blank">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
          </blockquote>
        </div>
        <br>
        <br clear="all"><span class="HOEnZb"><font color="#888888">
        <div><br>
        </div>
        -- <br>
        <div dir="ltr">
          <p><font face="trebuchet ms, sans-serif"><a name="14769aa33414e952_SafeHtmlFilter_SafeHtmlFilter_SafeHtmlFilter_SafeHtmlFilter_SafeHtmlFilter_SafeHtmlFilter__MailAutoSig">James
                Ianelli<br>
              </a>NMFS/NOAA Building 4<br>
              7600 Sand Pt Way NE<br>
              Seattle WA 98115</font></p>
          <p><font face="trebuchet ms, sans-serif"> <span title="Call
                with Google Voice"><a href="tel:206%20526%206510" value="+12065266510" target="_blank">206 526 6510</a></span></font></p>
          <p>Visit the ADMB project <a href="http://admb-project.org/" style="color:rgb(17,85,204)" target="_blank">http://admb-project.org/</a><font face="trebuchet ms, sans-serif"><span title="Call with
                Google Voice"><br>
              </span></font></p>
        </div>
      </font></span></div>
    </blockquote>
    <br>
  </div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><p><font face="trebuchet ms, sans-serif"><a name="SafeHtmlFilter_SafeHtmlFilter_SafeHtmlFilter_SafeHtmlFilter_SafeHtmlFilter_SafeHtmlFilter__MailAutoSig">James
Ianelli<br></a>NMFS/NOAA Building 4<br>7600 Sand Pt Way NE<br>Seattle WA 98115</font></p><p></p>

<p><font face="trebuchet ms, sans-serif"> <span title="Call with Google Voice">206 526 6510</span></font></p><p>Visit the ADMB project <a href="http://admb-project.org/" style="color:rgb(17,85,204)" target="_blank">http://admb-project.org/</a><font face="trebuchet ms, sans-serif"><span title="Call with Google Voice"><br>
</span></font></p><p></p></div>
</div>