File: string_79.f90

package info (click to toggle)
lfortran 0.58.0-6
  • 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: 37; javascript: 15
file content (24 lines) | stat: -rw-r--r-- 733 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
! 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