Re: [netcdfgroup] netCDF C++ Library : Different Data type

JongKwan Kim wrote:
Hello guys,

I have a problem with netCDF C++ Library.

I am using the "molloc" to assign the memory like below.
*float **snow_we;
snow_we = FloatMatrix(tcount,npix); -> this is to assign the memory using
"molloc".
*
And, save the data into snow_we like below.
*for (int j = 0; j < npix; j++) {
   snow_we[count-1][j] = we_val[j];
}
*

Then, using the netCDF c++ library, create the netCDF file.
However, the data does not saved properly, because I think the
"snow_we[0][0]" in the red line is made by "molloc".
If I use "float snow[100][100]" instead of "molloc" when I was assigning teh
memory, it is saved properly. But, I must use "molloc" because of lots of
iteration.
So, do you guys know how can I solve this problem?

The matrix has to be "continuous."

If you allocate like:
----
snow_we = malloc(NELEMS * sizeof(float *));
for (i = 0; i < NELEMS; i++)
 snow_we[i] = malloc(NELEMS2 * sizeof(float));
----
then your matrix is not "continuous," but is just a list of list.

do a:
----
snow_we = malloc(NELEMS * sizeof(float *));
float *snow_we_data = malloc(NELEMS * NELEMS2 * sizeof(float));
for (i = 0; i < NELEMS; i++)
 snow_we[i] = snow_we_data + i * NELEMS2;
----
And pass &snow_we[0][0] in your data->put as you do now.

Hope that helps (if that's the problem you face...)



  • 2010 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: