Hi
This has got me tearing out my remaining hair!
It's a program that creates a NetCDF file and populates it with data
read from ASCII files (HadCM3 monthly model data, actually).
What I found was that everything went fine (dims, vars, atts, undef,
add lons, add lats, etc) until I tried to write a time value to the
'time' variable (which is based on the UNLIMITED 'time' dimension):
status = nf_put_var1_double(ncid,timvarid,t,tim)
This gave a -45 error ('Not a netCDF data type or _FillValue type
mismatch'). However I can confirm that all four arguments are
correctly typed ('int','int','int', 'double precision'), and all have
in-range, as-expected values.
I tried putting the main data 'put' before it - and that gave the
same error.
Then I tried preassigning an array of times to the 'time' variable -
that gave the same error.
I extracted the key interface calls to a short dummy program,
assigned parameters as necessary, and that worked perfectly!!
This is where it gets freaky. I made 'time' fixed length (120), not
UNLIMITED. Now I get the same -45 error when I call:
status = nf_enddef(ncid)
I realise that nf_enddef is the point at which the definitions are
written, so perhaps they're parsed there?
Does anyone have any idea what might be causing this? The whole
program is a bit large, so I'm not attaching it yet, I'd like to see
if anyone's had similar confusions..
Cheers
Harry
Ian "Harry" Harris
Climatic Research Unit
School of Environmental Sciences
University of East Anglia
Norwich NR4 7TJ
United Kingdom