Ignore:
Timestamp:
09/06/12 14:55:19 (13 years ago)
Author:
schlegel
Message:

CHG: Expect directory argument in issm execution to be full path to bin file, pass rootpath to dakota

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/solutions/ProcessArguments.cpp

    r13056 r13277  
    99#include "../include/include.h"
    1010
    11 void ProcessArguments(int* solution_type,char** pbinfilename,char** poutbinfilename,char** ppetscfilename,char** plockfilename,int argc,char **argv){
     11void ProcessArguments(int* solution_type,char** pbinfilename,char** poutbinfilename,char** ppetscfilename,char** plockfilename,char** prootpath, int argc,char **argv){
    1212
    1313        char *modelname      = NULL;
     
    1616        char *petscfilename  = NULL;
    1717        char *lockfilename   = NULL;
     18        char *rootpath       = NULL;
     19        char *rootpatharg    = NULL;
    1820
    1921        if(argc<2)_error_("Usage error: no solution requested");
    2022        *solution_type=StringToEnumx(argv[1]);
    2123        if(argc<3)_error_("Usage error: missing model name");
     24
     25        rootpatharg=argv[2];
     26        if(strcmp(strstr(rootpatharg,"/"),"/")!=0){
     27                rootpath       = xNew<char>(strlen(rootpatharg)+2); sprintf(rootpath,"%s/",rootpatharg);
     28        }
     29        else{
     30                rootpath       = xNew<char>(strlen(rootpatharg)+1); sprintf(rootpath,"%s",rootpatharg);
     31        }
     32
    2233        modelname=argv[3];
    23         binfilename    = xNew<char>(strlen(modelname)+strlen(".bin")   +1); sprintf(binfilename,   "%s%s",modelname,".bin");
    24         outbinfilename = xNew<char>(strlen(modelname)+strlen(".outbin")+1); sprintf(outbinfilename,"%s%s",modelname,".outbin");
    25         petscfilename  = xNew<char>(strlen(modelname)+strlen(".petsc") +1); sprintf(petscfilename, "%s%s",modelname,".petsc");
    26         lockfilename   = xNew<char>(strlen(modelname)+strlen(".lock")  +1); sprintf(lockfilename,  "%s%s",modelname,".lock");
     34        if(strstr(modelname,rootpath)==NULL){
     35                binfilename    = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".bin")   +1); sprintf(binfilename,   "%s%s%s",rootpath,modelname,".bin");
     36                outbinfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".outbin")+1); sprintf(outbinfilename,"%s%s%s",rootpath,modelname,".outbin");
     37                petscfilename  = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".petsc") +1); sprintf(petscfilename, "%s%s%s",rootpath,modelname,".petsc");
     38                lockfilename   = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".lock")  +1); sprintf(lockfilename,  "%s%s%s",rootpath,modelname,".lock");
     39        }
     40        else{
     41                binfilename    = xNew<char>(strlen(modelname)+strlen(".bin")   +1); sprintf(binfilename,   "%s%s",modelname,".bin");
     42                outbinfilename = xNew<char>(strlen(modelname)+strlen(".outbin")+1); sprintf(outbinfilename,"%s%s",modelname,".outbin");
     43                petscfilename  = xNew<char>(strlen(modelname)+strlen(".petsc") +1); sprintf(petscfilename, "%s%s",modelname,".petsc");
     44                lockfilename   = xNew<char>(strlen(modelname)+strlen(".lock")  +1); sprintf(lockfilename,  "%s%s",modelname,".lock");
     45        }
    2746
    2847        /*Clean up and assign output pointer*/
     
    3150        *ppetscfilename=petscfilename;
    3251        *plockfilename=lockfilename;
     52        *prootpath=rootpath;
     53
    3354}
Note: See TracChangeset for help on using the changeset viewer.