mark_variables_as_initialized Subroutine

private subroutine mark_variables_as_initialized()

Uses

    • cam_logfile
    • cam_constituents
    • phys_vars_init_check
  • proc~~mark_variables_as_initialized~~UsesGraph proc~mark_variables_as_initialized mark_variables_as_initialized cam_constituents cam_constituents proc~mark_variables_as_initialized->cam_constituents cam_logfile cam_logfile proc~mark_variables_as_initialized->cam_logfile phys_vars_init_check phys_vars_init_check proc~mark_variables_as_initialized->phys_vars_init_check

Mark everything in the physics_types module along with constituents as initialized to prevent physics from attempting to read them from a file. (KCW, 2024-05-23)

Arguments

None

Calls

proc~~mark_variables_as_initialized~~CallsGraph proc~mark_variables_as_initialized mark_variables_as_initialized const_name const_name proc~mark_variables_as_initialized->const_name mark_as_initialized mark_as_initialized proc~mark_variables_as_initialized->mark_as_initialized proc~dyn_debug_print dyn_debug_print proc~mark_variables_as_initialized->proc~dyn_debug_print stringify stringify proc~dyn_debug_print->stringify

Called by

proc~~mark_variables_as_initialized~~CalledByGraph proc~mark_variables_as_initialized mark_variables_as_initialized proc~dyn_init dyn_init proc~dyn_init->proc~mark_variables_as_initialized

Variables

Type Visibility Attributes Name Initial
integer, private :: i
character(len=*), private, parameter :: subname = 'dyn_comp::mark_variables_as_initialized'

Source Code

    subroutine mark_variables_as_initialized()
        ! Module(s) from CAM-SIMA.
        use cam_constituents, only: const_name, num_advected
        use cam_logfile, only: debugout_debug
        ! Module(s) from CCPP.
        use phys_vars_init_check, only: mark_as_initialized

        character(*), parameter :: subname = 'dyn_comp::mark_variables_as_initialized'
        integer :: i

        call dyn_debug_print(debugout_debug, subname // ' entered')

        ! The variables below are managed by dynamics interface.
        ! We are responsible for initializing and updating them.

        ! These variables are to be set during dynamics initialization.
        call mark_as_initialized('flag_for_dycore_energy_consistency_adjustment')
        call mark_as_initialized('total_energy_formula_for_dycore')

        ! These variables are to be set during dynamics-physics coupling.
        call mark_as_initialized('air_pressure')
        call mark_as_initialized('air_pressure_at_interface')
        call mark_as_initialized('air_pressure_of_dry_air')
        call mark_as_initialized('air_pressure_of_dry_air_at_interface')
        call mark_as_initialized('air_pressure_thickness')
        call mark_as_initialized('air_pressure_thickness_of_dry_air')
        call mark_as_initialized('air_temperature')
        call mark_as_initialized('dry_static_energy')
        call mark_as_initialized('eastward_wind')
        call mark_as_initialized('geopotential_height_wrt_surface')
        call mark_as_initialized('geopotential_height_wrt_surface_at_interface')
        call mark_as_initialized('lagrangian_tendency_of_air_pressure')
        call mark_as_initialized('ln_air_pressure')
        call mark_as_initialized('ln_air_pressure_at_interface')
        call mark_as_initialized('ln_air_pressure_of_dry_air')
        call mark_as_initialized('ln_air_pressure_of_dry_air_at_interface')
        call mark_as_initialized('northward_wind')
        call mark_as_initialized('reciprocal_of_air_pressure_thickness')
        call mark_as_initialized('reciprocal_of_air_pressure_thickness_of_dry_air')
        call mark_as_initialized('reciprocal_of_dimensionless_exner_function_wrt_surface_air_pressure')
        call mark_as_initialized('specific_heat_of_air_used_in_dycore')
        call mark_as_initialized('surface_air_pressure')
        call mark_as_initialized('surface_geopotential')
        call mark_as_initialized('surface_pressure_of_dry_air')
        call mark_as_initialized('tendency_of_air_temperature_due_to_model_physics')
        call mark_as_initialized('tendency_of_eastward_wind_due_to_model_physics')
        call mark_as_initialized('tendency_of_northward_wind_due_to_model_physics')

        ! CCPP standard names of constituents.
        do i = 1, num_advected
            call mark_as_initialized(trim(adjustl(const_name(i))))
        end do

        ! The variables below are not managed by dynamics interface. They are used by external CCPP physics schemes.
        ! While we are not responsible for initializing or updating them, we still need to help mark them as initialized.

        ! These variables are to be set externally by the `check_energy_chng` CCPP physics scheme.
        call mark_as_initialized('vertically_integrated_total_energy_using_dycore_energy_formula')
        call mark_as_initialized('vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep')
        call mark_as_initialized('vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep')
        call mark_as_initialized('vertically_integrated_total_energy_using_physics_energy_formula')
        call mark_as_initialized('vertically_integrated_total_energy_using_physics_energy_formula_at_start_of_physics_timestep')
        call mark_as_initialized('vertically_integrated_total_water')
        call mark_as_initialized('vertically_integrated_total_water_at_start_of_physics_timestep')

        call dyn_debug_print(debugout_debug, subname // ' completed')
    end subroutine mark_variables_as_initialized