Download presentation
Presentation is loading. Please wait.
Published byElla Briggs Modified over 9 years ago
1
1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail
2
2 Top-down programming n 4 basic steps –Specify the problem clearly –Analyse the problem and break it down into its fundamental elements –Code the program according to the plan developed at step 2 –Test the program exhaustively, and repeat steps 2 and 3 as necessary until the program works in all situations that you can envisage
3
3 Program = Data Types + Algorithms n Data types: what you work on n Algorithms: what you do with them
4
4 Structure of a program (in Fortran 90) Heading ( program, module, etc.) n specification part n execution part n subprogram part end program statement
5
5 program Radioactive_Decay !---------------------------------------------------------------------------- ! This program calculates the amount of a radioactive substance that ! remains after a specified time, given an initial amount and its ! half-life. Variables used are: ! InitalAmount : initial amount of substance (mg) ! HalfLife : half-life of substance (days) ! Time : time at which the amount remaining is calculated (days) ! AmountRemaining : amount of substance remaining (mg) ! ! Input: InitialAmount, HalfLife, Time ! Output: AmountRemaining !----------------------------------------------------------------------------- implicit none real :: InitialAmount, HalfLife, Time, AmountRemaining ! Get values for InitialAmount, HalfLife, and Time. print *, "Enter initial amount (mg) of substance, its half-life (days)" print *, "and time (days) at which to find amount remaining:" read *, InitialAmount, HalfLife, Time ! Compute the amount remaining at the specified time. AmountRemaining = InitialAmount * 0.5 ** (Time / HalfLife) ! Display AmountRemaining. print *, "Amount remaining =", AmountRemaining, "mg" end program Radioactive_Decay
6
6 Data Types n Five basic types: –integer –real –complex –character –logical n Data types of ‘container’ classes
7
7 Integers n a whole number (positive, negative or zero) n no decimal point Examples 0 123 -23456 +123789
8
8 Reals n Numbers with decimal fractions n There has to be decimal point Examples 1.23456 -0.001987 5678. Another representation: 1.952e3 0.1952e4 123.456e-8
9
9 Character n Sequence of symbols from the Fortran character set n Enclosed between double quotes Examples "This is a string" "I do, I don't" "1234abc345"
10
10 Logical n Can take only two values:.TRUE..FALSE.
11
11 Identifiers n Names used to identify programs, constants, variables, etc. n Identifiers must Begin with a letter n This can be followed by up to 30 letters, digits, undescores n Be careful with the case: lower or upper case letters
12
12 Identifiers Examples Current Decay_Rate pressure an_identifier_with_a_long_name the_best_program
13
13 Constants n 10293845 is an integer constant n 12.3456 is a real constant n "What a nice day!" is a character constant
14
14 Variables: Variables: It is usual for people to associate a name or phrase with a piece of information. For example, the phrase "today's date" has an associated numeric value which varies day by day. This is similar to the concept of a program variable; a program variable is some object (named by the programmer) which uniquely identifies a piece of data stored in memory. n Variables are value containers n Compiler associates with a variable a memory location n Value of a variable at any time is the value stored in the associated memory location at that time
15
15 Variables 123.56 23456 MEMORY Hello World 1234567 Message Payment
16
16 Declarations of Variables Form: type-specifier :: list n Declares that the identifiers in the list have the specified type n Type statements must appear in the specification part of the program Examples integer :: number_years, counts, months real :: Mass, Velocity, Acceleration character (len=12) :: MyName, YourName
17
17 implicit none n It should be placed at the beginning of the specification part n You have to declare all variables you will be using in the program!
18
18 Variable initialization n All variables are initially undefined Initialization in the declarations Examples: real :: W=1.2, z=5.678, mass=4.56 integer :: year=1998, count=0
19
19 Named constants Form: type-specifier, parameter :: list Examples integer, parameter :: INITCOUNT = 30 real, parameter :: G = 9.81 n It's a good idea to write named constants in upper case
20
20 Arithmetic operations n Variables and constants can be processed by using operations and functions appropriated to their types. n Operations
21
21
22
22 Operations Examples To calculate B 2 - 4AC B**2 - 4*A*C n Types are important: 9/4 = 2 9.0/4.0 = 2.25 Mixed-mode expressions: 3 + 8.0/5 3 + 8.0/5.0 3 + 1.6 3.0 + 1.6 4.6
23
23 Priority rules n All exponentiations are performed first; consecutive exponentiations are performed from right to left n All multiplications and divisions are performed next; in the order in which they appear from left to right n Additions and subtractions are performed last, in the order in which they appear from left to right
24
24 Some examples 2 ** 3 ** 2 = 512 n 10/5 *2 = 2 * 2 = 4 n To calculate 5 1/3 5.0**(1.0/3.0) but not 5.0**(1/3) 5.0**0 1.0
25
25 Library functions abs(x) Absolute value of x cos(x) Cosine of x radians exp(x) Exponential function int(x) Integer part of x sqrt(x) Square root of x
26
26 Assignment statement Form: variable = expression Assigns the value of expression to variable Assignment is not a statement of algebraic equality; it is a replacement statement Examples Density = 2000.0 Volume = 3.2 Mass = Density*Volume WeightRatio = log(Mass/90.)
27
27 Programs need to communicate with users! n Two kinds of I/O (for the moment!): –Formatted I/O –List-directed I/O List-directed output print *, output-list write (unit=*, fmt=*) output-list List-directed input read *, input-list read (unit=*, fmt=*) input-list
28
28 List-directed I/O Examples print *, "Tell me your birthday" write (unit=*, fmt=*) a, b, c**2 read *, day, month, year
29
29
30
30
31
31
32
32
33
33
34
34
35
35
36
36
37
37
38
38
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.