Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=length_mx), | intent(in) | :: | string_in | |||
integer, | intent(in) | :: | length_mx | |||
character(len=length_mx), | intent(in) | :: | seperator_in | |||
integer, | intent(in) | :: | mxseg | |||
integer, | intent(out) | :: | nseg | |||
character(len=length_mx), | intent(out) | :: | str_piece(mxseg) | |||
integer, | intent(out) | :: | jstatus |
subroutine split_string_by_seperator (string_in, length_mx, seperator_in, & mxseg, nseg, str_piece, jstatus) character (len=length_mx), intent (in) :: string_in integer, intent (in) :: length_mx character (len=length_mx), intent (in) :: seperator_in integer, intent (in) :: mxseg integer, intent (out):: nseg character (len=length_mx), intent (out):: str_piece(mxseg) integer, intent (out):: jstatus character (len=length_mx) :: string_sc, string_oper, string_aux character (len=1) :: mark, CH integer :: ios integer :: wc integer :: len1, len2 ! ! "xxxx; yy; zz; uu, vv," ! seperator = ";," ! !__ s1. replace seperator by space ! string_sc = trim( adjustl(string_in) ) string_oper = trim( adjustl(seperator_in) ) len1 = len_trim(string_sc) len2 = len_trim(string_oper) string_aux=string_sc do i = 1, len1 CH = string_sc(i:i) do j = 1, len2 mark = string_oper(j:j) if (CH==mark) then string_aux(i:i)=' ' end if end do end do !__ s2. split by space call split_string_by_space (string_aux, length_mx, & mxseg, nseg, str_piece, jstatus) return end subroutine split_string_by_seperator