usar poligono pairs lineas linea grafico graficas graficar grafica funcion ejemplos diagramas command-line fortran

command-line - pairs - poligono en r



Fortran: `READ(*,*)`!=Argumentos de línea de comandos. ¿Cómo usar argumentos de línea de comando? (1)

GCC versión 4.6

El problema: para encontrar una forma de ingresar los parámetros al ejecutable, digamos a.out , desde la línea de comando; más específicamente, ingrese una matriz de números de doble precisión.

Intento: utilizar el comando READ(*,*) , que es más antiguo en el estándar: Program test.f -

PROGRAM MAIN REAL(8) :: A,B READ(*,*) A,B PRINT*, A+B, COMMAND_ARGUMENT_COUNT() END PROGRAM MAIN

La ejecución -

$ gfortran test.f $ ./a.out 3.D0 1.D0

Esto no funcionó. En un momento de búsqueda profunda, encontré que

$./a.out 3.d0,1.d0 4.0000000000000000 0

funciona, pero la segunda línea es un mensaje de entrada, y el objetivo de hacer esto en una línea no se logra. Además, COMMAND_ARGUMENT_COUNT() muestra que los números introducidos en el indicador de entrada en realidad no cuentan como ''argumentos de línea de comando'', a diferencia de PERL.


Si desea que los argumentos se envíen a su programa en la línea de comandos, use la subrutina intrínseca estándar (desde Fortran 2003) GET_COMMAND_ARGUMENT . Algo como esto podría funcionar

PROGRAM MAIN REAL(8) :: A,B integer :: num_args, ix character(len=12), dimension(:), allocatable :: args num_args = command_argument_count() allocate(args(num_args)) ! I''ve omitted checking the return status of the allocation do ix = 1, num_args call get_command_argument(ix,args(ix)) ! now parse the argument as you wish end do PRINT*, A+B, COMMAND_ARGUMENT_COUNT() END PROGRAM MAIN

Nota:

  • El segundo argumento de la subrutina get_command_argument es una variable de carácter que tendrá que analizar para convertirse en real (o lo que sea). Tenga en cuenta también que he permitido solo 12 caracteres en cada elemento de la matriz args , es posible que desee jugar con eso.
  • Como ya has descubierto, read no se usa para leer los argumentos de la línea de comando en los programas de Fortran.

Como quiera leer una matriz de números reales, es mejor que utilice el enfoque que ya ha descifrado, que es leerlos desde la terminal una vez que el programa ha comenzado, depende de usted.