allocatable-array相关内容

从 g95 移动到 gfortran 时,“可分配数组必须具有延迟形状"

从使用 g95 编译器转换到 gfortran 时,当我尝试编译以前的工作代码时出现以下错误 错误:(1) 处的可分配数组“"必须具有延迟形状 这发生在我所有可分配数组的所有子例程中.下面是一个例子. SUBROUTINE TEST(name,ndimn,ntype,nelem,npoin,nface,inpoel,coord,face)隐式无整数:: i, j,测试整数,INTENT(O ..
发布时间:2022-01-14 09:57:12 其他开发

Fortran:选择可分配数组的等级

我正在尝试编写一个程序,其中我希望可分配数组 A 的等级为 1、2 或 3,具体取决于我在运行时的输入.我想这样做是因为 A 上的后续操作是相似的,并且我在模块中定义了一个接口 work 和模块过程,当对 A,给出想要的结果. 我目前正在做的是: 程序主隐式无整数 :: rank,n=10实数*8,可分配 :: A1(:)实数*8,可分配 :: A2(:,:)读取 (*,*) 等级如果 ( ..
发布时间:2021-11-18 04:32:06 其他开发

复制到另一个可分配的数组后,Fortran 90不会保持数组上下边界

这不起作用 程序主要隐式无整数:: nx = 3整数:: ny = 5整数:: nz = 8真实的,可分配的,尺寸(:,:,:) :: A真实的,可分配的,尺寸(:,:) :: B分配(A(nx,0:ny,nz))!...用数组A做某事,并在某个时候将A的一部分切成B:B = A(:,:,1)!在这种情况下B为(1:nx,1:ny + 1)结束程序主要 上面的代码自动分配B并将A(:,:,1 ..

CUDA-Fortran设备数据结构中的可分配数组

我试图在驻留在GPU内存中的“设备”数据结构中使用可分配数组。代码(粘贴在下面)编译,但给出了段错误。我做了什么明显错误? $ b 模块文件名为'gpu_modules.F90',如下所示: !============= !该模块包含数据结构的定义和数据 !存储在设备上 !============= 模块GPU_variables 使用cudafor 类型:: data_ ..
发布时间:2018-03-16 17:38:40 其他开发

Fortran:选择可分配数组的排名

我正在尝试编写一个程序,我希望可分配数组 A 具有1,2或3级别,这取决于我在运行时的输入。我希望这样做,因为后续对 A 的操作是相似的,并且我在模块中定义了一个接口 work 模块过程在 A 上执行时会给出所需的结果。 目前我所做的是: 程序主 隐含无 整数::等级,n = 10 真实* 8,allocatable :: A1(:) real * 8,allocatable : ..
发布时间:2018-03-16 17:31:53 其他开发

Fortran可分配的内部内存表示

我想知道fortran可分配数组的内部内存表示是什么。 我明白这比原始指针复杂一点,因为形状和行列也必须存储。 我也猜测它是依赖于实现的,因为我没有找到 Fortran 2003标准。不过,我想知道用什么样的结构来表示可分配数组(即使只有一个编译器)。 我知道这个问题有点宽泛,但任何帮助都将不胜感激。 解决方案 可分配数组,指针数组,也假定​​形状数组参数使用数组描述符处 ..
发布时间:2018-03-16 17:02:52 其他开发

在C中分配内存用于Fortran可分配

我们正试图在C ++中接管传统Fortran代码(+100,000行代码)的内存分配,因为我们使用C库在集群上分配和分配分布式内存。可分配变量在模块中定义。当我们调用使用这些模块的子程序时,索引似乎是错误的(移动一个)。然而,如果我们将相同的参数传递给另一个子例程,我们就得到了我们期望的结果。以下简单示例说明了此问题: hello.f95: MODULE MYMOD IMPLIC ..
发布时间:2016-10-25 15:27:05 C/C++开发