1 | |
---|
2 | PRO cc2stock, z_ib, c_i, S_i |
---|
3 | |
---|
4 | ;================================================================================================== |
---|
5 | ; |
---|
6 | ; this gorgeous script integrates a concentration c_i (./m3) into a stock S_i (./m2) |
---|
7 | ; by integrating vertically on any grid |
---|
8 | ; (c) Martouf, Helsinki, Aug 2014 |
---|
9 | ; |
---|
10 | ;================================================================================================== |
---|
11 | ; |
---|
12 | ;-------------------------------------------------------------------------------------------------- |
---|
13 | ; extract number of layers and time steps |
---|
14 | ;-------------------------------------------------------------------------------------------------- |
---|
15 | |
---|
16 | zsize = SIZE(c_i) |
---|
17 | |
---|
18 | nlay = zsize(1) ; number of layers |
---|
19 | nts = zsize(2) ; number of time steps |
---|
20 | |
---|
21 | S_i = FLTARR(nts) |
---|
22 | |
---|
23 | ;-------------------------------------------------------------------------------------------------- |
---|
24 | ; Compute layer depths |
---|
25 | ;-------------------------------------------------------------------------------------------------- |
---|
26 | dz = FLTARR(nlay,nts) |
---|
27 | |
---|
28 | FOR i = 0, nts - 1 DO BEGIN |
---|
29 | zz = 0. |
---|
30 | FOR jk = 0, nlay - 1 DO BEGIN |
---|
31 | dz(jk,i) = 2.* ( z_ib(jk,i) - zz ) |
---|
32 | zz = z_ib(jk,i) + dz(jk,i) / 2. |
---|
33 | ENDFOR |
---|
34 | ENDFOR |
---|
35 | |
---|
36 | ;-------------------------------------------------------------------------------------------------- |
---|
37 | ; Compute the weighted vertical average |
---|
38 | ;-------------------------------------------------------------------------------------------------- |
---|
39 | |
---|
40 | S_i[*] = 0. |
---|
41 | FOR i = 0, nts - 1 DO BEGIN |
---|
42 | FOR k = 0, nlay - 1 DO BEGIN |
---|
43 | S_i(i) = S_i(i) + dz(k,i) * c_i(k,i) |
---|
44 | ENDFOR |
---|
45 | ENDFOR |
---|
46 | |
---|
47 | ;-------------------------------------------------------------------------------------------------- |
---|
48 | |
---|
49 | END |
---|