dyn_variable_dump Subroutine

private subroutine dyn_variable_dump()

Uses

    • cam_abortutils
    • shr_pio_mod
    • cam_instance
    • physics_types
    • pio
  • proc~~dyn_variable_dump~~UsesGraph proc~dyn_variable_dump dyn_variable_dump cam_abortutils cam_abortutils proc~dyn_variable_dump->cam_abortutils cam_instance cam_instance proc~dyn_variable_dump->cam_instance physics_types physics_types proc~dyn_variable_dump->physics_types pio pio proc~dyn_variable_dump->pio shr_pio_mod shr_pio_mod proc~dyn_variable_dump->shr_pio_mod

Arguments

None

Calls

proc~~dyn_variable_dump~~CallsGraph proc~dyn_variable_dump dyn_variable_dump check_allocate check_allocate proc~dyn_variable_dump->check_allocate endrun endrun proc~dyn_variable_dump->endrun none~get_variable_pointer mpas_dynamical_core_type%get_variable_pointer proc~dyn_variable_dump->none~get_variable_pointer pio_closefile pio_closefile proc~dyn_variable_dump->pio_closefile pio_createfile pio_createfile proc~dyn_variable_dump->pio_createfile proc~dyn_mpas_exchange_halo mpas_dynamical_core_type%dyn_mpas_exchange_halo proc~dyn_variable_dump->proc~dyn_mpas_exchange_halo proc~dyn_mpas_read_write_stream mpas_dynamical_core_type%dyn_mpas_read_write_stream proc~dyn_variable_dump->proc~dyn_mpas_read_write_stream ps ps proc~dyn_variable_dump->ps shr_pio_getioformat shr_pio_getioformat proc~dyn_variable_dump->shr_pio_getioformat shr_pio_getiosys shr_pio_getiosys proc~dyn_variable_dump->shr_pio_getiosys shr_pio_getiotype shr_pio_getiotype proc~dyn_variable_dump->shr_pio_getiotype proc~dyn_mpas_get_variable_pointer_c0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_c0 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_c0 proc~dyn_mpas_get_variable_pointer_c1 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_c1 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_c1 proc~dyn_mpas_get_variable_pointer_i0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_i0 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_i0 proc~dyn_mpas_get_variable_pointer_i1 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_i1 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_i1 proc~dyn_mpas_get_variable_pointer_i2 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_i2 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_i2 proc~dyn_mpas_get_variable_pointer_i3 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_i3 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_i3 proc~dyn_mpas_get_variable_pointer_l0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_l0 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_l0 proc~dyn_mpas_get_variable_pointer_r0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r0 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r0 proc~dyn_mpas_get_variable_pointer_r1 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r1 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r1 proc~dyn_mpas_get_variable_pointer_r2 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r2 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r2 proc~dyn_mpas_get_variable_pointer_r3 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r3 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r3 proc~dyn_mpas_get_variable_pointer_r4 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r4 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r4 proc~dyn_mpas_get_variable_pointer_r5 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r5 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r5 mpas_dmpar_exch_halo_field mpas_dmpar_exch_halo_field proc~dyn_mpas_exchange_halo->mpas_dmpar_exch_halo_field mpas_pool_get_field mpas_pool_get_field proc~dyn_mpas_exchange_halo->mpas_pool_get_field mpas_pool_get_field_info mpas_pool_get_field_info proc~dyn_mpas_exchange_halo->mpas_pool_get_field_info proc~dyn_mpas_debug_print mpas_dynamical_core_type%dyn_mpas_debug_print proc~dyn_mpas_exchange_halo->proc~dyn_mpas_debug_print proc~stringify stringify proc~dyn_mpas_exchange_halo->proc~stringify proc~dyn_mpas_read_write_stream->proc~dyn_mpas_exchange_halo mpas_closestream mpas_closestream proc~dyn_mpas_read_write_stream->mpas_closestream mpas_pool_destroy_pool mpas_pool_destroy_pool proc~dyn_mpas_read_write_stream->mpas_pool_destroy_pool mpas_readstream mpas_readstream proc~dyn_mpas_read_write_stream->mpas_readstream mpas_writestream mpas_writestream proc~dyn_mpas_read_write_stream->mpas_writestream postread_reindex postread_reindex proc~dyn_mpas_read_write_stream->postread_reindex postwrite_reindex postwrite_reindex proc~dyn_mpas_read_write_stream->postwrite_reindex prewrite_reindex prewrite_reindex proc~dyn_mpas_read_write_stream->prewrite_reindex proc~dyn_mpas_read_write_stream->proc~dyn_mpas_debug_print proc~dyn_mpas_init_stream_with_pool mpas_dynamical_core_type%dyn_mpas_init_stream_with_pool proc~dyn_mpas_read_write_stream->proc~dyn_mpas_init_stream_with_pool proc~parse_stream_name parse_stream_name proc~dyn_mpas_read_write_stream->proc~parse_stream_name proc~dyn_mpas_debug_print->proc~stringify 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 proc~dyn_mpas_get_variable_pointer_c1->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_c1->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_i0->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_i0->mpas_pool_get_config mpas_pool_get_dimension mpas_pool_get_dimension proc~dyn_mpas_get_variable_pointer_i0->mpas_pool_get_dimension proc~dyn_mpas_get_variable_pointer_i0->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_i1->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_i1->mpas_pool_get_dimension proc~dyn_mpas_get_variable_pointer_i1->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_i2->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_i2->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_i3->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_i3->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_l0->mpas_pool_get_config proc~dyn_mpas_get_variable_pointer_l0->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r0->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r0->mpas_pool_get_config proc~dyn_mpas_get_variable_pointer_r0->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r1->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r1->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r2->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r2->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r3->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r3->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r4->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r4->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r5->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r5->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_init_stream_with_pool->mpas_pool_get_field proc~dyn_mpas_init_stream_with_pool->proc~dyn_mpas_debug_print proc~dyn_mpas_init_stream_with_pool->proc~parse_stream_name proc~dyn_mpas_init_stream_with_pool->proc~stringify mpas_createstream mpas_createstream proc~dyn_mpas_init_stream_with_pool->mpas_createstream mpas_pool_add_config mpas_pool_add_config proc~dyn_mpas_init_stream_with_pool->mpas_pool_add_config mpas_pool_create_pool mpas_pool_create_pool proc~dyn_mpas_init_stream_with_pool->mpas_pool_create_pool mpas_streamaddfield mpas_streamaddfield proc~dyn_mpas_init_stream_with_pool->mpas_streamaddfield none~add_stream_attribute add_stream_attribute proc~dyn_mpas_init_stream_with_pool->none~add_stream_attribute pio_file_is_open pio_file_is_open proc~dyn_mpas_init_stream_with_pool->pio_file_is_open proc~dyn_mpas_check_variable_status mpas_dynamical_core_type%dyn_mpas_check_variable_status proc~dyn_mpas_init_stream_with_pool->proc~dyn_mpas_check_variable_status proc~index_unique index_unique proc~parse_stream_name->proc~index_unique proc~parse_stream_name_fragment parse_stream_name_fragment proc~parse_stream_name->proc~parse_stream_name_fragment none~add_stream_attribute_0d add_stream_attribute_0d none~add_stream_attribute->none~add_stream_attribute_0d none~add_stream_attribute_1d add_stream_attribute_1d none~add_stream_attribute->none~add_stream_attribute_1d proc~dyn_mpas_check_variable_status->mpas_pool_get_field proc~dyn_mpas_check_variable_status->proc~dyn_mpas_debug_print proc~dyn_mpas_check_variable_status->proc~stringify proc~dyn_mpas_check_variable_status->pio_file_is_open constituentnames constituentnames proc~dyn_mpas_check_variable_status->constituentnames pio_inq_varid pio_inq_varid proc~dyn_mpas_check_variable_status->pio_inq_varid pio_inq_varndims pio_inq_varndims proc~dyn_mpas_check_variable_status->pio_inq_varndims pio_inq_vartype pio_inq_vartype proc~dyn_mpas_check_variable_status->pio_inq_vartype mpas_pool_get_subpool mpas_pool_get_subpool proc~dyn_mpas_get_pool_pointer->mpas_pool_get_subpool none~add_stream_attribute_0d->proc~dyn_mpas_debug_print mpas_writestreamatt mpas_writestreamatt none~add_stream_attribute_0d->mpas_writestreamatt none~add_stream_attribute_1d->proc~dyn_mpas_debug_print none~add_stream_attribute_1d->mpas_writestreamatt

Called by

proc~~dyn_variable_dump~~CalledByGraph proc~dyn_variable_dump dyn_variable_dump proc~dyn_final dyn_final proc~dyn_final->proc~dyn_variable_dump proc~stepon_final stepon_final proc~stepon_final->proc~dyn_final

Variables

Type Visibility Attributes Name Initial
integer, private :: ierr
type(file_desc_t), private, pointer :: pio_file
integer, private :: pio_ioformat
type(iosystem_desc_t), private, pointer :: pio_iosystem
integer, private :: pio_iotype
character(len=*), private, parameter :: subname = 'dyn_comp::dyn_variable_dump'
real(kind=kind_dyn_mpas), private, pointer :: surface_pressure(:)

Source Code

    subroutine dyn_variable_dump()
        ! Module(s) from CAM-SIMA.
        use cam_abortutils, only: check_allocate, endrun
        use cam_instance, only: atm_id
        use physics_types, only: phys_state
        ! Module(s) from CESM Share.
        use shr_pio_mod, only: shr_pio_getioformat, shr_pio_getiosys, shr_pio_getiotype
        ! Module(s) from external libraries.
        use pio, only: file_desc_t, iosystem_desc_t, pio_createfile, pio_closefile, pio_clobber, pio_noerr

        character(*), parameter :: subname = 'dyn_comp::dyn_variable_dump'
        integer :: ierr
        integer :: pio_ioformat, pio_iotype
        real(kind_dyn_mpas), pointer :: surface_pressure(:)
        type(file_desc_t), pointer :: pio_file
        type(iosystem_desc_t), pointer :: pio_iosystem

        nullify(pio_file)
        nullify(pio_iosystem)
        nullify(surface_pressure)

        call mpas_dynamical_core % get_variable_pointer(surface_pressure, 'diag', 'surface_pressure')

        surface_pressure(1:ncells_solve) = real(phys_state % ps(:), kind_dyn_mpas)

        nullify(surface_pressure)

        call mpas_dynamical_core % exchange_halo('surface_pressure')

        allocate(pio_file, stat=ierr)
        call check_allocate(ierr, subname, 'pio_file', 'dyn_comp', __LINE__)

        pio_iosystem => shr_pio_getiosys(atm_id)

        pio_ioformat = shr_pio_getioformat(atm_id)
        pio_ioformat = ior(pio_ioformat, pio_clobber)

        pio_iotype = shr_pio_getiotype(atm_id)

        ierr = pio_createfile(pio_iosystem, pio_file, pio_iotype, 'dyn_variable_dump.nc', pio_ioformat)

        if (ierr /= pio_noerr) then
            call endrun('Failed to create file for variable dumping', subname, __LINE__)
        end if

        call mpas_dynamical_core % read_write_stream(pio_file, 'w', 'invariant+input+restart+output')

        call pio_closefile(pio_file)

        deallocate(pio_file)

        nullify(pio_file)
        nullify(pio_iosystem)
    end subroutine dyn_variable_dump