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 ;************************************************
13 ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15 ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!
17 dir_root = "/fis/cgd/cseg/people/jeff/clamp_data/fluxnet/"
18 station_name = "CastelPorziano"
19 file_name_add = "carboeurope"
30 diro = dir_root + station_name + "/"
31 filo = station_name+"_"+year_start+"-"+year_end+"_monthly.nc"
32 c = addfile(diro+filo,"c")
36 diri = dir_root + station_name + "/"
38 nyear = year_end - year_start + 1 - 1
43 ; day_of_month = (/31.,28.,31.,30.,31.,30.,31.,31.,30.,31.,30.,31./)
44 end_of_month1 = (/31.,59.,90.,120.,151.,181.,212.,243.,273.,304.,334.,365./)
45 end_of_month2 = (/31.,60.,91.,121.,152.,182.,213.,244.,274.,305.,335.,366./)
47 data_out1 = new((/nyear,nmon/),float)
48 data_out2 = new((/nyear,nmon/),float)
49 data_out3 = new((/nyear,nmon/),float)
50 data_out4 = new((/nyear,nmon/),float)
51 time_out = new((/nyear,nmon/),integer)
60 ; if (mod(year,4) .eq. 0) then
61 if (year.eq.year_leap1.or.year.eq.year_leap2.or.year.eq.year_leap3) then
62 hour_of_month = end_of_month2 * 24.
64 hour_of_month = end_of_month1 * 24.
66 ; print (hour_of_month)
69 fili = file_name_add+"."+station_name+"."+year+".nc"
70 b = addfile(diri+fili,"r")
73 ; co2 flux unit: umol m-2 s-1
75 ; net radiation flux unit: W m-2
77 ; sensible heat flux unit: W m-2
79 ; latent heat flux unit: W m-2
82 ; time unit: hour since 01-01 (mm-dd)
88 timeR = hour_of_month(0)
90 timeL = hour_of_month(n-1)
91 timeR = hour_of_month(n)
96 i = ind(time.ge.timeL .and. time.lt.timeR)
99 data_out1(m,n) = avg(data1(i))
100 data_out2(m,n) = avg(data2(i))
101 data_out3(m,n) = avg(data3(i))
102 data_out4(m,n) = avg(data4(i))
104 time_out(m,n) = year*100 + n + 1
105 ; print (time_out(m,n))
109 if (m.lt.nyear-1) then
119 data_out1!1 = "month"
120 data_out1@long_name = data1@long_name
121 data_out1@units = data1@units
122 data_out1@_FillValue = 1.e+36
126 data_out2!1 = "month"
127 data_out2@long_name = data2@long_name
128 data_out2@units = data2@units
129 data_out2@_FillValue = 1.e+36
133 data_out3!1 = "month"
134 data_out3@long_name = data3@long_name
135 data_out3@units = data3@units
136 data_out3@_FillValue = 1.e+36
140 data_out4!1 = "month"
141 data_out4@long_name = data4@long_name
142 data_out4@units = data4@units
143 data_out4@_FillValue = 1.e+36
148 time_out@long_name = "current date as yyyymm"
149 time_out@units = "current date as yyyymm"
154 lat_out@units = "degrees_north"
155 lat_out@long_name = "Latitude"
156 lon_out@units = "degrees_east"
157 lon_out@long_name = "Longitude"
164 c->CO2_FLUX = data_out1
165 c->RAD_FLUX = data_out2
166 c->SH_FLUX = data_out3
167 c->LH_FLUX = data_out4