[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20030805: NEC performance issues (cont.)

This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.


  • Subject: 20030805: NEC performance issues (cont.)
  • Date: Tue, 05 Aug 2003 09:25:08 -0600

Matt,

>Date: Tue, 05 Aug 2003 08:48:52 -0600
>From: Russ Rew <address@hidden>
>Organization: UCAR Unidata Program
>To: Matt Huddleston <address@hidden>
>Subject: Re: 20030627: NEC performance issues (cont.) 

The above message contained the following:

> > Well, I've solved my performance problems.  Here are two pieces of code
> > that do the same thing :
> > 
> > (A)
> > DO Iob=1,NumOb
> >   iret = nf90_put_var(ncid,  potm_id, RealNobNLevVar(IOb,:), &
> >                                                     start=(/1,IOb/))
> > ENDDO
> > 
> > (B)
> > iret = nf90_put_var(ncid, potm_id, RealNobNLevVar,    &
> >           count=(/NumObLevUsed,NumOb/), map=(/ NumOb,1 /) )

I'm afraid I don't understand the above examples.  In example A,
variable "IOb" is used to index the inner dimension of "RealNobNLevVar"
but is the index of the outer netCDF dimension in the "start" vector.

In example B, the "map" vector indicates that adjacent elements along the
inner dimension of the netCDF variable "potm_id" correspond to elements
in "RealNobNLevVar" that are "NumOb" elements apart.

Are you transposing the array?

Regards,
Steve Emmerson