File: string_77.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 (32 lines) | stat: -rw-r--r-- 816 bytes parent folder | download | duplicates (3)
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
! Mainly testing declaration in function
module string_77_mod

    contains
  
  pure function foo (x) result(res)
    character(*), intent(in) :: x
    character(:), allocatable :: res
    allocate(character(len(x) + len("abc")):: res)
    res = x // 'abc'
  end function 
  
  pure function boo(x,y) result(res)
    integer, intent(in) :: x,y
    integer :: res
    res = x + y
  end function
  
  function ff(line,length) result(strout)  
    character(len=*):: line
    integer :: length
    character(len=boo(length, len(foo(line)))) :: strout ! the main concern of this test -- Is to handle this declaration correctly
  end function 
  
end module 
  
  
program string_77
    use string_77_mod
    print *, len(ff("Hello", 10)) !! Expected output: 18
    if(len(ff("Hello", 10)) /= 18) error stop
end program