bindings_c2f_string Subroutine

public subroutine bindings_c2f_string(c_string, f_string)

Arguments

Type IntentOptional Attributes Name
character(kind=c_char, len=1), intent(in) :: c_string(*)
character(len=:), intent(out), allocatable :: f_string

Called by

proc~~bindings_c2f_string~~CalledByGraph proc~bindings_c2f_string bindings_c2f_string proc~bindings_c_driver bindings_c_driver proc~bindings_c_driver->proc~bindings_c2f_string

Source Code

      subroutine bindings_c2f_string(c_string, f_string)
         implicit none
         ! Arguments
         character(len=1,kind=c_char),              intent(in)  :: c_string(*)
         character(len=:),             allocatable, intent(out) :: f_string
         ! Internals
         integer :: i
         character(len=STRMAX) :: tmp_string

         i=1
         tmp_string = ''
         do while(c_string(i) /= c_null_char .and. i <= STRMAX)
            tmp_string(i:i) = c_string(i)
            i=i+1
         end do

         if (i > 1) then
            f_string = trim(tmp_string)
         else
            f_string = ""
         end if

         return
      end subroutine bindings_c2f_string