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: * if iLevel < maxLevel do recursive at iLevel+1 * do BC at iLevel * do auxField calculation at iLevel * do compute kernel at iLevel * do apply source at iLevel * do do_IntpFinerAndExchange at iLevel if iLevel < maxLevel * 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

Type IntentOptional Attributes Name
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 exchange_real exchange_real proc~do_recursive_multilevel->exchange_real proc~do_intpcoarserandexchange do_intpCoarserAndExchange proc~do_recursive_multilevel->proc~do_intpcoarserandexchange proc~do_intpfinerandexchange do_intpFinerAndExchange proc~do_recursive_multilevel->proc~do_intpfinerandexchange proc~mus_apply_sourceterms mus_apply_sourceTerms proc~do_recursive_multilevel->proc~mus_apply_sourceterms proc~mus_calcauxfieldandexchange mus_calcAuxFieldAndExchange proc~do_recursive_multilevel->proc~mus_calcauxfieldandexchange proc~mus_intpauxfieldcoarserandexchange mus_intpAuxFieldCoarserAndExchange proc~do_recursive_multilevel->proc~mus_intpauxfieldcoarserandexchange proc~mus_swap_now_next mus_swap_Now_Next proc~do_recursive_multilevel->proc~mus_swap_now_next proc~mus_update_relaxparams mus_update_relaxParams proc~do_recursive_multilevel->proc~mus_update_relaxparams proc~mus_update_sourcevars mus_update_sourceVars proc~do_recursive_multilevel->proc~mus_update_sourcevars proc~set_boundary set_boundary proc~do_recursive_multilevel->proc~set_boundary proc~start_stagetimer start_stageTimer proc~do_recursive_multilevel->proc~start_stagetimer proc~stop_stagetimer stop_stageTimer proc~do_recursive_multilevel->proc~stop_stagetimer tem_startTimer tem_startTimer proc~do_recursive_multilevel->tem_startTimer tem_stopTimer tem_stopTimer proc~do_recursive_multilevel->tem_stopTimer tem_time_advance tem_time_advance proc~do_recursive_multilevel->tem_time_advance proc~do_intpcoarserandexchange->exchange_real proc~do_intpcoarserandexchange->proc~start_stagetimer proc~do_intpcoarserandexchange->proc~stop_stagetimer proc~do_intpcoarserandexchange->tem_startTimer proc~do_intpcoarserandexchange->tem_stopTimer proc~do_intpfinerandexchange->exchange_real proc~do_intpfinerandexchange->proc~start_stagetimer proc~do_intpfinerandexchange->proc~stop_stagetimer proc~do_intpfinerandexchange->tem_startTimer proc~do_intpfinerandexchange->tem_stopTimer proc~mus_apply_sourceterms->tem_startTimer proc~mus_apply_sourceterms->tem_stopTimer proc~mus_calcauxfieldandexchange->exchange_real proc~mus_intpauxfieldcoarserandexchange->exchange_real proc~mus_turb_updateviscofturbwall mus_turb_updateViscOfTurbWall proc~mus_update_relaxparams->proc~mus_turb_updateviscofturbwall 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~setparameters_multispecies setParameters_multispecies proc~mus_update_relaxparams->proc~setparameters_multispecies proc~mus_update_sourcevars->tem_startTimer proc~mus_update_sourcevars->tem_stopTimer proc~set_boundary->tem_startTimer proc~set_boundary->tem_stopTimer proc~fill_bcbuffer fill_bcBuffer proc~set_boundary->proc~fill_bcbuffer proc~fill_neighbuffer fill_neighBuffer proc~set_boundary->proc~fill_neighbuffer val val proc~set_boundary->val proc~start_stagetimer->tem_startTimer proc~stop_stagetimer->tem_stopTimer state_varpos state_varpos proc~fill_bcbuffer->state_varpos proc~fill_neighbuffer->tem_startTimer proc~fill_neighbuffer->tem_stopTimer proc~fill_neighbuffer->val proc~fill_neighbuffer->state_varpos proc~mus_update_relaxparamkine->val proc~mus_update_visckine->val auxfield_varpos auxfield_varpos proc~mus_update_visckine->auxfield_varpos proc~mus_turb_calcvisc mus_turb_calcVisc proc~mus_update_visckine->proc~mus_turb_calcvisc tem_spacetime_for tem_spacetime_for proc~mus_update_visckine->tem_spacetime_for invert_matrix invert_matrix proc~setparameters_multispecies->invert_matrix tem_temporal_for tem_temporal_for proc~setparameters_multispecies->tem_temporal_for