forrest@0: ;************************************************ forrest@0: ; Read ascii, Write nc 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: load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" forrest@0: ;************************************************ forrest@0: begin forrest@0: ;--------------------------------------------------- forrest@0: ; final data forrest@0: c = addfile("Npp_0.05deg_mean_2.nc","c") forrest@0: filedimdef(c,"time",-1,True) forrest@0: forrest@0: nlat = 180*20 forrest@0: nlon = 360*20 forrest@0: forrest@0: ;--------------------------------------------------- forrest@0: ; input data forrest@0: b = "Npp_0.05deg_mean.int16" forrest@0: forrest@0: x = new((/nlat*nlon/),float) forrest@0: t = new((/1,nlat,nlon/),float) forrest@0: lon = new((/nlon/),float) forrest@0: lat = new((/nlat/),float) forrest@0: time = new((/1/),integer) forrest@0: forrest@0: ; sam result forrest@0: ; lon = fspan(-180.,179.95,nlon) forrest@0: ; lat = fspan(-90. , 89.95,nlat) forrest@0: forrest@0: do i = 0,nlon-1 forrest@0: lon(i) = -180. + i*(360./nlon) forrest@0: end do forrest@0: forrest@0: do j = 0,nlat-1 forrest@0: lat(j) = -90. + j*(180./nlat) forrest@0: end do forrest@0: forrest@0: time = 1 forrest@0: forrest@0: ; print (lon) forrest@0: ; print (lat) forrest@0: ; print (time) forrest@0: ;============================= forrest@0: ; create lat and long coordinate variables forrest@0: ;============================ forrest@0: lon!0 = "lon" forrest@0: lon@long_name = "lon" forrest@0: lon@units = "degrees-east" forrest@0: lon&lon = lon forrest@0: forrest@0: lat!0 = "lat" forrest@0: lat@long_name = "lat" forrest@0: lat@units = "degrees_north" forrest@0: lat&lat = lat forrest@0: ;============================= forrest@0: ; name dimensions of t and assign coordinate variables forrest@0: ;============================ forrest@0: t!0 = "time" forrest@0: t!1 = "lat" forrest@0: t!2 = "lon" forrest@0: t&time = time forrest@0: t&lat = lat forrest@0: t&lon = lon forrest@0: t@long_name = "net primary production" forrest@0: t@units = "gC/m^2/year" forrest@0: t@_FillValue= 1.e+36 forrest@0: t@missing_value= 1.e+36 forrest@0: forrest@0: ; t = fbinrecread(b,0,(/nlat,nlon/),"float") forrest@0: forrest@0: do j = 0,nlat-1 forrest@0: print (j) forrest@0: do i = 0,nlon-1 forrest@0: nrec = j*nlon + i forrest@0: x(nrec) = fbindirread(b,nrec,1,"float") forrest@0: end do forrest@0: end do forrest@0: print (lat) forrest@0: t = onedtond(x,(/nlat,nlon/)) forrest@0: forrest@0: c->NPP = t forrest@0: c->lat = lat forrest@0: c->lon = lon forrest@0: c->time = time forrest@0: forrest@0: ; do i = 0,nlon-1 forrest@0: ; do j = 0,nlat-1 forrest@0: ; if (t(0,j,i) .gt. 0.) then forrest@0: ; print (t(0,j,i)) forrest@0: ; end if forrest@0: ; end do forrest@0: ; end do forrest@0: end