/* Name- interpolateProfile.c Language- C Type- MAIN Version- 1.0 Date- 2/28/2026 Programmer- Mike Pettey (STC) Function- This function interpolates a data value to a given pressure. */ #include #include #include void interpolateProfile(int num_before_levels, float *before_pressures, float *before_data, int num_after_levels, float *after_pressures, float *after_data) { int level, index; float data_value, t1, t2, p1, p2; // Initialize the output array with missing values for (level=0; level after_pressures[level]) { if (index != 0) { t1 = before_data[index-1]; t2 = before_data[index]; p1 = before_pressures[index-1]; p2 = before_pressures[index]; if ((t1 != -32768.0) && (t2 != -32768.0) && (p1 != -32768.0) && (p2 != -32768.0)) { data_value = (float)(t1 + (t2 - t1) / log(p2/p1) * log(after_pressures[level] / p1)); } } index = num_before_levels;; } else { index++; } } after_data[level] = data_value; } } // end of file