This file is indexed.

/usr/share/ncarg/nclex/gsun/gsun05n.ncl is in libncarg-data 6.1.2-7.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"

begin
  data_dir  = ncargpath("data")   ; Get ready to open three netCDF files.
  cdf_file1 = addfile(data_dir + "/cdf/941110_P.cdf","r")
  cdf_file2 = addfile(data_dir + "/cdf/sstdata_netcdf.nc","r")
  cdf_file3 = addfile(data_dir + "/cdf/Pstorm.cdf","r")

  psl = cdf_file1->Psl    ; Store some data from the three netCDF
  sst = cdf_file2->sst    ; files to local variables.
  pf  = cdf_file3->p

  psl@nlon = dimsizes(psl&lon)  ; Store the sizes of the lat/lon
  psl@nlat = dimsizes(psl&lat)  ; arrays as attributes of the psl
  pf@nlon  = dimsizes(pf&lon)   ; and pf variables.
  pf@nlat  = dimsizes(pf&lat)

  sst!1    = "lat"                 ; Name dimensions 0 and 1 of sst
  sst!2    = "lon"                 ; "lat" and "lon.
  sst&lat  = cdf_file2->lat        ; Create coordinate variables
  sst&lon  = cdf_file2->lon        ; for sst and store the sizes
  sst@nlon = dimsizes(sst&lon)     ; of the arrays as attributes 
  sst@nlat = dimsizes(sst&lat)     ; of sst.

  wks = gsn_open_wks("x11","gsun05n") ; Open a workstation.

;----------- Begin first plot -----------------------------------------

  resources = True
  
  resources@sfXCStartV = min(psl&lon)   ; Define where contour plot
  resources@sfXCEndV   = max(psl&lon)   ; should lie on the map plot.
  resources@sfYCStartV = min(psl&lat)
  resources@sfYCEndV   = max(psl&lat)

  map = gsn_contour_map(wks,psl,resources) ; Draw contours over a map.

;----------- Begin second plot -----------------------------------------

  getvalues wks                   ; Retrieve the default color map.
    "wkColorMap" : cmap
  end getvalues

  cmap(0,:) = (/1.,1.,1./)        ; Change background to white.
  cmap(1,:) = (/0.,0.,0./)        ; and foreground to black.
  gsn_define_colormap(wks, cmap)

  resources@mpProjection = "Orthographic" ; Change the map projection.
  resources@mpCenterLonF = 180.           ; Rotate the projection.
  resources@mpFillOn     = True           ; Turn on map fill.
  resources@mpFillColors = (/0,-1,28,-1/) ; Fill land and leave oceans
                                          ; and inland water transparent.

  resources@vpXF      = 0.1    ; Change the size and location of the 
  resources@vpYF      = 0.9    ; plot on the viewport.
  resources@vpWidthF  = 0.7
  resources@vpHeightF = 0.7

  mnlvl = 0                        ; Minimum contour level.
  mxlvl = 28                       ; Maximum contour level.
  spcng = 2                        ; Contour level spacing.
  ncn   = (mxlvl-mnlvl)/spcng + 1  ; Number of contour levels.

  resources@cnLevelSelectionMode = "ManualLevels" ; Define your own
  resources@cnMinLevelValF       = mnlvl          ; contour levels.
  resources@cnMaxLevelValF       = mxlvl
  resources@cnLevelSpacingF      = spcng

  resources@cnLineThicknessF     = 2.0   ; Double the line thickness.

  resources@cnFillOn           = True  ; Turn on contour level fill.
  resources@cnMonoFillColor    = True  ; Use one fill color.
  resources@cnMonoFillPattern  = False ; Use multiple fill patterns.
  resources@cnFillPatterns     = new((/ncn+1/),integer) ; Only fill
  resources@cnFillPatterns(:)  = -1                     ; last two
  resources@cnFillPatterns(ncn-1:ncn) = 17              ; contour levels.

  resources@cnLineDrawOrder      = "Predraw" ; Draw lines and filled
  resources@cnFillDrawOrder      = "Predraw" ; areas before map gets
                                             ; drawn.

  resources@tiMainString = "~F26~" + cdf_file2@title
  
  resources@sfXCStartV = min(sst&lon)   ; Define where contour plot
  resources@sfXCEndV   = max(sst&lon)   ; should lie on the map plot.
  resources@sfYCStartV = min(sst&lat)
  resources@sfYCEndV   = max(sst&lat)

  map = gsn_contour_map(wks,sst(0,:,:),resources) ; Draw contours over a map.

;----------- Begin third plot -----------------------------------------

  delete(resources)  ; Start with a new list of resources.
  resources = True

  resources@tiXAxisString = "~F25~longitude"
  resources@tiYAxisString = "~F25~latitude"

  resources@cnFillOn              = True     ; Turn on contour fill.
  resources@cnLineLabelsOn        = False    ; Turn off line labels.
  resources@cnInfoLabelOn         = False    ; Turn off info label.
  resources@pmLabelBarDisplayMode = "Always" ; Turn on a label bar.
  resources@lbPerimOn             = False    ; Turn off label bar perim.

  resources@sfXCStartV = min(pf&lon)   ; Define where contour plot
  resources@sfXCEndV   = max(pf&lon)   ; should lie on the map plot.
  resources@sfYCStartV = min(pf&lat)
  resources@sfYCEndV   = max(pf&lat)

  resources@mpProjection = "LambertEqualArea"  ; Change the map projection.
  resources@mpCenterLonF = (pf&lon(pf@nlon-1) + pf&lon(0))/2
  resources@mpCenterLatF = (pf&lat(pf@nlat-1) + pf&lat(0))/2

  resources@mpLimitMode = "LatLon"    ; Limit the map view.
  resources@mpMinLonF   = min(pf&lon)
  resources@mpMaxLonF   = max(pf&lon)
  resources@mpMinLatF   = min(pf&lat)
  resources@mpMaxLatF   = max(pf&lat)
  resources@mpPerimOn   = True        ; Turn on map perimeter.

  resources@tiMainString = "~F26~January 1996 storm" ; Set a title.

  resources@vpXF      = 0.1    ; Change the size and location of the 
  resources@vpYF      = 0.9    ; plot on the viewport.
  resources@vpWidthF  = 0.7
  resources@vpHeightF = 0.7

  resources@gsnScale = True  ; Force X/Y axes labels to be the same size.
  resources@gsnFrame = False ; Don't advance frame.

  map = gsn_contour_map(wks,pf(0,:,:)*0.01,resources) ; Convert pf to "mb" and
                                                     ; draw contours over map.
  txres               = True   ; Set some resources
  txres@txFontHeightF = 0.025  ; for a text string.
  txres@txFontColor   = 4
  gsn_text_ndc(wks,"~F25~Pressure (mb)",.45,.25,txres) ; Draw a text string.
                                                       ; on the viewport.
  frame(wks)   ; Advance the frame.
  
;---------- Begin fourth plot ------------------------------------------

  delete(resources@tiXAxisString)  ; Delete some resources you don't
  delete(resources@tiYAxisString)  ; need anymore.
  delete(resources@gsnFrame)

  delete(cmap)
  cmap = (/(/1.00, 1.00, 1.00/), (/0.00, 0.00, 0.00/), \
           (/.560, .500, .700/), (/.300, .300, .700/), \
           (/.100, .100, .700/), (/.000, .100, .700/), \
           (/.000, .300, .700/), (/.000, .500, .500/), \
           (/.000, .400, .200/), (/.000, .600, .000/), \
           (/.000, 1.00, 0.00/), (/.550, .550, .000/), \
           (/.570, .420, .000/), (/.700, .285, .000/), \
           (/.700, .180, .000/), (/.870, .050, .000/), \
           (/1.00, .000, .000/), (/0.00, 1.00, 1.00/), \
           (/.700, .700, .700/)/)

  gsn_define_colormap(wks, cmap)  ; Define a new color map.

  resources@mpFillOn              = True         ; Turn on map fill.
  resources@mpFillAreaSpecifiers  = (/"Water","Land","USStatesWater"/)
  resources@mpSpecifiedFillColors = (/17,18,17/)
  resources@mpAreaMaskingOn       = True            ; Indicate we want to 
  resources@mpMaskAreaSpecifiers  = "USStatesLand"  ; mask land.
  resources@mpPerimOn             = True            ; Turn on a perimeter.
  resources@mpGridMaskMode        = "MaskLand"      ; Mask grid over land.
  resources@cnFillDrawOrder       = "Predraw"       ; Draw contours first.

  resources@cnLevelSelectionMode = "ExplicitLevels" ; Define own levels.
  resources@cnLevels             = fspan(985.,1045.,13)

  resources@lbTitleString  = "~F25~pressure (mb)" ; Title for label bar.
  resources@cnLinesOn      = False         ; Turn off contour lines.
  resources@pmLabelBarSide = "Bottom"      ; Change orientation of
  resources@lbOrientation  = "Horizontal"  ; label bar.

  map = gsn_contour_map(wks,pf(1,:,:)*0.01,resources)

  delete(map)          ; Clean up.
  delete(resources)
  delete(txres)
end