/*- * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993 * University of Illinois * US Army Construction Engineering Research Lab * Copyright 1993, H. Mitasova (University of Illinois), * I. Kosinovsky, (USA-CERL), and D.Gerdes (USA-CERL) * * modified by McCauley in August 1995 * modified by Mitasova in August 1995 * */ #include #include #include #include #include int IL_write_temp_2d ( struct interp_params *params, int ngstc, int nszc, int offset2 /* begin. and end. column, offset */ ) /* * Writes az,adx,...,adxy into appropriate place (depending on ngstc, nszc * and offset) in corresponding temp file */ { int j; static FCELL *array_cell = NULL; if (!array_cell) { if (!(array_cell = (FCELL *) G_malloc (sizeof (FCELL) * params->nsizc + 1))) { fprintf (stderr, "Cannot allocate memory for array_cell\n"); return -1; } } if (params->Tmp_fd_z != NULL) { for (j = ngstc; j <= nszc; j++) array_cell[j - 1] = (FCELL) params->az[j]; if (fseek (params->Tmp_fd_z, (long) offset2, 0) == -1) { fprintf (stderr, "Cannot fseek elev offset2=%d\n", (int) offset2); return -1; } if (!(fwrite (array_cell + ngstc - 1, sizeof (FCELL), nszc - ngstc + 1, params->Tmp_fd_z))) { fprintf (stderr, "Not enough disk space--cannot write files\n"); return -1; } } if (params->Tmp_fd_dx != NULL) { for (j = ngstc; j <= nszc; j++) if (!params->deriv) array_cell[j - 1] = (FCELL) params->adx[j]; else array_cell[j - 1] = (FCELL) (params->adx[j] * params->scik1); if (fseek (params->Tmp_fd_dx, (long) offset2, 0) == -1) { fprintf (stderr, "Cannot fseek slope\n"); return -1; } if (!(fwrite (array_cell + ngstc - 1, sizeof (FCELL), nszc - ngstc + 1, params->Tmp_fd_dx))) { fprintf (stderr, "Not enough disk space--cannot write files\n"); return -1; } } if (params->Tmp_fd_dy != NULL) { for (j = ngstc; j <= nszc; j++) { if (!params->deriv) { if (params->ady[j] > 0. && params->ady[j] < 0.5) params->ady[j] = 360.; array_cell[j - 1] = (FCELL) params->ady[j]; } else array_cell[j - 1] = (FCELL) (params->ady[j] * params->scik1); } if (fseek (params->Tmp_fd_dy, (long) offset2, 0) == -1) { fprintf (stderr, "Cannot fseek aspect\n"); return -1; } if (!(fwrite (array_cell + ngstc - 1, sizeof (FCELL), nszc - ngstc + 1, params->Tmp_fd_dy))) { fprintf (stderr, "Not enough disk space--cannot write files\n"); return -1; } } if (params->Tmp_fd_xx != NULL) { for (j = ngstc; j <= nszc; j++) { array_cell[j - 1] = (FCELL) (params->adxx[j] * params->scik1); } if (fseek (params->Tmp_fd_xx, (long) offset2, 0) == -1) { fprintf (stderr, "Cannot fseek pcurv\n"); return -1; } if (!(fwrite (array_cell + ngstc - 1, sizeof (FCELL), nszc - ngstc + 1, params->Tmp_fd_xx))) { fprintf (stderr, "Not enough disk space--cannot write files\n"); return -1; } } if (params->Tmp_fd_yy != NULL) { for (j = ngstc; j <= nszc; j++) array_cell[j - 1] = (FCELL) (params->adyy[j] * params->scik2); if (fseek (params->Tmp_fd_yy, (long) offset2, 0) == -1) { fprintf (stderr, "Cannot fseek tcurv\n"); return -1; } if (!(fwrite (array_cell + ngstc - 1, sizeof (FCELL), nszc - ngstc + 1, params->Tmp_fd_yy))) { fprintf (stderr, "Not enough disk space--cannot write files\n"); return -1; } } if (params->Tmp_fd_xy != NULL) { for (j = ngstc; j <= nszc; j++) array_cell[j - 1] = (FCELL) (params->adxy[j] * params->scik3); if (fseek (params->Tmp_fd_xy, (long) offset2, 0) == -1) { fprintf (stderr, "Cannot fseek mcurv\n"); return -1; } if (!(fwrite (array_cell + ngstc - 1, sizeof (FCELL), nszc - ngstc + 1, params->Tmp_fd_xy))) { fprintf (stderr, "Not enough disk space--cannot write files\n"); return -1; } } return 1; }