execute Subroutine

private subroutine execute(me, pyfile)

Arguments

Type IntentOptional AttributesName
class(pyplot), intent(inout) :: me
character(len=*), intent(in), optional :: pyfile

Source Code


Source Code

    subroutine execute(me, pyfile)

    class(pyplot),    intent(inout)        :: me     !! pytplot handler
    character(len=*), intent(in), optional :: pyfile !! name of the python script to generate

    integer                       :: istat   !! IO status
    integer                       :: iunit   !! IO unit
    character(len=:), allocatable :: file    !! file name
    logical                       :: scratch !! if a scratch file is to be used

    if (allocated(me%str)) then

        scratch = (.not. present(pyfile))

        !file name to use:
        if (scratch) then
            file = trim(tmp_file)  !use the default
        else
            file = trim(pyfile)    !use the user-specified name
        end if

        !open the file:
        open(newunit=iunit, file=file, status='REPLACE', iostat=istat)
        if (istat/=0) error stop 'Error opening file.'

        !write to the file:
        write(iunit, '(A)') me%str

        !to ensure that the file is there for the next command line call:
        flush(iunit)

        !run the file using python:
        call execute_command_line(python_exe//' '//file)

        !close the file:
        if (scratch) then
            close(iunit, status='DELETE', iostat=istat)
        else
            close(iunit, iostat=istat)
        end if
        if (istat/=0) error stop 'Error closing file.'

        !cleanup:
        if (allocated(file)) deallocate(file)

    end if

    end subroutine execute


add_3d_plot add_bar add_contour add_plot add_str bctoi_I1P bctoi_I2P bctoi_I4P bctoi_I8P bcton bctor_R16P bctor_R4P bctor_R8P bit_size bit_size bit_size_chr bit_size_R16P bit_size_R4P bit_size_R8P bstr bstr_I1P bstr_I2P bstr_I4P bstr_I8P bstr_R16P bstr_R4P bstr_R8P byte_size byte_size_chr byte_size_I1P byte_size_I2P byte_size_I4P byte_size_I8P byte_size_R16P byte_size_R4P byte_size_R8P check_endian compact_real_string compute compute compute compute compute compute compute compute compute compute create create create create create create create create create create_alpha_coefficients create_alpha_coefficients_js_constructor create_alpha_coefficients_m_constructor create_alpha_coefficients_z_constructor create_base_object create_interpolator_constructor create_interpolator_js_constructor create_optimal_weights create_optimal_weights_js_constructor create_polynomials create_polynomials_js_constructor create_smoothness_indicators create_smoothness_indicators_js_constructor ctoi_I1P ctoi_I2P ctoi_I4P ctoi_I8P cton ctor_R16P ctor_R4P ctor_R8P description description description description description description description description description description description description destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy_interpolator_constructor digit digit_I1 digit_I2 digit_I4 digit_I8 execute initialize integer_to_string interpolate interpolate matrix_to_string optional_int_to_string penf_init penf_print savefig str str_a_I1P str_a_I2P str_a_I4P str_a_I8P str_a_R16P str_a_R4P str_a_R8P str_bol str_I1P str_I2P str_I4P str_I8P str_R16P str_R4P str_R8P strf_I1P strf_I2P strf_I4P strf_I8P strf_R16P strf_R4P strf_R8P strz strz_I1P strz_I2P strz_I4P strz_I8P tau vec_to_string weno_exp weno_odd wenoof_create