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 + -
显示快捷键?