Skip to content
Snippets Groups Projects
Commit 362488e7 authored by Georgiy Faikin's avatar Georgiy Faikin
Browse files

Add new basic function: spline

parent 032b3616
No related branches found
No related tags found
No related merge requests found
...@@ -41,6 +41,8 @@ contains ...@@ -41,6 +41,8 @@ contains
fun_kit%fun => fun_mm fun_kit%fun => fun_mm
case('step') case('step')
fun_kit%fun => fun_step fun_kit%fun => fun_step
!case('spline')
!fun_kit%fun => fun_spline
case default case default
stop "check failed : unknown funtype at set_fun" stop "check failed : unknown funtype at set_fun"
end select end select
...@@ -124,4 +126,14 @@ contains ...@@ -124,4 +126,14 @@ contains
y = pars(5) * pars(4)**( pars(3) * (args(1) - pars(2)) ) + pars(1) y = pars(5) * pars(4)**( pars(3) * (args(1) - pars(2)) ) + pars(1)
end function fun_exp end function fun_exp
!> Spline function: y = (a+k)*x + (y0+c)/2 + (a-k)/2*|x-x0|
function fun_spline(args, pars) result(y)
implicit none
real, intent(in) :: args(narg_default)
real, intent(in) :: pars(npar_default)
real :: y
y = (pars(4)+pars(3))*args(1) + (pars(1)+pars(5))/2 + (pars(4)-pars(3))/2*abs(args(1)-pars(2))
end function fun_spline
end module end module
...@@ -34,8 +34,8 @@ contains ...@@ -34,8 +34,8 @@ contains
call set_pool(pid = n_Catm, name = 'catm' ) call set_pool(pid = n_Catm, name = 'catm' )
call set_pool(pid = n_Cveg, name = 'cveg' , alias = Cveg ) call set_pool(pid = n_Cveg, name = 'cveg' , alias = Cveg )
call set_pool(pid = n_Csoil, name = 'csoil' ,initial_value = 2.78124, alias = Csoil ) call set_pool(pid = n_Csoil, name = 'csoil' ,initial_value = 2.983218, alias = Csoil )
call set_pool(pid = n_Csoilb, name = 'csoilb' ,initial_value = 0.05676, alias = Csoilb ) call set_pool(pid = n_Csoilb, name = 'csoilb' ,initial_value = 0.060882, alias = Csoilb )
! station: opt: С1: С2: ! station: opt: С1: С2:
! ROST 1 8.730624 0.178176 ! ROST 1 8.730624 0.178176
......
...@@ -25,8 +25,8 @@ module carbon_model_socs ...@@ -25,8 +25,8 @@ module carbon_model_socs
call set_pool(pid = n_Catm, name = 'catm') call set_pool(pid = n_Catm, name = 'catm')
call set_pool(pid = n_Cveg, name = 'cveg') call set_pool(pid = n_Cveg, name = 'cveg')
call set_pool(pid = n_Csoil1, name = 'csoil1',initial_value = 0.0569418, alias = C1) call set_pool(pid = n_Csoil1, name = 'csoil1',initial_value = 0.060888, alias = C1)
call set_pool(pid = n_Csoil2, name = 'csoil2',initial_value = 2.7901482, alias = C2) call set_pool(pid = n_Csoil2, name = 'csoil2',initial_value = 2.983512, alias = C2)
! station: opt: С1: С2: ! station: opt: С1: С2:
! DAO4 1 0.061994 3.037706 ! DAO4 1 0.061994 3.037706
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment