Fortran 动态分配数组

program  main


    integer  a(3,3)
    integer ,allocatable :: arr_out(:,:)
    data a /1,2,0,3,4,0,0,0,0/
    integer src_size, desc_size

    write(*,*) 'src_arr', a

    src_size=3
    desc_size=2

    allocate(arr_out (desc_size, desc_size))
    call resize_array(a,src_size, arr_out, desc_size)

    write(*,*) "arr_out", arr_out

    deallocate(arr_out)


    end

    subroutine resize_array(src_arr,src_size, desc_arr , desc_size)
    integer  src_size,desc_size
    integer  desc_arr(desc_size,desc_size)
    integer  src_arr(src_size,src_size)


    do i=1,desc_size
        do j=1,desc_size
            desc_arr (i,j) = src_arr(i,j)
        end do
    end do

    end subroutine

你可能感兴趣的:(Fortran)