FORTRAN 90 command line arrgument

  • Context: Fortran 
  • Thread starter Thread starter nikkinath
  • Start date Start date
  • Tags Tags
    Fortran Line
Click For Summary

Discussion Overview

The discussion revolves around executing a FORTRAN 90 program that requires command line arguments, specifically focusing on how to automate the execution of this program with varying input parameters. Participants are exploring ways to create a script that can handle multiple iterations of the program using values from an input file.

Discussion Character

  • Exploratory
  • Technical explanation
  • Homework-related

Main Points Raised

  • One participant seeks assistance with executing a FORTRAN program that takes three command line arguments, including a text file and two variables.
  • Another participant suggests using the getarg() subroutine to retrieve command line arguments, but requests clarification on the use of the two variables.
  • A participant expresses the need to read from an additional input file containing multiple variables and to compute results in a nested loop, aiming to generate an n*n matrix.
  • Concerns are raised about the distinction between input files containing numbers versus variables, and the clarity of the participant's objectives is questioned.
  • One participant suggests that if the user is more familiar with C, they might consider writing the code in C instead of FORTRAN.
  • Another participant proposes writing a shell script to handle the execution of the FORTRAN program, emphasizing the use of a terminal script to manage the iterations and command line arguments.

Areas of Agreement / Disagreement

Participants express varying levels of understanding and clarity regarding the original poster's requirements. There is no consensus on the best approach to automate the execution of the FORTRAN program, with multiple suggestions and methods being proposed.

Contextual Notes

There are unresolved questions regarding the specific structure of the input files and the intended computations. The discussion reflects a lack of clarity in the original poster's description of their needs and the expected output format.

nikkinath
Messages
3
Reaction score
0
Hi All,
I am very new to FORTRAN Programming. The problem is related to commandline argument. i have a executable program which take 3 command line argument as an input. one is text file and two is variable. I want to write a script were i can execute this script and save in different file and should be able to change the arguments. for example;

./exe1 input.txt x x[j] > output.txt

i=j=1 ... 10

Any help or suggestion will be appreciated. Please let me know if any other information is neede.

Thank you
 
Technology news on Phys.org
nikkinath said:
Hi All,
I am very new to FORTRAN Programming. The problem is related to commandline argument. i have a executable program which take 3 command line argument as an input. one is text file and two is variable. I want to write a script were i can execute this script and save in different file and should be able to change the arguments. for example;

./exe1 input.txt x x[j] > output.txt

i=j=1 ... 10

Any help or suggestion will be appreciated. Please let me know if any other information is neede.

Thank you


According to this web page, you can use the getarg() subroutine to get the i-th command line argument.

Code:
          PROGRAM test_getarg
            INTEGER :: i
            CHARACTER(len=32) :: arg
          
            DO i = 1, iargc()
              CALL getarg(i, arg)
              WRITE (*,*) arg
            END DO
          END PROGRAM

Your description of what you're trying to do is not very clear, particularly what you need to do with the two variables on the command line. Can be give a clearer description?
 
Thank you so much for your help and sorry for confusion.

beside input.txt file i have one more input file which have 10 variable (x1,x2...x10) and i would like to make a script which read nested loop to read and compute x1 and x1 and for next iteration it should consider x1 and x2.. and so on such that this script will give me n*n metrix..

and save this ouput in new output.txt file ..

if still some confusion please let me know...

Thank you for your advise
 
nikkinath said:
Thank you so much for your help and sorry for confusion.

beside input.txt file i have one more input file which have 10 variable (x1,x2...x10) and i would like to make a script which read nested loop to read and compute x1 and x1 and for next iteration it should consider x1 and x2.. and so on such that this script will give me n*n metrix..
Why do you need two input files?
The input file almost certainly doesn't contain variables - it contains numbers. Variables are what your program (which is NOT a script) uses to store numbers.

What do you mean "read and compute x1 and x1?"
How will your program "consider" x1 and x2?

I still don't know what you're trying to do.
nikkinath said:
and save this ouput in new output.txt file ..

if still some confusion please let me know...

Thank you for your advise
 
sorry for the confusion again as i told you before very new to FORTRAN I need to run this for my research.. so thought ask for help...

I haven't made this ./exe program i am just using it and to execute this ./exe we need 3 arguments one is input.txt file and other two are variables such as X and Y..

but i want to run this ./exe for more than 10 times .. if i want i can do it manually by entering all the values of X and Y one by one... but i want to know if there is any way i can write a program such that itself read another file which contains values of X and Y and execute ./exe

i know how to do this in R or C ... but my less knowledge in Fortran is giving me hard time.

if still not clear than let me put it in this way

do i till 10

do j till 10

./exe input.txt x x[j] >> output.txt !but i want to amend all the output in one file

end do

end do
 
Why don't you write the code you want in C, since you're more familiar with that than you are with Fortran?
 
If the fortran exe file is already compiled and all you want to do is run it a few times, what you need to do is write a script for the shell you are accustom to run the fortran, in the first place...

so, if you use a terminal with bash, just write a script that takes two arguments (names of the two files, the one input file and the one with the x's)...then, make the loop at the bash level and execute the fortran program from there.
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 17 ·
Replies
17
Views
7K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 12 ·
Replies
12
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 12 ·
Replies
12
Views
3K
  • · Replies 3 ·
Replies
3
Views
5K
Replies
3
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K