| 查看: 1315 | 回复: 0 | ||
[求助]
Fortran语言:自定函数使用allocatable变量返回的问题
|
|
运行程序,result(dat)返回的结果是allocate(dat(2))后dat初始化的值,跟 dat(1)=temp, dat(2)=1的运算没有关系。 程序监控显示,调用function gcd(a,b)时,在end function之前,dat的结果还是对的。 请问,为什么返回时,dat的值会变成初始状态呢? 我只确定跟allocateable有关,具体原因还是没搞明白。请各位大神指教! 下面是我的程序: module gcd_module !测试可变变量返回问题,原程序为求取最小公约数。 contains function gcd(a,b) result(dat) implicit none integer, intent (in) :: a, b integer, allocatable :: dat(: ) integer :: temp if (a<b) then temp = a else temp = b end if do while ((mod(a,temp)/=0) .or. (mod(b,temp)/=0)) temp = temp - 1 end do allocate(dat(2)) dat(1)=temp dat(2)=1 end function gcd end module gcd_module program ch1207 use gcd_module implicit none integer :: i, j integer,dimension(2):: result print *, ' type in two integers' read *, i, j result = gcd(i,j) print *, ' gcd is ', result end program ch1207 |
» 猜你喜欢
推荐一本书
已经有12人回复
基金申报
已经有4人回复
计算机、0854电子信息(085401-058412)调剂
已经有4人回复
国自然申请面上模板最新2026版出了吗?
已经有9人回复
溴的反应液脱色
已经有6人回复
纳米粒子粒径的测量
已经有7人回复
常年博士招收(双一流,工科)
已经有4人回复
参与限项
已经有5人回复
有没有人能给点建议
已经有5人回复
假如你的研究生提出不合理要求
已经有12人回复
找到一些相关的精华帖子,希望有用哦~
Fortran怎么从一个dat文件中读取不同类型数据赋值给不同的变量?
已经有8人回复
fortran 如何在子程序中实现动态数组的定义和声明?
已经有15人回复
未分配内存的动态数组,如何作为参数传递到子函数,并在子函数中分配内存
已经有4人回复
fortran中的数组越界问题,
已经有3人回复
fortran循环求助
已经有3人回复
关于应用fortran编写高斯消去法程序来求解方程组的问题
已经有5人回复
Fortran allocate 程序段编译出错求助。
已经有5人回复
想问一下影响fortran计算速度的因素都有哪些?
已经有12人回复
[讨教]Fortran里的指针都有些什么用啊?
已经有10人回复
list-directed I/O syntax error,unit 12
已经有4人回复
fortran 随机数 每次运行都是一样的!
已经有14人回复
请教一个fortran小程序编译出错的问题,谢谢
已经有9人回复
【求助】求指点,在Fortran里面,怎样实现“数组维度可调”的数组?
已经有5人回复
科研从小木虫开始,人人为我,我为人人












回复此楼
点击这里搜索更多相关资源