Newer
Older
module carbon_model_inmcm
!< @brief модель углеродного цикла inmcm
! интерфейс
! ---------------------------------------------------------------------------------
use carbon_model_to_core, only : set_tiles, set_pool, set_flux, set_mult
use carbon_model_inmcm_aux
implicit none
private
public :: carbon_model_assembly
contains
! внешние процедуры
! ---------------------------------------------------------------------------------
subroutine carbon_model_assembly()

Georgiy Faikin
committed
!use environment_core, only : Tsoil
use const, only : yrs, umol2kg
use grid, only : ms
integer :: n_Catm, n_Cveg, n_Csoil, n_Csoilb !< id пулов
call set_pool(pid = n_Catm, name = 'catm' )
call set_pool(pid = n_Cveg, name = 'cveg' , alias = Cveg )

Georgiy Faikin
committed
call set_pool(pid = n_Csoil, name = 'csoil' ,initial_value = 8.730624, alias = Csoil )
call set_pool(pid = n_Csoilb, name = 'csoilb' ,initial_value = 0.178176, alias = Csoilb )

Georgiy Faikin
committed
! station: opt: С1: С2:
! ROST 1 8.730624 0.178176

Georgiy Faikin
committed
! 2 2.7901482 0.0569418

Georgiy Faikin
committed
! DAO3 1 2.78124 0.05676
! 2 2.806524 0.057276
! 3 2.983512 0.060888
! 4 2.941372 0.060028
! DAO4 1 3.037706 0.061994
! 2 3.173926 0.064774
! 3 3.160304 0.064496
! 4 2.983218 0.060882
call set_flux(fid = n_F, pid_out = n_Csoil, pid_in = n_Catm, name = 'fmicr', alias = Fmicr)
call set_mult(n_F, 'exp', x_ij = Tsoil(:,:,ms+1), a = 2., k = 0.1, x0 = t_ref_soil)
call set_mult(n_F, 'step', x_ij = Tsoil(:,:,ms+1), x0 = tmin_soil, k = 0.5, y0 = 0.5)
call set_mult(n_F, 'mm', x_n = rsw, k = 1., x0 = -0.20)
call set_mult(n_F, 'hyp', x_n = rsw, k = 0.23, x0 = -0.23)
call set_mult(n_F, 'const', c = 1.5)
call set_flux(fid = n_F, pid_out = n_Csoilb, pid_in = n_Catm, name = 'fmicrb', alias = Fmicrb)
call set_mult(n_F, 'exp', x_ij = Tsoil(:,:,ms+1), a = 2., k = 0.1, x0 = t_ref_soil)
call set_mult(n_F, 'step', x_ij = Tsoil(:,:,ms+1), x0 = tmin_soil, k = 0.5, y0 = 0.5)
call set_mult(n_F, 'mm', x_n = rsw, k = 1., x0 = -0.20)
call set_mult(n_F, 'hyp', x_n = rsw, k = 0.23, x0 = -0.23)
call set_mult(n_F, 'const', c = 1.5)
call set_flux(fid = n_F, pid_out = n_Cveg, pid_in = n_Csoil, name = 'dv68', alias = Flit)
call set_mult(n_F, 'lin', x_ij = lambd)
call set_flux(fid = n_F, pid_out = n_Csoil, pid_in = n_Csoilb, name = 'ddc8', alias = Fers)
call set_mult(n_F, 'lin', x_ijn = ers_weight, k = landuseErs)