!----- Ex9_6: String having Variable Length ----- MODULE variable_string_data TYPE v_string CHARACTER(LEN=80) :: str INTEGER :: len END TYPE CONTAINS FUNCTION length(s) CHARACTER(LEN=*), INTENT(IN) :: s INTEGER :: length, i, ls ; ls = LEN(s) IF( s(ls:ls) /= ' ') THEN length = ls ELSE IF( s(ls-1:ls-1) /= ' ') THEN length = ls-1 ELSE length = INDEX(s, ' ') - 1 END IF END FUNCTION END MODULE ! PROGRAM main USE variable_string_data TYPE(v_string) :: vst PRINT*, "Input a sentence. : " READ '(A)', vst%str vst%len = length(vst%str) PRINT "(A, '(', I2, ')' )", vst%str(1:vst%len), vst%len END