dyn_mpas_get_variable_pointer_c0 Subroutine

private subroutine dyn_mpas_get_variable_pointer_c0(self, variable_pointer, pool_name, variable_name, time_level)

Uses

    • mpas_derived_types
    • mpas_pool_routines
  • proc~~dyn_mpas_get_variable_pointer_c0~~UsesGraph proc~dyn_mpas_get_variable_pointer_c0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_c0 mpas_derived_types mpas_derived_types proc~dyn_mpas_get_variable_pointer_c0->mpas_derived_types mpas_pool_routines mpas_pool_routines proc~dyn_mpas_get_variable_pointer_c0->mpas_pool_routines

The dyn_mpas_get_variable_pointer_* subroutines are a family of accessor subroutines for drawing the REFERENCE of an internal variable from MPAS dynamical core instance. The get_variable_pointer generic interface should be used instead of the specific ones. WARNING: USE OF THIS SUBROUTINE FAMILY IS HIGHLY DISCOURAGED BECAUSE THE INTERNAL STATES OF MPAS DYNAMICAL CORE INSTANCE COULD BE MODIFIED THROUGH THE RETURNED POINTER. THESE ARE UNCHARTED WATERS SO BE SURE WHAT YOU ARE DOING.

Type Bound

mpas_dynamical_core_type

Arguments

Type IntentOptional Attributes Name
class(mpas_dynamical_core_type), intent(in) :: self
character(len=strkind), intent(out), pointer :: variable_pointer
character(len=*), intent(in) :: pool_name
character(len=*), intent(in) :: variable_name
integer, intent(in), optional :: time_level

Calls

proc~~dyn_mpas_get_variable_pointer_c0~~CallsGraph proc~dyn_mpas_get_variable_pointer_c0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_c0 mpas_pool_get_array mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_c0->mpas_pool_get_array mpas_pool_get_config mpas_pool_get_config proc~dyn_mpas_get_variable_pointer_c0->mpas_pool_get_config proc~dyn_mpas_get_pool_pointer mpas_dynamical_core_type%dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_c0->proc~dyn_mpas_get_pool_pointer mpas_pool_get_subpool mpas_pool_get_subpool proc~dyn_mpas_get_pool_pointer->mpas_pool_get_subpool

Called by

proc~~dyn_mpas_get_variable_pointer_c0~~CalledByGraph proc~dyn_mpas_get_variable_pointer_c0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_c0 none~get_variable_pointer mpas_dynamical_core_type%get_variable_pointer none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_c0 none~init_shared_variables init_shared_variables none~init_shared_variables->none~get_variable_pointer none~init_shared_variables~2 init_shared_variables none~init_shared_variables~2->none~get_variable_pointer none~init_shared_variables~3 init_shared_variables none~init_shared_variables~3->none~get_variable_pointer none~set_mpas_physics_tendency_rho set_mpas_physics_tendency_rho none~set_mpas_physics_tendency_rho->none~get_variable_pointer none~set_mpas_physics_tendency_rtheta set_mpas_physics_tendency_rtheta none~set_mpas_physics_tendency_rtheta->none~get_variable_pointer none~set_mpas_physics_tendency_ru set_mpas_physics_tendency_ru none~set_mpas_physics_tendency_ru->none~get_variable_pointer proc~dyn_mpas_compute_edge_wind mpas_dynamical_core_type%dyn_mpas_compute_edge_wind none~set_mpas_physics_tendency_ru->proc~dyn_mpas_compute_edge_wind none~set_mpas_state_rho_base_theta_base set_mpas_state_rho_base_theta_base none~set_mpas_state_rho_base_theta_base->none~get_variable_pointer none~set_mpas_state_rho_theta set_mpas_state_rho_theta none~set_mpas_state_rho_theta->none~get_variable_pointer none~set_mpas_state_scalars set_mpas_state_scalars none~set_mpas_state_scalars->none~get_variable_pointer none~set_mpas_state_u set_mpas_state_u none~set_mpas_state_u->none~get_variable_pointer none~set_mpas_state_u->proc~dyn_mpas_compute_edge_wind none~set_mpas_state_w set_mpas_state_w none~set_mpas_state_w->none~get_variable_pointer proc~check_topography_data check_topography_data proc~check_topography_data->none~get_variable_pointer proc~define_cam_grid define_cam_grid proc~define_cam_grid->none~get_variable_pointer proc~dyn_exchange_constituent_states dyn_exchange_constituent_states proc~dyn_exchange_constituent_states->none~get_variable_pointer proc~dyn_mpas_compute_edge_wind->none~get_variable_pointer proc~dyn_mpas_compute_unit_vector mpas_dynamical_core_type%dyn_mpas_compute_unit_vector proc~dyn_mpas_compute_unit_vector->none~get_variable_pointer proc~dyn_mpas_get_global_mesh_dimension mpas_dynamical_core_type%dyn_mpas_get_global_mesh_dimension proc~dyn_mpas_get_global_mesh_dimension->none~get_variable_pointer proc~dyn_mpas_get_local_mesh_dimension mpas_dynamical_core_type%dyn_mpas_get_local_mesh_dimension proc~dyn_mpas_get_local_mesh_dimension->none~get_variable_pointer proc~dyn_mpas_get_variable_value_c0 mpas_dynamical_core_type%dyn_mpas_get_variable_value_c0 proc~dyn_mpas_get_variable_value_c0->none~get_variable_pointer proc~dyn_mpas_get_variable_value_c1 mpas_dynamical_core_type%dyn_mpas_get_variable_value_c1 proc~dyn_mpas_get_variable_value_c1->none~get_variable_pointer proc~dyn_mpas_get_variable_value_i0 mpas_dynamical_core_type%dyn_mpas_get_variable_value_i0 proc~dyn_mpas_get_variable_value_i0->none~get_variable_pointer proc~dyn_mpas_get_variable_value_i1 mpas_dynamical_core_type%dyn_mpas_get_variable_value_i1 proc~dyn_mpas_get_variable_value_i1->none~get_variable_pointer proc~dyn_mpas_get_variable_value_i2 mpas_dynamical_core_type%dyn_mpas_get_variable_value_i2 proc~dyn_mpas_get_variable_value_i2->none~get_variable_pointer proc~dyn_mpas_get_variable_value_i3 mpas_dynamical_core_type%dyn_mpas_get_variable_value_i3 proc~dyn_mpas_get_variable_value_i3->none~get_variable_pointer proc~dyn_mpas_get_variable_value_l0 mpas_dynamical_core_type%dyn_mpas_get_variable_value_l0 proc~dyn_mpas_get_variable_value_l0->none~get_variable_pointer proc~dyn_mpas_get_variable_value_r0 mpas_dynamical_core_type%dyn_mpas_get_variable_value_r0 proc~dyn_mpas_get_variable_value_r0->none~get_variable_pointer proc~dyn_mpas_get_variable_value_r1 mpas_dynamical_core_type%dyn_mpas_get_variable_value_r1 proc~dyn_mpas_get_variable_value_r1->none~get_variable_pointer proc~dyn_mpas_get_variable_value_r2 mpas_dynamical_core_type%dyn_mpas_get_variable_value_r2 proc~dyn_mpas_get_variable_value_r2->none~get_variable_pointer proc~dyn_mpas_get_variable_value_r3 mpas_dynamical_core_type%dyn_mpas_get_variable_value_r3 proc~dyn_mpas_get_variable_value_r3->none~get_variable_pointer proc~dyn_mpas_get_variable_value_r4 mpas_dynamical_core_type%dyn_mpas_get_variable_value_r4 proc~dyn_mpas_get_variable_value_r4->none~get_variable_pointer proc~dyn_mpas_get_variable_value_r5 mpas_dynamical_core_type%dyn_mpas_get_variable_value_r5 proc~dyn_mpas_get_variable_value_r5->none~get_variable_pointer proc~dyn_mpas_init_phase4 mpas_dynamical_core_type%dyn_mpas_init_phase4 proc~dyn_mpas_init_phase4->none~get_variable_pointer proc~dyn_mpas_read_namelist mpas_dynamical_core_type%dyn_mpas_read_namelist proc~dyn_mpas_read_namelist->none~get_variable_pointer proc~dyn_mpas_run mpas_dynamical_core_type%dyn_mpas_run proc~dyn_mpas_run->none~get_variable_pointer proc~dyn_variable_dump dyn_variable_dump proc~dyn_variable_dump->none~get_variable_pointer proc~init_physics_grid init_physics_grid proc~init_physics_grid->none~get_variable_pointer proc~init_reference_pressure init_reference_pressure proc~init_reference_pressure->none~get_variable_pointer none~set_physics_state_external set_physics_state_external none~set_physics_state_external->proc~dyn_exchange_constituent_states proc~dyn_final dyn_final proc~dyn_final->proc~dyn_variable_dump proc~dyn_init dyn_init proc~dyn_init->proc~check_topography_data proc~dyn_init->proc~dyn_exchange_constituent_states proc~dyn_init->proc~dyn_mpas_init_phase4 proc~set_analytic_initial_condition set_analytic_initial_condition proc~dyn_init->proc~set_analytic_initial_condition proc~dyn_inquire_mesh_dimensions dyn_inquire_mesh_dimensions proc~dyn_inquire_mesh_dimensions->proc~dyn_mpas_get_global_mesh_dimension proc~dyn_inquire_mesh_dimensions->proc~dyn_mpas_get_local_mesh_dimension proc~dyn_readnl dyn_readnl proc~dyn_readnl->proc~dyn_mpas_read_namelist proc~dyn_run dyn_run proc~dyn_run->proc~dyn_mpas_run proc~dynamics_to_physics_coupling dynamics_to_physics_coupling proc~dynamics_to_physics_coupling->none~init_shared_variables~2 proc~dynamics_to_physics_coupling->proc~dyn_exchange_constituent_states proc~dynamics_to_physics_coupling->none~set_physics_state_external proc~model_grid_init model_grid_init proc~model_grid_init->proc~define_cam_grid proc~model_grid_init->proc~dyn_mpas_compute_unit_vector proc~model_grid_init->proc~init_physics_grid proc~model_grid_init->proc~init_reference_pressure proc~model_grid_init->proc~dyn_inquire_mesh_dimensions proc~physics_to_dynamics_coupling physics_to_dynamics_coupling proc~physics_to_dynamics_coupling->none~init_shared_variables~3 proc~physics_to_dynamics_coupling->none~set_mpas_physics_tendency_rho proc~physics_to_dynamics_coupling->none~set_mpas_physics_tendency_rtheta proc~physics_to_dynamics_coupling->none~set_mpas_physics_tendency_ru proc~physics_to_dynamics_coupling->proc~dyn_exchange_constituent_states proc~set_analytic_initial_condition->none~init_shared_variables proc~set_analytic_initial_condition->none~set_mpas_state_rho_base_theta_base proc~set_analytic_initial_condition->none~set_mpas_state_rho_theta proc~set_analytic_initial_condition->none~set_mpas_state_scalars proc~set_analytic_initial_condition->none~set_mpas_state_u proc~set_analytic_initial_condition->none~set_mpas_state_w proc~stepon_final stepon_final proc~stepon_final->proc~dyn_final proc~stepon_run2 stepon_run2 proc~stepon_run2->proc~physics_to_dynamics_coupling proc~stepon_run3 stepon_run3 proc~stepon_run3->proc~dyn_run proc~stepon_timestep_init stepon_timestep_init proc~stepon_timestep_init->proc~dynamics_to_physics_coupling

Variables

Type Visibility Attributes Name Initial
type(mpas_pool_type), private, pointer :: mpas_pool
character(len=*), private, parameter :: subname = 'dyn_mpas_subdriver::dyn_mpas_get_variable_pointer_c0'

Source Code

    subroutine dyn_mpas_get_variable_pointer_c0(self, variable_pointer, pool_name, variable_name, time_level)
        ! Module(s) from MPAS.
        use mpas_derived_types, only: mpas_pool_type
        use mpas_pool_routines, only: mpas_pool_get_array, mpas_pool_get_config

        class(mpas_dynamical_core_type), intent(in) :: self
        character(strkind), pointer, intent(out) :: variable_pointer
        character(*), intent(in) :: pool_name
        character(*), intent(in) :: variable_name
        integer, optional, intent(in) :: time_level

        character(*), parameter :: subname = 'dyn_mpas_subdriver::dyn_mpas_get_variable_pointer_c0'
        type(mpas_pool_type), pointer :: mpas_pool

        nullify(mpas_pool)
        call self % get_pool_pointer(mpas_pool, pool_name)
        nullify(variable_pointer)

        if (trim(adjustl(pool_name)) == 'cfg') then
            ! Special case for config-related variables. They must be retrieved by calling `mpas_pool_get_config`.
            call mpas_pool_get_config(mpas_pool, trim(adjustl(variable_name)), variable_pointer)
        else
            call mpas_pool_get_array(mpas_pool, trim(adjustl(variable_name)), variable_pointer, timelevel=time_level)
        end if

        if (.not. associated(variable_pointer)) then
            call self % model_error('Failed to find variable "' // trim(adjustl(variable_name)) // '"', subname, __LINE__)
        end if

        nullify(mpas_pool)
    end subroutine dyn_mpas_get_variable_pointer_c0