pf_mod_hooks Module

Module for the calling of user defined routines from various places in the pfasst algorithm


Uses

  • module~~pf_mod_hooks~~UsesGraph module~pf_mod_hooks pf_mod_hooks module~pf_mod_dtype pf_mod_dtype module~pf_mod_hooks->module~pf_mod_dtype iso_c_binding iso_c_binding module~pf_mod_dtype->iso_c_binding

Used by

  • module~~pf_mod_hooks~~UsedByGraph module~pf_mod_hooks pf_mod_hooks module~pf_mod_interpolate pf_mod_interpolate module~pf_mod_interpolate->module~pf_mod_hooks module~pf_mod_restrict pf_mod_restrict module~pf_mod_interpolate->module~pf_mod_restrict module~pf_mod_restrict->module~pf_mod_hooks proc~imexq_oc_sweep imexQ_oc_sweep proc~imexq_oc_sweep->module~pf_mod_hooks proc~mkrk_step mkrk_step proc~mkrk_step->module~pf_mod_hooks proc~imk_actually_sweep imk_actually_sweep proc~imk_actually_sweep->module~pf_mod_hooks proc~ark_do_n_steps ark_do_n_steps proc~ark_do_n_steps->module~pf_mod_hooks module~pfasst pfasst module~pfasst->module~pf_mod_hooks module~pf_mod_parallel pf_mod_parallel module~pfasst->module~pf_mod_parallel proc~magpicard_sweep magpicard_sweep proc~magpicard_sweep->module~pf_mod_hooks proc~pf_pfasst_create pf_pfasst_create proc~pf_pfasst_create->module~pf_mod_hooks module~pf_mod_parallel_oc pf_mod_parallel_oc module~pf_mod_parallel_oc->module~pf_mod_hooks module~pf_mod_parallel_oc->module~pf_mod_interpolate module~pf_mod_parallel_oc->module~pf_mod_restrict proc~rk_step rk_step proc~rk_step->module~pf_mod_hooks proc~imk_sweep imk_sweep proc~imk_sweep->module~pf_mod_hooks proc~imexq_sweep imexQ_sweep proc~imexq_sweep->module~pf_mod_hooks proc~misdcq_oc_sweep misdcQ_oc_sweep proc~misdcq_oc_sweep->module~pf_mod_hooks proc~verlet_sweep verlet_sweep proc~verlet_sweep->module~pf_mod_hooks proc~misdcq_sweep misdcQ_sweep proc~misdcq_sweep->module~pf_mod_hooks module~pf_mod_parallel->module~pf_mod_hooks module~pf_mod_parallel->module~pf_mod_interpolate module~pf_mod_parallel->module~pf_mod_restrict

Contents


Variables

TypeVisibility AttributesNameInitial
integer, public, parameter:: PF_PRE_PREDICTOR =1

Define hook indices

integer, public, parameter:: PF_POST_PREDICTOR =2

Define hook indices

integer, public, parameter:: PF_PRE_ITERATION =3

Define hook indices

integer, public, parameter:: PF_POST_ITERATION =4

Define hook indices

integer, public, parameter:: PF_PRE_SWEEP =5

Define hook indices

integer, public, parameter:: PF_POST_SWEEP =6

Define hook indices

integer, public, parameter:: PF_PRE_STEP =7

Define hook indices

integer, public, parameter:: PF_POST_STEP =8

Define hook indices

integer, public, parameter:: PF_PRE_INTERP_ALL =9

Define hook indices

integer, public, parameter:: PF_POST_INTERP_ALL =10

Define hook indices

integer, public, parameter:: PF_PRE_INTERP_Q0 =11

Define hook indices

integer, public, parameter:: PF_POST_INTERP_Q0 =12

Define hook indices

integer, public, parameter:: PF_PRE_RESTRICT_ALL =13

Define hook indices

integer, public, parameter:: PF_POST_RESTRICT_ALL =14

Define hook indices

integer, public, parameter:: PF_PRE_CONVERGENCE =15

Define hook indices

integer, public, parameter:: PF_POST_CONVERGENCE =16

Define hook indices

integer, public, parameter:: PF_MAX_HOOK =16

Define hook indices

integer, public, parameter:: PF_HOOK_LOG_ONE =1
integer, public, parameter:: PF_HOOK_LOG_ALL =7
integer, public, parameter:: PF_HOOK_LOG_LAST =PF_MAX_HOOK
character(len=20), public, parameter:: hook_names(PF_HOOK_LOG_LAST) =(/'pre-predictor      ', 'post-predictor     ', 'pre-iteration      ', 'post-iteration     ', 'pre-sweep          ', 'post-sweep         ', 'pre-step           ', 'post-step          ', 'pre-interp-all     ', 'post-interp-all    ', 'pre-interp-q0      ', 'post-interp-q0     ', 'pre-restrict-all   ', 'post-restrict-all  ', 'pre-convergence    ', 'post-convergence   '/)

Define hook names


Subroutines

public subroutine pf_add_hook(pf, level_ind, hook, proc)

Subroutine to add a procedure to the hook on the given level

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf

main pfasst structure

integer, intent(in) :: level_ind

which pfasst level to add hook

integer, intent(in) :: hook

which hook to add

procedure(pf_hook_p) :: proc

precudre to call from hook

public subroutine call_hooks(pf, level_ind, hook)

Subroutine to call hooks associated with the hook and level

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout), target:: pf

main pfasst structure

integer, intent(in) :: level_ind

which pfasst level to call hook

integer, intent(in) :: hook

which hook to call

public subroutine pf_logger_hook(pf, level, state)

Subroutine defining log hook

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf
class(pf_level_t), intent(inout) :: level
type(pf_state_t), intent(in) :: state

public subroutine pf_logger_attach(pf)

Subroutine to add log hook

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf