do_recursive_multiLevel Subroutine

private recursive subroutine do_recursive_multiLevel(me, scheme, geometry, params, iLevel)

Main control routine: Update the time step for all levels. Main steps: * do BC at iLevel * do compute kernel at iLevel * do do_computeFinerIntpAndExchange at iLevel if iLevel < maxLevel * do recursive at iLevel+1 * intp My Coarser ghost (iLevel) from Finer (iLevel+1) * do exchange bufferFromFiner at iLevel * exchange buffer at iLevel * exchange bufferFromCoarser at iLevel if iLevel > minLevel * do do_intpCoarserAndExchange at iLevel if iLevel < maxLevel * intp Finer Ghost (iLevel+1) from my coarser (iLevel) * exchange bufferFromCoarser at iLevel+1

Arguments

TypeIntentOptionalAttributesName
class(mus_control_type) :: me

self control type

type(mus_scheme_type), intent(inout) :: scheme

container for the scheme

type(mus_geom_type), intent(inout) :: geometry

geometry infomation

type(mus_param_type), intent(inout) :: params

global parameters

integer, intent(in) :: iLevel

the current level


Calls

proc~~do_recursive_multilevel~~CallsGraph proc~do_recursive_multilevel do_recursive_multiLevel proc~stop_stagetimer stop_stageTimer proc~do_recursive_multilevel->proc~stop_stagetimer proc~mus_swap_now_next mus_swap_Now_Next proc~do_recursive_multilevel->proc~mus_swap_now_next proc~start_stagetimer start_stageTimer proc~do_recursive_multilevel->proc~start_stagetimer proc~tem_starttimer tem_startTimer proc~do_recursive_multilevel->proc~tem_starttimer proc~set_boundary set_boundary proc~do_recursive_multilevel->proc~set_boundary proc~tem_stoptimer tem_stopTimer proc~do_recursive_multilevel->proc~tem_stoptimer proc~tem_time_advance tem_time_advance proc~do_recursive_multilevel->proc~tem_time_advance proc~do_intpcoarserandexchange do_intpCoarserAndExchange proc~do_recursive_multilevel->proc~do_intpcoarserandexchange proc~mus_apply_sourceterms mus_apply_sourceTerms proc~do_recursive_multilevel->proc~mus_apply_sourceterms proc~mus_update_relaxparams mus_update_relaxParams proc~do_recursive_multilevel->proc~mus_update_relaxparams proc~check_flow_status check_flow_status proc~do_recursive_multilevel->proc~check_flow_status proc~mus_calcauxfieldandexchange mus_calcAuxFieldAndExchange proc~do_recursive_multilevel->proc~mus_calcauxfieldandexchange proc~do_computefinerintpandexchange do_computeFinerIntpAndExchange proc~do_recursive_multilevel->proc~do_computefinerintpandexchange proc~stop_stagetimer->proc~tem_stoptimer proc~start_stagetimer->proc~tem_starttimer proc~set_boundary->proc~tem_starttimer proc~set_boundary->proc~tem_stoptimer proc~fill_bcbuffer fill_bcBuffer proc~set_boundary->proc~fill_bcbuffer proc~fill_neighbuffer fill_neighBuffer proc~set_boundary->proc~fill_neighbuffer proc~do_intpcoarserandexchange->proc~stop_stagetimer proc~do_intpcoarserandexchange->proc~start_stagetimer proc~do_intpcoarserandexchange->proc~tem_starttimer proc~do_intpcoarserandexchange->proc~tem_stoptimer proc~mus_apply_sourceterms->proc~tem_starttimer proc~mus_apply_sourceterms->proc~tem_stoptimer proc~setparameters_multispecies setParameters_multispecies proc~mus_update_relaxparams->proc~setparameters_multispecies proc~mus_update_relaxparamkine mus_update_relaxParamKine proc~mus_update_relaxparams->proc~mus_update_relaxparamkine proc~mus_update_visckine mus_update_viscKine proc~mus_update_relaxparams->proc~mus_update_visckine proc~mus_dumpdata mus_dumpData proc~check_flow_status->proc~mus_dumpdata proc~tem_convergence_check tem_convergence_check proc~check_flow_status->proc~tem_convergence_check proc~tem_opvar_reduction_transient_update tem_opVar_reduction_transient_update proc~check_flow_status->proc~tem_opvar_reduction_transient_update proc~perform_checks perform_checks proc~check_flow_status->proc~perform_checks proc~tem_simcontrol_syncupdate tem_simControl_syncUpdate proc~check_flow_status->proc~tem_simcontrol_syncupdate proc~mus_geomincr mus_geomIncr proc~check_flow_status->proc~mus_geomincr proc~do_computefinerintpandexchange->proc~stop_stagetimer proc~do_computefinerintpandexchange->proc~start_stagetimer proc~do_computefinerintpandexchange->proc~tem_starttimer proc~do_computefinerintpandexchange->proc~tem_stoptimer

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: now
integer, private :: next