LOG_FACT Interface

public interface LOG_FACT

Calls

interface~~log_fact~~CallsGraph interface~log_fact LOG_FACT proc~log_fact_dp LOG_FACT_DP interface~log_fact->proc~log_fact_dp

Called by

interface~~log_fact~~CalledByGraph interface~log_fact LOG_FACT proc~assoc_legendre_and_deriv_dp ASSOC_LEGENDRE_AND_DERIV_DP proc~assoc_legendre_and_deriv_dp->interface~log_fact proc~assoc_legendre_dp ASSOC_LEGENDRE_DP proc~assoc_legendre_dp->interface~log_fact proc~cgcoeff_dp CGCOEFF_DP proc~cgcoeff_dp->interface~log_fact proc~grad_ssh_dp GRAD_SSH_DP proc~grad_ssh_dp->interface~log_fact interface~assoc_legendre_and_deriv ASSOC_LEGENDRE_AND_DERIV proc~grad_ssh_dp->interface~assoc_legendre_and_deriv proc~l_ssh_dp L_SSH_DP proc~l_ssh_dp->interface~log_fact proc~l_ssh_dp->interface~assoc_legendre_and_deriv proc~pvsh_pol_dp PVSH_POL_DP proc~pvsh_pol_dp->interface~log_fact proc~pvsh_pol_dp->interface~assoc_legendre_and_deriv proc~pvsh_tor_dp PVSH_TOR_DP proc~pvsh_tor_dp->interface~log_fact proc~pvsh_tor_dp->interface~assoc_legendre_and_deriv proc~ssh_dp SSH_DP proc~ssh_dp->interface~log_fact interface~assoc_legendre ASSOC_LEGENDRE proc~ssh_dp->interface~assoc_legendre proc~ssh_ortho SSH_ORTHO proc~ssh_ortho->interface~log_fact proc~vsh_pol_dn_dp VSH_POL_DN_DP proc~vsh_pol_dn_dp->interface~log_fact proc~vsh_pol_dn_dp->interface~assoc_legendre_and_deriv proc~vsh_pol_up_dp VSH_POL_UP_DP proc~vsh_pol_up_dp->interface~log_fact proc~vsh_pol_up_dp->interface~assoc_legendre_and_deriv interface~assoc_legendre->proc~assoc_legendre_dp interface~assoc_legendre_and_deriv->proc~assoc_legendre_and_deriv_dp interface~cgcoeff CGCOEFF interface~cgcoeff->proc~cgcoeff_dp interface~grad_ssh GRAD_SSH interface~grad_ssh->proc~grad_ssh_dp interface~l_ssh L_SSH interface~l_ssh->proc~l_ssh_dp interface~pvsh_pol PVSH_POL interface~pvsh_pol->proc~pvsh_pol_dp interface~pvsh_tor PVSH_TOR interface~pvsh_tor->proc~pvsh_tor_dp interface~ssh SSH interface~ssh->proc~ssh_dp interface~vsh_pol_dn VSH_POL_DN interface~vsh_pol_dn->proc~vsh_pol_dn_dp interface~vsh_pol_up VSH_POL_UP interface~vsh_pol_up->proc~vsh_pol_up_dp program~main MAIN program~main->proc~ssh_ortho proc~batch_alm_cons BATCH_ALM_CONS program~main->proc~batch_alm_cons proc~batch_grad_ssh_cons BATCH_GRAD_SSH_CONS program~main->proc~batch_grad_ssh_cons proc~batch_l_ssh_cons BATCH_L_SSH_CONS program~main->proc~batch_l_ssh_cons proc~batch_pvsh_pol_cons BATCH_PVSH_POL_CONS program~main->proc~batch_pvsh_pol_cons proc~batch_pvsh_tor_cons BATCH_PVSH_TOR_CONS program~main->proc~batch_pvsh_tor_cons proc~batch_ssh_cons BATCH_SSH_CONS program~main->proc~batch_ssh_cons proc~batch_vsh_pol_dn_cons BATCH_VSH_POL_DN_CONS program~main->proc~batch_vsh_pol_dn_cons proc~batch_vsh_pol_up_cons BATCH_VSH_POL_UP_CONS program~main->proc~batch_vsh_pol_up_cons proc~test1_gw TEST1_GW program~main->proc~test1_gw proc~test1_vsh TEST1_VSH program~main->proc~test1_vsh proc~test2_gw TEST2_GW program~main->proc~test2_gw proc~test2_vsh TEST2_VSH program~main->proc~test2_vsh proc~batch_dalm_cons BATCH_DALM_CONS program~main->proc~batch_dalm_cons proc~batch_pvsh_rad_cons BATCH_PVSH_RAD_CONS program~main->proc~batch_pvsh_rad_cons proc~batch_vsh_tor_cons BATCH_VSH_TOR_CONS program~main->proc~batch_vsh_tor_cons proc~batch_alm_cons->interface~assoc_legendre proc~batch_grad_ssh_cons->interface~grad_ssh proc~batch_l_ssh_cons->interface~l_ssh proc~batch_pvsh_pol_cons->interface~pvsh_pol proc~batch_pvsh_tor_cons->interface~pvsh_tor proc~batch_ssh_cons->interface~ssh proc~batch_vsh_pol_dn_cons->interface~vsh_pol_dn proc~batch_vsh_pol_up_cons->interface~vsh_pol_up proc~bench_legendre BENCH_LEGENDRE proc~bench_legendre->interface~assoc_legendre proc~bench_ssh BENCH_SSH proc~bench_ssh->interface~ssh proc~bench_vsh_pol_dn BENCH_VSH_POL_DN proc~bench_vsh_pol_dn->interface~vsh_pol_dn proc~bench_vsh_pol_up BENCH_VSH_POL_UP proc~bench_vsh_pol_up->interface~vsh_pol_up proc~ddx_assoc_legendre_dp DDX_ASSOC_LEGENDRE_DP proc~ddx_assoc_legendre_dp->interface~assoc_legendre_and_deriv proc~field_known FIELD_KNOWN proc~field_known->interface~pvsh_pol proc~field_known->interface~pvsh_tor interface~pvsh_rad PVSH_RAD proc~field_known->interface~pvsh_rad proc~field_known_tor FIELD_KNOWN_TOR proc~field_known_tor->interface~pvsh_tor proc~field_quad_bump FIELD_QUAD_BUMP proc~field_quad_bump->interface~pvsh_tor proc~gwi_dp GWI_DP proc~gwi_dp->interface~cgcoeff proc~gwj_dp GWJ_DP proc~gwj_dp->interface~cgcoeff proc~pvsh_rad_dp PVSH_RAD_DP proc~pvsh_rad_dp->interface~ssh proc~run_gwi_sweep RUN_GWI_SWEEP proc~run_gwi_sweep->interface~ssh interface~gwi GWI proc~run_gwi_sweep->interface~gwi proc~run_gwj_sweep RUN_GWJ_SWEEP proc~run_gwj_sweep->interface~pvsh_pol proc~run_gwj_sweep->interface~pvsh_tor proc~run_gwj_sweep->interface~ssh interface~gwj GWJ proc~run_gwj_sweep->interface~gwj proc~symbol3j_dp SYMBOL3J_DP proc~symbol3j_dp->interface~cgcoeff proc~test1_gw->interface~ssh proc~test1_gw->interface~gwi proc~test1_vsh->interface~vsh_pol_dn proc~test1_vsh->interface~vsh_pol_up interface~vsh_tor VSH_TOR proc~test1_vsh->interface~vsh_tor proc~test2_gw->interface~ssh proc~test2_gw->interface~gwi proc~test2_gw->interface~gwj proc~test2_vsh->interface~pvsh_pol proc~test2_vsh->interface~pvsh_tor proc~test2_vsh->interface~pvsh_rad proc~vsh_tor_dp VSH_TOR_DP proc~vsh_tor_dp->interface~pvsh_tor program~convergence_main CONVERGENCE_MAIN program~convergence_main->interface~assoc_legendre program~convergence_main->interface~ssh program~convergence_main->interface~vsh_pol_dn program~convergence_main->interface~vsh_pol_up program~convergence_main->proc~batch_alm_cons program~convergence_main->proc~batch_ssh_cons program~convergence_main->proc~batch_vsh_pol_dn_cons program~convergence_main->proc~batch_vsh_pol_up_cons program~convergence_main->interface~vsh_tor program~convergence_main->proc~batch_vsh_tor_cons program~dipole_flux_expulsion DIPOLE_FLUX_EXPULSION program~dipole_flux_expulsion->interface~pvsh_pol program~dipole_flux_expulsion->interface~pvsh_rad program~dipole_synthesis DIPOLE_SYNTHESIS program~dipole_synthesis->interface~pvsh_pol program~dipole_synthesis->interface~ssh program~dipole_synthesis->interface~pvsh_rad program~dipole_uniform_sphere DIPOLE_UNIFORM_SPHERE program~dipole_uniform_sphere->interface~pvsh_pol program~dipole_uniform_sphere->interface~pvsh_rad program~unnorm_stability_main UNNORM_STABILITY_MAIN program~unnorm_stability_main->interface~assoc_legendre interface~ddx_assoc_legendre DDX_ASSOC_LEGENDRE interface~ddx_assoc_legendre->proc~ddx_assoc_legendre_dp interface~gwi->proc~gwi_dp interface~gwj->proc~gwj_dp interface~pvsh_rad->proc~pvsh_rad_dp interface~symbol3j SYMBOL3J interface~symbol3j->proc~symbol3j_dp interface~vsh_tor->proc~vsh_tor_dp proc~run_part_b~2 RUN_PART_B proc~run_part_b~2->proc~field_quad_bump program~bench_main BENCH_MAIN program~bench_main->proc~bench_legendre program~bench_main->proc~bench_ssh program~bench_main->proc~bench_vsh_pol_dn program~bench_main->proc~bench_vsh_pol_up proc~bench_vsh_tor BENCH_VSH_TOR program~bench_main->proc~bench_vsh_tor program~gwi_gwj_sweep GWI_GWJ_SWEEP program~gwi_gwj_sweep->proc~run_gwi_sweep program~gwi_gwj_sweep->proc~run_gwj_sweep proc~batch_dalm_cons->interface~ddx_assoc_legendre proc~batch_pvsh_rad_cons->interface~pvsh_rad proc~batch_vsh_tor_cons->interface~vsh_tor proc~bench_vsh_tor->interface~vsh_tor program~vsh_decomposition_tor VSH_DECOMPOSITION_TOR program~vsh_decomposition_tor->proc~run_part_b~2

Module Procedures

private function LOG_FACT_DP(N) result(LOG_FACT)

, via (the intrinsic LOG_GAMMA). Used throughout CGCOEFF, SSH, and ASSOC_LEGENDRE to evaluate factorial ratios like as without overflowing the individual factorials for large .

Read more…

Arguments

Type IntentOptional Attributes Name
integer(kind=i4), intent(in) :: N

Non-negative integer argument ( returns 0).

Return Value real(kind=dp)