interface_10.f90

来自「用于进行gcc测试」· F90 代码 · 共 58 行

F90
58
字号
! { dg-do compile }! PR fortran/30683! Code contributed by Salvatore Filippone.!module class_fld   integer, parameter :: int_ = 1  integer, parameter :: bnd_ = 2  type fld     integer                 :: size(2)  end type fld  !  !  This interface is extending the SIZE intrinsic procedure,    !  which led to a segmentation fault when trying to resolve  !  the intrinsic symbol name.  !  interface size     module procedure get_fld_size  end interfacecontains  function get_fld_size(f)    integer :: get_fld_size(2)    type(fld), intent(in) :: f    get_fld_size(int_) = f%size(int_)    get_fld_size(bnd_) = f%size(bnd_)  end function get_fld_sizeend module class_fldmodule class_s_fld  use class_fld  type s_fld     type(fld) :: base     real(kind(1.d0)), pointer :: x(:)  => null()  end type s_fld  interface x_     module procedure get_s_fld_x  end interfacecontains  function get_s_fld_x(fld)    real(kind(1.d0)), pointer :: get_s_fld_x(:)    type(s_fld), intent(in) :: fld    get_s_fld_x => fld%x  end function get_s_fld_xend module class_s_fldmodule class_s_foocontains  subroutine solve_s_foo(phi,var)    use class_s_fld    type(s_fld), intent(inout) :: phi    real(kind(1.d0)), intent(out), optional :: var    integer :: nsz    real(kind(1.d0)), pointer :: x(:)    x => x_(phi)    nsz=size(x)  end subroutine solve_s_fooend module class_s_foo! { dg-final { cleanup-modules "class_s_fld class_fld class_s_foo" } }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?