[ADMB Users] can't run model compiled using MinGW when path to exe file starts with ".."

William Stockhausen William.Stockhausen at noaa.gov
Tue Jul 12 14:56:21 PDT 2011

Greetings all,

I've just switched over from using the Borland & Visual C++ versions of 
ADMB to the MinGW version and stumbled over a problem.  When I try to 
run a model compiled with MinGW from the DOS prompt when the path to the 
model starts with "." (as in "..\code\ss_spm.exe"), the program fails 
immediately (from ad_comm::allocate(), as it turns out) with the message:

     Error: Invalid index 0 used for array range [1,18] in "adstring 
adstring::operator()(int i, int j)".

Under MinGW, this occurs in ad_comm::allocate(void) in the file 
src/nh99/model7.cpp (at line 338 in the 10.1 source code).  At this 
point, allocate() has attempted to remove any extension(i.e., ".exe") 
from the program name by looking for a "." not followed by a "\" (on 
Windows) starting at the first character and incrementing through all 
characters until it finds a "." not followed by a "\", at which point it 
truncates the adstring array to the characters to the left of the "." 
(line 338: adprogram_name=adprogram_name(1,n);).  If the model was run 
using a path to the executable that starts with "..", the attempted 
truncation fails with the above error (because n=0). [Note that this 
does not happen using the Borland and Visual C++ compilers because the 
path is removed from the full program name before the extension is 
removed (the code chunk responsible for this, starting at line 316 in 
the cpp file, is skipped n MinGW because the __SPDLL__ macro is turned 
on for the MinGW build).]

Presumably, in addition to skipping over ".\" combinations in truncating 
the program name in ad_comm::allocate(), it would also make sense to 
skip over ".." combinations, as well.  It might also make sense to 
search right-to-left for the extension, rather than left to right.  
Perhaps the developers can deal with this issue.

Hope this is helpful.

Best regards,

Buck Stockhausen

* Dr. William T. Stockhausen                      *
* Resource Ecology and Fisheries Management       *
* Alaska Fisheries Science Center                 *
* National Marine Fisheries Service               *
* National Oceanic and Atmospheric Administration *
* 7600 Sand Point Way N.E.                        *
* Seattle, Washington 98115-6349                  *
* email: William.Stockhausen at noaa.gov             *
* voice: 206-526-4241 fax: 206-526-6723           *
* web  : http://www.afsc.noaa.gov                 *
All models are wrong, some are useful.--G.E.P. Box
Beware of geeks bearing equations.    --W. Buffett
Disclaimer: The opinions expressed above are personal
and do not necessarily reflect official NOAA policy.

More information about the Users mailing list