<p><b>duda</b> 2009-09-09 12:07:25 -0600 (Wed, 09 Sep 2009)</p><p>Simplify registry using loops to replace replicated code.<br>
<br>
M Registry/gen_inc.c<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/swmodel/Registry/gen_inc.c
===================================================================
--- trunk/swmodel/Registry/gen_inc.c        2009-09-08 22:23:56 UTC (rev 47)
+++ trunk/swmodel/Registry/gen_inc.c        2009-09-09 18:07:25 UTC (rev 48)
@@ -413,7 +413,9 @@
struct dtable * dictionary;
FILE * fd;
char vtype[5];
- int i;
+ char fname[32];
+ int i, j;
+ int ivtype;
int has_vert_dim, vert_dim;
@@ -653,222 +655,67 @@
/*
- * Generate code to read 1d real fields
+ * Generate code to read 1d, 2d, 3d time-invariant fields
*/
- fd = fopen("input_field1dreal.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 1 || var_ptr->vtype != REAL || var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 1 && var_ptr->vtype == REAL && !var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
+ for(j=0; j<2; j++) {
+ for(i=1; i<=3; i++) {
+ if (j == 0) {
+ sprintf(fname, "input_field%idinteger.inc", i);
+ ivtype = INTEGER;
}
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
-
- /*
- * Generate code to read 2d real fields
- */
- fd = fopen("input_field2dreal.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 2 || var_ptr->vtype != REAL || var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 2 && var_ptr->vtype == REAL && !var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
+ else {
+ sprintf(fname, "input_field%idreal.inc", i);
+ ivtype = REAL;
}
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
+ fd = fopen(fname, "w");
-
- /*
- * Generate code to read 3d real fields
- */
- fd = fopen("input_field3dreal.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 3 || var_ptr->vtype != REAL || var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 3 && var_ptr->vtype == REAL && !var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="blue">", var_ptr->name_in_file);
+ var_ptr = vars;
+ while (var_ptr && (var_ptr->ndims != i || var_ptr->vtype != ivtype || var_ptr->timedim)) var_ptr = var_ptr->next;
+ if (var_ptr) {
+ fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="black">", var_ptr->name_in_file);
fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="blue">", var_ptr->name_in_file);
+ var_ptr = var_ptr->next;
+ while (var_ptr) {
+ if (var_ptr->ndims == i && var_ptr->vtype == ivtype && !var_ptr->timedim) {
+ fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="blue">", var_ptr->name_in_file);
+ fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="blue">", var_ptr->name_in_file);
+ }
+ var_ptr = var_ptr->next;
+ }
+ fortprintf(fd, " end if</font>
<font color="red">");
}
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
+
+ fclose(fd);
+ }
+ }
/*
- * Generate code to read 0d time-varying real fields
+ * Generate code to read 0d, 1d, 2d, 3d time-varying real fields
*/
- fd = fopen("input_field0dreal_time.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 0 || var_ptr->vtype != REAL || !var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 0 && var_ptr->vtype == REAL && var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- }
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
+ for(i=0; i<=3; i++) {
+ sprintf(fname, "input_field%idreal_time.inc", i);
+ fd = fopen(fname, "w");
-
- /*
- * Generate code to read 1d time-varying real fields
- */
- fd = fopen("input_field1dreal_time.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 1 || var_ptr->vtype != REAL || !var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 1 && var_ptr->vtype == REAL && var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- }
+ var_ptr = vars;
+ while (var_ptr && (var_ptr->ndims != i || var_ptr->vtype != REAL || !var_ptr->timedim)) var_ptr = var_ptr->next;
+ if (var_ptr) {
+ fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="blue">", var_ptr->name_in_file);
+ fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
-
-
- /*
- * Generate code to read 2d time-varying real fields
- */
- fd = fopen("input_field2dreal_time.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 2 || var_ptr->vtype != REAL || !var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 2 && var_ptr->vtype == REAL && var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="blue">", var_ptr->name_in_file);
+ while (var_ptr) {
+ if (var_ptr->ndims == i && var_ptr->vtype == REAL && var_ptr->timedim) {
+ fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="blue">", var_ptr->name_in_file);
+ fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
+ }
+ var_ptr = var_ptr->next;
}
- var_ptr = var_ptr->next;
+ fortprintf(fd, " end if</font>
<font color="red">");
}
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
- /*
- * Generate code to read 3d time-varying real fields
- */
- fd = fopen("input_field3dreal_time.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 3 || var_ptr->vtype != REAL || !var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 3 && var_ptr->vtype == REAL && var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- }
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
+ fclose(fd);
+ }
-
- /*
- * Generate code to read 1d integer fields
- */
- fd = fopen("input_field1dinteger.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 1 || var_ptr->vtype != INTEGER || var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 1 && var_ptr->vtype == INTEGER && !var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- }
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
-
- /*
- * Generate code to read 2d integer fields
- */
- fd = fopen("input_field2dinteger.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 2 || var_ptr->vtype != INTEGER || var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 2 && var_ptr->vtype == INTEGER && !var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = input_obj %% rdVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- }
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="gray">");
- }
-
- fclose(fd);
-
}
@@ -880,7 +727,9 @@
struct dtable * dictionary;
FILE * fd;
char vtype[5];
- int i;
+ char fname[32];
+ int i, j;
+ int ivtype;
/*
@@ -1107,223 +956,68 @@
}
fclose(fd);
-
- /*
- * Generate code to write 0d real fields
- */
- fd = fopen("output_field0dreal_time.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 0 || var_ptr->vtype != REAL || !var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 0 && var_ptr->vtype == REAL && var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- }
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
/*
- * Generate code to write 1d real fields
+ * Generate code to write 1d, 2d, 3d time-invariant fields
*/
- fd = fopen("output_field1dreal.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 1 || var_ptr->vtype != REAL || var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 1 && var_ptr->vtype == REAL && !var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
+ for(j=0; j<2; j++) {
+ for(i=1; i<=3; i++) {
+ if (j == 0) {
+ sprintf(fname, "output_field%idinteger.inc", i);
+ ivtype = INTEGER;
}
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
-
- /*
- * Generate code to write 2d real fields
- */
- fd = fopen("output_field2dreal.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 2 || var_ptr->vtype != REAL || var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 2 && var_ptr->vtype == REAL && !var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
+ else {
+ sprintf(fname, "output_field%idreal.inc", i);
+ ivtype = REAL;
}
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
+ fd = fopen(fname, "w");
-
- /*
- * Generate code to write 3d real fields
- */
- fd = fopen("output_field3dreal.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 3 || var_ptr->vtype != REAL || var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 3 && var_ptr->vtype == REAL && !var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="blue">", var_ptr->name_in_file);
+ var_ptr = vars;
+ while (var_ptr && (var_ptr->ndims != i || var_ptr->vtype != ivtype || var_ptr->timedim)) var_ptr = var_ptr->next;
+ if (var_ptr) {
+ fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="black">", var_ptr->name_in_file);
fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="blue">", var_ptr->name_in_file);
+ var_ptr = var_ptr->next;
+ while (var_ptr) {
+ if (var_ptr->ndims == i && var_ptr->vtype == ivtype && !var_ptr->timedim) {
+ fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="blue">", var_ptr->name_in_file);
+ fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="blue">", var_ptr->name_in_file);
+ }
+ var_ptr = var_ptr->next;
+ }
+ fortprintf(fd, " end if</font>
<font color="red">");
}
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
+
+ fclose(fd);
+ }
+ }
- fclose(fd);
-
-
/*
- * Generate code to write 1d real fields
+ * Generate code to write 0d, 1d, 2d, 3d real time-varying fields
*/
- fd = fopen("output_field1dreal_time.inc", "w");
+ for(i=0; i<=3; i++) {
+ sprintf(fname, "output_field%idreal_time.inc", i);
+ fd = fopen(fname, "w");
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 1 || var_ptr->vtype != REAL || !var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 1 && var_ptr->vtype == REAL && var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- }
+ var_ptr = vars;
+ while (var_ptr && (var_ptr->ndims != i || var_ptr->vtype != REAL || !var_ptr->timedim)) var_ptr = var_ptr->next;
+ if (var_ptr) {
+ fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="blue">", var_ptr->name_in_file);
+ fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
-
- /*
- * Generate code to write 2d real fields
- */
- fd = fopen("output_field2dreal_time.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 2 || var_ptr->vtype != REAL || !var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 2 && var_ptr->vtype == REAL && var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="blue">", var_ptr->name_in_file);
+ while (var_ptr) {
+ if (var_ptr->ndims == i && var_ptr->vtype == REAL && var_ptr->timedim) {
+ fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="blue">", var_ptr->name_in_file);
+ fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
+ }
+ var_ptr = var_ptr->next;
}
- var_ptr = var_ptr->next;
+ fortprintf(fd, " end if</font>
<font color="red">");
}
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
- /*
- * Generate code to write 3d real fields
- */
- fd = fopen("output_field3dreal_time.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 3 || var_ptr->vtype != REAL || !var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 3 && var_ptr->vtype == REAL && var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- }
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
+ fclose(fd);
}
-
- fclose(fd);
-
-
- /*
- * Generate code to write 1d integer fields
- */
- fd = fopen("output_field1dinteger.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 1 || var_ptr->vtype != INTEGER || var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 1 && var_ptr->vtype == INTEGER && !var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- }
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
-
- /*
- * Generate code to write 2d integer fields
- */
- fd = fopen("output_field2dinteger.inc", "w");
-
- var_ptr = vars;
- while (var_ptr && (var_ptr->ndims != 2 || var_ptr->vtype != INTEGER || var_ptr->timedim)) var_ptr = var_ptr->next;
- if (var_ptr) {
- fortprintf(fd, " if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- var_ptr = var_ptr->next;
- while (var_ptr) {
- if (var_ptr->ndims == 2 && var_ptr->vtype == INTEGER && !var_ptr->timedim) {
- fortprintf(fd, " else if (trim(field %% ioinfo %% fieldName) == \'%s\') then</font>
<font color="red">", var_ptr->name_in_file);
- fortprintf(fd, " varID = output_obj %% wrVarID%s</font>
<font color="red">", var_ptr->name_in_file);
- }
- var_ptr = var_ptr->next;
- }
- fortprintf(fd, " end if</font>
<font color="red">");
- }
-
- fclose(fd);
-
}
</font>
</pre>