Convert string to integer in Fortran 90

I know that IACHAR(s) returns the code for the ASCII character in the first position of the character of string s, but I need to convert the entire string to an integer. I also have several lines (about 30 lines, each of which consists of no more than 20 characters). Is there a way to convert each of them into a unique integer in Fortran 90?

+6
source share
1 answer

You can read string into an integer variable:

 module str2int_mod contains elemental subroutine str2int(str,int,stat) implicit none ! Arguments character(len=*),intent(in) :: str integer,intent(out) :: int integer,intent(out) :: stat read(str,*,iostat=stat) int end subroutine str2int end module program test use str2int_mod character(len=20) :: str(3) integer :: int(3), stat(3) str(1) = '123' ! Valid integer str(2) = '-1' ! Also valid str(3) = 'one' ! invalid call str2int(str,int,stat) do i=1,3 if ( stat(i) == 0 ) then print *,i,int(i) else print *,'Conversion of string ',i,' failed!' endif enddo end program 
+11
source

Source: https://habr.com/ru/post/970416/


All Articles