File: string_79.f90

package info (click to toggle)
lfortran 0.59.0-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 56,736 kB
  • sloc: cpp: 168,052; f90: 74,272; python: 17,537; ansic: 7,705; yacc: 2,345; sh: 1,334; fortran: 895; makefile: 37; javascript: 15
file content (24 lines) | stat: -rw-r--r-- 733 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
! Testing declaration in function
module string_79_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 ff(line,length) result(strout)  
    character(len=*) , intent(in) :: line
    integer          , intent(in) :: length
    character(len=max(length, len(foo(line)))) :: strout ! The main concern of this test -- Is to handle this declaration correctly
  end function 
  
  end module 
  
  
  program string_79
    use string_79_mod
    print *, len(ff("HelloWorld", 10))
    if(len(ff("HelloWorld", 10)) /= 13) error stop
  end program