Modifications to scoring and graphics production for the final version of code for the C-LAMP paper in GCB.
1 ;************************************************
2 ; Read half-hourly data and write monthly data
3 ; input data is : half-hourly
5 ; output data is : CO2_flux, RAD_FLUX, SH_FLUX, LH_FLUX
7 ;************************************************
8 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
9 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
10 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
11 ;************************************************
14 dir_root = "/fis/cgd/cseg/people/jeff/clamp_data/fluxnet/"
15 station_name = "Lethbridge"
16 file_name_add = "ameriflux"
23 lon_out = -112.940167 + 360.
26 diro = dir_root + station_name + "/"
27 filo = station_name+"_"+year_start+"-"+year_end+"_monthly.nc"
28 c = addfile(diro+filo,"c")
32 diri = dir_root + station_name + "/"
34 nyear = year_end - year_start + 1
39 ; day_of_month = (/31.,28.,31.,30.,31.,30.,31.,31.,30.,31.,30.,31./)
40 end_of_month1 = (/31.,59.,90.,120.,151.,181.,212.,243.,273.,304.,334.,365./)
41 end_of_month2 = (/31.,60.,91.,121.,152.,182.,213.,244.,274.,305.,335.,366./)
43 data_out1 = new((/nyear,nmon/),float)
44 data_out2 = new((/nyear,nmon/),float)
45 data_out3 = new((/nyear,nmon/),float)
46 data_out4 = new((/nyear,nmon/),float)
47 time_out = new((/nyear,nmon/),integer)
48 ; lat_out = new((/nlat/),float)
49 ; lon_out = new((/nlon/),float)
54 ; if (mod(year,4) .eq. 0) then
55 if (year .eq. year_leap1 .or. year .eq. year_leap2 ) then
56 hour_of_month = end_of_month2 * 24.
58 hour_of_month = end_of_month1 * 24.
60 ; print (hour_of_month)
63 fili = file_name_add+"."+station_name+"."+year+".nc"
64 b = addfile(diri+fili,"r")
67 ; co2 flux unit: umol m-2 s-1
69 ; net radiation flux unit: W m-2
71 ; sensible heat flux unit: W m-2
73 ; latent heat flux unit: W m-2
76 ; time unit: hour since 01-01 (mm-dd)
82 timeR = hour_of_month(0)
84 timeL = hour_of_month(n-1)
85 timeR = hour_of_month(n)
90 i = ind(time.ge.timeL .and. time.lt.timeR)
93 data_out1(m,n) = avg(data1(i))
94 data_out2(m,n) = avg(data2(i))
95 data_out3(m,n) = avg(data3(i))
96 data_out4(m,n) = avg(data4(i))
98 time_out(m,n) = year*100 + n + 1
99 ; print (time_out(m,n))
103 if (m.lt.nyear-1) then
113 data_out1!1 = "month"
114 data_out1@long_name = data1@long_name
115 data_out1@units = data1@units
116 data_out1@_FillValue = 1.e+36
120 data_out2!1 = "month"
121 data_out2@long_name = data2@long_name
122 data_out2@units = data2@units
123 data_out2@_FillValue = 1.e+36
127 data_out3!1 = "month"
128 data_out3@long_name = data3@long_name
129 data_out3@units = data3@units
130 data_out3@_FillValue = 1.e+36
134 data_out4!1 = "month"
135 data_out4@long_name = data4@long_name
136 data_out4@units = data4@units
137 data_out4@_FillValue = 1.e+36
142 time_out@long_name = "current date as yyyymm"
143 time_out@units = "current date as yyyymm"
148 lat_out@units = "degrees_north"
149 lat_out@long_name = "Latitude"
150 lon_out@units = "degrees_east"
151 lon_out@long_name = "Longitude"
158 c->CO2_FLUX = data_out1
159 c->RAD_FLUX = data_out2
160 c->SH_FLUX = data_out3
161 c->LH_FLUX = data_out4