[netcdfgroup] Very strange problem with Fortran interface

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




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