小编byl*_*byl的帖子

我可以根据参数数量重载类型绑定过程吗?

我正在使用旧的 Fortran 语言编写空气动力学代码(源代码在这里)。初始化的一部分是读取包含表面网格信息的文件,基本上是构成表面的一组三角形或四边形面板。我想使用单一类型来描述四边形和三角形面板panel。为此,我编写了两个初始化函数panel_init_3panel_init_4它将根据面板有多少个顶点将数据加载到类型中。我想将它们绑定到我的panel类型,并根据参数的数量重载它们(即,如果它传递了一个整数和 3 个顶点对象,那么panel_init_3就会被调用,对于 4 个顶点对象也是如此。

这是该类型的源代码:

module panel_mod

    use linked_list_mod
    use vertex_mod

    implicit none


    type panel
        ! A panel with an arbitrary number of sides

        integer :: N ! Number of sides/vertices
        type(vertex_pointer),dimension(:),allocatable :: vertices
        real,dimension(3) :: n_hat ! Normal vector
        real :: A ! Surface area

        contains

            procedure :: init => panel_init_3, panel_init_4
            procedure :: calc_area => panel_calc_area
            procedure :: calc_normal => panel_calc_area

    end type …
Run Code Online (Sandbox Code Playgroud)

oop fortran gfortran

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

标签 统计

fortran ×1

gfortran ×1

oop ×1