File: 097_type_with_procedures.f03

package info (click to toggle)
doxygen 1.9.8%2Bds-2.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 24,000 kB
  • sloc: cpp: 215,370; lex: 42,621; python: 32,388; ansic: 26,705; xml: 15,390; javascript: 8,352; yacc: 581; f90: 455; php: 441; perl: 378; makefile: 195; sh: 24; objc: 14; cs: 5; java: 1
file content (45 lines) | stat: -rw-r--r-- 1,032 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
!// objective: test type bound procedures
!// check: structmymodule_1_1t1.xml
!// config: OPTIMIZE_FOR_FORTRAN=YES
!// config: WARN_IF_UNDOCUMENTED=NO

module myModule
  implicit none
  private

  public :: T1

  type T1
    integer :: publicVariable
  contains
    !> brief doc
    procedure :: firstProc
    procedure, non_overridable :: secondProc => secondProc_impl
    procedure, nopass :: staticProc
    procedure, pass(this) :: redundantPass => firstProc !< another brief doc
    generic :: overloadedProc => firstProc, secondProc
    final :: destructor
  end type T1

contains

  !> short doc
  subroutine firstProc(this, i)
    class(T1) :: this !< this pointer
    integer, intent(in) :: i !< integer argument
  end subroutine

  subroutine secondProc_impl(this, r)
    class(T1) :: this
    real, intent(out) :: r
  end subroutine

  subroutine staticProc(someArg)
    integer :: someArg
  end subroutine

  elemental subroutine destructor(this)
    type(T1), intent(inout) :: this
  end subroutine

end module myModule