forrest@0: ;************************************************* forrest@0: ; ce_1.ncl forrest@0: ;************************************************ forrest@0: load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" forrest@0: load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" forrest@0: ;************************************************ forrest@0: begin forrest@0: ;************************************************ forrest@0: ; read in observed data forrest@0: ;************************************************ forrest@0: f = addfile ("Npp_T42_mean.nc","r") forrest@0: y = f->NPP forrest@0: ;************************************************ forrest@0: ; read in model data forrest@0: ;************************************************ forrest@0: g = addfile ("i01.03cn_1545-1569_ANN_climo.nc","r") forrest@0: ;g = addfile ("i01.04casa_1605-1629_ANN_climo.nc","r") forrest@0: x = g->NPP forrest@0: forrest@0: nsec_per_year = 86400.*365. forrest@0: x = x * nsec_per_year forrest@0: forrest@0: x@units = "gC/m^2/year" forrest@0: ;************************************************ forrest@0: ;fill ob missing grid the same as model forrest@0: ;************************************************ forrest@0: delta = 0.00001 forrest@0: x0 = x(0,:,:) forrest@0: y = where(ismissing(y).and.(ismissing(x0).or.(x0.lt.delta)),0.,y) forrest@0: forrest@0: y@units = "gC/m^2/year" forrest@0: ;************************************************ forrest@0: ;model - observed forrest@0: ;************************************************ forrest@0: z = x forrest@0: z = x(0,:,:) - y(:,:) forrest@0: ;************************************************ forrest@0: ; create 3 plots forrest@0: ;************************************************ forrest@0: wks = gsn_open_wks("ps","xy") ; open a ps file forrest@0: gsn_define_colormap(wks,"gui_default") ; choose colormap forrest@0: forrest@0: res = True ; Use plot options forrest@0: res@cnFillOn = True ; Turn on color fill forrest@0: res@gsnSpreadColors = True ; use full colormap forrest@0: ; res@cnFillMode = "RasterFill" ; Turn on raster color forrest@0: ; res@lbLabelAutoStride = True forrest@0: res@cnLinesOn = False ; Turn off contourn lines forrest@0: res@mpFillOn = False ; Turn off map fill forrest@0: res@tiMainString = "Observed MODIS MOD 17" forrest@0: forrest@0: res@gsnSpreadColors = True ; use full colormap forrest@0: res@cnLevelSelectionMode = "ManualLevels" ; Manual contour invtervals forrest@0: res@cnMinLevelValF = 0. ; Min level forrest@0: res@cnMaxLevelValF = 2200. ; Max level forrest@0: res@cnLevelSpacingF = 200. ; interval forrest@0: forrest@0: res@gsnFrame = False ; Do not draw plot forrest@0: res@gsnDraw = False ; Do not advance frame forrest@0: forrest@0: plot=new(3,graphic) ; create graphic array forrest@0: forrest@0: plot(0) = gsn_csm_contour_map_ce(wks,y,res) ; for observed forrest@0: forrest@0: res@tiMainString = "Model i01.03cn" forrest@0: ; res@tiMainString = "Model i01.04casa" forrest@0: plot(1) = gsn_csm_contour_map_ce(wks,x(0,:,:),res) ; for model forrest@0: forrest@0: res@cnMinLevelValF = -500 ; Min level forrest@0: res@cnMaxLevelValF = 500. ; Max level forrest@0: res@cnLevelSpacingF = 50. ; interval forrest@0: res@tiMainString = "(Model i01.03cn) - (observed)" forrest@0: ; res@tiMainString = "(Model i01.04casa) - (observed)" forrest@0: plot(2) = gsn_csm_contour_map_ce(wks,z(0,:,:),res) ; for model - ob forrest@0: forrest@0: ;*********************************************** forrest@0: ; create panel plot forrest@0: ;*********************************************** forrest@0: pres = True ; panel plot mods desired forrest@0: pres@gsnPanelYWhiteSpacePercent = 5 ; increase white space around forrest@0: ; indiv. plots in panel forrest@0: pres@gsnMaximize = True ; fill the page forrest@0: forrest@0: gsn_panel(wks,plot,(/3,1/),pres) ; create panel plot forrest@0: forrest@0: system("convert xy.ps xy.png") forrest@0: end