NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: [netcdfgroup] data output error

Hi Dave,

Thanks for sharing this with me! I'll check the data types.

Yeah the new subroutines I made to create netCDF file are fortran 90. But
most of the original model codes (CMAQ) are fortran 77. I just found if I
call nc_chk1_putvar in an outside subroutine, I can get the correct
magnitude.. It's a bit tricky for me... Anyway, I'll solve it.

Have a good weekend!
Hongyan
On Fri, Jul 31, 2009 at 2:56 PM, Dave Allured <dave.allured@xxxxxxxx> wrote:

> Hongyan,
>
> Those wrong data values are symptomatic of a data type error in a
> subroutine call.  For example, passing an integer array in a subroutine
> argument that is supposed to be real or double precision.  Please check the
> subroutine and function calls carefully for type mismatches.
>
> I see that you are using the Netcdf fortran 90 interface.  If you convert
> your own programs to fortran 90, and use module interfaces, then the
> compiler will find these mistakes for you.  I strongly recommend that you
> start using fortran 90 instead of fortran 77. Either way, good luck.
>
> Dave Allured
> CU/CIRES Climate Diagnostics Center (CDC)
> http://cires.colorado.edu/science/centers/cdc/
> NOAA/ESRL/PSD, Climate Analysis Branch (CAB)
> http://www.cdc.noaa.gov/psd1/
>
> H.Dang wrote:
>
>> Hello~
>>
>> The data I got in the netCDF file seems wrong. My code is:
>>
>>      nstep_nreps = nstep_nreps + 1
>>      DO S = 1, N_GC_SPC
>>       call nc_chk1_putvar(
>>     &              jdate, jtime
>>     &            , conc_varid(s)
>>     &            , CGRID, S
>>     &            , nstep_nreps )
>>      END DO      write(56,*) 'cgrid(1,1,1,1)',cgrid(1,1,1,1)
>>
>> I checked the first of the data values, in the 56th file, it's corrct:
>> "cgrid(1,1,1,1)=1.6699868E-04".
>> But in the netCDF file, it is:  2.802597e-45. Actually all values in
>> netCDF has magnitude e-19~e-45.
>> The subroutine "nc_chk1_putvar" is like this:
>>
>>  count = (/NCOLS, NROWS, NLAYS, 1, 1/)
>>  start = (/ 1, 1, 1, Nspecies, nstep_nreps/)      call
>> nc_check(nf90_put_var( &
>>                    chk_ncid,  &
>>                    nc_data_varid,  &
>>                    CGRID(:,:,:,Nspecies), &
>>                    start=start,  &
>>                    count=count  &
>>                   ))
>>
>> Could you please find apparent mistake in my code? Thank you!
>>
>> --
>> Cordially,
>> Hongyan
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> netcdfgroup mailing list
>> netcdfgroup@xxxxxxxxxxxxxxxx
>> For list information or to unsubscribe,  visit:
>> http://www.unidata.ucar.edu/mailing_lists/
>>
>
> _______________________________________________
> netcdfgroup mailing list
> netcdfgroup@xxxxxxxxxxxxxxxx
> For list information or to unsubscribe,  visit:
> http://www.unidata.ucar.edu/mailing_lists/
>



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