[ncl-talk] Segmentation fault

Wei Huang huangwei at ucar.edu
Thu Jul 24 08:42:22 MDT 2014


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/824c5ea8/attachment.html 


More information about the ncl-talk mailing list