fortran 77 by tanatorn somboonvorakit, id: 49540453
TRANSCRIPT
![Page 1: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/1.jpg)
Fortran 77
By Tanatorn Somboonvorakit, ID: 49540453
![Page 2: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/2.jpg)
The standard definition of Fortran was updated in the late 1970's and a new standard, ANSI X3.9-1978, was
published by the American National Standards Institute. This standard was subsequently (in 1980) adopted by the
International Standards Organization (ISO) as an International Standard (IS 1539 : 1980). The language is
commonly known as FORTRAN 77
Fortran 77 first designed
![Page 3: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/3.jpg)
The goals of this language
• Fortran, which originally stood for IBM Mathematical FORmula TRANslation System but has been abbreviated to FORmula TRANslation, is the oldest of the established “high-level” languages.
• Use for scientific computation
![Page 4: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/4.jpg)
Designed by …
A group in IBM during the late 1950s.
![Page 5: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/5.jpg)
Problem domain was Fortran 77 intended for
Fortran programs could be processed very efficiently, led to Fortran being the most heavily-used
programming language for non-commercial applications.
By the mid 1970s virtually every computer, mini or mainframe, was supplied with a standard-conforming FORTRAN 66 language processing
system. It was therefore possible to write programs in Fortran on any one system and be reasonably
confident that these could be moved fairly easily to work on any other system.
![Page 6: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/6.jpg)
Some main features of the language
Compilers, which usually support a small number of extensions have, become very efficient.
Populate Scientific installations all over the world.
![Page 7: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/7.jpg)
How widely is the language used ?
This version of the language is widespread use.The standard is Fortran 66 and have been develop toFortran 77, Fortran 88 and 90. Now this language is stilluse until today.
![Page 8: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/8.jpg)
About the LanguageArithmetic expressions
Operator Operation + Addition or unary + - Subtraction or unary – * Multiplication / Division ** Exponentiation
The READ statementThe READ statement is used to assign values to variables by reading data from input.
Form :READ *, variable_list
Example :READ *, VAR1, VAR2, VAR3
![Page 9: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/9.jpg)
Variables
A variable is a unique name which a Fortran program applies to a word of memory and uses to refer to it.
A variable consists of '''1 to 6 upper case alphabetic characters and decimal digits''', beginning with an alphabetic character.
Examples: VOL TEMP A2 COLUMN IBM370
![Page 10: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/10.jpg)
The PRINT statementOutput can be printed using the PRINT statement.
Form :PRINT *, output_list
Example :PRINT *, 'THE RESULTS ARE', X ,'AND',Y
The PROGRAM statementA program can optionally be given a name by beginning it with a single PROGRAM statement.
Form :PROGRAM program_name
Example :PROGRAM TESTPROGRAM
![Page 11: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/11.jpg)
The END and STOP statements
Each program must conclude with the statement END, which marks the end of the program. There must be no previous END
statement.
The statement STOP stops execution of the program.
Comments
The letter ‘C’ or an asterisk in column one causes the compiler to ignore the rest of
the line, which may therefore be used as a comment to provide information for
anyone reading the program.
![Page 12: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/12.jpg)
Relational expressions
A relational expression is a logical expression which states a relationship between two expressions, evaluating to .TRUE. if the relationship applies or .FALSE. otherwise.
A relational expression has the form:
arithmetic_expression relational_operator arithmetic_expression
The relational operators are: Meaning
.LT. Less than
.LE. Less than or equal to
.EQ. Equal to
.NE. Not equal to
.GE. Greater than or equal to
.GT. Greater than
![Page 13: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/13.jpg)
Thus examples of relational expressions are: N.GE.0 X.LT.Y B**2 - 4*A*C .GT. 0.
Composite logical expressionsForm: L1 logical_operator L2
Meaning .AND. Both L1 and L2 are .TRUE. .OR. Either L1 or L2 or both are .TRUE. .EQV. Both L1 and L2 have the same value (.TRUE. or .FALSE.) .NEQV. L1 and L2 have different values (one .TRUE. and one .FALSE.)
Example :(A.LT.B) .OR. (C.LT.D)
![Page 14: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/14.jpg)
The logical IF statement
The logical IF statement is used to execute an instruction conditionally.
Form :IF (logical_expression) executable_statement
Example : IF (A.LT.B) SUM = SUM + A
The block IF structureThe block IF structure is more powerful, permitting the conditional execution of one of a number of alternative sequences of instructions.
![Page 15: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/15.jpg)
described informally as :
an IF block, followed by : one or more optional ELSE IF blocks, followed by :an optional ELSE block, followed by : END IF
Form :IF (logical_expression) THEN ….Fortran statements….
ELSE IF (logical_expression) THEN ….Fortran statements….
ELSE ….Fortran statements….
END IF
Example :IF (HRS .LE. 40) THEN SALARY = HRS * RATE
ELSE IF (HRS .LE. 50) THEN SALARY = 40.0 * RATE + (HRS – 40.0) * RATE * 1.5
ELSE SALARY = 40.0 * RATE + 10.0 * RATE * 1.5 + (HRS – 50.0) * RATE * 2.0
END IF
![Page 16: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/16.jpg)
The DO-loop
A DO loop is a sequence of statements beginning with a DO statement.
Form :DO label, var = e1, e2, [,e3]
label is the label of an executable statement sequentially following the DO statement called the terminal statement of the DO loop.var is an INTEGER or REAL variable called the loop control variable.e1, e2 and e3 are arithmetic expressions. (i.e. INTEGER or REAL constants)
Example :DO 10, I = 1,5
DO 10, I = 0,100,5
![Page 17: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/17.jpg)
Nested DO loops
Example :
DO 20, …..…………
DO 10, …..…………
10 CONTINUE……….
20 CONTINUE
Example :
DO 20, …..…………
DO 10, …..…………
20 CONTINUE……….
10 CONTINUE
VALID INVALID
![Page 18: Fortran 77 By Tanatorn Somboonvorakit, ID: 49540453](https://reader036.vdocument.in/reader036/viewer/2022082711/56649f135503460f94c27bf8/html5/thumbnails/18.jpg)
A simple program
PROGRAM PETROL INTEGER STOPS, FILLUP
CC THESE VARIABLES WOULD OTHERWISE BE TYPED REAL BY DEFAULT C ANY TYPE SPECIFICATIONS MUST PRECEDE THE FIRST EXECUTABLE STATEMENT C
READ *, KM, STOPS, FILLUPUSED = 40 * STOPS + FILLUP
C COMPUTES THE PETROL USED AND CONVERTS IT TO REAL
KPL = KM / USED + 0.5
C 0.5 IS ADDED TO ENSURE THAT THE RESULT IS ROUNDED
PRINT *, ‘AVERAGE KPL WAS’, KPL
END