PRO cc2stock, z_ib, c_i, S_i ;================================================================================================== ; ; this gorgeous script integrates a concentration c_i (./m3) into a stock S_i (./m2) ; by integrating vertically on any grid ; (c) Martouf, Helsinki, Aug 2014 ; ;================================================================================================== ; ;-------------------------------------------------------------------------------------------------- ; extract number of layers and time steps ;-------------------------------------------------------------------------------------------------- zsize = SIZE(c_i) nlay = zsize(1) ; number of layers nts = zsize(2) ; number of time steps S_i = FLTARR(nts) ;-------------------------------------------------------------------------------------------------- ; Compute layer depths ;-------------------------------------------------------------------------------------------------- dz = FLTARR(nlay,nts) FOR i = 0, nts - 1 DO BEGIN zz = 0. FOR jk = 0, nlay - 1 DO BEGIN dz(jk,i) = 2.* ( z_ib(jk,i) - zz ) zz = z_ib(jk,i) + dz(jk,i) / 2. ENDFOR ENDFOR ;-------------------------------------------------------------------------------------------------- ; Compute the weighted vertical average ;-------------------------------------------------------------------------------------------------- S_i[*] = 0. FOR i = 0, nts - 1 DO BEGIN FOR k = 0, nlay - 1 DO BEGIN S_i(i) = S_i(i) + dz(k,i) * c_i(k,i) ENDFOR ENDFOR ;-------------------------------------------------------------------------------------------------- END