subroutine相关内容

运行子例程n次

我有下面的Perl代码: use strict; use warnings; sub powerset(&@) { my $callback = shift; my $bitmask = ''; my $bytes = @_/8; { my @indices = grep vec($bitmask, $_, 1), 0..$#_; ..
发布时间:2022-09-04 18:51:53 其他开发

在 Fortran 中将可分配字符传递给具有无限多态虚拟参数的子例程

我正在尝试编写一个例程,该例程能够基于无限多态性将字符串转换为不同类型的数据类型.这个想法是用户调用这个例程,将变量传递到它想要存储数据的位置,以及基于变量/参数类型定义转换的例程. 此例程的摘录如下: 子程序 GetAsScalar (this, value, status)!参数------------------------------------------------------ ..
发布时间:2022-01-24 16:52:46 其他开发

语法:“退出子"或“返回"在 VB.NET 子例程中

“退出子程序"或“返回"似乎都完成了同样的事情——退出子程序.它们在幕后的工作方式有什么不同吗? 也就是说, 私有子 exitNow()退出子结束子 或 私有子 exitNow()返回结束子 解决方案 来自文档: 在 Sub 或 Set 过程中,Return 语句等效于 Exit Sub 或 Exit Property 语句,不得提供表达式. 所以在这种情况下它们是相同 ..
发布时间:2022-01-19 15:09:33 其他开发

Arm Assembly在子程序中PUSH POP链接寄存器和pc并在子程序中调用子程序的正确方法

对于 ARM 程序集 我在我的子程序中一直在做以下事情: 子程序:推 {r1,r2,lr}//改变r1和r2的代码流行音乐 {r1,r2,lr}bx lr 这是从子例程返回并继续执行主函数中的代码的正确方法吗?我在周围看到人们正在做以下事情: 子程序:推 {r1,r2,lr}//改变r1和r2的代码流行音乐 {r1,r2,pc}bx lr 但我不知道为什么你在按下 LR 时会弹出 P ..
发布时间:2022-01-17 13:35:56 其他开发

指向派生类型子例程的 Fortran 过程指针

在 Fortran 中,我需要一个派生类型内的过程指针,它可以指向多个子例程之一.这个问题似乎在 SO 上很常见: Fortran 将过程保存为派生类型中的属性 Fortran 2003 中的类型绑定过程重载 没有匹配的具体此类型绑定的通用子程序调用的子程序 带有过程参数的通用类型绑定过程 类型绑定过程作为参数 仅举几例.functions 这个问题的答案在第一 ..
发布时间:2022-01-14 10:21:51 其他开发

以数组元素为参数的子程序

在我的程序子例程 stlstp 中,将 work(2,1) 作为参数传递给 stlfts(...) 子例程.work(2,1) 将是该索引处的双值,但子程序如何将其转换为一维数组 x(n)? 当我在 stlfts(...) 子程序中打印 x 值时,它正在打印 n 大小的元素,例如: STLFTS....X,,, 0.0000000000000000 1.4964418382246345E ..
发布时间:2022-01-14 10:14:49 其他开发

在 OpenMP 区域内调用内部子例程

我有一个包含一个子程序的模块,该子程序又包含另一个子程序.外部子例程有一个并行的 OpenMP 区域,我在其中调用内部子例程.代码编译运行没有任何错误但结果不正确. 模块 my_module包含子程序 a(...)*...一些变量*!$OMP 并行执行默认(私有)共享(...)*...做一些工作*呼叫 b(...)!$OMP 结束并行执行包含子程序 b(...)*...一些变量**...做一些工 ..
发布时间:2022-01-14 10:04:43 其他开发

FORTRAN - 子程序中的可分配数组

我正在尝试在子例程中使用可分配数组,但编译器抱怨 错误:在 (1) 处的变量定义上下文(ALLOCATE 对象)中带有 INTENT(IN) 的虚拟参数“locs" 我唯一能找到的是我应该使用显式接口,我正在这样做.这里是子程序的相关代码: 递归子程序(locs, LL, RL)整数,维度(:,:),可分配,意图(IN)::locs整数,意图(IN)::LL,RL分配(位置(LL,RL)) ..
发布时间:2022-01-14 10:04:04 其他开发

fortran 运算符重载:函数或子例程

我最近将我的 .f90 代码更新为 .f03,我期待看到加速,因为我的旧版本在 do 循环内的每次迭代中涉及许多分配和解除分配(7 个 3D 数组--45x45x45)(总共 4000).使用派生类型,我在模拟开始时分配这些数组并在结束时释放它们.我以为我会看到加速,但实际上运行速度要慢得多(30 分钟而不是 23 分钟). 我运行了一个分析器,看起来加/减/乘/除运算符需要相对较长的时间. ..

Fortran 中的外部声明(全局)变量

我想知道是否可以声明一个变量并将声明转移到另一个子例程或程序(因此成为全局) 例如 程序主程序隐式无打电话给我的子打印 *, x结束程序主子程序 mysub隐式无整数,参数 :: x = 1结束子程序 mysub 将打印“1" 这可能吗?我想这样做是因为我正在处理的程序有大量变量,除非必要,否则我宁愿避免复制. 解决方案 在现代 Fortran 中最直接的方法是使用模块. ..
发布时间:2022-01-14 09:59:10 其他开发

如何编译具有接口、模块和子例程的多文件夹 Fortran 项目

我是 Fortran 新手.我正在做一个研究项目,我正在使用一个开源项目,该项目有多个文件分布在多个文件夹中.我找到了每个程序的依赖关系,但不知道如何编译它们. 我将源代码分布在三个文件夹中.a) 模块b) 接口c) 子程序 我想在 subroutines 文件夹中运行一个名为“Main.f90"的程序,该程序依赖于模块和接口文件夹中的源代码. 我正在使用eclipse进行文件夹 ..
发布时间:2022-01-14 09:46:57 其他开发

如果可选参数不存在,我们可以避免创建局部变量吗?

我在使用 Fortran 95 的 PRESENT 语句时遇到问题.目前我正在使用 Silverfrost 的 Plato 和他们的 FTN95 编译器(在“发布 Win32"模式下).我想做的是创建一个子程序SUB(a,b),其中b 是一个可选变量.到目前为止一切顺利,但是当我尝试使用 if (.NOT.present(b)) b=0 为 b 赋予新值时出现问题.这是代码: 模块MOD包含子程 ..
发布时间:2022-01-14 09:41:23 其他开发

传递字符串以在 Fortran 子例程中执行

在下面的子程序中,我想传递一个名为 str 的字符串变量.如果是'poly'、'gaus'、'slat',那么它有一个预定义的动作(fval =见下面的代码).我想让用户指定要使用的函数并将其作为字符串变量传递. 那是…… 如果 str = '3*cos(i*t)',那么我希望 fval 等于 3*cos(i*t).如何让 Fortran 将输入的字符串解释为由 Fortran 执行的 ..
发布时间:2022-01-14 09:34:48 其他开发

在 Fortran 中正确使用模块

我经常与 FORTRAN 合作,但我从未接受过以正确方式编写源代码的正式指导.我目前使用模块来存储全局变量,但我知道您也可以使用它们来存储子例程和函数.我使用的代码有很多子例程,因为它们非常庞大且复杂.所有函数和子程序都应该在模块中吗?如果有,为什么? 解决方案 一般来说,您的第一个问题的答案是是的,我稍后会回答您的第二个问题.首先请注意,这是对一般问题的一般答案,围绕 SO Fortra ..
发布时间:2022-01-14 09:33:45 其他开发

行被截断,参数列表中的语法错误

当我编译下面的程序时,在 call Coor_Trans 命令行中出现错误和警告 警告:行被截断 错误:参数列表中的语法错误 我编译了好几次程序,但还是不行.可能我的调用命令有问题. 程序 3D隐式无整数 :: i,j,k整数,参数 :: FN=2,FML=5,FMH=5整数,参数 :: NBE=FN*FML*FMH实数,参数 :: pi = 4*atan(1.0)真实(种类= ..
发布时间:2022-01-14 09:27:56 其他开发

Fortran 是否通过函数和子例程调用保留内部变量的值?

经过痛苦的调试,我相信我找到了 Fortran 的一个独特属性,我想在 stackoverflow 上验证它. 我注意到的是,至少,内部逻辑变量的值在函数或子例程调用中被保留. 这里有一些示例代码来说明我的观点: PROGRAM function_variable_preserve隐式无字符(len=8)::func_negative_or_not!声明函数名整数 :: 输入字符(l ..
发布时间:2022-01-14 09:25:29 其他开发