File: class_14.f90

package info (click to toggle)
lfortran 0.58.0-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 54,512 kB
  • sloc: cpp: 162,179; f90: 68,251; python: 17,476; ansic: 6,278; yacc: 2,334; sh: 1,317; fortran: 892; makefile: 33; javascript: 15
file content (42 lines) | stat: -rw-r--r-- 962 bytes parent folder | download
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
module malloc_failure
   
    implicit none
    
    type, public, abstract :: AbsType
    contains
       procedure(callee), deferred, nopass :: callee
    end type AbsType
    
    abstract interface
       subroutine callee(mode)
          integer, intent(in)  :: mode
       end subroutine callee
    end interface
       
    type :: SomeClass
       private
       class(AbsType), allocatable :: object
    contains
       procedure :: caller
    end type SomeClass
    
    interface SomeClass
       procedure :: constructor
    end interface SomeClass
    
 contains
 
    function constructor(object) result(self)
       type(SomeClass)            :: self
       class(AbsType), intent(in) :: object
       self%object = object
    end function constructor
    
    subroutine caller(self)
       class(SomeClass), intent(in)  :: self
       call self%object%callee(mode=0)
    end subroutine caller
 
end module malloc_failure
program main
end program