Changeset 10088 for vendors/AGRIF/CMEMS_2020/LIB/WorkWithlistdatavariable.c
- Timestamp:
- 2018-09-05T15:35:32+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendors/AGRIF/CMEMS_2020/LIB/WorkWithlistdatavariable.c
r5656 r10088 70 70 strcpy(ligne,values); 71 71 72 strcpy(newvar->var->v_initialvalue,ligne); 72 newvar->var->v_initialvalue=Insertname(newvar->var->v_initialvalue,ligne,0); 73 74 // strcpy(newvar->var->v_initialvalue,ligne); 73 75 Save_Length(ligne,14); 74 76 newvar->suiv = NULL; … … 85 87 } 86 88 87 void Add_Data_Var_Names_01 (listvar **curlist,list name*l1,listname *l2)89 void Add_Data_Var_Names_01 (listvar **curlist,listvar *l1,listname *l2) 88 90 { 89 91 listvar *newvar; 90 92 listvar *tmpvar; 91 listname *tmpvar1; 92 listname *tmpvar2; 93 listvar *tmpvar1; 94 listname *tmpvar2; 95 char tempname[LONG_M]; 93 96 variable *found_var = NULL; 97 int out; 98 size_t i = 0; 99 char chartmp[2]; 94 100 95 101 tmpvar1 = l1; … … 98 104 while (tmpvar1) 99 105 { 100 newvar = (listvar *) calloc(1,sizeof(listvar)); 101 newvar->var = (variable *) calloc(1,sizeof(variable)); 102 103 Init_Variable(newvar->var); 104 105 if ( inmoduledeclare == 1 ) newvar->var->v_module=1; 106 107 found_var = get_variable_in_list_from_name(List_Common_Var, tmpvar1->n_name); 108 if ( ! found_var ) found_var = get_variable_in_list_from_name(List_Global_Var,tmpvar1->n_name); 109 if ( ! found_var ) found_var = get_variable_in_list_from_name(List_SubroutineDeclaration_Var,tmpvar1->n_name); 110 111 if ( found_var && found_var->v_nbdim > 0 ) 106 // printf("TMPVAR 1 nomvar = %s, initialvaluearra = %s\n",tmpvar1->var->v_nomvar,tmpvar1->var->v_initialvalue_array->n_name); 107 strcpy(tempname,tmpvar1->var->v_nomvar); 108 // while ( i < strlen(tmpvar1->var->v_nomvar) ) 109 // { 110 // if (tmpvar1->var->v_nomvar[i]=='(') break; 111 // sprintf(chartmp,"%c",tmpvar1->var->v_nomvar[i]); 112 // strcat(tempname,chartmp); 113 // i++; 114 // } 115 found_var = get_variable_in_list_from_name(List_Common_Var, tempname); 116 if ( ! found_var ) found_var = get_variable_in_list_from_name(List_Global_Var,tempname); 117 if ( ! found_var ) found_var = get_variable_in_list_from_name(List_SubroutineDeclaration_Var,tempname); 118 119 if ( found_var && found_var->v_nbdim > 1000 ) 112 120 { 113 121 printf("##############################################################################################################\n"); … … 118 126 } 119 127 120 strcpy(newvar->var->v_nomvar,tmpvar1->n_name); 128 if (tmpvar1->var->v_initialvalue_array) 129 { 130 if ((firstpass == 1) && strcmp(tmpvar1->var->v_initialvalue_array->n_name,"")) 131 { 132 DecomposeTheName(tmpvar1->var->v_initialvalue_array->n_name); 133 } 134 } 135 136 // Search for existing newvar 137 138 tmpvar = *curlist; 139 out = 0; 140 while (tmpvar) 141 { 142 if (!strcasecmp(tempname,tmpvar->var->v_nomvar) && !strcasecmp(subroutinename,tmpvar->var->v_subroutinename) && !strcasecmp(curmodulename,tmpvar->var->v_modulename) && !strcasecmp(cur_filename,tmpvar->var->v_commoninfile) ) 143 { 144 out = 1; 145 break; 146 } 147 tmpvar=tmpvar->suiv; 148 } 149 if (out == 0) 150 { 151 newvar = (listvar *) calloc(1,sizeof(listvar)); 152 newvar->var = (variable *) calloc(1,sizeof(variable)); 153 154 Init_Variable(newvar->var); 155 156 if ( inmoduledeclare == 1 ) newvar->var->v_module=1; 157 158 strcpy(newvar->var->v_nomvar,tempname); 121 159 strcpy(newvar->var->v_subroutinename,subroutinename); 122 160 strcpy(newvar->var->v_modulename,curmodulename); 123 161 strcpy(newvar->var->v_commoninfile,cur_filename); 124 strcpy(newvar->var->v_initialvalue,tmpvar2->n_name); 162 /*printf("TMPVAR 2 nomvar = %s\n",tmpvar2->n_name);*/ 163 newvar->var->v_initialvalue=Insertname(newvar->var->v_initialvalue,tmpvar2->n_name,0); 164 165 if (tmpvar1->var->v_initialvalue_array) 166 { 167 if (strcmp(tmpvar1->var->v_initialvalue_array->n_name,"")) 168 { 169 newvar->var->v_initialvalue_array=Insertname(newvar->var->v_initialvalue_array,tmpvar1->var->v_initialvalue_array->n_name,0); 170 } 171 } 172 newvar->var->v_do_loop=tmpvar1->var->v_do_loop; 173 // strcpy(newvar->var->v_initialvalue,tmpvar2->n_name); 174 // strcpy(newvar->var->v_initialvalue_array,tmpvar1->var->v_initialvalue_array); 175 176 newvar->var->v_dimension=tmpvar1->var->v_dimension; 125 177 126 178 Save_Length(tmpvar2->n_name,14); … … 139 191 *curlist = newvar ; 140 192 } 193 tmpvar=newvar; 194 } 195 else // out = 1 196 { 197 tmpvar->var->v_initialvalue=Insertname(tmpvar->var->v_initialvalue,tmpvar2->n_name,0); 198 if (strcmp(tmpvar1->var->v_initialvalue_array->n_name,"")) 199 { 200 tmpvar->var->v_initialvalue_array=Insertname(tmpvar->var->v_initialvalue_array,tmpvar1->var->v_initialvalue_array->n_name,0); 201 } 202 tmpvar->var->v_do_loop=tmpvar1->var->v_do_loop; 203 } 141 204 142 205 tmpvar1 = tmpvar1->suiv; 143 tmpvar2 = tmpvar2->suiv; 206 tmpvar2 = tmpvar2->suiv; 144 207 } 208 209 while (tmpvar2) 210 { 211 strcpy(tempname,tmpvar2->n_name); 212 tmpvar->var->v_initialvalue = Insertname(tmpvar->var->v_initialvalue,tempname,1); 213 tmpvar2 = tmpvar2->suiv; 214 } 215 145 216 }
Note: See TracChangeset
for help on using the changeset viewer.