Zhao 系シース数値モデルの core 実装。
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=dp), | public, | parameter | :: | nonlinear_tol | = | 1.0d-5 | |
| integer, | public, | parameter | :: | nonlinear_max_iter | = | 60 | |
| integer, | public, | parameter | :: | nonlinear_max_backtrack | = | 20 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | x(:) | |||
| real(kind=dp), | intent(out) | :: | f(:) |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=dp), | public | :: | alpha_rad | = | 0.0d0 | ||
| real(kind=dp), | public | :: | n_swi_inf_m3 | = | 0.0d0 | ||
| real(kind=dp), | public | :: | n_phe_ref_m3 | = | 0.0d0 | ||
| real(kind=dp), | public | :: | n_phe0_m3 | = | 0.0d0 | ||
| real(kind=dp), | public | :: | photoelectron_population_fraction | = | 1.0d0 | ||
| real(kind=dp), | public | :: | t_swe_ev | = | 0.0d0 | ||
| real(kind=dp), | public | :: | t_phe_ev | = | 0.0d0 | ||
| real(kind=dp), | public | :: | v_d_electron_mps | = | 0.0d0 | ||
| real(kind=dp), | public | :: | v_d_ion_mps | = | 0.0d0 | ||
| real(kind=dp), | public | :: | m_i_kg | = | 0.0d0 | ||
| real(kind=dp), | public | :: | m_e_kg | = | 0.0d0 | ||
| real(kind=dp), | public | :: | v_swe_th_mps | = | 0.0d0 | ||
| real(kind=dp), | public | :: | v_phe_th_mps | = | 0.0d0 | ||
| real(kind=dp), | public | :: | cs_mps | = | 0.0d0 | ||
| real(kind=dp), | public | :: | mach | = | 0.0d0 | ||
| real(kind=dp), | public | :: | u | = | 0.0d0 | ||
| real(kind=dp), | public | :: | tau | = | 0.0d0 | ||
| real(kind=dp), | public | :: | lambda_d_phe_ref_m | = | 0.0d0 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(in) | :: | n_swe_inf_m3 | |||
| real(kind=dp), | intent(in) | :: | a_swe |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(in) | :: | phi0_v | |||
| real(kind=dp), | intent(in) | :: | phi_m_v | |||
| real(kind=dp), | intent(in) | :: | n_swe_inf_m3 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | f(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| character(len=1), | intent(in) | :: | branch | |||
| character(len=*), | intent(in) | :: | side | |||
| real(kind=dp), | intent(in) | :: | phi_hat | |||
| real(kind=dp), | intent(in) | :: | phi0_hat | |||
| real(kind=dp), | intent(in) | :: | phi_m_hat | |||
| real(kind=dp), | intent(in) | :: | n_swe_inf_hat | |||
| real(kind=dp), | intent(out) | :: | rho_hat |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| character(len=1), | intent(in) | :: | branch | |||
| character(len=*), | intent(in) | :: | side | |||
| real(kind=dp), | intent(in) | :: | phi_hat | |||
| real(kind=dp), | intent(in) | :: | phi0_hat | |||
| real(kind=dp), | intent(in) | :: | phi_m_hat | |||
| real(kind=dp), | intent(in) | :: | n_swe_inf_hat | |||
| real(kind=dp), | intent(out) | :: | n_swi_hat | |||
| real(kind=dp), | intent(out) | :: | n_swe_f_hat | |||
| real(kind=dp), | intent(out) | :: | n_swe_r_hat | |||
| real(kind=dp), | intent(out) | :: | n_phe_f_hat | |||
| real(kind=dp), | intent(out) | :: | n_phe_c_hat |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | alpha_deg | |||
| real(kind=dp), | intent(in) | :: | n_swi_inf_m3 | |||
| real(kind=dp), | intent(in) | :: | n_phe_ref_m3 | |||
| real(kind=dp), | intent(in) | :: | t_swe_ev | |||
| real(kind=dp), | intent(in) | :: | t_phe_ev | |||
| real(kind=dp), | intent(in) | :: | v_d_electron_mps | |||
| real(kind=dp), | intent(in) | :: | v_d_ion_mps | |||
| real(kind=dp), | intent(in) | :: | m_i_kg | |||
| real(kind=dp), | intent(in) | :: | m_e_kg | |||
| type(zhao_params_type), | intent(out) | :: | p | |||
| real(kind=dp), | intent(in), | optional | :: | photoelectron_population_fraction | ||
| real(kind=dp), | intent(in), | optional | :: | photoelectron_source_scale |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | model | |||
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(out) | :: | phi0_v | |||
| real(kind=dp), | intent(out) | :: | phi_m_v | |||
| real(kind=dp), | intent(out) | :: | n_swe_inf_m3 | |||
| character(len=1), | intent(out) | :: | branch |
Zhao の零電流定常根を fail-closed な status 付きで探索する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | model | |||
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(out) | :: | phi0_v | |||
| real(kind=dp), | intent(out) | :: | phi_m_v | |||
| real(kind=dp), | intent(out) | :: | n_swe_inf_m3 | |||
| character(len=1), | intent(out) | :: | branch | |||
| logical, | intent(out) | :: | success |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(out) | :: | phi0_v | |||
| real(kind=dp), | intent(out) | :: | phi_m_v | |||
| real(kind=dp), | intent(out) | :: | n_swe_inf_m3 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(out) | :: | phi0_v | |||
| real(kind=dp), | intent(out) | :: | n_swe_inf_m3 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(out) | :: | phi0_v | |||
| real(kind=dp), | intent(out) | :: | n_swe_inf_m3 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(out) | :: | x(3) | |||
| logical, | intent(out) | :: | success |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(out) | :: | x(2) | |||
| logical, | intent(out) | :: | success |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(out) | :: | x(2) | |||
| logical, | intent(out) | :: | success |
Type-B/C の定常電流式から ambient density を消去し、電位だけをbracketする。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| character(len=1), | intent(in) | :: | branch | |||
| real(kind=dp), | intent(out) | :: | x(2) | |||
| logical, | intent(out) | :: | success |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| character(len=1), | intent(in) | :: | branch | |||
| real(kind=dp), | intent(in) | :: | phi_v | |||
| real(kind=dp), | intent(out) | :: | residual_v | |||
| real(kind=dp), | intent(out) | :: | density_m3 | |||
| logical, | intent(out) | :: | success |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(in) | :: | x(:) | |||
| real(kind=dp), | intent(out) | :: | f(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(in) | :: | x(:) | |||
| real(kind=dp), | intent(out) | :: | f(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(zhao_params_type), | intent(in) | :: | p | |||
| real(kind=dp), | intent(in) | :: | x(:) | |||
| real(kind=dp), | intent(out) | :: | f(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | n | |||
| real(kind=dp), | intent(in) | :: | guesses(:,:) | |||
| procedure(nonlinear_residual) | :: | residual_fn | ||||
| real(kind=dp), | intent(out) | :: | x_best(n) | |||
| logical, | intent(out) | :: | success |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | n | |||
| real(kind=dp), | intent(in) | :: | x0(n) | |||
| procedure(nonlinear_residual) | :: | residual_fn | ||||
| real(kind=dp), | intent(out) | :: | x_out(n) | |||
| real(kind=dp), | intent(out) | :: | final_norm | |||
| logical, | intent(out) | :: | success |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | n | |||
| real(kind=dp), | intent(in) | :: | x(n) | |||
| real(kind=dp), | intent(in) | :: | f0(n) | |||
| procedure(nonlinear_residual) | :: | residual_fn | ||||
| real(kind=dp), | intent(out) | :: | jac(n,n) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | n | |||
| real(kind=dp), | intent(in) | :: | a_in(n,n) | |||
| real(kind=dp), | intent(in) | :: | b_in(n) | |||
| real(kind=dp), | intent(out) | :: | x(n) | |||
| logical, | intent(out) | :: | ok |