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

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~mus_update_sourcevars mus_update_sourceVars proc~do_recursive_multilevel->proc~mus_update_sourcevars proc~mus_swap_now_next mus_swap_Now_Next proc~do_recursive_multilevel->proc~mus_swap_now_next proc~tem_stoptimer tem_stopTimer proc~do_recursive_multilevel->proc~tem_stoptimer proc~set_boundary set_boundary proc~do_recursive_multilevel->proc~set_boundary proc~mus_apply_sourceterms mus_apply_sourceTerms proc~do_recursive_multilevel->proc~mus_apply_sourceterms proc~do_intpcoarserandexchange do_intpCoarserAndExchange proc~do_recursive_multilevel->proc~do_intpcoarserandexchange proc~mus_calcauxfieldandexchange mus_calcAuxFieldAndExchange proc~do_recursive_multilevel->proc~mus_calcauxfieldandexchange proc~tem_starttimer tem_startTimer proc~do_recursive_multilevel->proc~tem_starttimer proc~start_stagetimer start_stageTimer proc~do_recursive_multilevel->proc~start_stagetimer proc~mus_update_relaxparams mus_update_relaxParams proc~do_recursive_multilevel->proc~mus_update_relaxparams proc~stop_stagetimer stop_stageTimer proc~do_recursive_multilevel->proc~stop_stagetimer proc~tem_time_advance tem_time_advance proc~do_recursive_multilevel->proc~tem_time_advance proc~mus_intpauxfieldcoarserandexchange mus_intpAuxFieldCoarserAndExchange proc~do_recursive_multilevel->proc~mus_intpauxfieldcoarserandexchange proc~do_intpfinerandexchange do_intpFinerAndExchange proc~do_recursive_multilevel->proc~do_intpfinerandexchange proc~mus_update_sourcevars->proc~tem_stoptimer proc~mus_update_sourcevars->proc~tem_starttimer proc~set_boundary->proc~tem_stoptimer proc~set_boundary->proc~tem_starttimer proc~fill_bcbuffer fill_bcBuffer proc~set_boundary->proc~fill_bcbuffer proc~fill_neighbuffer fill_neighBuffer proc~set_boundary->proc~fill_neighbuffer proc~mus_apply_sourceterms->proc~tem_stoptimer proc~mus_apply_sourceterms->proc~tem_starttimer proc~do_intpcoarserandexchange->proc~tem_stoptimer proc~do_intpcoarserandexchange->proc~tem_starttimer proc~do_intpcoarserandexchange->proc~start_stagetimer proc~do_intpcoarserandexchange->proc~stop_stagetimer proc~start_stagetimer->proc~tem_starttimer proc~mus_update_visckine mus_update_viscKine proc~mus_update_relaxparams->proc~mus_update_visckine proc~mus_update_relaxparamkine mus_update_relaxParamKine proc~mus_update_relaxparams->proc~mus_update_relaxparamkine proc~mus_turb_updateviscofturbwall mus_turb_updateViscOfTurbWall proc~mus_update_relaxparams->proc~mus_turb_updateviscofturbwall proc~setparameters_multispecies setParameters_multispecies proc~mus_update_relaxparams->proc~setparameters_multispecies proc~stop_stagetimer->proc~tem_stoptimer proc~do_intpfinerandexchange->proc~tem_stoptimer proc~do_intpfinerandexchange->proc~tem_starttimer proc~do_intpfinerandexchange->proc~start_stagetimer proc~do_intpfinerandexchange->proc~stop_stagetimer proc~fill_neighbuffer->proc~tem_stoptimer proc~fill_neighbuffer->proc~tem_starttimer interface~tem_spacetime_for tem_spacetime_for proc~mus_update_visckine->interface~tem_spacetime_for proc~mus_turb_calcvisc mus_turb_calcVisc proc~mus_update_visckine->proc~mus_turb_calcvisc proc~invert_matrix invert_matrix proc~setparameters_multispecies->proc~invert_matrix proc~tem_temporal_for tem_temporal_for proc~setparameters_multispecies->proc~tem_temporal_for

Contents


Variables

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