Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Simple fortran help

  1. Sep 17, 2012 #1
    I am ust beginning a fortran assignment, where I need to get a users input, to get numbers and a true/false statement. These I'm hoping will be able to translate to parameters for a bigger program. So far my code looks like:

    integer N,l,Tsteps
    logical PBC
    print*,"Input Number"
    read (*,*) N
    print*,"Number=", N
    print*,"Input Square Grid Size (one number; LXL)"
    read (*,*) l
    print*,"Grid length and width is ", l !Want this to say l x l; is there a way to do it? Again, I'm new at this.
    print*,"Input time"
    read (*,*) T
    print*,"Time =", T
    print *, "True or False?"
    read (*,*) PBC ! How do I get this so that it recognize .true. or .false. from this statement?

    Integer,parameter :: n=N ! Will this work?
    integer, parameter :: L = l
    integer, parameter :: t=T
    logical, parameter :: pbc = .PBC.

    So in summar the 3 questions are:
    1) how do i output something to say " * and * "
    2) How do I get a user input statement to be recognized into a logical term?
    3) how do I get integers to transform into parameters (or can I just have the input already be in parameter form?)

    Thank you for your help
  2. jcsd
  3. Sep 17, 2012 #2


    Staff: Mentor

    No, these won't work. A parameter is a constant. N, l, and T are variables. I don't know what .PBC. is.
    print *, " * and * "
    Pretty much, you can't. Anything a user types on the keyboard is a string of one or more characters. You can ask the user to press the 'T' character to signify true and the 'F' character to signify false, and then use logic in your program (if ... then block) to compare what the user typed to the characters 'T' or 'F'. If you want to get a little more robust, you can also compare to lower case characters 't' and 'f'.
    Not sure I understand what you're asking, although you can pass values as parameters of functions or subroutines.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook