[1960] | 1 | module m_wxml_text |
---|
| 2 | ! |
---|
| 3 | integer, private, parameter :: sp = selected_real_kind(6,30) |
---|
| 4 | integer, private, parameter :: dp = selected_real_kind(14,100) |
---|
| 5 | ! |
---|
| 6 | ! TODO : Add optional format parameter |
---|
| 7 | ! |
---|
| 8 | private |
---|
| 9 | |
---|
| 10 | public :: str |
---|
| 11 | |
---|
| 12 | interface str |
---|
| 13 | module procedure str_integer, str_real_dp, str_real_sp, & |
---|
| 14 | str_logical |
---|
| 15 | end interface |
---|
| 16 | private :: str_integer, str_real_dp, str_real_sp, str_logical |
---|
| 17 | |
---|
| 18 | CONTAINS |
---|
| 19 | |
---|
| 20 | function str_integer(int,format) result(s) |
---|
| 21 | integer, intent(in) :: int |
---|
| 22 | character(len=*), intent(in), optional :: format |
---|
| 23 | character(len=100) :: s |
---|
| 24 | |
---|
| 25 | if (present(format)) then |
---|
| 26 | write(s,format) int |
---|
| 27 | else |
---|
| 28 | write(s,"(i25)") int |
---|
| 29 | endif |
---|
| 30 | s = adjustl(s) |
---|
| 31 | end function str_integer |
---|
| 32 | |
---|
| 33 | function str_logical(log,format) result(s) |
---|
| 34 | logical, intent(in) :: log |
---|
| 35 | character(len=*), intent(in), optional :: format |
---|
| 36 | character(len=100) :: s |
---|
| 37 | |
---|
| 38 | if (present(format)) then |
---|
| 39 | write(s,format) log |
---|
| 40 | else |
---|
| 41 | write(s,"(l1)") log |
---|
| 42 | endif |
---|
| 43 | s = adjustl(s) |
---|
| 44 | end function str_logical |
---|
| 45 | |
---|
| 46 | function str_real_dp(x,format) result(s) |
---|
| 47 | real(kind=dp), intent(in) :: x |
---|
| 48 | character(len=*), intent(in), optional :: format |
---|
| 49 | character(len=100) :: s |
---|
| 50 | |
---|
| 51 | if (present(format)) then |
---|
| 52 | write(s,format) x |
---|
| 53 | else |
---|
| 54 | write(s,"(g22.12)") x |
---|
| 55 | endif |
---|
| 56 | s = adjustl(s) |
---|
| 57 | end function str_real_dp |
---|
| 58 | |
---|
| 59 | function str_real_sp(x,format) result(s) |
---|
| 60 | real(kind=sp), intent(in) :: x |
---|
| 61 | character(len=*), intent(in), optional :: format |
---|
| 62 | character(len=100) :: s |
---|
| 63 | |
---|
| 64 | if (present(format)) then |
---|
| 65 | write(s,format) x |
---|
| 66 | else |
---|
| 67 | write(s,"(g22.12)") x |
---|
| 68 | endif |
---|
| 69 | s = adjustl(s) |
---|
| 70 | end function str_real_sp |
---|
| 71 | |
---|
| 72 | |
---|
| 73 | end module m_wxml_text |
---|