<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>