小编boo*_*toT的帖子

Fortran - 通用接口和特定接口之间的区别

我试图理解抽象接口和"普通"接口之间的区别.什么使界面抽象?什么时候需要?

假设下面的例子

module abstract_type_mod
  implicit none

  type, abstract :: abstract_t
  contains
    procedure(abstract_foo), pass, deferred :: Foo
  end type

  interface
    subroutine abstract_foo ( this, a, b )
      import :: abstract_t
      implicit none
      class(abstract_t), intent(in)  :: this
      real,              intent(in)  :: a
      real,              intent(out) :: b
    end subroutine
  end interface

end module

module concrete_type_mod
  use abstract_type_mod
  implicit none

  type, extends ( abstract_t ) :: concrete_t
  contains
    procedure, pass :: Foo
  end type

  contains

  subroutine Foo ( this, a, b )
    implicit none
    class(concrete_t), …
Run Code Online (Sandbox Code Playgroud)

fortran interface

6
推荐指数
1
解决办法
1293
查看次数

C++11 线程与 OpenMP 对于简单并行循环的比较。哪个、什么时候?

这是我的另一个问题的后续。

我想知道带有归约操作的并行循环(例如并行集成)是否属于 C++11 线程的适用范围,或者 OpenMP 是否最适合此类任务。

现在,考虑相同的设置,但线程执行可能引发异常的计算。它会改变场景吗?现在 C++11 线程最适合吗?

谢谢。

multithreading c++11

4
推荐指数
1
解决办法
2735
查看次数

如何使用printf从可变大小的列表中输出文本?

我想用自动执行某些输出printf的,但我在努力寻找一种方法来传递给它的参数列表expr_1, ..., expr_n

printf (dest, string, expr_1, ..., expr_n)
Run Code Online (Sandbox Code Playgroud)

我想过使用类似Javascript的spread 运算符,但我甚至不确定我是否需要它.

对于instace,说我有一个要输出的字符串列表

a:["foo","bar","foobar"];
Run Code Online (Sandbox Code Playgroud)

比如说,一串适当的格式描述符

s: "~a ~a ~a ~%";
Run Code Online (Sandbox Code Playgroud)

和输出流,比方说os.如何printf以这样的方式调用这些东西,使得结果与写入相同

printf(os,s,a[1],a[2],a[3]);
Run Code Online (Sandbox Code Playgroud)

然后我可以将它概括为输出可变大小的列表.

有什么建议?

谢谢.

编辑:

我刚学会了,apply并且使用我在OP中提出的条件,以下似乎非常有用:

apply(printf,append([os,s],a));
Run Code Online (Sandbox Code Playgroud)

maxima

3
推荐指数
1
解决办法
280
查看次数

具有不同目录中文件的模式规则?

经过一番挣扎之后,我写下了以下模式规则

%.o : $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90)))
        $(COMPILE) $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90))) -o $@
Run Code Online (Sandbox Code Playgroud)

SRCDIR是找到相应源代码文件的位置。目标文件和源代码文件位于单独的目录中,并且目标文件名包含其路径。因此,对于每个目标文件,源代码文件名都是通过文本替换获得的,并以开头SRCDIR

我怎样才能更简洁地做到这一点?

谢谢。

makefile gnu-make

2
推荐指数
1
解决办法
854
查看次数

标签 统计

c++11 ×1

fortran ×1

gnu-make ×1

interface ×1

makefile ×1

maxima ×1

multithreading ×1