|
1 ;************************************************ |
|
2 ; read from mss |
|
3 ; output fire(COL_FIRE_CLOSS), NPP, NEE |
|
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 ; input data |
|
12 |
|
13 model_name = "i01.10casa" |
|
14 |
|
15 nlat = 64 |
|
16 nlon = 128 |
|
17 |
|
18 year_start = 1979 |
|
19 year_end = 2004 |
|
20 |
|
21 diri = "/ptmp/jeff/"+model_name+"/" |
|
22 |
|
23 system("mkdir "+diri) |
|
24 |
|
25 ; output |
|
26 |
|
27 diro = "/ptmp/jeff/" |
|
28 filo = model_name + "_Fire_C_"+year_start+"-"+year_end+"_monthly.nc" |
|
29 c = addfile(diro+filo,"c") |
|
30 filedimdef(c,"year",-1,True) |
|
31 |
|
32 |
|
33 nyear = year_end - year_start + 1 |
|
34 nmonth = 12 |
|
35 |
|
36 ; data1 = new((/nyear,nmonth,nlat,nlon/),float) |
|
37 data2 = new((/nyear,nmonth,nlat,nlon/),float) |
|
38 data3 = new((/nyear,nmonth,nlat,nlon/),float) |
|
39 date = new((/nyear,nmonth/),integer) |
|
40 |
|
41 ; input from mss |
|
42 |
|
43 do m = 0,nyear-1 |
|
44 year = year_start + m |
|
45 |
|
46 text = "mss:/FORREST/CCSM/results/"+model_name+"/lnd/hist/*"+year+"* " |
|
47 print (text) |
|
48 |
|
49 system("msrcp "+text+diri) |
|
50 system("dcswait") |
|
51 print (year) |
|
52 |
|
53 do n = 0,nmonth-1 |
|
54 nn = n+1 |
|
55 date(m,n) = year*100 +nn |
|
56 |
|
57 ; input file |
|
58 if (nn .ge. 10) then |
|
59 fili = model_name+".clm2.h0."+year+"-"+nn+".nc" |
|
60 else |
|
61 fili = model_name+".clm2.h0."+year+"-0"+nn+".nc" |
|
62 end if |
|
63 |
|
64 ; print (fili) |
|
65 |
|
66 g = addfile (diri+fili,"r") |
|
67 |
|
68 ; b1 = g->COL_FIRE_CLOSS |
|
69 ; data1(m,n,:,:) = (/b1(0,:,:)/) |
|
70 |
|
71 b2 = g->NPP |
|
72 data2(m,n,:,:) = (/b2(0,:,:)/) |
|
73 |
|
74 b3 = g->NEE |
|
75 data3(m,n,:,:) = (/b3(0,:,:)/) |
|
76 |
|
77 end do |
|
78 |
|
79 ; system("rm "+diri+"*") |
|
80 |
|
81 end do |
|
82 |
|
83 ; name dimensions and assign coordinate variables |
|
84 |
|
85 ; data1!0 ="year" |
|
86 ; data1!1 ="month" |
|
87 ; data1!2 = "lat" |
|
88 ; data1!3 = "lon" |
|
89 ; data1@long_name = b1@long_name |
|
90 ; data1@units = b1@units |
|
91 ; data1@_FillValue = b1@_FillValue |
|
92 |
|
93 data2!0 ="year" |
|
94 data2!1 ="month" |
|
95 data2!2 = "lat" |
|
96 data2!3 = "lon" |
|
97 data2@long_name = b2@long_name |
|
98 data2@units = b2@units |
|
99 data2@_FillValue = b2@_FillValue |
|
100 |
|
101 data3!0 ="year" |
|
102 data3!1 ="month" |
|
103 data3!2 = "lat" |
|
104 data3!3 = "lon" |
|
105 data3@long_name = b3@long_name |
|
106 data3@units = b3@units |
|
107 data3@_FillValue = b3@_FillValue |
|
108 |
|
109 date!0 ="year" |
|
110 date!1 ="month" |
|
111 date@long_name = "date: yyyymm" |
|
112 |
|
113 ; c->COL_FIRE_CLOSS = data1 |
|
114 c->NPP = data2 |
|
115 c->NEE = data3 |
|
116 c->date = date |
|
117 c->area = g->area |
|
118 |
|
119 print (date) |
|
120 |
|
121 end |