[ncl-talk] Segmentation fault

Wei Huang huangwei at ucar.edu
Thu Jul 24 13:34:32 MDT 2014


Arnold,

It seems the problem came from the variable names.
variable name with "." in it has special meanings in NCL.
NCL treat "abc.def" as "abc" is compound data type
(similar to C struct, and fortran type), where "def"
a component of the compound data.
You may try change your variable name "abc.def" to "abc_def".

Let us know if this solved your problem.

Thanks,

Wei

================================================
1850 Table Mesa Dr.
Boulder, CO 80307
Phone: 303-497-8924


On Thu, Jul 24, 2014 at 9:47 AM, Wei Huang <huangwei at ucar.edu> wrote:

> Arnold,
>
> Actually, I can repeat the problem on our Linux machine.
> Let me take a closer look, and then get back to you.
>
> Thanks,
>
> Wei
>
> ================================================
> 1850 Table Mesa Dr.
> Boulder, CO 80307
> Phone: 303-497-8924
>
>
> On Thu, Jul 24, 2014 at 9:13 AM, <Arnold.Sullivan at csiro.au> wrote:
>
>>  Hi Wei,
>>
>>   Copyright (C) 1995-2014 - All Rights Reserved
>>  University Corporation for Atmospheric Research
>>  NCAR Command Language Version 6.2.0
>>  The use of this software is governed by a License Agreement.
>>  See http://www.ncl.ucar.edu/ for more details.
>> rm: cannot remove `./oasis3_grids_N216_cn_22072014.nc': No such file or
>> directory
>> rm: cannot remove `./oasis3_grids_N216_lc_22072014.nc': No such file or
>> directory
>> Segmentation fault
>>
>>  Run on NCI server login note with 6.2.0 version. So maybe should run on
>> local PC rather than server?
>>
>>  Regards,
>>
>>  Arnold
>>  ------------------------------
>> *From:* ncl-talk-bounces at ucar.edu [ncl-talk-bounces at ucar.edu] on behalf
>> of Wei Huang [huangwei at ucar.edu]
>> *Sent:* Friday, 25 July 2014 12:42 AM
>> *To:* Sullivan, Arnold (O&A, Aspendale)
>> *Cc:* ncl-talk at ucar.edu
>> *Subject:* Re: [ncl-talk] Segmentation fault
>>
>>   Arnold,
>>
>>  What version of NCL do you use?
>> And what computer do you work on?
>>
>>  I tried NCL 6.2.0, on MacOSX 10.8.x, it runs to finish without any
>> problem.
>>
>>  Regards,
>>
>>  Wei
>>
>>  ================================================
>> 1850 Table Mesa Dr.
>> Boulder, CO 80307
>> Phone: 303-497-8924
>>
>>
>> On Wed, Jul 23, 2014 at 11:16 PM, <Arnold.Sullivan at csiro.au> wrote:
>>
>>>     Hi there,
>>>
>>>
>>>
>>> Trying to generate high resolution grid information and I got error
>>> message “Segmentation fault”. (The resolution is 432x234. N216)
>>>
>>>
>>>
>>> The script can run 96x72 hardly on 192x144 but totally not able to run
>>> on 432x234.
>>>
>>>
>>>
>>> Any suggestion to trick NCL??
>>>
>>>
>>>
>>> Regards,
>>>
>>>
>>>
>>> Arnold
>>>
>>>
>>>
>>>
>>>
>>> The script is attached:
>>>
>>>
>>>
>>>
>>>
>>> ;************************************************
>>>
>>> ; Calculate T, U, V, C-Cell grid information
>>>
>>> ;
>>>
>>> ;************************************************
>>>
>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>>>
>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>>>
>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>>>
>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
>>>
>>> ;************************************************
>>>
>>> begin
>>>
>>> ;************************************************
>>>
>>>
>>>
>>> resGrid = "N216" ;; "N48" ;; "N96"
>>>
>>> if (resGrid .eq. "N48") then
>>>
>>>   nLonDims = 96
>>>
>>>   nLatDims = 72
>>>
>>> end if
>>>
>>>
>>>
>>> if (resGrid .eq. "N96") then
>>>
>>>   nLonDims = 192
>>>
>>>   nLatDims = 144
>>>
>>> end if
>>>
>>>
>>>
>>> if (resGrid .eq. "N216") then
>>>
>>>   nLonDims = 432
>>>
>>>   nLatDims = 234
>>>
>>> end if
>>>
>>>
>>>
>>>   nVert = 4
>>>
>>>   nTLon = nLonDims
>>>
>>>   nTLat = nLatDims
>>>
>>>   nULon = nLonDims
>>>
>>>   nULat = nLatDims
>>>
>>>   nVLon = nLonDims
>>>
>>>   nVLat = nLatDims+1
>>>
>>>   nCLon = nLonDims
>>>
>>>   nCLat = nLatDims
>>>
>>>
>>>
>>> ;************************
>>>
>>> ; basic grid info
>>>
>>> ;************************
>>>
>>>   grid_x_Temp = fspan(0,360,nULon+1)
>>>
>>>   grid_x_T    = grid_x_Temp(0:nULon-1)+360./nULon/2.
>>>
>>>   grid_y_Temp = fspan(0,180,nULat+1)-90
>>>
>>>   grid_y_T    = grid_y_Temp(0:nULat-1)+180./nULat/2.
>>>
>>>
>>>
>>>   grid_x_Cemp = fspan(0,360,nULon+1)+360./nULon/2.
>>>
>>>   grid_x_C    = grid_x_Cemp(0:nULon-1)-360./nULon/2.
>>>
>>>   grid_y_Cemp = fspan(0,180,nULat+1)-90+180./(nULat)/2.
>>>
>>>   grid_y_C    = fspan(0,180,nULat+1)-90
>>>
>>>
>>>
>>>   if (grid_y_C(0) .le. -90) then
>>>
>>>     grid_y_C(0) = -89.995
>>>
>>>   end if
>>>
>>>   if (grid_y_C(nULat) .ge. 90) then
>>>
>>>     grid_y_C(nULat) = 89.995
>>>
>>>   end if
>>>
>>> ;printVarSummary(grid_x_T)
>>>
>>>
>>>
>>> ;************************
>>>
>>> ; setting new varialbes
>>>
>>> ;************************
>>>
>>>   x_T = new((/nTLat,nTLon/),float)
>>>
>>>   y_T = new((/nTLat,nTLon/),float)
>>>
>>>   x_U = new((/nULat,nULon/),float)
>>>
>>>   y_U = new((/nULat,nULon/),float)
>>>
>>>   x_V = new((/nVLat,nVLon/),float)
>>>
>>>   y_V = new((/nVLat,nVLon/),float)
>>>
>>>
>>>
>>>   x_vert_T = new((/nVert,nTLat,nTLon/),float)
>>>
>>>   y_vert_T = new((/nVert,nTLat,nTLon/),float)
>>>
>>>   x_vert_U = new((/nVert,nULat,nULon/),float)
>>>
>>>   y_vert_U = new((/nVert,nULat,nULon/),float)
>>>
>>>   x_vert_V = new((/nVert,nVLat,nVLon/),float)
>>>
>>>   y_vert_V = new((/nVert,nVLat,nVLon/),float)
>>>
>>> ;  x_vert_C = new((/nVert,nCLat,nCLon/),float)
>>>
>>> ;  y_vert_C = new((/nVert,nCLat,nCLon/),float)
>>>
>>>
>>>
>>> ;;**************************
>>>
>>> ;; T-Cell
>>>
>>> ;;**************************
>>>
>>> do i=0,nTLon-1
>>>
>>>   y_T(:,i) = grid_y_T ;; "Center grid y"
>>>
>>>
>>>
>>>   do j=0,nTLat-1
>>>
>>>   x_T(j,:) = grid_x_T ;; "Center grid x"
>>>
>>>
>>>
>>>     x_vert_T(0,j,i) = grid_x_Temp(i)
>>>
>>>     x_vert_T(1,j,i) = grid_x_Temp(i+1)
>>>
>>>     x_vert_T(2,j,i) = grid_x_Temp(i+1)
>>>
>>>     x_vert_T(3,j,i) = grid_x_Temp(i)
>>>
>>>
>>>
>>>   if ( j .eq. 0 ) then
>>>
>>>     y_vert_T(0,j,i) = -89.9995
>>>
>>>     y_vert_T(1,j,i) = -89.9995
>>>
>>>   else
>>>
>>>     y_vert_T(0,j,i) = grid_y_Temp(j)
>>>
>>>     y_vert_T(1,j,i) = grid_y_Temp(j)
>>>
>>>   end if
>>>
>>>
>>>
>>>   if ( j .eq. nTLat-1 ) then
>>>
>>>     y_vert_T(2,j,i) = 89.9995
>>>
>>>     y_vert_T(3,j,i) = 89.9995
>>>
>>>   else
>>>
>>>     y_vert_T(2,j,i) = grid_y_Temp(j+1)
>>>
>>>     y_vert_T(3,j,i) = grid_y_Temp(j+1)
>>>
>>>   end if
>>>
>>>
>>>
>>>   end do
>>>
>>> end do
>>>
>>>   x_T!0 = (/"nx1"/)
>>>
>>>   x_T!1 = (/"ny1"/)
>>>
>>>   y_T!0 = (/"nx1"/)
>>>
>>>   y_T!1 = (/"ny1"/)
>>>
>>>   x_vert_T!0 = (/"nc1"/)
>>>
>>>   x_vert_T!1 = (/"nx1"/)
>>>
>>>   x_vert_T!2 = (/"ny1"/)
>>>
>>>   y_vert_T!0 = (/"nc1"/)
>>>
>>>   y_vert_T!1 = (/"nx1"/)
>>>
>>>   y_vert_T!2 = (/"ny1"/)
>>>
>>>
>>>
>>> ;;**************************
>>>
>>> ;; U-Cell
>>>
>>> ;;**************************
>>>
>>> do i=0,nULon-1
>>>
>>>   y_U(:,i) = grid_y_T ;; "Center grid y"
>>>
>>>
>>>
>>>   do j=0,nULat-1
>>>
>>>   x_U(j,:) = grid_x_C ;; "Center grid x"
>>>
>>>
>>>
>>>   if ( i .eq. 0 ) then
>>>
>>>     x_vert_U(0,j,i) = 360-360./nULon/2.
>>>
>>>     x_vert_U(3,j,i) = 360-360./nULon/2.
>>>
>>>   else
>>>
>>>     x_vert_U(0,j,i) = grid_x_Cemp(i-1)
>>>
>>>     x_vert_U(3,j,i) = grid_x_Cemp(i-1)
>>>
>>>   end if
>>>
>>>
>>>
>>>     x_vert_U(1,j,i) = grid_x_Cemp(i)
>>>
>>>     x_vert_U(2,j,i) = grid_x_Cemp(i)
>>>
>>>
>>>
>>>   if ( j .eq. 0 ) then
>>>
>>>     y_vert_U(0,j,i) = -89.9995
>>>
>>>     y_vert_U(1,j,i) = -89.9995
>>>
>>>   else
>>>
>>>     y_vert_U(0,j,i) = grid_y_Temp(j)
>>>
>>>     y_vert_U(1,j,i) = grid_y_Temp(j)
>>>
>>>   end if
>>>
>>>
>>>
>>>   if ( j .eq. nULat-1 ) then
>>>
>>>     y_vert_U(2,j,i) = 89.9995
>>>
>>>     y_vert_U(3,j,i) = 89.9995
>>>
>>>   else
>>>
>>>     y_vert_U(2,j,i) = grid_y_Temp(j+1)
>>>
>>>     y_vert_U(3,j,i) = grid_y_Temp(j+1)
>>>
>>>   end if
>>>
>>>
>>>
>>>   end do
>>>
>>> end do
>>>
>>>   x_U!0 = (/"nx2"/)
>>>
>>>   x_U!1 = (/"ny2"/)
>>>
>>>   y_U!0 = (/"nx2"/)
>>>
>>>   y_U!1 = (/"ny2"/)
>>>
>>>   x_vert_U!0 = (/"nc2"/)
>>>
>>>   x_vert_U!1 = (/"nx2"/)
>>>
>>>   x_vert_U!2 = (/"ny2"/)
>>>
>>>   y_vert_U!0 = (/"nc2"/)
>>>
>>>   y_vert_U!1 = (/"nx2"/)
>>>
>>>   y_vert_U!2 = (/"ny2"/)
>>>
>>>
>>>
>>> ;;**************************
>>>
>>> ;; V-Cell
>>>
>>> ;;**************************
>>>
>>> do i=0,nVLon-1
>>>
>>>   y_V(:,i) = grid_y_C ;; "Center grid y"
>>>
>>>
>>>
>>>   do j=0,nVLat-1
>>>
>>>   x_V(j,:) = grid_x_T ;; "Center grid x"
>>>
>>>
>>>
>>>     x_vert_V(0,j,i) = grid_x_Temp(i)
>>>
>>>     x_vert_V(1,j,i) = grid_x_Temp(i+1)
>>>
>>>     x_vert_V(2,j,i) = grid_x_Temp(i+1)
>>>
>>>     x_vert_V(3,j,i) = grid_x_Temp(i)
>>>
>>>
>>>
>>>   if ( j .eq. 0 ) then
>>>
>>>    y_vert_V(0,j,i) = -89.9995
>>>
>>>     y_vert_V(1,j,i) = -89.9995
>>>
>>>   else
>>>
>>>     y_vert_V(0,j,i) = grid_y_Cemp(j-1)
>>>
>>>     y_vert_V(1,j,i) = grid_y_Cemp(j-1)
>>>
>>>   end if
>>>
>>>
>>>
>>>   if ( j .eq. nVLat-1 ) then
>>>
>>>     y_vert_V(2,j,i) = 89.9995
>>>
>>>     y_vert_V(3,j,i) = 89.9995
>>>
>>>   else
>>>
>>>     y_vert_V(2,j,i) = grid_y_Cemp(j)
>>>
>>>     y_vert_V(3,j,i) = grid_y_Cemp(j)
>>>
>>>   end if
>>>
>>>
>>>
>>>   end do
>>>
>>> end do
>>>
>>>   x_V!0 = (/"nx3"/)
>>>
>>>   x_V!1 = (/"ny3"/)
>>>
>>>   y_V!0 = (/"nx3"/)
>>>
>>>   y_V!1 = (/"ny3"/)
>>>
>>>   x_vert_V!0 = (/"nc3"/)
>>>
>>>   x_vert_V!1 = (/"nx3"/)
>>>
>>>   x_vert_V!2 = (/"ny3"/)
>>>
>>>  y_vert_V!0 = (/"nc3"/)
>>>
>>>   y_vert_V!1 = (/"nx3"/)
>>>
>>>   y_vert_V!2 = (/"ny3"/)
>>>
>>>
>>>
>>> ;***********************
>>>
>>> ; Save epcp lts
>>>
>>> ;***********************
>>>
>>>   diro   = "./"
>>>
>>>   outFileCT = diro+"oasis3_grids_"+resGrid+"_ct_22072014.nc"
>>>
>>>   system("\rm "+outFileCT)
>>>
>>>   outFileCN = diro+"oasis3_grids_"+resGrid+"_cn_22072014.nc"
>>>
>>>   system("\rm "+outFileCN)
>>>
>>>   outFileLC = diro+"oasis3_grids_"+resGrid+"_lc_22072014.nc"
>>>
>>>   system("\rm "+outFileLC)
>>>
>>>
>>>
>>>   tLonName = "um1t.lon"
>>>
>>>   tLatName = "um1t.lat"
>>>
>>>   uLonName = "um1u.lon"
>>>
>>>   uLatName = "um1u.lat"
>>>
>>>   vLonName = "um1v.lon"
>>>
>>>   vLatName = "um1v.lat"
>>>
>>>
>>>
>>>   tAngName = "um1t.ang"
>>>
>>>   uAngName = "um1u.ang"
>>>
>>>   vAngName = "um1v.ang"
>>>
>>>
>>>
>>>   tVertLonName = "um1t.clo"
>>>
>>>   tVertLatName = "um1t.cla"
>>>
>>>   uVertLonName = "um1u.clo"
>>>
>>>   uVertLatName = "um1u.cla"
>>>
>>>   vVertLonName = "um1v.clo"
>>>
>>>   vVertLatName = "um1v.cla"
>>>
>>>
>>>
>>>   fout         = addfile( outFileCT,"c")
>>>
>>>   fout at title   = resGrid+" Grid Info"
>>>
>>>
>>>
>>> ;** centre grid ***************
>>>
>>>   fout->$tLonName$ = x_T
>>>
>>>     fout->$tLonName$@units = "degrees_east"
>>>
>>>     fout->$tLonName$@title = resGrid+" T-cell grid center longitude"
>>>
>>>   fout->$tLatName$ = y_T
>>>
>>>     fout->$tLatName$@units = "degrees_north"
>>>
>>>     fout->$tLatName$@title = resGrid+" T-cell grid center longitude"
>>>
>>>   fout->$uLonName$ = x_U
>>>
>>>     fout->$uLonName$@units = "degrees_east"
>>>
>>>     fout->$uLonName$@title = resGrid+" U-cell grid center longitude"
>>>
>>>   fout->$uLatName$ = y_U
>>>
>>>     fout->$uLatName$@units = "degrees_north"
>>>
>>>     fout->$uLatName$@title = resGrid+" U-cell grid center longitude"
>>>
>>>   fout->$vLonName$ = x_V
>>>
>>>     fout->$vLonName$@units = "degrees_east"
>>>
>>>     fout->$vLonName$@title = resGrid+" V-cell grid center longitude"
>>>
>>>   fout->$vLatName$ = y_V
>>>
>>>     fout->$vLatName$@units = "degrees_north"
>>>
>>>     fout->$vLatName$@title = resGrid+" V-cell grid center longitude"
>>>
>>>
>>>
>>> delete(fout)
>>>
>>>   fout         = addfile( outFileCN,"c")
>>>
>>>   fout at title   = resGrid+" Grid Info"
>>>
>>>
>>>
>>> ;** coner grid ***************
>>>
>>>   fout->$uVertLonName$ = x_vert_U
>>>
>>>     fout->$uVertLonName$@units = "degrees_north"
>>>
>>>     fout->$uVertLonName$@title = resGrid+" U-cell grid corner longitude"
>>>
>>>   fout->$uVertLatName$ = y_vert_U
>>>
>>>     fout->$uVertLatName$@units = "degrees_east"
>>>
>>>     fout->$uVertLatName$@title = resGrid+" U-cell grid corner latitude"
>>>
>>>
>>>
>>>   fout->$vVertLonName$ = x_vert_V
>>>
>>>     fout->$vVertLonName$@units = "degrees_north"
>>>
>>>     fout->$vVertLonName$@title = resGrid+" V-cell grid corner longitude"
>>>
>>>   fout->$vVertLatName$ = y_vert_V
>>>
>>>     fout->$vVertLatName$@units = "degrees_east"
>>>
>>>     fout->$vVertLatName$@title = resGrid+" V-cell grid corner latitude"
>>>
>>>
>>>
>>>   fout->$tVertLonName$ = x_vert_T
>>>
>>>     fout->$tVertLonName$@units = "degrees_north"
>>>
>>>     fout->$tVertLonName$@title = resGrid+" T-cell grid corner longitude"
>>>
>>>   fout->$tVertLatName$ = y_vert_T
>>>
>>>     fout->$tVertLatName$@units = "degrees_east"
>>>
>>>     fout->$tVertLatName$@title = resGrid+" T-cell grid corner latitude"
>>>
>>>
>>>
>>> delete(fout)
>>>
>>>   fout         = addfile( outFileLC,"c")
>>>
>>>   fout at title   = resGrid+" Grid Info"
>>>
>>>
>>>
>>> ;** local rotation angle ***************
>>>
>>>   fout->$tAngName$ = x_T-x_T
>>>
>>>     fout->$tAngName$@units = "degrees"
>>>
>>>     fout->$tAngName$@title = resGrid+" T-cell local rotation angle"
>>>
>>>   fout->$uAngName$ = x_U-x_U
>>>
>>>     fout->$uAngName$@units = "degrees"
>>>
>>>     fout->$uAngName$@title = resGrid+" T-cell local rotation angle"
>>>
>>>   fout->$vAngName$ = x_V-x_V
>>>
>>>    fout->$vAngName$@units = "degrees"
>>>
>>>     fout->$vAngName$@title = resGrid+" T-cell local rotation angle"
>>>
>>>
>>>
>>> print("Now we finish outputing data .....")
>>>
>>> end
>>>
>>>
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20140724/19cd9e49/attachment.html 


More information about the ncl-talk mailing list