Fortran 主程序接收子程序返回的动态数组

本文展示了在Fortran编程中如何在主程序和子程序之间传递动态数组。通过在主程序定义动态数组,并在子程序中使用allocate分配内存,子程序能直接填充并返回数组给主程序,从而实现数据的传递。示例代码中,子程序create_dynamic_array创建了一个5x5的数组并赋值,主程序成功接收到并可进行后续操作,最后释放了数组内存。
摘要由CSDN通过智能技术生成

本文的情况是,在调用子程序的时候,不清楚数组的大小。

其实,就是只要在主程序定义好接收的数组是动态数组,然后在子程序同样定义输出数组为动态数组,然后在子程序直接allocate,貌似allocate可以在主程序子程序间传递,所以直接接收就好了。如下示例代码:

    module dynamic_array_module
    implicit none

    contains

    subroutine create_dynamic_array(array, n)
    real, allocatable, intent(out) :: array(:,:)
    integer, intent(out) :: n

    n = 5
    allocate(array(n,n))
    array = 1.0

    end subroutine create_dynamic_array

    end module dynamic_array_module

    program main_program
    use dynamic_array_module
    implicit none

    integer :: n
    real, allocatable :: result_array(:,:)

    call create_dynamic_array(result_array, n)


    ! 在这里,可以使用result_array进行操作

    deallocate(result_array)

    end program main_program

运行后可以发现,result_array可以直接接收到子程序中的array。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空花缱绻三分

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值