带命令行参数的Fortran程序
在C中,主函数是可以有参数的,因而可以很方便地在C程序中处理命令行参数,如下:
int main(int argc,char *argv[]){
.........
}
参数个数位于argc中,具体参数以空格分隔,分别存储到argv这个二维指针中,实际是bash将参数按照空格分隔,然后将其组成多个字符串数组,传递给主程序。
在Fortran中主函数是没有参数的,所以要获取命令行参数需要额外调用其他的函数。
agrc=iargc():
返回命令行参数的个数
call getarg(i,buffer):
读取命令行的第i个参数,并将其存储到buffer中,其中命令本身是第0个参数
对于Fortran2003及其之后,使用GET_COMMAND_ARGUMENT来获取参数
例子:
PROGRAM test_get_command_argument
INTEGER :: i,n
CHARACTER(len=32) :: arg
i = 1
DO
CALL get_command_argument(i, arg)
IF (LEN_TRIM(arg) == 0) EXIT
READ(arg,'(I3)') n
WRITE (*,*) n*n
i = i+1
END DO
END PROGRAM
比如编译后的可执行程序叫testComArg,在终端中输入: ./testComArg 2 3
将得到:
4
9