File: elemental_17.f90

package info (click to toggle)
lfortran 0.60.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,416 kB
  • sloc: cpp: 173,406; f90: 80,491; python: 17,586; ansic: 9,610; yacc: 2,356; sh: 1,401; fortran: 895; makefile: 38; javascript: 15
file content (38 lines) | stat: -rw-r--r-- 907 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
module elemental_17_mod
  implicit none
  type string_t
    character(len=:), allocatable :: string_
  end type string_t
contains

  elemental function bracket(x) result(res)
    class(string_t), intent(in) :: x
    type(string_t) :: res

    res%string_ = x%string_ // " called func"
  end function bracket

end module elemental_17_mod


program elemental_17
  use elemental_17_mod
  implicit none

  type(string_t) :: lines(3)

  lines(1)%string_ = "Hello"
  lines(2)%string_ = "World"
  allocate(character(0) :: lines(3)%string_) ! Allocate empty strings (unallocated variables musn't be referenced)

  lines = bracket(lines)

  print *, lines(1)%string_
  if(lines(1)%string_ /= "Hello called func") error stop

  print *, lines(2)%string_
  if(lines(2)%string_ /= "World called func") error stop

  print *, lines(3)%string_
  if(lines(3)%string_ /= " called func") error stop
end program elemental_17