|
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.36cn" |
|
14 |
|
15 ;diro = "/ptmp/jeff/" |
|
16 diro = "/lustre/wolf-ddn/scratch/hof/cases1/i01.36cn_out/" |
|
17 filo = model_name + "_ameriflux_2076-2100_monthly.nc" |
|
18 c = addfile(diro+filo,"c") |
|
19 filedimdef(c,"year",-1,True) |
|
20 |
|
21 ; input data |
|
22 |
|
23 nlat = 96 |
|
24 nlon = 144 |
|
25 |
|
26 year_start = 2076 |
|
27 year_end = 2100 |
|
28 |
|
29 nyear = year_end - year_start + 1 |
|
30 nmonth = 12 |
|
31 |
|
32 data1 = new((/nyear,nmonth,nlat,nlon/),float) |
|
33 data2 = new((/nyear,nmonth,nlat,nlon/),float) |
|
34 data3 = new((/nyear,nmonth,nlat,nlon/),float) |
|
35 ;data4 = new((/nyear,nmonth,nlat,nlon/),float) |
|
36 ;data5 = new((/nyear,nmonth,nlat,nlon/),float) |
|
37 data6 = new((/nyear,nmonth,nlat,nlon/),float) |
|
38 data7 = new((/nyear,nmonth,nlat,nlon/),float) |
|
39 data8 = new((/nyear,nmonth,nlat,nlon/),float) |
|
40 data9 = new((/nyear,nmonth,nlat,nlon/),float) |
|
41 data10 = new((/nyear,nmonth,nlat,nlon/),float) |
|
42 date = new((/nyear,nmonth/),integer) |
|
43 |
|
44 ; name dimensions and assign coordinate variables |
|
45 |
|
46 data1!0 ="year" |
|
47 data1!1 ="month" |
|
48 data1!2 = "lat" |
|
49 data1!3 = "lon" |
|
50 |
|
51 data2!0 ="year" |
|
52 data2!1 ="month" |
|
53 data2!2 = "lat" |
|
54 data2!3 = "lon" |
|
55 |
|
56 data3!0 ="year" |
|
57 data3!1 ="month" |
|
58 data3!2 = "lat" |
|
59 data3!3 = "lon" |
|
60 |
|
61 ;data4!0 ="year" |
|
62 ;data4!1 ="month" |
|
63 ;data4!2 = "lat" |
|
64 ;data4!3 = "lon" |
|
65 |
|
66 ;data5!0 ="year" |
|
67 ;data5!1 ="month" |
|
68 ;data5!2 = "lat" |
|
69 ;data5!3 = "lon" |
|
70 |
|
71 data6!0 ="year" |
|
72 data6!1 ="month" |
|
73 data6!2 = "lat" |
|
74 data6!3 = "lon" |
|
75 |
|
76 data7!0 ="year" |
|
77 data7!1 ="month" |
|
78 data7!2 = "lat" |
|
79 data7!3 = "lon" |
|
80 |
|
81 data8!0 ="year" |
|
82 data8!1 ="month" |
|
83 data8!2 = "lat" |
|
84 data8!3 = "lon" |
|
85 |
|
86 data9!0 ="year" |
|
87 data9!1 ="month" |
|
88 data9!2 = "lat" |
|
89 data9!3 = "lon" |
|
90 |
|
91 data10!0 ="year" |
|
92 data10!1 ="month" |
|
93 data10!2 = "lat" |
|
94 data10!3 = "lon" |
|
95 |
|
96 date!0 ="year" |
|
97 date!1 ="month" |
|
98 date@long_name = "date: yyyymm" |
|
99 |
|
100 ; input dir |
|
101 diri = "/lustre/wolf-ddn/scratch/hof/cases1/"+model_name+"/" |
|
102 |
|
103 do m = 0,nyear-1 |
|
104 year = year_start + m |
|
105 do n = 0,nmonth-1 |
|
106 nn = n+1 |
|
107 date(m,n) = year*100 +nn |
|
108 |
|
109 ; input file |
|
110 if (nn .ge. 10) then |
|
111 fili = model_name+".clm2.h0."+year+"-"+nn+".nc" |
|
112 else |
|
113 fili = model_name+".clm2.h0."+year+"-0"+nn+".nc" |
|
114 end if |
|
115 |
|
116 print (fili) |
|
117 |
|
118 g = addfile (diri+fili,"r") |
|
119 |
|
120 b = g->NEE |
|
121 data1(m,n,:,:) = (/b(0,:,:)/) |
|
122 data1@long_name = b@long_name |
|
123 data1@units = b@units |
|
124 data1@_FillValue = b@_FillValue |
|
125 delete (b) |
|
126 |
|
127 b = g->GPP |
|
128 data2(m,n,:,:) = (/b(0,:,:)/) |
|
129 data2@long_name = b@long_name |
|
130 data2@units = b@units |
|
131 data2@_FillValue = b@_FillValue |
|
132 delete (b) |
|
133 |
|
134 b = g->ER |
|
135 data3(m,n,:,:) = (/b(0,:,:)/) |
|
136 data3@long_name = b@long_name |
|
137 data3@units = b@units |
|
138 data3@_FillValue = b@_FillValue |
|
139 delete (b) |
|
140 |
|
141 ;b = g->NETRAD |
|
142 ;data4(m,n,:,:) = (/b(0,:,:)/) |
|
143 ;data4@long_name = b@long_name |
|
144 ;data4@units = b@units |
|
145 ;data4@_FillValue = b@_FillValue |
|
146 ;delete (b) |
|
147 |
|
148 ;b = g->LATENT |
|
149 ;data5(m,n,:,:) = (/b(0,:,:)/) |
|
150 ;data5@long_name = b@long_name |
|
151 ;data5@units = b@units |
|
152 ;data5@_FillValue = b@_FillValue |
|
153 ;delete (b) |
|
154 |
|
155 b = g->FSH |
|
156 data6(m,n,:,:) = (/b(0,:,:)/) |
|
157 data6@long_name = b@long_name |
|
158 data6@units = b@units |
|
159 data6@_FillValue = b@_FillValue |
|
160 delete (b) |
|
161 |
|
162 b = g->FSDS |
|
163 data7(m,n,:,:) = (/b(0,:,:)/) |
|
164 data7@long_name = b@long_name |
|
165 data7@units = b@units |
|
166 data7@_FillValue = b@_FillValue |
|
167 delete (b) |
|
168 |
|
169 b = g->FCEV |
|
170 data8(m,n,:,:) = (/b(0,:,:)/) |
|
171 data8@long_name = b@long_name |
|
172 data8@units = b@units |
|
173 data8@_FillValue = b@_FillValue |
|
174 delete (b) |
|
175 |
|
176 b = g->FCTR |
|
177 data9(m,n,:,:) = (/b(0,:,:)/) |
|
178 data9@long_name = b@long_name |
|
179 data9@units = b@units |
|
180 data9@_FillValue = b@_FillValue |
|
181 delete (b) |
|
182 |
|
183 b = g->FGEV |
|
184 data10(m,n,:,:) = (/b(0,:,:)/) |
|
185 data10@long_name = b@long_name |
|
186 data10@units = b@units |
|
187 data10@_FillValue = b@_FillValue |
|
188 delete (b) |
|
189 |
|
190 end do |
|
191 end do |
|
192 |
|
193 c->NEE = data1 |
|
194 c->GPP = data2 |
|
195 c->ER = data3 |
|
196 ;c->NETRAD = data4 |
|
197 ;c->LATENT = data5 |
|
198 c->FSH = data6 |
|
199 c->FSDS = data7 |
|
200 c->FCEV = data8 |
|
201 c->FCTR = data9 |
|
202 c->FGEV = data10 |
|
203 c->date = date |
|
204 c->area = g->area |
|
205 |
|
206 print (date) |
|
207 |
|
208 end |