File: format_18.f90

package info (click to toggle)
lfortran 0.45.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 46,332 kB
  • sloc: cpp: 137,068; f90: 51,260; python: 6,444; ansic: 4,277; yacc: 2,285; fortran: 806; sh: 524; makefile: 30; javascript: 15
file content (33 lines) | stat: -rw-r--r-- 1,000 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
module format_18_mod
    implicit none
    contains 
    character(100) function logical_to_string(value, format) 
        logical :: value
        character(len=*) :: format
        ! character(len=100), allocatable :: string

        character(len=100) :: buffer
        integer :: stat

        ! If format isn't equal to `l`, it should raise a runtime error
        ! but instead it would just set stat to not 0 (which indicates an error)
        write(buffer, "(" // format // ")", iostat=stat) value ! Note : if iostat isn't passed a runtime error would be raised.
        if (stat == 0) then
            logical_to_string = trim(buffer)
        else
            logical_to_string = "[*]"
        end if
    end function logical_to_string
end module format_18_mod

program name
    use format_18_mod
    implicit none
    logical :: logi 
    character(100) :: str
    logi = .true. 
    str = logical_to_string(logi, "(I5)") 
    print *, str
    if(str /= "[*]") error stop
end program name