8 int main(
int argc,
char **argv){
15 char** modelnames=NULL;
35 nummodels=(int) strtol(argv[4], (
char **)NULL, 10);
36 commsizes=xNew<int>(nummodels);
37 dirnames=xNew<char*>(nummodels);
38 modelnames=xNew<char*>(nummodels);
39 rankzeros=xNew<int>(nummodels);
40 for(
int i=0;i<nummodels;i++){
43 string=xNew<char>(strlen(argv[5+3*i])+1);
44 xMemCpy<char>(
string,argv[5+3*i],strlen(argv[5+3*i])+1);
47 string=xNew<char>(strlen(argv[5+3*i+1])+1);
48 xMemCpy<char>(
string,argv[5+3*i+1],strlen(argv[5+3*i+1])+1);
51 commsizes[i]=(int) strtol(argv[5+3*i+2], (
char **)NULL, 10);
56 for(
int i=0;i<nummodels;i++){
57 if(my_rank>=count && my_rank<(count+commsizes[i])){
65 for(
int i=0;i<nummodels;i++){
77 fromicecomms=xNew<ISSM_MPI_Comm>(nummodels-1);
78 for(
int i=0;i<earthid;i++){
87 char** arguments=xNew<char*>(4);
88 arguments[0]=xNew<char>(strlen(argv[0])+1); xMemCpy<char>(arguments[0],argv[0],strlen(argv[0])+1);
89 arguments[1]=xNew<char>(strlen(argv[1])+1); xMemCpy<char>(arguments[1],argv[1],strlen(argv[1])+1);
90 arguments[2]=xNew<char>(strlen(argv[5+3*modelid])+1); xMemCpy<char>(arguments[2],argv[5+3*modelid],strlen(argv[5+3*modelid])+1);
91 arguments[3]=xNew<char>(strlen(argv[5+3*modelid+1])+1); xMemCpy<char>(arguments[3],argv[5+3*modelid+1],strlen(argv[5+3*modelid+1])+1);
124 xDelete<int>(commsizes);
125 for(
int i=0;i<nummodels;i++){
127 string=dirnames[i]; xDelete<char>(
string);
128 string=modelnames[i]; xDelete<char>(
string);
130 xDelete<char*>(dirnames);
131 xDelete<char*>(modelnames);