gpt4 book ai didi

syntax - 这些代码属于哪个 Fortran 标准?

转载 作者:行者123 更新时间:2023-12-02 02:34:22 25 4
gpt4 key购买 nike

我对 fortran 代码子例程中的语法感到困惑,如下所示:

subroutine X(lr_orth_response)(mesh, st, lr, omega)
type(mesh_t), intent(in) :: mesh
type(states_t), intent(in) :: st
type(lr_t), intent(inout) :: lr
R_TYPE, intent(in) :: omega

integer :: ist, ik
PUSH_SUB(X(lr_orth_response))

do ik = st%d%kpt%start, st%d%kpt%end
do ist = 1, st%nst
call X(lr_orth_vector) (mesh, st, lr%X(dl_psi)(:,:, ist, ik), ist, ik, omega)
end do
end do

POP_SUB(X(lr_orth_response))
end subroutine X(lr_orth_response)

我检查了所有 Fortran 标准,但找不到任何有用的信息!有谁知道标签lr_orth_response是什么?另外,通过指针访问数据在lr%X(dl_psi)(:,:, ist, ik), ist, ik, omega)这行中也有点困惑,其中lr 是用户定义的新类型lr_t,但没有名为X(dl_psi)的成员函数或变量。

最佳答案

这不是纯 Fortran。它看起来像是必须由某个预处理器(可能是 C 预处理器 cpp 或其变体 fpp)进行预处理的源。预处理器将使用一些宏扩展R_TYPEPUSH_SUBPOP_SUBX。一些宏显然依赖于一些名为lr_orth_response的参数。如果没有实际看到定义,我们无法说出该参数在这些宏中的作用,但我们需要您提供更多代码。它可能用于某些通用编程,但很难猜测到底是如何使用的。

关于syntax - 这些代码属于哪个 Fortran 标准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64544158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com