如何在 Fortran 中将字符转换为整数?

How to convert character to integer in fortran?

如何操作命令行参数? 例如

te.f90

program print_
integer :: i
character(len = 32) :: arg
i = 1   
Do 
   call get_command_argument(i, arg)
   if ( len_trim(arg) == 0) exit
       write(*,*) trim(arg)
       write(*,*) trim(arg)**2
       i = i + 1
end do
end program print_

te.sh

#!/bin/bash

for (( x = 1; x <=3; x++ ))
do
   ./te $x
done

我将 $x 作为 arg 传递,类型为 character,但我想在执行 ./te.sh 时将 arg 作为数字进行操作,我收到错误升级 Operands of binary numeric operator '**' at (1) are CHARACTER(1)/INTEGER(4).

怎么办?

您需要将字符串 (arg) 转换为整数。

program print_
   integer :: i, iarg
   character(len = 32) :: arg
   i = 1   
   Do 
      call get_command_argument(i, arg)
      if ( len_trim(arg) == 0) exit
          write(*,*) trim(arg)
          read(arg,"(I)") iarg
          write(*,*) iarg**2
          i = i + 1
   end do
end program print_