|
1 ;************************************************ |
|
2 ; Read ascii, Write nc |
|
3 ; output: lat: N->S lon: -180W->180E |
|
4 ;************************************************ |
|
5 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" |
|
6 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" |
|
7 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" |
|
8 ;************************************************ |
|
9 begin |
|
10 |
|
11 ; output |
|
12 |
|
13 model_name = "i01.10cn" |
|
14 |
|
15 diro = "/ptmp/jeff/" |
|
16 filo = model_name + "_ameriflux_1990-2004_monthly.nc" |
|
17 c = addfile(diro+filo,"c") |
|
18 filedimdef(c,"year",-1,True) |
|
19 |
|
20 ; input data |
|
21 |
|
22 nlat = 64 |
|
23 nlon = 128 |
|
24 |
|
25 year_start = 1990 |
|
26 year_end = 2004 |
|
27 |
|
28 nyear = year_end - year_start + 1 |
|
29 nmonth = 12 |
|
30 |
|
31 data1 = new((/nyear,nmonth,nlat,nlon/),float) |
|
32 data2 = new((/nyear,nmonth,nlat,nlon/),float) |
|
33 data3 = new((/nyear,nmonth,nlat,nlon/),float) |
|
34 data4 = new((/nyear,nmonth,nlat,nlon/),float) |
|
35 data5 = new((/nyear,nmonth,nlat,nlon/),float) |
|
36 data6 = new((/nyear,nmonth,nlat,nlon/),float) |
|
37 data7 = new((/nyear,nmonth,nlat,nlon/),float) |
|
38 date = new((/nyear,nmonth/),integer) |
|
39 |
|
40 ; name dimensions and assign coordinate variables |
|
41 |
|
42 data1!0 ="year" |
|
43 data1!1 ="month" |
|
44 data1!2 = "lat" |
|
45 data1!3 = "lon" |
|
46 |
|
47 data2!0 ="year" |
|
48 data2!1 ="month" |
|
49 data2!2 = "lat" |
|
50 data2!3 = "lon" |
|
51 |
|
52 data3!0 ="year" |
|
53 data3!1 ="month" |
|
54 data3!2 = "lat" |
|
55 data3!3 = "lon" |
|
56 |
|
57 data4!0 ="year" |
|
58 data4!1 ="month" |
|
59 data4!2 = "lat" |
|
60 data4!3 = "lon" |
|
61 |
|
62 data5!0 ="year" |
|
63 data5!1 ="month" |
|
64 data5!2 = "lat" |
|
65 data5!3 = "lon" |
|
66 |
|
67 data6!0 ="year" |
|
68 data6!1 ="month" |
|
69 data6!2 = "lat" |
|
70 data6!3 = "lon" |
|
71 |
|
72 data7!0 ="year" |
|
73 data7!1 ="month" |
|
74 data7!2 = "lat" |
|
75 data7!3 = "lon" |
|
76 |
|
77 date!0 ="year" |
|
78 date!1 ="month" |
|
79 date@long_name = "date: yyyymm" |
|
80 |
|
81 ; input dir |
|
82 diri = "/ptmp/jeff/"+model_name+"/" |
|
83 |
|
84 do m = 0,nyear-1 |
|
85 year = year_start + m |
|
86 do n = 0,nmonth-1 |
|
87 nn = n+1 |
|
88 date(m,n) = year*100 +nn |
|
89 |
|
90 ; input file |
|
91 if (nn .ge. 10) then |
|
92 fili = model_name+".clm2.h0."+year+"-"+nn+".nc" |
|
93 else |
|
94 fili = model_name+".clm2.h0."+year+"-0"+nn+".nc" |
|
95 end if |
|
96 |
|
97 print (fili) |
|
98 |
|
99 g = addfile (diri+fili,"r") |
|
100 |
|
101 b = g->NEE |
|
102 data1(m,n,:,:) = (/b(0,:,:)/) |
|
103 data1@long_name = b@long_name |
|
104 data1@units = b@units |
|
105 data1@_FillValue = b@_FillValue |
|
106 delete (b) |
|
107 |
|
108 b = g->GPP |
|
109 data2(m,n,:,:) = (/b(0,:,:)/) |
|
110 data2@long_name = b@long_name |
|
111 data2@units = b@units |
|
112 data2@_FillValue = b@_FillValue |
|
113 delete (b) |
|
114 |
|
115 b = g->ER |
|
116 data3(m,n,:,:) = (/b(0,:,:)/) |
|
117 data3@long_name = b@long_name |
|
118 data3@units = b@units |
|
119 data3@_FillValue = b@_FillValue |
|
120 delete (b) |
|
121 |
|
122 b = g->NETRAD |
|
123 data4(m,n,:,:) = (/b(0,:,:)/) |
|
124 data4@long_name = b@long_name |
|
125 data4@units = b@units |
|
126 data4@_FillValue = b@_FillValue |
|
127 delete (b) |
|
128 |
|
129 b = g->LATENT |
|
130 data5(m,n,:,:) = (/b(0,:,:)/) |
|
131 data5@long_name = b@long_name |
|
132 data5@units = b@units |
|
133 data5@_FillValue = b@_FillValue |
|
134 delete (b) |
|
135 |
|
136 b = g->FSH |
|
137 data6(m,n,:,:) = (/b(0,:,:)/) |
|
138 data6@long_name = b@long_name |
|
139 data6@units = b@units |
|
140 data6@_FillValue = b@_FillValue |
|
141 delete (b) |
|
142 |
|
143 b = g->FSDS |
|
144 data7(m,n,:,:) = (/b(0,:,:)/) |
|
145 data7@long_name = b@long_name |
|
146 data7@units = b@units |
|
147 data7@_FillValue = b@_FillValue |
|
148 delete (b) |
|
149 |
|
150 end do |
|
151 end do |
|
152 |
|
153 c->NEE = data1 |
|
154 c->GPP = data2 |
|
155 c->ER = data3 |
|
156 c->NETRAD = data4 |
|
157 c->LATENT = data5 |
|
158 c->FSH = data6 |
|
159 c->FSDS = data7 |
|
160 c->date = date |
|
161 c->area = g->area |
|
162 |
|
163 print (date) |
|
164 |
|
165 end |