fortran子程序传入可变数组要在module里实现

在Fortran编程中,当需要处理未知大小的矩阵时,通常会遇到子程序无法接收可变数组的问题。解决这个问题的方法是将子程序放入一个module中。通过这种方式,可以创建一个能够接受动态大小矩阵并返回列数的子程序。在实际的主程序和子程序示例中,展示了如何正确实现这一功能,避免出现错误。
摘要由CSDN通过智能技术生成

坑死我了,我说怎么子程序传递不了可变数组

在写fortran程序的时候,要对矩阵实现特定的功能,如高斯法解线性方程组,很多时候子程序不知道矩阵的大小,如有限元程序中先要用程序得到总体刚度矩阵再把总刚传入求解矩阵方程的子程序中。所以实现子程序参数是可变数组的功能要将子程序放在module中。具体如下:

主程序1(kk1.f90):

 
 1 program main
 2 implicit none
 3 real,allocatable::a(:,:)
 4 integer::np
 5 allocate(a(2,3))
 6 a(1,:)=(/1.2,3.4,5.6/)
 7 a(2,:)=(/1.2,3.4,5.6/)
 8 call trya(a,np)
 9 write(*,*)np
10 end program main
 

子程序1(try1.f90):

 
1 subroutine trya(a,np)
2 implicit none
3 real,intent(in),allocatable,dimension(:,:)::a
4 integer,intent(out)::np
5 np = size(a,2)
6 end subroutine trya
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值