1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/carbon_sink/02.write_tseries_casa.ncl Mon Jan 26 22:08:20 2009 -0500
1.3 @@ -0,0 +1,121 @@
1.4 +;************************************************
1.5 +; read from mss
1.6 +; output fire(COL_FIRE_CLOSS), NPP, NEE
1.7 +;************************************************
1.8 +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
1.9 +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
1.10 +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
1.11 +;************************************************
1.12 +begin
1.13 +
1.14 +; input data
1.15 +
1.16 + model_name = "i01.10casa"
1.17 +
1.18 + nlat = 64
1.19 + nlon = 128
1.20 +
1.21 + year_start = 1979
1.22 + year_end = 2004
1.23 +
1.24 + diri = "/ptmp/jeff/"+model_name+"/"
1.25 +
1.26 + system("mkdir "+diri)
1.27 +
1.28 +; output
1.29 +
1.30 + diro = "/ptmp/jeff/"
1.31 + filo = model_name + "_Fire_C_"+year_start+"-"+year_end+"_monthly.nc"
1.32 + c = addfile(diro+filo,"c")
1.33 + filedimdef(c,"year",-1,True)
1.34 +
1.35 +
1.36 + nyear = year_end - year_start + 1
1.37 + nmonth = 12
1.38 +
1.39 +; data1 = new((/nyear,nmonth,nlat,nlon/),float)
1.40 + data2 = new((/nyear,nmonth,nlat,nlon/),float)
1.41 + data3 = new((/nyear,nmonth,nlat,nlon/),float)
1.42 + date = new((/nyear,nmonth/),integer)
1.43 +
1.44 +; input from mss
1.45 +
1.46 + do m = 0,nyear-1
1.47 + year = year_start + m
1.48 +
1.49 + text = "mss:/FORREST/CCSM/results/"+model_name+"/lnd/hist/*"+year+"* "
1.50 + print (text)
1.51 +
1.52 + system("msrcp "+text+diri)
1.53 + system("dcswait")
1.54 + print (year)
1.55 +
1.56 + do n = 0,nmonth-1
1.57 + nn = n+1
1.58 + date(m,n) = year*100 +nn
1.59 +
1.60 +; input file
1.61 + if (nn .ge. 10) then
1.62 + fili = model_name+".clm2.h0."+year+"-"+nn+".nc"
1.63 + else
1.64 + fili = model_name+".clm2.h0."+year+"-0"+nn+".nc"
1.65 + end if
1.66 +
1.67 +; print (fili)
1.68 +
1.69 + g = addfile (diri+fili,"r")
1.70 +
1.71 +; b1 = g->COL_FIRE_CLOSS
1.72 +; data1(m,n,:,:) = (/b1(0,:,:)/)
1.73 +
1.74 + b2 = g->NPP
1.75 + data2(m,n,:,:) = (/b2(0,:,:)/)
1.76 +
1.77 + b3 = g->NEE
1.78 + data3(m,n,:,:) = (/b3(0,:,:)/)
1.79 +
1.80 + end do
1.81 +
1.82 +; system("rm "+diri+"*")
1.83 +
1.84 + end do
1.85 +
1.86 +; name dimensions and assign coordinate variables
1.87 +
1.88 +; data1!0 ="year"
1.89 +; data1!1 ="month"
1.90 +; data1!2 = "lat"
1.91 +; data1!3 = "lon"
1.92 +; data1@long_name = b1@long_name
1.93 +; data1@units = b1@units
1.94 +; data1@_FillValue = b1@_FillValue
1.95 +
1.96 + data2!0 ="year"
1.97 + data2!1 ="month"
1.98 + data2!2 = "lat"
1.99 + data2!3 = "lon"
1.100 + data2@long_name = b2@long_name
1.101 + data2@units = b2@units
1.102 + data2@_FillValue = b2@_FillValue
1.103 +
1.104 + data3!0 ="year"
1.105 + data3!1 ="month"
1.106 + data3!2 = "lat"
1.107 + data3!3 = "lon"
1.108 + data3@long_name = b3@long_name
1.109 + data3@units = b3@units
1.110 + data3@_FillValue = b3@_FillValue
1.111 +
1.112 + date!0 ="year"
1.113 + date!1 ="month"
1.114 + date@long_name = "date: yyyymm"
1.115 +
1.116 +; c->COL_FIRE_CLOSS = data1
1.117 + c->NPP = data2
1.118 + c->NEE = data3
1.119 + c->date = date
1.120 + c->area = g->area
1.121 +
1.122 + print (date)
1.123 +
1.124 +end