You are on page 1of 16

MEE 505

APPLIED COMPUTER
PROGRAMMING

1
FORTRAN

PROGRAMMING

LANGUAGE

FULL MEANING OF FORTRAN:


FORMULA TRANSLATION
2
SOME DECLARATIONS TO NOTE
IN FORTRAN 90

REAL :: (variable/ Parameters that


are in decimal places)
INTEGER :: (Variables/ Parameters that
are whole numbers)
COMPLEX :: (Variables/ Parameters that
have complex values)
IMPLICIT :: Letters I,J,K,L,M,N are
INTEGER Variables/Names
and ALL other letters are
REAL
IMPLICIT NONE: to turn off implicit typing 3
! - Exclamation mark is for Remarks

; - Semi colon character is used to have


multiple statements on a line

&- Ampersand character can be used at the end


of a line and at the beginning of a new line
for continuation of executable statement

4
ARITHMETIC OPERATORS

** - Exponential ( raising to a power)


* - asterisk ( multiplication)
/ - Division
+ - Addition
- -Subtraction

5
SOME IMPORTANT COMMANDS TO NOTE

INPUT COMMAND:
READ *
Example
READ *, X, Y, Z

Output command:
PRINT*, X, Y, Z
[FOR FORTRAN 77, PRINT IS WRITTEN AS “WRITE”]

6
RULES FOR FORTRAN 90 NAMES (IDENTIFIERS)

They must be composed of the alphanumeric characters


( English alphabet and Arabic numerals 0-9)

They may be supplemented by the underscore symbol, _

The maximum number of characters should be 31

The first letter must be a letter

The underscore symbol is to separate different parts


of a name

7
EXAMPLES OF FORTRAN 90 MAMES

 SAMSA_TOOL
 TRASH
 XYZ_123
 KAYODE_1999
 HEART_OF_JOY
INVALID FORTRAN MAMES

3SAMSA_TOOL [ DOES NOT BEGIN WITH A LETTER]


T RAS H [SPACE (BLANK) IS NOT A VALID
CHARACTER]
XYZ.123 [FULL STOP IS NOT A VALID CHARACTER]
K/1999[DIVIDE SYMBOL (/) IS NOT A VALID
CHARACTER]

8
EXAMPLES OF TYPICAL FORTRAN 90 REAL NUMBERS
these are mostly represented by “floating point”

e.g. + 34.36E-5, meaning the REAL number +0.0003436

 3.14159
 1.
 -.67
 +23.76
 2.1E5

9
LIST OF intrinsic functions
•Conversion
Task Definition Function Type of Type of
Name Argument result
1 Absolute Value IXI ABS(X) REAL REAL
2 TRUNCATION INTEGER PART OF X INT (X) REAL INTEGER
3 NEAREST NEAREST INTEGER TO X NINT(X) REAL INTEGER
NEAREST INTEGER NOT CEILING(X) REAL INTEGER
LESS THAN X
NEAREST INTEGER NOT FLOOR(X) REAL INTEGER
GREATER THAN X
CONVERSION TO REAL(I) INTEGER REAL
REAL

10
•Testing

Task Definition Function Name Type of Type of


Argument result
1 REMAINDER REMAINDER MOD(X,Y) INTEGER INTEGER
OF X/Y MODULO(X,Y) REAL REAL
INTEGER INTEGER
REAL REAL
2 CHOOSE Max(x,y,z,…) MAX(X,Y,Z) INTEGER INTEGER
LARGEST REAL REAL
VALUE
3 CHOOSE Min(x,y,z,…) MIN(X,Y,Z) INTEGER INTEGER
MINIMUM REAL REAL
VALUE

11
(C ) Complex Arithmetic

Task Function Type of Type of


Name Argument result
1 Create Complex number CMPLEX (X,Y) INTEGER or COMPLEX
from “real’ and REAL
“imaginary” variable
components X and Y
2 Find Complex conjugate CONJG(Z) COMPLEX COMPLEX

12
Example: solve the following complex equations

(1) Z   5  i  log 3  2i 

( 2) Z  sin  2  3i 

 1/ 2 2i 
 3e  5i
(3) Z   2  3i 1  i   
 2i 

13
PROGRAM_COMPLEXNUM
! PROGRAM TO SLVE THE GVEN COMPLEX EQUATONS
IMPLICIT NONE
COMPLEX :: A, B
COMPLEX :: A1, B1
A = (5.0, -1.0); B(3.0,2.0)
PRINT*, SQRT(A*LOG(B))
PRINT*, SIN((2.0,3.0))
A1 = (2.0,3.0)*(1.0,-1.0)
B1=3.0* EXP((0.0,5.0))/SQRT((2.0,-1.0))
PRINT*, (A1-B1)**(0.5,-2.0)
END PROGRAM_COMPLEXNUM
THE RESUTS ARE:
(2,6640478, 0.3110938)
(9.1544991, -4.1689072)
(-7.0289340, -2.0416074) 14
DO AND END DO STATEMENTS [ REPETITION]

DO I = 0,10,2
EXECUTABLE STATEMENTS
END DO

EXAMPLE 1: WRITE A FORTRAN 90 PROGRAM TO


READ IN N NUMBERS AND PRINT THEIR SUM

! A LOOP TO SUM N NUMBERS


! INITIALIZE SUM
SUM =0.0
! INPUT THE N NUBERS
READ*, N
! SUM THE NUMBERS
DO I=1,N
SUM = SUM + A
END DO
STOP 15
EXAMPLE 2: WRITE A FORTRAN 90 PROGRAM TO
CALCULATE AND PRINT FACTORIAL N

! INITIALIZE FACTORIAL N
FACTORIAL_N = 1
! INPUT N
READ*, N
DO I=1,N
FACTORIAL_N = FACTORIAL_N * I
END DO
PRINT*, FACTORIAL_N
STOP

16

You might also like