首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Fortran95中找到norm2()和move_alloc()的替代方法

在Fortran95中找到norm2()和move_alloc()的替代方法
EN

Stack Overflow用户
提问于 2021-03-07 19:57:26
回答 1查看 83关注 0票数 0

我编写基于现代Fortran的代码。出于某种原因,我想以一种与旧版本兼容的方式对其进行修改。这里需要从最新版本转换到版本95。我有两个内部函数的问题。"Mov_alloc“和"Norm2”是这些函数的一部分。我想知道:在Fortran 95中有没有针对它们的内部函数?或者,是否有任何外部函数可以精确地完成相同的工作?

EN

回答 1

Stack Overflow用户

发布于 2021-03-07 20:08:09

根据该定义,您可以很容易地自己实现norm2()。如果您的数字太大,溢出是一个问题,那么一定要小心。但最简单的版本也很简单

代码语言:javascript
复制
norm2 = sum(A**2)

在Fortran95中没有move_alloc()的等价物。您可能需要使用指针而不是可分配变量。你可以用C实现你自己的版本,但是这需要Fortran 2003-2018的很多特性,所以对你来说意义不大。

您可以考虑自己重新分配阵列并复制数据,而不是执行move_alloc()

代码语言:javascript
复制
   if (allocated(B)) deallocate(B)
   allocate(B(lbound(A,1):ubound(A,1)))
   B(:) = A
   deallocate(A)

但是,它与move_alloc()不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66516244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档