diff options
author | Ian Jauslin <ian.jauslin@roma1.infn.it> | 2015-06-14 00:52:45 +0000 |
---|---|---|
committer | Ian Jauslin <ian.jauslin@roma1.infn.it> | 2015-06-14 00:52:45 +0000 |
commit | aa0f3ae2988d372b190b9bde2e75a6d17e744e93 (patch) | |
tree | 14482245c2fca27fcdad3078e97d0871352d52a7 /src/kondo_preprocess.c |
Initial commitv1.2
Diffstat (limited to 'src/kondo_preprocess.c')
-rw-r--r-- | src/kondo_preprocess.c | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/src/kondo_preprocess.c b/src/kondo_preprocess.c new file mode 100644 index 0000000..3371014 --- /dev/null +++ b/src/kondo_preprocess.c @@ -0,0 +1,126 @@ +/* +Copyright 2015 Ian Jauslin + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* +kondo_preprocess + +Generate configuration files for the Kondo problem + +*/ + + +#include <stdio.h> +#include <stdlib.h> + +#include "definitions.cpp" +#include "kondo.h" +#include "cli_parser.h" +#include "array.h" + + +// read cli arguments +int read_args_kondo_pp(int argc,const char* argv[], Str_Array* str_args, Kondopp_Options* opts); +// print usage message +int print_usage_kondo_pp(); + +int main (int argc, const char* argv[]){ + int i; + // string arguments + Str_Array str_args; + // options + Kondopp_Options opts; + + // read command-line arguments + read_args_kondo_pp(argc,argv,&str_args,&opts); + + kondo_generate_conf(&str_args, 2*opts.dimension); + for(i=0;i<str_args.length;i++){ + printf("%s\n",str_args.strs[i].str); + if(i<str_args.length-1){ + printf("&\n"); + } + } + + //free memory + free_Str_Array(str_args); + return(0); +} + + +// read cli arguments +#define CP_FLAG_DIMENSION 1 +int read_args_kondo_pp(int argc,const char* argv[], Str_Array* str_args, Kondopp_Options* opts){ + int i; + // pointers + char* ptr; + // file to read the polynomial from in flow mode + const char* file=""; + // flag that indicates what argument is being read + int flag=0; + // whether a file was specified on the command-line + int exists_file=0; + + + // if there are no arguments + if(argc==1){ + print_usage_kondo_pp(); + exit(-1); + } + + // defaults + // dimensions (including time) + (*opts).dimension=2; + +// loop over arguments +for(i=1;i<argc;i++){ + // flag + if(argv[i][0]=='-'){ + for(ptr=((char*)argv[i])+1;*ptr!='\0';ptr++){ + switch(*ptr){ + case 'd': + flag=CP_FLAG_DIMENSION; + break; + // print version + case 'v': + printf("kondo_preprocess " VERSION "\n"); + exit(1); + break; + } + } + } + // number of dimensions + else if (flag==CP_FLAG_DIMENSION){ + sscanf(argv[i],"%d",&((*opts).dimension)); + flag=0; + } + // read file name from command-line + else{ + file=argv[i]; + exists_file=1; + } + } + + read_config_file(str_args, file, 1-exists_file); + + return(0); +} + +// print usage message +int print_usage_kondo_pp(){ + printf("\nusage:\n kondo_preprocess [-d dimension] <filename>\n\n"); + return(0); +} + |