[ncl-talk] conversion from loop to array syntax

Dave Allured - NOAA Affiliate dave.allured at noaa.gov
Fri Nov 11 18:03:18 MST 2022


Laura, I am not sure that will work.  But if it does, assign the result to
a new variable, not a predefined one.  Or else use the replacement
operator.  Try this, see if you get the expected result dimensions:

      pp = pres(:,kpbl(:))

Also, it is simply ncl-talk at ucar.edu.


On Fri, Nov 11, 2022 at 7:06 PM Laura Fowler via ncl-talk <
ncl-talk at mailman.ucar.edu> wrote:

> Hello:
> I have an integer array that includes the index of the PBL top (kpbl). I
> would like to get the pressure (press) corresponding to the index of the
> PBL top. A printVarSummary provides the following information:
>
> Variable: kpbl
>
> Type: integer
>
> Total Size: 10485768 bytes
>
>             2621442 values
>
> Number of Dimensions: 1
>
> Dimensions and sizes: [nCells | 2621442]
>
> Coordinates:
>
> Number Of Attributes: 2
>
>   units : unitless
>
>   long_name : index level of PBL top
>
>
> Variable: pres
>
> Type: float
>
> Total Size: 576717240 bytes
>
>             144179310 values
>
> Number of Dimensions: 2
>
> Dimensions and sizes: [nCells | 2621442] x [nVertLevels | 55]
>
> Coordinates:
>
> Number Of Attributes: 3
>
>   _FillValue : 9.96921e+36
>
>   units : hPa
>
>   long_name : Pressure at layer midpoint
>
>
> where nCells is the number of grid columns and nVertLevels is the
> number of vertical levels. Below is the loop that I would like to convert
> to a more compact array syntax:
>
>
> do n = 0,nCells-1
>
>    pp(n) = pres(n,kpbl(n))
>
>    print("--- n = "+n +" "+kpbl(n) +"  "+pres(n,kpbl(n)) +"  "+pp(n))
>
> end do
>
>
> When I convert the loop above to the following array syntax (see below), I
> unfortunately get a "Segmentation Fault".
>
> pp(:) = pres(:,kpbl(:))
>
>
> fatal:VarVarWrite: Number of dimensions on left hand side does not match
> right hand side
>
> fatal:["Execute.c":8637]:Execute: Error occurred at or near line 207 in
> file plot.pressure.ncl
>
>
>
> Can somebody help me figure this out. I would really appreciate it.
>
> Thanks,
>
> Laura
>
>
> note: I posted the same email this morning, but to the address
> ncl-talk-request at ucar.edu. Not sure which email to use for posts. Sorry
> about the double email message.
>
>
> !-------------------------------------------------------------------------------------------------------------
> Laura D. Fowler
>
> Mesoscale and Microscale Meteorology Division (MMM)
> National Center for Atmospheric Research
> P.O. Box 3000, Boulder CO 80307-3000
>
> e-mail: laura at ucar.edu
> phone: 303-497-1628
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20221111/f4f6c2ea/attachment-0001.htm>


More information about the ncl-talk mailing list