subroutine krn_add(me, name, nb_state_vars, nb_non_zeros_exp, nb_non_zeros_imp, &
nb_FF_flux_ports, nb_FS_ports, nb_FF_src_ports, nb_SS_flux_ports, &
nb_SS_src_ports)
class(krn_t), intent(inout) :: me
character(*), intent(in) :: name
integer, intent(in) :: nb_state_vars
integer, intent(in) :: nb_non_zeros_exp
integer, intent(in) :: nb_non_zeros_imp
integer, intent(in) :: nb_FF_flux_ports
integer, intent(in) :: nb_FS_ports
integer, intent(in) :: nb_FF_src_ports
integer, intent(in) :: nb_SS_flux_ports
integer, intent(in) :: nb_SS_src_ports
me%nb_state_vars(me%idx) = nb_state_vars
me%nb_non_zeros_exp(me%idx) = nb_non_zeros_exp
me%nb_non_zeros_imp(me%idx) = nb_non_zeros_imp
call me%FF_flux_list%add(me%idx,name,nb_FF_flux_ports)
call me%FS_list%add(me%idx,name,nb_FS_ports)
call me%FF_src_list%add(me%idx,name,nb_FF_src_ports)
call me%SS_flux_list%add(me%idx,name,nb_SS_flux_ports)
call me%SS_src_list%add(me%idx,name,nb_SS_src_ports)
me%idx = me%idx + 1
end subroutine krn_add