1 week 2 n organizational matters n fortran 90 (subset f): basics n example programs in detail

38
1 Week 2 Organizational matters Fortran 90 (subset F): Basics Example programs in detail

Upload: ella-briggs

Post on 02-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

1

Week 2

Organizational matters Fortran 90 (subset F): Basics Example programs in detail

Page 2: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

2

Top-down programming

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

Page 3: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

3

Program = Data Types +

Algorithms Data types:

what you work on Algorithms:

what you do with them

Page 4: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

4

Structure of a program(in Fortran 90) Heading (program, module, etc.) specification part execution part subprogram part end program statement

Page 5: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

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

Page 6: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

6

Data Types

Five basic types:– integer– real– complex– character– logical

Data types of ‘container’ classes

Page 7: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

7

Integers

a whole number (positive, negative or zero)

no decimal point Examples0123-23456+123789

Page 8: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

8

Reals

Numbers with decimal fractions There has to be decimal point Examples1.23456-0.0019875678.

Another representation:1.952e30.1952e4123.456e-8

Page 9: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

9

Character

Sequence of symbols from the Fortran character set

Enclosed between double quotes Examples"This is a string""I do, I don't""1234abc345"

Page 10: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

10

Logical

Can take only two values:•.TRUE.•.FALSE.

Page 11: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

11

Identifiers

Names used to identify programs, constants, variables, etc.

Identifiers must Begin with a letter This can be followed by up to 30

letters, digits, undescores Be careful with the case: lower or

upper case letters

Page 12: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

12

Identifiers

ExamplesCurrentDecay_Ratepressurean_identifier_with_a_long_namethe_best_program

Page 13: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

13

Constants

10293845 is an integer constant 12.3456 is a real constant "What a nice day!" is a character

constant

Page 14: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

14

VariablesVariables:: 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.

Variables are value containers Compiler associates with a variable

a memory location Value of a variable at any time is

the value stored in the associated memory location at that time

Page 15: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

15

Variables

123.5623456

MEMORY

Hello World1234567

Message

Payment

Page 16: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

16

Declarations of Variables

Form:type-specifier :: list

Declares that the identifiers in the list have the specified type

Type statements must appear in the specification part of the program

Examplesinteger :: number_years, counts, monthsreal :: Mass, Velocity, Accelerationcharacter (len=12) :: MyName, YourName

Page 17: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

17

implicit none

It should be placed at the beginning of the specification part

You have to declare all variables you will be using in the program!

Page 18: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

18

Variable initialization

All variables are initially undefined Initialization in the declarations

Examples:real :: W=1.2, z=5.678, mass=4.56integer :: year=1998, count=0

Page 19: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

19

Named constants

Form:type-specifier, parameter :: list

Examplesinteger, parameter :: INITCOUNT = 30real, parameter :: G = 9.81

It's a good idea to write named constants in upper case

Page 20: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

20

Arithmetic operations

Variables and constants can be processed by using operations and functions appropriated to their types.

Operations

Page 21: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

21

Operator Operation

+ Addition, unary plus

- Subtraction, unaryminus

* Multiplication

/ division

** exponentiation

Page 22: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

22

Operations

ExamplesTo calculate B2 - 4ACB**2 - 4*A*C

Types are important:9/4 = 29.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

Page 23: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

23

Priority rules

All exponentiations are performed first; consecutive exponentiations are performed from right to left

All multiplications and divisions are performed next; in the order in which they appear from left to right

Additions and subtractions are performed last, in the order in which they appear from left to right

Page 24: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

24

Some examples

2 ** 3 ** 2 = 512 10/5 *2 = 2 * 2 = 4

To calculate 51/3

5.0**(1.0/3.0) but not

5.0**(1/3) 5.0**0 1.0

Page 25: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

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

Page 26: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

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 ExamplesDensity = 2000.0Volume = 3.2Mass = Density*VolumeWeightRatio = log(Mass/90.)

Page 27: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

27

Programs need to communicate with users! Two kinds of I/O (for the moment!):

– Formatted I/O– List-directed I/O

List-directed outputprint *, output-listwrite (unit=*, fmt=*) output-list

List-directed inputread *, input-listread (unit=*, fmt=*) input-list

Page 28: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

28

List-directed I/O

Examplesprint *, "Tell me your birthday"write (unit=*, fmt=*) a, b, c**2read *, day, month, year

Page 29: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

29

Page 30: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

30

Page 31: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

31

Page 32: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

32

Page 33: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

33

Page 34: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

34

Page 35: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

35

Page 36: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

36

Page 37: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

37

Page 38: 1 Week 2 n Organizational matters n Fortran 90 (subset F): Basics n Example programs in detail

38